/* Product detail page - v2 design (scoped to #pageContent.pdv2) */
#pageContent.pdv2 {
    --pd-red: #c8102e;
    --pd-red-dark: #a50d26;
    --pd-red-soft: #fdeaee;
    --pd-ink: #111827;
    --pd-muted: #6b7280;
    --pd-line: #e5e7eb;
    --pd-teal: #14b8a6;
    --pd-blue: #0e6ba8;
    background: #f5f5f5;
    font-family: 'Roboto', 'Helvetica Neue', Arial, sans-serif;
    padding-bottom: 30px;
}
#pageContent.pdv2 .container-outer,
#pageContent.pdv2 .container { background: #fff; }
#pageContent.pdv2 .container { padding-top: 12px; padding-bottom: 20px; }

/* breadcrumb */
.pdv2-breadcrumb { font-size: 11px; color: var(--pd-muted, #6b7280); margin: 0 0 14px; }
.pdv2-breadcrumb a { color: var(--pd-muted, #6b7280); }
.pdv2-breadcrumb span { margin: 0 2px; }

/* gallery */
#pageContent.pdv2 .pdv2-gallery .product-details {
    border: 1px solid var(--pd-line);
    border-radius: 8px;
    padding: 14px;
    background: #fff;
    text-align: center;
}
#pageContent.pdv2 .pdv2-gallery img { max-width: 100%; height: auto; border-radius: 6px; }
#pageContent.pdv2 .pdv2-gallery hr { display: none; }

/* title */
#pageContent.pdv2 .pdv2-title { margin: 0 0 14px; }
#pageContent.pdv2 #productTitle {
    display: block;
    margin: 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: -.2px;
    text-transform: uppercase;
    color: var(--pd-ink);
    background: none;
    padding: 0;
    border: 0;
}
#pageContent.pdv2 #productTitle .pdv2-red { color: var(--pd-red); }

/* options panel */
#pageContent.pdv2 .rightbtnform { margin-top: 0; }
#pageContent.pdv2 .rightbtnform > .col-lg-12 { padding: 0; }
#pageContent.pdv2 .rightbtnform > .col-lg-12 { counter-reset: pdv2step; }
#pageContent.pdv2 #filterBooklet {
    border: 1px solid var(--pd-line);
    border-radius: 8px;
    background: #fff;
    padding: 18px 20px 6px;
    margin-bottom: 0;
    box-shadow: none;
}
#pageContent.pdv2 #filterBooklet .inputgroup { margin-bottom: 14px; }
#pageContent.pdv2 #filterBooklet .inputgroup > .mb10 { margin-bottom: 0; }
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) { counter-increment: pdv2step; }
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child {
    display: block;
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--pd-muted);
}
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child strong { font-weight: 500; }
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child::before {
    content: counter(pdv2step) ". ";
}

/* selects + inputs */
#pageContent.pdv2 #filterBooklet .select-wrapper { display: inline-block; max-width: 100%; }
#pageContent.pdv2 #filterBooklet select,
#pageContent.pdv2 #filterBooklet input.form-control {
    height: 34px;
    min-width: 72px;
    /* padding: 4px 26px 4px 10px; */
    font-size: 12px;
    color: var(--pd-ink);
    background-color: #fff;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    box-shadow: none;
    width: auto;
    max-width: 100%;
}
#pageContent.pdv2 #filterBooklet input.form-control { padding-right: 10px; min-width: 120px; }
#pageContent.pdv2 #filterBooklet select:focus,
#pageContent.pdv2 #filterBooklet input.form-control:focus { border-color: var(--pd-red); outline: 0; }
#pageContent.pdv2 #filterBooklet .error_msg { display: block; color: var(--pd-red); font-size: 11px; }

/* pill buttons (size / sides) */
#pageContent.pdv2 .pdv2-hidden-select { display: none !important; }
.pdv2-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pdv2-pill {
    height: 34px;
    padding: 0 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--pd-ink, #111827);
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}
.pdv2-pill:hover:not(:disabled) { border-color: #c8102e; }
.pdv2-pill.active { color: #c8102e; background: #fdeaee; border-color: #c8102e; }
.pdv2-pill:disabled { opacity: .6; cursor: not-allowed; }

/* quote / shipping notes */
#pageContent.pdv2 #filterBooklet .note,
#pageContent.pdv2 #filterBooklet .quotenote { font-size: 12px; }
#pageContent.pdv2 #filterBooklet .quotenote { color: var(--pd-red); }
#pageContent.pdv2 #shipingestimateblock {
    border: 1px solid var(--pd-line);
    border-radius: 8px;
    background: #fafafa;
    padding: 14px;
    margin: 0 0 14px;
}

/* turnaround cards */
#pageContent.pdv2 .turnParent {
    margin: 0;
    padding: 0 20px;
    border-left: 1px solid var(--pd-line);
    border-right: 1px solid var(--pd-line);
    background: #fff;
    min-height: 40px;
}
#pageContent.pdv2 .turnParent::before {
    counter-increment: pdv2step;
    content: counter(pdv2step) ". Turnaround";
    display: block;
    padding-top: 2px;
    margin-bottom: 6px;
    font-size: 10.5px;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--pd-muted);
}
#pageContent.pdv2 .tableTurnPrice,
#pageContent.pdv2 .tableTurnPrice tbody {
    display: block;
    width: 100%;
    border: 0;
    margin: 0;
}
#pageContent.pdv2 .tableTurnPrice tbody { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#pageContent.pdv2 .tableTurnPrice tr,
#pageContent.pdv2 .tableTurnPrice tr:nth-child(2n+1) {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    align-items: center;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--pd-line);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
#pageContent.pdv2 .tableTurnPrice tr:hover { border-color: #f1a5b2; }
#pageContent.pdv2 .tableTurnPrice tr:has(input:checked) {
    background: var(--pd-red-soft);
    border: 2px solid var(--pd-red);
    padding: 11px 13px;
}
#pageContent.pdv2 .tableTurnPrice tr td { display: block; padding: 0; border: 0; font-size: 11px; color: var(--pd-muted); line-height: 1.5; }
#pageContent.pdv2 .tableTurnPrice tr td:nth-child(2) span:first-child { font-size: 12px; font-weight: 700; color: var(--pd-ink); }
#pageContent.pdv2 .tableTurnPrice tr td:nth-child(2) span { display: block; }
#pageContent.pdv2 .tableTurnPrice tr td:nth-child(3) { font-size: 14px; font-weight: 700; color: var(--pd-red); text-align: right; white-space: nowrap; }
#pageContent.pdv2 .tableTurnPrice tr td:nth-child(3) span { display: inline; }
#pageContent.pdv2 .tableTurnPrice input[type=radio] { margin: 0; accent-color: var(--pd-red); cursor: pointer; }
#pageContent.pdv2 .turnParent .overlaymask { border-radius: 8px; }

/* selection + cta */
#pageContent.pdv2 .cart-section {
    border: 1px solid var(--pd-line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: #fff;
    padding: 6px 20px 20px;
}
#pageContent.pdv2 .hands_estimate {
    margin: 14px 0 16px;
    padding: 0;
    background: none;
    border: 0;
    text-align: left;
}
#pageContent.pdv2 .hands_estimate .pdv2-sel-label { font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase; color: var(--pd-muted); }
#pageContent.pdv2 .hands_estimate .pdv2-total { font-size: 28px; font-weight: 900; line-height: 1.2; color: var(--pd-red); }
#pageContent.pdv2 .hands_estimate .pdv2-breakdown { font-size: 11px; color: var(--pd-muted); line-height: 1.6; }

#pageContent.pdv2 .newbottomBtn {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 0;
}
#pageContent.pdv2 .newbottomBtn .btn {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 12px 10px !important;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
    text-align: center;
    color: #fff;
    border: 0;
    border-radius: 4px;
    background-image: none;
    box-shadow: none;
    text-shadow: none;
    height: auto;
}
#pageContent.pdv2 .newbottomBtn #uploadLaterDivNew { order: 1; background: var(--pd-teal); }
#pageContent.pdv2 .newbottomBtn #uploadDivNew,
#pageContent.pdv2 .newbottomBtn #directSaveBtn { order: 2; background: var(--pd-blue); }
#pageContent.pdv2 .newbottomBtn #blockDesignNew {
    order: 3;
    grid-column: 1 / -1;
    padding: 14px 10px !important;
    font-size: 12px;
    background: #e30613;
}
#pageContent.pdv2 .newbottomBtn #blockDesignUsNew,
#pageContent.pdv2 .newbottomBtn #imageZoneDivNew {
    order: 4;
    color: var(--pd-ink);
    background: #fff;
    border: 1px solid #d1d5db;
}
#pageContent.pdv2 .newbottomBtn #uploadPreviousDesign,
#pageContent.pdv2 .newbottomBtn #shoppingCartNew { grid-column: 1 / -1; order: 0; background: var(--pd-ink); }
#pageContent.pdv2 .newbottomBtn .btn:hover { filter: brightness(.92); }

/* tabs */
.pdv2-tabs { clear: both; margin: 26px 0 10px; }
.pdv2-tabnav { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; border-bottom: 1px solid #e5e7eb; }
.pdv2-tabnav a {
    display: block;
    padding: 12px 14px;
    margin-bottom: -1px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #6b7280;
    text-decoration: none;
    border-bottom: 2px solid transparent;
}
.pdv2-tabnav a.active { color: #c8102e; border-bottom-color: #c8102e; }
.pdv2-tabbody { padding: 18px 0; font-size: 12px; line-height: 1.7; color: #6b7280; }
.pdv2-pane { display: none; }
.pdv2-pane.active { display: block; }
.pdv2-pane h1, .pdv2-pane h2, .pdv2-pane h3 { font-size: 16px; font-weight: 700; color: #111827; line-height: 1.5; }
.pdv2-pane iframe { max-width: 100%; margin-top: 12px; }

.pdv2-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; text-align: center; }
.pdv2-steps li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #c8102e;
    border: 2px solid #c8102e;
    border-radius: 50%;
}
.pdv2-steps li strong { display: block; font-size: 12px; color: #111827; }
.pdv2-steps li em { display: block; font-style: normal; font-size: 11px; }

/* responsive */
@media (max-width: 991px) {
    #pageContent.pdv2 .pdv2-gallery { margin-bottom: 16px; }
    #pageContent.pdv2 #productTitle { font-size: 22px; }
}
@media (max-width: 575px) {
    #pageContent.pdv2 #filterBooklet { padding: 14px 14px 4px; }
    #pageContent.pdv2 .turnParent { padding: 0 14px; }
    #pageContent.pdv2 .cart-section { padding: 6px 14px 16px; }
    #pageContent.pdv2 .tableTurnPrice tbody { grid-template-columns: 1fr; }
    .pdv2-steps { grid-template-columns: 1fr 1fr; }
}

/* ---- overrides for legacy style.css rules ---- */
/* selection block: centered, red total */
#pageContent.pdv2 .hands_estimate {
    text-align: center !important;
    border: 0 !important;
    background: none !important;
    margin: 10px 0 16px !important;
    padding: 0 !important;
}
#pageContent.pdv2 .hands_estimate .pdv2-sel-label {
    font-size: 10.5px !important;
    text-transform: uppercase;
    color: var(--pd-muted);
}
#pageContent.pdv2 .hands_estimate .pdv2-total,
#pageContent.pdv2 .hands_estimate .pdv2-total span {
    font-size: 30px !important;
    font-weight: 900 !important;
    line-height: 1.2;
    color: var(--pd-red) !important;
}
#pageContent.pdv2 .hands_estimate .pdv2-breakdown,
#pageContent.pdv2 .hands_estimate .pdv2-breakdown span {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: var(--pd-muted) !important;
    text-transform: none !important;
}

/* buttons: legacy rule forces flex/18px */
#pageContent.pdv2 .newbottomBtn.inputgroup.mb0 {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    justify-content: stretch;
    margin: 0 !important;
}
#pageContent.pdv2 .newbottomBtn.inputgroup .btn,
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-upload,
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-orange,
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-green {
    font-size: 14px !important;
    padding: 12px 10px !important;
    margin: 0 !important;
    width: 100% !important;
}
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-green#uploadLaterDivNew { background: var(--pd-teal); }
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-upload { background: var(--pd-blue); }
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-orange#blockDesignNew { background: #e30613; font-size: 14px !important; padding: 14px 10px !important; }
#pageContent.pdv2 .newbottomBtn.inputgroup .btn.btn-green#blockDesignUsNew,
#pageContent.pdv2 .newbottomBtn.inputgroup .btn#imageZoneDivNew { background: #fff; color: var(--pd-ink); border: 1px solid #d1d5db; }

/* turnaround cards: neutralise legacy sizes */
#pageContent.pdv2 .turnParent .tableTurnPrice tr td { font-size: 11px; font-weight: 400; padding: 0; }
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:first-child { text-align: left; }
#pageContent.pdv2 .turnParent .tableTurnPrice tr td span {
    display: block;
    margin: 0;
    font-size: 11px;
    font-weight: 400;
    color: var(--pd-muted);
}
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(2) span:first-child {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--pd-ink);
    margin-bottom: 2px;
}
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(3),
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(3) span,
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(3) span.tPrice {
    display: inline;
    font-size: 14px;
    font-weight: 700;
    color: var(--pd-red);
}
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(3) span.ctPrice { font-size: 12px; font-weight: 400; color: var(--pd-muted); }
#pageContent.pdv2 .turnParent .tableTurnPrice .com_radio { width: 14px; height: 14px; }

/* turnaround: remove extra gap (the <br> between name and date doubles up with block spans) */
#pageContent.pdv2 .tableTurnPrice tr td br { display: none; }
#pageContent.pdv2 .tableTurnPrice tr,
#pageContent.pdv2 .tableTurnPrice tr:nth-child(2n+1) { padding: 8px 12px; column-gap: 6px; }
#pageContent.pdv2 .tableTurnPrice tr:has(input:checked) { padding: 7px 11px; }
#pageContent.pdv2 .turnParent .tableTurnPrice tr td { line-height: 1.35; }
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:nth-child(2) span:first-child { margin-bottom: 0; }
#pageContent.pdv2 .turnParent .tableTurnPrice tr td:first-child { display: flex; align-items: center; height: auto; }
#pageContent.pdv2 .turnParent .tableTurnPrice .com_radio { margin: 0; height: 14px; }

/* toast messages (top right) */
.pdv2-toast {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 100000;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 360px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.4;
    color: #111827;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #c8102e;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
    animation: pdv2-toast-in .25s ease-out;
    transition: opacity .3s, transform .3s;
}
.pdv2-toast-body { flex: 1; word-break: break-word; }
.pdv2-toast-close {
    padding: 0 2px;
    font-size: 20px;
    line-height: 1;
    color: #6b7280;
    background: none;
    border: 0;
    cursor: pointer;
}
.pdv2-toast-close:hover { color: #111827; }
.pdv2-toast-out { opacity: 0; transform: translateX(20px); }
@keyframes pdv2-toast-in { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }
@media (max-width: 575px) { .pdv2-toast { left: 12px; right: 12px; max-width: none; } }

/* no numbering; bold attribute names; rounded dropdowns */
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child::before,
#pageContent.pdv2 .turnParent::before { counter-increment: none; }
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child::before { content: none; }
#pageContent.pdv2 .turnParent::before { content: "Turnaround"; font-weight: 700; }
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child,
#pageContent.pdv2 #filterBooklet .inputgroup:has(> .mb10) > label:first-child strong { font-weight: 700; }
#pageContent.pdv2 #filterBooklet select{
    height: auto;
    padding: 0px 12px;
    border: 1px solid rgb(221, 221, 221);
    border-radius: 6px;
    font-size: 14px;
}
#pageContent.pdv2 #filterBooklet input.form-control {
    height: auto;
    padding: 10px 12px;
    border: 1px solid rgb(221, 221, 221);
    border-radius: 6px;
    font-size: 14px;
}
#pageContent.pdv2 #filterBooklet select { padding-right: 32px; }

/* no rule under the product name */
#pageContent.pdv2 #right-section hgroup.pdv2-title { border: 0 !important; padding: 0 !important; }
#pageContent.pdv2 #right-section hgroup.pdv2-title::after,
#pageContent.pdv2 #right-section hgroup.pdv2-title::before { display: none !important; }

/* no select wrapper: native selects; neutralise legacy wrapper if a script adds it */
#pageContent.pdv2 .select-wrapper { display: contents; border: 0; background: none; height: auto; overflow: visible; }
#pageContent.pdv2 .select-wrapper .holder { display: none; }
#pageContent.pdv2 .select-wrapper select { position: static; opacity: 1; height: auto; line-height: normal; width: auto; }
#pageContent.pdv2 #filterBooklet select { display: block; max-width: 100%; cursor: pointer; }

/* tighten space after pills / selects */
#pageContent.pdv2 #filterBooklet .error_msg:empty { display: none; }
#pageContent.pdv2 #filterBooklet .inputgroup > .mb10 > .pdv2-pills { margin: 0; }
#pageContent.pdv2 #filterBooklet .inputgroup > .mb10 { margin: 0; padding: 0; line-height: 0; }
#pageContent.pdv2 #filterBooklet .inputgroup > .mb10 > * { line-height: normal; }
#pageContent.pdv2 #filterBooklet .inputgroup { margin-bottom: 12px; padding: 0; }

/* tabs: exact spec */
#pageContent.pdv2 .pdv2-tabnav { border-bottom: 2px solid #e5e7eb; }
#pageContent.pdv2 .pdv2-tabnav a {
    padding: 12px 18px;
    background: none;
    border-width: 0 0 2px;
    border-style: none none solid;
    border-color: currentcolor currentcolor transparent;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.3px;
    color: rgb(153, 153, 153);
    margin-bottom: -2px;
    text-transform: uppercase;
}
#pageContent.pdv2 .pdv2-tabnav a.active {
    border-color: currentcolor currentcolor rgb(220, 20, 60);
    color: rgb(220, 20, 60);
}

/* options panel, turnaround and cart section form one continuous box: no line between them */
#pageContent.pdv2 #filterBooklet { border-bottom: 0; border-radius: 8px 8px 0 0; margin-bottom: 0; }
#pageContent.pdv2 #shipingestimateblock { margin-left: 0; margin-right: 0; }
