/* ============================================================
   TWS PDP standard design — pilot
   Source of truth: /root/tws-pipeline/pdp/twspdp.css
   Deployed by deploy_pdp_pilot.py to /media/tws/pdp/twspdp.css
   Every `body.twspdp:not(.ox_quickview-catalog_product-view)` selector is rewritten at deploy time to
   `body.twspdp:not(.ox_quickview-catalog_product-view):not(.ox_quickview-catalog_product-view)` so the
   quick-view modal iframe is excluded.
   ============================================================ */

body.twspdp:not(.ox_quickview-catalog_product-view){--tws-navy:#0a2540;--tws-blue:#0b67d1;--tws-bg:#f5f5f7;--tws-line:#ececf0;--tws-text:#1d1d1f;--tws-sub:#5f5f64}

/* ---------- motion ---------- */
@keyframes twspdpRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*{animation:twspdpRise .5s both}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*:nth-child(2){animation-delay:.05s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*:nth-child(3){animation-delay:.1s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*:nth-child(4){animation-delay:.15s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*:nth-child(5){animation-delay:.2s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main>*:nth-child(n+6){animation-delay:.25s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.media{animation:twspdpRise .5s .05s both}
@media (prefers-reduced-motion:reduce){body.twspdp:not(.ox_quickview-catalog_product-view) *{animation:none!important;transition:none!important}}

/* ---------- quick anchor nav + breadcrumbs ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .a2-qn__link{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--tws-sub)}
body.twspdp:not(.ox_quickview-catalog_product-view) .a2-qn__link:hover{color:var(--tws-blue)}
body.twspdp:not(.ox_quickview-catalog_product-view) .breadcrumbs .items{font-size:12.5px}

/* ---------- gallery ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product.media{background:#fff;border:1px solid var(--tws-line);border-radius:20px;padding:16px;box-shadow:0 10px 34px rgba(10,37,64,.06)}
body.twspdp:not(.ox_quickview-catalog_product-view) .fotorama:not(.fotorama--fullscreen) .fotorama__stage{border-radius:14px;overflow:hidden}
body.twspdp:not(.ox_quickview-catalog_product-view) .fotorama__nav__frame--thumb .fotorama__thumb{border-radius:10px;border:2px solid transparent;overflow:hidden;transition:border-color .2s}
body.twspdp:not(.ox_quickview-catalog_product-view) .fotorama__nav__frame--thumb.fotorama__active .fotorama__thumb{border-color:var(--tws-blue)}
body.twspdp:not(.ox_quickview-catalog_product-view) .fotorama__thumb-border{border-color:var(--tws-blue);border-radius:10px}

/* ---------- title block ---------- */
.twspdp-eyebrow{display:inline-block;font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tws-blue,#0b67d1);background:#eaf3fe;border-radius:999px;padding:6px 13px;margin:0 0 12px}
body.twspdp:not(.ox_quickview-catalog_product-view) .page-title-wrapper.product .page-title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(20px,1.8vw,26px);line-height:1.28;letter-spacing:-.015em;color:var(--tws-navy);margin:0 0 8px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product__social-share{opacity:.65}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-reviews-summary .reviews-actions a{font-size:12.5px;color:var(--tws-sub)}

/* ---------- price ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .price-box .special-price .price,
body.twspdp:not(.ox_quickview-catalog_product-view) .price-box>.price-container .price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(28px,2.4vw,34px);letter-spacing:-.02em;color:var(--tws-navy)}
body.twspdp:not(.ox_quickview-catalog_product-view) .price-box .old-price .price{font-family:'Roboto',sans-serif;font-size:16px;font-weight:500;color:#9a9aa0}
.twspdp-save{display:inline-block;font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:700;color:#0a7a3d;background:#e7f6ec;border-radius:999px;padding:6px 13px;margin-left:10px;vertical-align:middle}

/* ---------- stock / sku ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-stock-sku{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}
body.twspdp:not(.ox_quickview-catalog_product-view) .stock.available{margin:0}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-stock-sku .stock.available span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#0a7a3d;background:#e7f6ec;border-radius:999px;padding:5px 13px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-stock-sku .stock.available span::before{content:'';width:7px;height:7px;border-radius:50%;background:#15a04a}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.attribute.sku{font-size:12.5px;color:#9a9aa0}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.attribute.sku .type{font-weight:600}

/* ---------- overview chips + see-all-specs ---------- */
.twspdp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.twspdp-chip{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;color:var(--tws-navy,#0a2540);background:var(--tws-bg,#f5f5f7);border:1px solid #e3e3e8;border-radius:999px;padding:7px 13px;line-height:1.2}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.attribute.overview .value{font-size:14px;color:var(--tws-sub)}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.attribute.overview a.button{border:1.5px solid var(--tws-blue);border-radius:999px;background:transparent;color:var(--tws-blue);font-family:'Montserrat',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.04em;padding:9px 20px;transition:background .2s,color .2s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.attribute.overview a.button:hover{background:var(--tws-blue);color:#fff}

/* ---------- availability counter ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .ox-stock-values{font-size:12.5px;color:#9a9aa0}
body.twspdp:not(.ox_quickview-catalog_product-view) .ox-stock-values .progress-line{display:none}

/* ---------- qty + add to cart ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .field.qty .label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tws-sub)}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-controls-wrap{display:inline-flex;align-items:center;border:1.5px solid #d8d8de;border-radius:999px;padding:4px;background:#fff}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-controls-wrap .qty-minus{order:1}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-controls-wrap input.qty{order:2;border:0;background:transparent;width:44px;height:34px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;color:var(--tws-navy);box-shadow:none}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-controls-wrap .qty-plus{order:3}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-minus,body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-plus{width:32px;height:32px;border-radius:50%;background:var(--tws-bg);display:inline-flex;align-items:center;justify-content:center;color:var(--tws-navy);transition:background .2s,color .2s;cursor:pointer}
body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-minus:hover,body.twspdp:not(.ox_quickview-catalog_product-view) .box-tocart .qty-plus:hover{background:var(--tws-blue);color:#fff}
body.twspdp:not(.ox_quickview-catalog_product-view) #product-addtocart-button{background:linear-gradient(120deg,#0a2540,#0b67d1);border:0;border-radius:980px;height:52px;padding:0 32px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15.5px;letter-spacing:.01em;color:#fff;box-shadow:0 8px 22px rgba(11,103,209,.22);transition:transform .2s,box-shadow .2s}
body.twspdp:not(.ox_quickview-catalog_product-view) #product-addtocart-button:hover,body.twspdp:not(.ox_quickview-catalog_product-view) #product-addtocart-button:focus{background:linear-gradient(120deg,#0a2540,#0b67d1);transform:translateY(-2px);box-shadow:0 12px 28px rgba(11,103,209,.32)}
body.twspdp:not(.ox_quickview-catalog_product-view) #product-addtocart-button svg{fill:#fff}

/* ---------- wishlist / compare ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product-addto-links .action{width:46px;height:46px;border:1.5px solid #d8d8de;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;transition:border-color .2s,color .2s}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-addto-links .action:hover{border-color:var(--tws-blue);color:var(--tws-blue)}

/* ---------- info hcards (warranty / delivery / payments) ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main .hcard{background:var(--tws-bg);border-left:4px solid var(--tws-blue);border-radius:14px;padding:14px 16px;margin:10px 0;display:flex;gap:12px;align-items:flex-start}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main .hcard svg{flex:none;fill:var(--tws-blue);opacity:.9}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main .hcard_title,body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main .hcard strong{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;color:var(--tws-navy)}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main .hcard p{font-size:13px;color:var(--tws-sub);margin:2px 0 0}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-info-main hr.hr-light{display:none}

/* ---------- accordion / section titles ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product.data.items>.item.title{margin-top:26px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.data.items>.item.title .data.switch{font-family:'Montserrat',sans-serif;font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--tws-navy);position:relative;padding:16px 0 6px;border:0;background:transparent}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.data.items>.item.title .data.switch::before{content:'';position:absolute;top:2px;left:0;width:34px;height:3px;border-radius:3px;background:var(--tws-blue)}
body.twspdp:not(.ox_quickview-catalog_product-view) .product.data.items>.item.content{border:0;background:transparent}

/* ---------- at-a-glance ---------- */
.twspdp-glance-wrap{margin:30px 0 6px}
.twspdp-glance-head{font-family:'Montserrat',sans-serif;font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--tws-navy,#0a2540);margin:0 0 14px;position:relative;padding-top:14px}
.twspdp-glance-head::before{content:'';position:absolute;top:0;left:0;width:34px;height:3px;border-radius:3px;background:var(--tws-blue,#0b67d1)}
.twspdp-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
.twspdp-glance-card{background:var(--tws-bg,#f5f5f7);border-left:4px solid var(--tws-blue,#0b67d1);border-radius:14px;padding:14px 16px;min-width:0}
.twspdp-glance-label{font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#86868b;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.twspdp-glance-value{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;color:var(--tws-navy,#0a2540);line-height:1.35;overflow-wrap:break-word}

/* ---------- grouped tech specs ---------- */
.twspdp-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;align-items:start;margin:6px 0 10px}
details.twspdp-group{background:#fff;border:1px solid var(--tws-line,#ececf0);border-radius:16px;overflow:hidden}
details.twspdp-group summary{list-style:none;cursor:pointer;background:var(--tws-navy,#0a2540);color:#fff;font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:13px 18px;display:flex;justify-content:space-between;align-items:center;user-select:none}
details.twspdp-group summary::-webkit-details-marker{display:none}
details.twspdp-group summary::after{content:'+';font-size:17px;font-weight:600;line-height:1;opacity:.85}
details[open].twspdp-group summary::after{content:'\2013'}
.twspdp-group table{width:100%;border-collapse:collapse;margin:0}
.twspdp-group th,.twspdp-group td{padding:11px 18px;border:0;border-top:1px solid #f0f0f4;font-size:13.5px;line-height:1.5;text-align:left;vertical-align:top}
.twspdp-group tr:first-child th,.twspdp-group tr:first-child td{border-top:0}
.twspdp-group tr:nth-child(even) th,.twspdp-group tr:nth-child(even) td{background:#fafafc}
.twspdp-group th{color:var(--tws-sub,#5f5f64);font-weight:500;width:44%}
.twspdp-group td{color:var(--tws-text,#1d1d1f);font-weight:600}
@media (max-width:767px){.twspdp-groups{grid-template-columns:1fr}}

/* fallback: if JS didn't run, restyle the raw table */
body.twspdp:not(.ox_quickview-catalog_product-view) .additional-attributes-wrapper:not(.twspdp-hidden) table.additional-attributes{border:1px solid var(--tws-line);border-radius:16px;border-collapse:separate;border-spacing:0;overflow:hidden}
body.twspdp:not(.ox_quickview-catalog_product-view) .additional-attributes-wrapper:not(.twspdp-hidden) table.additional-attributes th{background:#fafafc;color:var(--tws-sub);font-weight:500}
body.twspdp:not(.ox_quickview-catalog_product-view) .additional-attributes-wrapper.twspdp-hidden{display:none}

/* ---------- description block harmonization ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .tw-pdp .tw-label{color:var(--tws-blue);font-family:'Montserrat',sans-serif}
body.twspdp:not(.ox_quickview-catalog_product-view) .tw-pdp .tw-spec-label{font-family:'Montserrat',sans-serif}

/* ---------- reviews ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .review-form .input-text,body.twspdp:not(.ox_quickview-catalog_product-view) .review-form textarea{border:1.5px solid #d8d8de;border-radius:12px;transition:border-color .2s,box-shadow .2s}
body.twspdp:not(.ox_quickview-catalog_product-view) .review-form .input-text:focus,body.twspdp:not(.ox_quickview-catalog_product-view) .review-form textarea:focus{border-color:var(--tws-blue);box-shadow:0 0 0 3px rgba(11,103,209,.14)}
body.twspdp:not(.ox_quickview-catalog_product-view) .review-form .action.submit.primary{background:linear-gradient(120deg,#0a2540,#0b67d1);border:0;border-radius:980px;padding:13px 30px;font-family:'Montserrat',sans-serif;font-weight:700;color:#fff}
body.twspdp:not(.ox_quickview-catalog_product-view) .review-form .action.submit.primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(11,103,209,.3)}

/* ---------- theme sticky product bar (desktop + mobile) ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -8px 26px rgba(10,37,64,.1)}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .product-name{font-family:'Montserrat',sans-serif;font-weight:700;font-size:14.5px;color:var(--tws-navy)}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .price-box .special-price .price,
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .price-box>.price-container .price{font-size:19px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .price-box .old-price .price{font-size:13px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .twspdp-save{font-size:11px;padding:4px 10px;margin-left:6px}
body.twspdp:not(.ox_quickview-catalog_product-view) .product-bar .action.tocart{background:linear-gradient(120deg,#0a2540,#0b67d1);border:0;border-radius:980px;font-family:'Montserrat',sans-serif;font-weight:700;color:#fff;box-shadow:0 6px 18px rgba(11,103,209,.22)}

/* ---------- hide description's key-specs grid (superseded by At a glance) ---------- */
body.twspdp:not(.ox_quickview-catalog_product-view) .tw-pdp .tw-specs-grid{display:none}
body.twspdp:not(.ox_quickview-catalog_product-view) .tw-pdp .tw-label:has(+ .tw-specs-grid){display:none}
