/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-a375c31d43e6.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-13755630d7d2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-da72a9f73897.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-3b78c6fa6456.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-f059b71e05ff.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-b6db4a06c119.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../../fonts/inter/inter-6ab57b19c69b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-a375c31d43e6.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-13755630d7d2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-da72a9f73897.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-3b78c6fa6456.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-f059b71e05ff.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-b6db4a06c119.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../../fonts/inter/inter-6ab57b19c69b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-a375c31d43e6.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-13755630d7d2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-da72a9f73897.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-3b78c6fa6456.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-f059b71e05ff.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-b6db4a06c119.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../../fonts/inter/inter-6ab57b19c69b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-a375c31d43e6.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-13755630d7d2.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-da72a9f73897.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-3b78c6fa6456.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-f059b71e05ff.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-b6db4a06c119.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../../fonts/inter/inter-6ab57b19c69b.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --pt-color-primary: #2f4a3c;
  --pt-color-secondary: #5c6f64;
  --pt-color-accent: #d98a2b;
  --pt-color-text: #333b36;
  --pt-color-heading: #1e2d25;
  --pt-color-bg: #f4f2ec;
  --pt-color-surface: #e9e5da;
  --pt-color-border: #d8d3c4;
  --pt-color-success: #46a24a;
  --pt-color-danger: #d9534f;
  --pt-font-base: 'Inter', sans-serif;
  --pt-font-heading: 'Archivo', 'Inter', sans-serif;
  --pt-font-size-base: 16px;
  --pt-line-height: 1.6;
  --pt-heading-weight: 800;
  --pt-heading-scale: 1.45;
  --pt-space-unit: 3px;
  --pt-container: 1300px;
  --pt-section-padding: 78px;
  --pt-radius: 40px;
  --pt-radius-btn: 15px;
  --pt-border-width: 2px;
  --pt-btn-bg: #2f4a3c;
  --pt-btn-text: #ffffff;
  --pt-btn-pad-y: 15px;
  --pt-btn-pad-x: 32px;
  --pt-btn-weight: 700;
  --pt-btn-uppercase: uppercase;
}

/* Rounded native surfaces: keep content clear of the corner curve. The product
   page's Description / Product-details accordions hug the edge at generous
   radii; give their bodies (and generic card bodies) radius-aware padding. */
.accordion-body{ padding: calc(var(--pt-safe-pad) * .8) var(--pt-safe-pad) var(--pt-safe-pad); }
.card-body{ padding-left: var(--pt-safe-pad); padding-right: var(--pt-safe-pad); }
.accordion-body .data-sheet, .accordion-body .product-description{ margin-left: 0; margin-right: 0; }

/* --- Hummingbird / Bootstrap 5 variable bridge --- */
:root{
  --bs-primary: var(--pt-color-primary);
  --bs-secondary: var(--pt-color-secondary);
  --bs-body-color: var(--pt-color-text);
  --bs-body-bg: var(--pt-color-bg);
  --bs-border-color: var(--pt-color-border);
  --bs-border-width: var(--pt-border-width);
  --bs-border-radius: var(--pt-radius);
  /* Radius-aware inner padding: content in rounded surfaces keeps clear of the
     curve — grows with the radius token, never below a comfortable floor. */
  --pt-safe-pad: max(1.1rem, calc(var(--pt-radius) * 0.9));
  --bs-success: var(--pt-color-success);
  --bs-danger: var(--pt-color-danger);
  --bs-body-font-family: var(--pt-font-base);
  --bs-body-font-size: var(--pt-font-size-base);
  --bs-body-line-height: var(--pt-line-height);
}
body{
  color: var(--pt-color-text);
  background-color: var(--pt-color-bg);
  font-family: var(--pt-font-base);
  font-size: var(--pt-font-size-base);
  line-height: var(--pt-line-height);
}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  color: var(--pt-color-heading);
  font-family: var(--pt-font-heading);
  font-weight: var(--pt-heading-weight);
}
a{ color: var(--pt-color-primary); }
/* The native theme footer band sets its own (often light) text colour; let its
   links inherit it so a dark theme primary doesn't render them invisible.
   Scoped to Hummingbird's .footer__main so builder footer-zone blocks are unaffected. */
.footer__main a{ color: inherit; }
.btn-primary,.btn.btn-primary{
  --bs-btn-bg: var(--pt-btn-bg);
  --bs-btn-border-color: var(--pt-btn-bg);
  --bs-btn-color: var(--pt-btn-text);
  --bs-btn-hover-bg: var(--pt-btn-bg);
  --bs-btn-hover-border-color: var(--pt-btn-bg);
  --bs-btn-hover-color: var(--pt-btn-text);
  background-color: var(--pt-btn-bg);
  border-color: var(--pt-btn-bg);
  color: var(--pt-btn-text);
  border-radius: var(--pt-radius-btn);
  padding: var(--pt-btn-pad-y) var(--pt-btn-pad-x);
  font-weight: var(--pt-btn-weight);
  text-transform: var(--pt-btn-uppercase);
}
.card,.product-miniature .thumbnail-container{
  background-color: var(--pt-color-surface);
  border-radius: var(--pt-radius);
}
/* The product-card info strip is hardcoded white by Hummingbird, leaving a white
   panel under the themed image + light card text on it. Theme it to the surface so
   the whole card is cohesive and the title/price stay readable. */
.product-miniature__inner{ background-color: var(--pt-color-surface); }
.container,.container-fluid{ max-width: var(--pt-container); }

/* --- Native Hummingbird/Bootstrap components → theme radius tokens ---
   Bootstrap re-declares --bs-border-radius and several components hardcode a
   radius (btn-square-icon, form-control, touchspin), so a :root var override
   loses. Bridge them explicitly so native buttons/inputs/cards match the
   builder's own sections. !important beats Hummingbird's (non-important) values
   regardless of stylesheet order. */
.btn{ border-radius: var(--pt-radius-btn) !important; }
.form-control,.form-select{ border-radius: var(--pt-radius) !important; }
.card,.product-miniature .thumbnail-container,.product-miniature__data,.product-miniature__inner,.product-miniature__top,.product-miniature__image-link,.product-miniature .outline--rounded,.block-categories,.page-content--cms{ border-radius: var(--pt-radius) !important; }
/* Joined groups (quantity stepper, search bar): round + clip the wrapper and
   flatten the children so the pill ends look intentional, not gappy. */
.input-group,.quantity-button__group{ border-radius: var(--pt-radius-btn); overflow: hidden; }
.input-group > .btn,.input-group > .form-control,.input-group > .form-select,.quantity-button__group > *{ border-radius: 0 !important; }
/* Product page: the cover image (Hummingbird's .rounded = 8px) and the Product
   Details accordion box (flush = 0px) don't follow the theme radius like the
   product miniatures do — bridge them so the whole PDP is consistent. */
.product__carousel,.carousel-inner,.product-cover,.product-cover img{ border-radius: var(--pt-radius) !important; }
.product__carousel,.carousel-inner,.product-cover{ overflow: hidden; }
.accordion-item,.product__accordion,.js-product-details{ border-radius: var(--pt-radius) !important; }
.accordion-item{ overflow: hidden; }
/* PDP product-info accordion (Description / Product Details): centre the header
   label. The button is flex with a chevron ::after pinned to the end via an auto
   margin, so centre the label and absolutely position the chevron at the edge so
   it keeps its place (and Bootstrap's open-state rotate still works). */
.accordion-button{ position: relative; justify-content: center; text-align: center; }
.accordion-button::after{ position: absolute; right: 1.25rem; top: calc(50% - 0.5rem); margin-left: 0; }
/* Quantity stepper +/- glyphs follow the theme text colour so they stay legible on
   a dark background (Hummingbird hardcodes a fixed dark grey, invisible on dark). */
.quantity-button__group .btn,.quantity-button__group .btn .material-icons{ color: var(--pt-color-text) !important; }
/* Product flags (New / Out-of-Stock badges): centre the badge group over the image.
   The flags row is absolutely positioned full-width but Hummingbird gives it an
   asymmetric padding (padding-right:64px to clear the wishlist heart) that shifts the
   centring box left — flatten the padding to symmetric so justify-content actually
   centres over the whole image. */
.product-flags{ justify-content: center; padding-left: 8px !important; padding-right: 8px !important; }
.product-flags .badge,.product-flags .product-flag,.product-flag{ text-align: center; }
/* ps_emailalerts "Notify me when available" panel ships its own fixed light
   background, but its heading/body inherit the theme text+heading colour — which is
   light on a dark theme → invisible. Pin the panel to a light surface with dark,
   readable text so its contrast holds on any theme (the cyan submit button keeps its
   own themed styling). */
.ps-emailalerts__content{ background-color: #f8f9fa !important; color: #1d2025 !important; }
.ps-emailalerts__content p,.ps-emailalerts__content label,
.ps-emailalerts__content .h1,.ps-emailalerts__content .h2,.ps-emailalerts__content .h3,
.ps-emailalerts__content .h4,.ps-emailalerts__content .h5,.ps-emailalerts__content .h6{ color: #1d2025 !important; }

/* --- Native pages: Bootstrap muted/secondary/emphasis text readable across the storefront --- */
:root{ --bs-body-color-rgb: 51, 59, 54 !important; --bs-secondary-color: rgba(51, 59, 54, .72) !important; --bs-secondary-color-rgb: 51, 59, 54 !important; --bs-tertiary-color: rgba(51, 59, 54, .5) !important; --bs-emphasis-color: rgb(51, 59, 54) !important; --bs-emphasis-color-rgb: 51, 59, 54 !important; }
.card,.product-miniature__inner,.product-miniature__data{ --bs-body-color-rgb: 33, 37, 41 !important; --bs-secondary-color: rgba(33, 37, 41, .72) !important; --bs-secondary-color-rgb: 33, 37, 41 !important; --bs-tertiary-color: rgba(33, 37, 41, .5) !important; --bs-emphasis-color: rgb(33, 37, 41) !important; --bs-emphasis-color-rgb: 33, 37, 41 !important; }
.dropdown-menu,.modal-content,.popover,.toast,.ps-emailalerts__content,.js-sticky-header,.breadcrumb__wrapper{ --bs-body-color-rgb: 33, 37, 41 !important; --bs-secondary-color: rgba(33, 37, 41, .72) !important; --bs-secondary-color-rgb: 33, 37, 41 !important; --bs-tertiary-color: rgba(33, 37, 41, .5) !important; --bs-emphasis-color: rgb(33, 37, 41) !important; --bs-emphasis-color-rgb: 33, 37, 41 !important; }
header .pt-storelinks__item,header .pt-storelinks__item:hover,.js-sticky-header .pt-storelinks__item{ color: #1d2025 !important; }
.breadcrumb__wrapper,.breadcrumb__wrapper a,.breadcrumb-item,.breadcrumb-link{ color: #2a2f36 !important; }
body .product-miniature a.product-miniature__title,body .product-miniature a.product-miniature__details,body .account-menu a.account-menu__link{ color: var(--pt-color-primary) !important; }
body .product-miniature .product-miniature__price{ color: var(--pt-color-text) !important; }
body a#identity_link,body a#addresses_link,body a#address_link,body a#history_link,body a#order-slips_link,body a#order-follow_link,body a#discounts_link,body a#merchandise-returns_link,body a#wishlist_link,body a#psgdpr_link,body a#emailalerts_link,body a#signout_link{ color: var(--pt-color-primary) !important; }
.footer__main{ background-color: var(--pt-color-surface); color: var(--pt-color-text); }
.footer__main .footer-block__title,.footer__main .ps-contactinfo,.footer__main .ps-contactinfo a,.footer__main .footer-block__content,.footer__main .footer-block__content a{ color: var(--pt-color-text) !important; }
.footer__main .copyright,.footer__main .copyright a,.copyright,.copyright a{ color: var(--pt-color-text) !important; }
.pt-social__link{ color: #ffffff !important; }
.address-card__content,address.address-card__content{ color: var(--pt-color-text) !important; }
a.address-card__edit{ color: var(--pt-color-primary) !important; }
.address-card{ background-color: var(--pt-color-surface) !important; border-color: var(--pt-color-border) !important; color: var(--pt-color-text) !important; }
.address-card address,.address-card .address-card__alias,.address-card .address-card__header{ color: var(--pt-color-text) !important; }
.address-card .address-card__edit,.address-card a.link-body-emphasis{ color: var(--pt-color-primary) !important; }
.checkout__summary-accordion .accordion-item,.checkout-grid__aside-wrapper{ --bs-accordion-bg: var(--pt-color-surface); --bs-accordion-color: var(--pt-color-text); --bs-accordion-btn-color: var(--pt-color-heading); --bs-accordion-active-bg: var(--pt-color-surface); --bs-accordion-active-color: var(--pt-color-heading); background-color: var(--pt-color-surface); color: var(--pt-color-text); }
.cart-summary__label,.cart-summary__value,.cart-summary__line,.cart-summary__total{ color: var(--pt-color-text); }
.modal-content,.modal-content p,.modal-content strong,.modal-content span,.modal-content li,.modal-content td,.modal-content th,.modal-content label,.modal-content .modal-title,.offcanvas,.offcanvas p,.offcanvas strong,.offcanvas span,.offcanvas li,.offcanvas label,.toast,.toast-body{ color: #1d2025; }
.modal-content h1,.modal-content h2,.modal-content h3,.modal-content h4,.modal-content h5,.modal-content h6,.modal-content .h1,.modal-content .h2,.modal-content .h3,.modal-content .h4,.modal-content .h5,.modal-content .h6,.offcanvas h1,.offcanvas h2,.offcanvas h3,.offcanvas h4,.offcanvas h5,.offcanvas h6,.offcanvas .h5,.offcanvas .h6{ color: #101418; }
.modal-content a:not(.btn),.offcanvas a:not(.btn),.toast a:not(.btn){ color: var(--pt-color-primary); }
.delivery-option,.delivery-option__item,.js-delivery-option{ background-color: var(--pt-color-surface) !important; border-color: var(--pt-color-border) !important; color: var(--pt-color-text) !important; }
.delivery-option__carrier-name,.delivery-option__content,.delivery-option__item span,.delivery-option__item label,.delivery-option__item .carrier-delay,.delivery-option__item .carrier-price{ color: var(--pt-color-text) !important; }
body[id*='module-'][id*='payment'] .card,body[id*='module-cybersource'] .card,body[id*='module-cybersource'] .card-block,body[id*='module-cybersource'] .card-header,body[id*='module-cybersource'] .innerCont,body[id*='module-cybersource'] .bgColor,body[id*='module-cybersource'] .outerCont .rowStyle{ background-color: var(--pt-color-surface) !important; color: var(--pt-color-text) !important; border-color: var(--pt-color-border) !important; }
body[id*='module-cybersource'] .card a:not(.btn),body[id*='module-cybersource'] .innerCont a:not(.btn){ color: var(--pt-color-primary) !important; }
body[id*='module-cybersource'] .innerCont h1,body[id*='module-cybersource'] .innerCont h2,body[id*='module-cybersource'] .innerCont h3,body[id*='module-cybersource'] .innerCont b,body[id*='module-cybersource'] .innerCont span{ color: var(--pt-color-text) !important; }
.order-confirmation__details,.order-confirmation__details .card-body,.order-confirmation-table,#order-details,#order-items{ background-color: var(--pt-color-surface); color: var(--pt-color-text) !important; }
.order-confirmation__details a:not(.btn),#order-details a:not(.btn),#order-items a:not(.btn){ color: var(--pt-color-primary) !important; }
.order-confirmation__details-list dt,.order-confirmation__details-list dd,#order-items .order-line,#order-items .cart-summary__line{ color: var(--pt-color-text) !important; }

/* --- PT Theme Builder sections --- */
.pt-section{ padding-top: var(--pt-section-pt, var(--pt-section-padding)); padding-bottom: var(--pt-section-pb, var(--pt-section-padding)); }
.pt-secwrap{ display:block; }
.pt-heading{ margin:0; }
.pt-btn-el{ display:inline-block; text-decoration:none; padding:var(--pt-btn-pad-y) var(--pt-btn-pad-x); border-radius:var(--pt-radius-btn); font-weight:var(--pt-btn-weight); text-transform:var(--pt-btn-uppercase); }
.pt-btn-el--primary{ background:var(--pt-btn-bg); color:var(--pt-btn-text); border:var(--pt-border-width) solid var(--pt-btn-bg); }
.pt-btn-el--outline{ background:transparent; color:var(--pt-color-primary); border:var(--pt-border-width) solid var(--pt-color-primary); }
.pt-cta{ background:var(--pt-color-surface); border-radius:var(--pt-radius); padding:calc(var(--pt-space-unit) * 4); }
.pt-cta__heading{ margin:0 0 .5rem; }
.pt-cta__text{ margin:0 0 1.25rem; }
.pt-video__frame{ position:relative; padding-top:56.25%; }
.pt-video__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:var(--pt-radius); }
.pt-video__file{ width:100%; height:auto; border-radius:var(--pt-radius); display:block; }
.pt-html{ max-width:100%; }
.pt-feature{ text-align:center; padding:calc(var(--pt-space-unit) * 2); }
.pt-feature__icon{ font-size:2.4rem; line-height:1; margin-bottom:.5rem; }
.pt-feature__heading{ margin:0 0 .35rem; }
.pt-feature__text{ margin:0; color:var(--pt-color-text); }
.pt-accordion{ max-width:820px; margin:0 auto; }
.pt-accordion__item{ border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); margin-bottom:.6rem; background:var(--pt-color-bg); }
.pt-accordion__q{ cursor:pointer; padding:calc(var(--pt-safe-pad) * .85) var(--pt-safe-pad); font-weight:600; list-style:none; }
.pt-accordion__q::-webkit-details-marker{ display:none; }
.pt-accordion__q::after{ content:'+'; float:right; font-weight:700; }
.pt-accordion__item[open] .pt-accordion__q::after{ content:'–'; }
.pt-accordion__a{ padding:0 var(--pt-safe-pad) var(--pt-safe-pad); }
.pt-quote{ background:var(--pt-color-surface); border-radius:var(--pt-radius); padding:calc(var(--pt-space-unit) * 3); margin:0; }
.pt-quote__text{ margin:0 0 1rem; font-style:italic; }
.pt-quote__author{ font-size:.95rem; }
.pt-quote__role{ display:block; color:var(--pt-color-secondary); font-weight:400; }
.pt-gallery__item img{ width:100%; height:100%; object-fit:cover; border-radius:var(--pt-radius); display:block; }
/* Row / columns */
.pt-row{ display:grid; }
.pt-row--cols-2{ grid-template-columns:repeat(2,1fr); }
.pt-row--cols-3{ grid-template-columns:repeat(3,1fr); }
.pt-row--cols-4{ grid-template-columns:repeat(4,1fr); }
.pt-row--top{ align-items:start; }
.pt-row--center{ align-items:center; }
.pt-row--bottom{ align-items:end; }
.pt-row--stretch{ align-items:stretch; }
.pt-col{ min-width:0; }
/* Child sections inside a column shouldn't re-apply section padding / container width */
.pt-col .pt-section{ padding-top:0; padding-bottom:0; }
.pt-col .pt-section__inner{ max-width:none; margin:0; padding-left:0; padding-right:0; }
@media (max-width: 767.98px){ .pt-row--stack{ grid-template-columns:1fr !important; } }
/* Grid (free layout) — flat cells span N tracks, auto-flow + wrap. */
.pt-gridlayout{ display:grid; grid-auto-flow:row dense; }
.pt-gridlayout--top{ align-items:start; }
.pt-gridlayout--center{ align-items:center; }
.pt-gridlayout--bottom{ align-items:end; }
.pt-gridlayout--stretch{ align-items:stretch; }
/* Cell span is driven by CSS vars so per-breakpoint overrides can win
   (an inline grid-column would beat the media queries). Desktop = --pt-cs;
   tablet falls back to desktop, mobile falls back to tablet then desktop. */
.pt-gcell{ min-width:0; grid-column:span var(--pt-cs,1); }
.pt-gcell .pt-section{ padding-top:0; padding-bottom:0; }
.pt-gcell .pt-section__inner{ max-width:none; margin:0; padding-left:0; padding-right:0; }
/* Tablet: cap very wide grids at 3 tracks; phones: single column. */
@media (max-width: 991.98px){
  .pt-gridlayout--cols-4,.pt-gridlayout--cols-5,.pt-gridlayout--cols-6{ grid-template-columns:repeat(3,1fr) !important; }
  .pt-gcell{ grid-column:span var(--pt-cst, var(--pt-cs,1)); }
}
@media (max-width: 767.98px){
  .pt-gcell{ grid-column:span var(--pt-csm, var(--pt-cst, var(--pt-cs,1))); }
  .pt-gridlayout--stack{ grid-template-columns:1fr !important; }
  .pt-gridlayout--stack .pt-gcell{ grid-column:span 1 !important; }
}
/* Entrance animations (toggled by anim.js on scroll into view) */
.pt-anim{ opacity:0; transition:opacity .6s ease, transform .6s ease, filter .6s ease; will-change:opacity, transform, filter; }
.pt-anim--up{ transform:translateY(28px); }
.pt-anim--down{ transform:translateY(-28px); }
.pt-anim--left{ transform:translateX(-28px); }
.pt-anim--right{ transform:translateX(28px); }
.pt-anim--zoom{ transform:scale(.94); }
.pt-anim--zoom-out{ transform:scale(1.06); }
.pt-anim--blur{ filter:blur(12px); }
.pt-anim.pt-anim-in{ opacity:1; transform:none; filter:none; }
@media (prefers-reduced-motion: reduce){ .pt-anim{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; } }
/* Tabs */
.pt-tabs__nav{ display:flex; flex-wrap:wrap; gap:4px; border-bottom:var(--pt-border-width) solid var(--pt-color-border); margin-bottom:1rem; }
.pt-tabs__tab{ border:0; background:none; padding:.7rem 1.1rem; cursor:pointer; font:inherit; color:var(--pt-color-secondary); border-bottom:2px solid transparent; margin-bottom:-1px; }
.pt-tabs__tab.is-active{ color:var(--pt-color-primary); border-bottom-color:var(--pt-color-primary); font-weight:600; }
.pt-tabs__panel{ display:none; }
.pt-tabs__panel.is-active{ display:block; }
/* Countdown */
.pt-countdown{ display:inline-flex; gap:14px; }
.pt-cd__unit{ background:var(--pt-color-surface); border-radius:var(--pt-radius); padding:12px max(16px, calc(var(--pt-radius) * .8)); min-width:64px; text-align:center; }
.pt-cd__num{ display:block; font-size:1.9rem; font-weight:800; line-height:1; color:var(--pt-color-heading); }
.pt-cd__lbl{ font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--pt-color-secondary); }
.pt-cd__expired{ font-weight:600; }
/* Icon list */
.pt-iconlist{ list-style:none; padding:0; margin:0 auto; max-width:560px; }
.pt-iconlist__item{ display:flex; align-items:center; gap:.7rem; padding:.5rem 0; border-bottom:var(--pt-border-width) solid var(--pt-color-border); }
.pt-iconlist__icon{ font-size:1.3rem; }
/* Social links */
.pt-social{ display:inline-flex; gap:10px; }
.pt-social__link{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; background:var(--pt-color-primary); color:#fff; text-decoration:none; font-weight:700; }
.pt-social__link:hover{ filter:brightness(.92); }
/* Stats */
.pt-stat{ text-align:center; }
.pt-stat__num{ font-size:2.6rem; font-weight:800; color:var(--pt-color-primary); line-height:1; }
.pt-stat__label{ color:var(--pt-color-secondary); margin-top:.3rem; }
/* Header/footer widgets */
.pt-menu{ display:flex; flex-wrap:wrap; gap:1.25rem; }
.pt-menu--center{ justify-content:center; } .pt-menu--right{ justify-content:flex-end; } .pt-menu--left{ justify-content:flex-start; }
.pt-menu__link{ text-decoration:none; color:var(--pt-color-text); font-weight:600; }
.pt-menu__link:hover{ color:var(--pt-color-primary); }
.pt-logo img{ display:inline-block; }
.pt-search{ display:inline-flex; width:100%; max-width:520px; }
.pt-search__input{ flex:1; padding:.6rem .9rem; border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius) 0 0 var(--pt-radius); }
.pt-search__btn{ border:0; background:var(--pt-btn-bg); color:var(--pt-btn-text); padding:.6rem 1.1rem; border-radius:0 var(--pt-radius) var(--pt-radius) 0; cursor:pointer; font-weight:var(--pt-btn-weight); }
.pt-storelinks{ display:inline-flex; gap:1.1rem; align-items:center; }
.pt-storelinks--iconly{ gap:1.4rem; }
.pt-storelinks__item{ display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; color:var(--pt-color-text); }
.pt-storelinks__item:hover{ color:var(--pt-color-primary); }
.pt-storelinks__icon{ flex:0 0 auto; width:var(--pt-sl-icon, 18px); height:var(--pt-sl-icon, 18px); }
.pt-storelinks__iconwrap{ position:relative; display:inline-flex; }
.pt-storelinks__badge{ position:absolute; top:-7px; right:-9px; min-width:16px; height:16px; padding:0 4px; border-radius:9px; background:var(--pt-color-primary); color:#fff; font-size:10px; font-weight:700; line-height:16px; text-align:center; }
.pt-section__inner{ max-width: var(--pt-container); margin: 0 auto; padding-left: 1rem; padding-right: 1rem; }
.pt-hero{ display:flex; align-items:center; background-size:cover; background-position:center; position:relative; }
.pt-hero__overlay{ position:absolute; inset:0; background:#000; }
.pt-hero__content{ position:relative; z-index:1; width:100%; }
.pt-hero--left{ justify-content:flex-start; text-align:left; }
.pt-hero--center{ justify-content:center; text-align:center; }
.pt-hero--right{ justify-content:flex-end; text-align:right; }
.pt-hero__eyebrow{ margin:0 0 .35rem; font-family: var(--pt-font-accent, var(--pt-font-heading)); font-weight:500; font-size: calc(var(--pt-font-size-base) * 1.7); line-height:1.05; color: var(--pt-color-primary); }
.pt-hero__title{ font-size: calc(var(--pt-font-size-base) * 2.6); margin:0 0 .5rem; color: inherit; }
.pt-hero__sub, .pt-hero__title{ color: inherit; }
.pt-hero__sub{ font-size: calc(var(--pt-font-size-base) * 1.15); margin:0 0 1.25rem; opacity:.95; }
.pt-hero__cta{ display:inline-block; background:var(--pt-btn-bg); color:var(--pt-btn-text); padding:var(--pt-btn-pad-y) var(--pt-btn-pad-x); border-radius:var(--pt-radius-btn); font-weight:var(--pt-btn-weight); text-transform:var(--pt-btn-uppercase); text-decoration:none; }
.pt-grid{ display:grid; gap: calc(var(--pt-space-unit) * 2); }
.pt-grid--2{ grid-template-columns: repeat(2,1fr); }
.pt-grid--3{ grid-template-columns: repeat(3,1fr); }
.pt-grid--4{ grid-template-columns: repeat(4,1fr); }
.pt-grid--6{ grid-template-columns: repeat(6,1fr); }
@media (max-width: 991px){ .pt-grid--4,.pt-grid--6{ grid-template-columns: repeat(2,1fr); } .pt-grid--3{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 575px){ .pt-grid{ grid-template-columns: 1fr !important; } }
.pt-section__title{ text-align:center; margin-bottom: calc(var(--pt-space-unit) * 3); }
.pt-banner{ position:relative; }
.pt-banner img{ width:100%; height:auto; display:block; border-radius:var(--pt-radius); }
.pt-banner--full img{ border-radius:0; }
/* Optional CTA button overlaid on the banner image. */
.pt-banner__btn{ position:absolute; z-index:2; margin:0; box-shadow:0 3px 14px rgba(0,0,0,.22); }
.pt-banner__btn--top-left{ top:1.25rem; left:1.25rem; }
.pt-banner__btn--top-center{ top:1.25rem; left:50%; transform:translateX(-50%); }
.pt-banner__btn--top-right{ top:1.25rem; right:1.25rem; }
.pt-banner__btn--center-left{ top:50%; left:1.25rem; transform:translateY(-50%); }
.pt-banner__btn--center{ top:50%; left:50%; transform:translate(-50%,-50%); }
.pt-banner__btn--center-right{ top:50%; right:1.25rem; transform:translateY(-50%); }
.pt-banner__btn--bottom-left{ bottom:1.25rem; left:1.25rem; }
.pt-banner__btn--bottom-center{ bottom:1.25rem; left:50%; transform:translateX(-50%); }
.pt-banner__btn--bottom-right{ bottom:1.25rem; right:1.25rem; }
/* Button styles beyond the brand primary (for light/dark imagery). */
.pt-btn-el--light{ background:#ffffff; color:#1b2733; border:var(--pt-border-width) solid #ffffff; }
.pt-btn-el--dark{ background:#111418; color:#ffffff; border:var(--pt-border-width) solid #111418; }
.pt-richtext{ margin:0 auto; }
.pt-cat{ display:block; text-align:center; text-decoration:none; color:var(--pt-color-text); }
.pt-cat img{ width:100%; height:auto; border-radius:var(--pt-radius); }
/* Section header: optional script "eyebrow" + centred divider rule above a title. */
.pt-section__head{ text-align:center; margin-bottom: calc(var(--pt-space-unit) * 3); }
.pt-section__head .pt-section__title{ margin-bottom:0; }
.pt-eyebrow{ margin:0 0 .15rem; font-family: var(--pt-font-accent, var(--pt-font-heading)); font-weight:500; font-size:1.6rem; line-height:1.1; color: var(--pt-color-primary); }
.pt-title-rule{ display:block; width:56px; height:2px; margin:.85rem auto 0; background: var(--pt-color-heading); opacity:.85; }
/* Outline "all products" style button under a product grid. */
.pt-products__cta{ text-align:center; margin-top: calc(var(--pt-space-unit) * 3.5); }
.pt-btn-outline{ display:inline-block; text-decoration:none; cursor:pointer; background:transparent; color:var(--pt-color-heading); border:var(--pt-border-width) solid var(--pt-color-heading); border-radius:var(--pt-radius-btn); padding: var(--pt-btn-pad-y) calc(var(--pt-btn-pad-x) * 1.2); font-weight:var(--pt-btn-weight); text-transform:var(--pt-btn-uppercase); letter-spacing:.04em; font-size:.8rem; transition:background .15s, color .15s; }
.pt-btn-outline:hover{ background:var(--pt-color-heading); color:var(--pt-color-background); }
/* Category mosaic: a large lead tile + a wide + two small tiles (adapts to count). */
.pt-catmosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap: calc(var(--pt-space-unit) * 2); grid-auto-flow:dense; }
.pt-catmosaic .pt-cat{ position:relative; grid-column:span 1; grid-row:span 1; border-radius:var(--pt-radius); overflow:hidden; background:var(--pt-color-surface); }
.pt-catmosaic .pt-cat:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.pt-catmosaic .pt-cat:nth-child(2){ grid-column:span 2; }
.pt-catmosaic .pt-cat img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:0; }
.pt-cat__pill{ position:absolute; left:1rem; bottom:1rem; z-index:1; display:inline-flex; align-items:center; gap:.45rem; background:var(--pt-color-background); color:var(--pt-color-heading); border-radius:999px; padding:.55rem 1.05rem; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 3px 12px rgba(0,0,0,.18); }
.pt-cat__pill svg{ width:.8em; height:.8em; }
/* --- Promo cards --- */
.pt-promo{ position:relative; overflow:hidden; border-radius:var(--pt-radius); background:var(--pt-color-surface); display:flex; }
.pt-promo__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pt-promo__scrim{ position:absolute; inset:0; background:#000; }
.pt-promo__cardlink{ position:absolute; inset:0; z-index:1; }
.pt-promo__content{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; padding:1.5rem; max-width:80%; pointer-events:none; }
.pt-promo__content .pt-btn-el{ pointer-events:auto; }
.pt-promo__h{ margin:0; font-size:1.5rem; line-height:1.15; color:inherit; }
.pt-promo__sub{ margin:0; opacity:.92; color:inherit; }
.pt-promo{ align-items:flex-end; justify-content:flex-start; }
.pt-promo--top-left{ align-items:flex-start; justify-content:flex-start; }
.pt-promo--top-center{ align-items:flex-start; justify-content:center; }
.pt-promo--top-right{ align-items:flex-start; justify-content:flex-end; }
.pt-promo--center-left{ align-items:center; justify-content:flex-start; }
.pt-promo--center{ align-items:center; justify-content:center; }
.pt-promo--center-right{ align-items:center; justify-content:flex-end; }
.pt-promo--bottom-left{ align-items:flex-end; justify-content:flex-start; }
.pt-promo--bottom-center{ align-items:flex-end; justify-content:center; }
.pt-promo--bottom-right{ align-items:flex-end; justify-content:flex-end; }
.pt-promo--top-center .pt-promo__content, .pt-promo--center .pt-promo__content, .pt-promo--bottom-center .pt-promo__content{ align-items:center; text-align:center; }
.pt-promo--top-right .pt-promo__content, .pt-promo--center-right .pt-promo__content, .pt-promo--bottom-right .pt-promo__content{ align-items:flex-end; text-align:right; }
/* Category pill placement on mosaic cards (default is bottom-left above). */
.pt-cat--pill-top-left .pt-cat__pill{ top:1rem; bottom:auto; left:1rem; right:auto; }
.pt-cat--pill-top-right .pt-cat__pill{ top:1rem; bottom:auto; right:1rem; left:auto; }
.pt-cat--pill-bottom-right .pt-cat__pill{ right:1rem; left:auto; }
.pt-cat--pill-center .pt-cat__pill{ top:50%; bottom:auto; left:50%; right:auto; transform:translate(-50%,-50%); }
@media (max-width:767px){ .pt-catmosaic{ grid-template-columns:1fr; grid-auto-rows:190px; } .pt-catmosaic .pt-cat{ grid-column:1 !important; grid-row:auto !important; } }
/* Footer: builder sections inherit the surrounding footer's text colour (so trust
   columns stay legible on a dark footer instead of forcing the theme heading colour). */
#footer .pt-section__title, #footer .pt-eyebrow, #footer .pt-feature__heading, #footer .pt-feature__text, #footer .pt-linklist__title, #footer .pt-contactinfo, #footer .pt-linklist__list a{ color: inherit; }
/* Link-list + store-information columns (footers). */
.pt-linklist__title{ font-size: calc(var(--pt-font-size-base) * 0.95); font-weight:700; margin:0 0 .85rem; text-transform:uppercase; letter-spacing:.03em; }
.pt-linklist__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.55rem; }
.pt-linklist__list a{ color:inherit; text-decoration:none; opacity:.82; }
.pt-linklist__list a:hover{ opacity:1; text-decoration:underline; }
.pt-contactinfo{ display:flex; flex-direction:column; gap:.45rem; }
.pt-contactinfo p{ margin:0; opacity:.9; }
.pt-contactinfo__email a{ color:var(--pt-color-primary); text-decoration:none; }
.pt-contactinfo__email a:hover{ text-decoration:underline; }
/* Footer column layout when the footer zone is inline: top-aligned columns. */
.pt-zone--inline .pt-section--linklist, .pt-zone--inline .pt-section--contactinfo{ align-self:flex-start; flex:1 1 0; min-width:150px; }
.pt-zone--inline .pt-section--linklist .pt-section__inner, .pt-zone--inline .pt-section--contactinfo .pt-section__inner{ padding:0; }
@media (max-width:767px){ .pt-zone--inline .pt-section--linklist, .pt-zone--inline .pt-section--contactinfo{ flex:1 1 45%; } }
/* Full-width zone background/text band (e.g. a light or dark footer). */
.pt-zoneband{ width:100%; padding: calc(var(--pt-space-unit) * 5) 1rem; }
.pt-zoneband .pt-zone--inline{ padding-left:0; padding-right:0; }
/* Announcement / utility bar (full-width strip above the header). */
.pt-section--annbar{ padding:0; width:100%; }
.pt-annbar{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; max-width:var(--pt-container); margin:0 auto; padding:.55rem 1.25rem; font-size:.85rem; }
.pt-annbar__contact{ display:flex; gap:1.75rem; }
.pt-annbar__item{ color:inherit; text-decoration:none; opacity:.88; }
.pt-annbar__item:hover{ text-decoration:underline; opacity:1; }
.pt-annbar__msg{ grid-column:2; text-align:center; font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:.78rem; }
@media(max-width:767px){ .pt-annbar{ grid-template-columns:1fr; justify-items:center; gap:.25rem; } .pt-annbar__contact{ gap:1.25rem; } .pt-annbar__spacer{ display:none; } }
.pt-popup{ display:none; position:fixed; inset:0; z-index:1090; background:rgba(10,12,16,.55); align-items:center; justify-content:center; padding:1.25rem; }
.pt-popup.is-open{ display:flex; }
.pt-popup__card{ position:relative; display:flex; overflow:hidden; max-width:640px; width:100%; background:var(--pt-color-surface,#fff); color:var(--pt-color-text,#222); border-radius:var(--pt-radius,8px); box-shadow:0 24px 64px rgba(0,0,0,.35); animation:ptPopIn .25s ease; }
@keyframes ptPopIn{ from{ transform:translateY(14px); opacity:0; } to{ transform:none; opacity:1; } }
.pt-popup__img{ width:40%; object-fit:cover; }
.pt-popup__body{ padding:1.75rem; flex:1; }
.pt-popup__title{ margin:0 0 .5rem; font-family:var(--pt-font-heading,inherit); font-size:1.45rem; }
.pt-popup__content{ font-size:.95rem; }
.pt-popup__cta{ margin-top:1rem; display:inline-block; }
.pt-popup__close{ position:absolute; top:.4rem; right:.6rem; border:0; background:none; font-size:1.6rem; line-height:1; cursor:pointer; color:inherit; opacity:.6; }
.pt-popup__close:hover{ opacity:1; }
.pt-popup.is-inline{ display:block; position:static; background:none; padding:0; }
.pt-form{ max-width:640px; }
.pt-form__form{ display:flex; flex-direction:column; gap:.9rem; }
.pt-form__row label{ display:block; font-weight:600; margin-bottom:.3rem; font-size:.9rem; }
.pt-form__row input[type=text], .pt-form__row input[type=email], .pt-form__row input[type=tel], .pt-form__row textarea, .pt-form__row select{ width:100%; box-sizing:border-box; padding:.6rem .8rem; border:1px solid var(--pt-color-border,#d8dde3); border-radius:var(--pt-radius,6px); background:var(--pt-color-surface,#fff); color:inherit; font:inherit; }
.pt-form__check{ display:flex; align-items:center; gap:.55rem; font-weight:500; }
.pt-form__submit{ align-self:flex-start; }
.pt-form__ok{ background:#e8f7ee; color:#14683a; padding:.9rem 1.1rem; border-radius:var(--pt-radius,6px); font-weight:600; }
.pt-form__err{ background:#fdecea; color:#a03024; padding:.7rem 1rem; border-radius:var(--pt-radius,6px); }
.pt-sticky{ position:sticky; top:0; z-index:1030; background:var(--pt-color-surface,#fff); transition:box-shadow .2s ease, padding .2s ease; }
.pt-sticky--shadow.is-scrolled{ box-shadow:0 4px 18px rgba(0,0,0,.12); }
.pt-sticky--shrink{ transition:box-shadow .2s ease; }
.pt-sticky--shrink.is-scrolled{ box-shadow:0 4px 18px rgba(0,0,0,.12); }
.pt-sticky--shrink.is-scrolled .pt-zone--inline{ padding-top:.15rem; padding-bottom:.15rem; }
.pt-sticky--shrink.is-scrolled img.logo, .pt-sticky--shrink.is-scrolled .pt-logo img{ max-height:2.2rem; transition:max-height .2s ease; }
.pt-popup.is-inline .pt-popup__card{ margin:1rem auto; box-shadow:0 6px 24px rgba(0,0,0,.18); }
@media(max-width:640px){ .pt-popup__img{ display:none; } }
/* Free-shipping progress bar + payment badges. */
.pt-shipbar{ max-width:640px; margin:0 auto; text-align:center; }
.pt-shipbar__msg{ margin:0 0 .6rem; font-weight:600; }
.pt-shipbar__track{ height:10px; border-radius:999px; background:var(--pt-color-surface); border:var(--pt-border-width) solid var(--pt-color-border); overflow:hidden; }
.pt-shipbar__fill{ height:100%; border-radius:999px; background:var(--pt-color-primary); transition:width .4s ease; }
.pt-shipbar--done .pt-shipbar__fill{ background:var(--pt-color-success, #2e7d32); }
.pt-paybadges{ list-style:none; margin:0; padding:0; display:inline-flex; flex-wrap:wrap; gap:.6rem; }
.pt-paybadge{ display:inline-flex; align-items:center; gap:.45rem; padding:.4rem .8rem; border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); background:var(--pt-color-surface); font-size:.82rem; font-weight:600; }
.pt-paybadge svg{ width:1.15em; height:1.15em; opacity:.7; }
/* Live reviews + store locator cards. */
.pt-review__stars{ display:block; color:#f5a623; letter-spacing:.12em; font-size:1rem; margin-bottom:.4rem; }
.pt-review__title{ font-weight:700; margin:0 0 .35rem; }
.pt-review__product{ display:inline-block; margin-top:.35rem; font-size:.82rem; color:var(--pt-color-primary); text-decoration:none; }
.pt-review__product:hover{ text-decoration:underline; }
.pt-store{ border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); padding:calc(var(--pt-space-unit) * 2.5); background:var(--pt-color-surface); }
.pt-store__name{ margin:0 0 .5rem; font-size:1.05rem; }
.pt-store__addr, .pt-store__phone{ margin:0 0 .35rem; opacity:.85; }
.pt-store__phone a{ color:inherit; text-decoration:none; }
.pt-store__directions{ display:inline-block; margin-top:.5rem; color:var(--pt-color-primary); text-decoration:none; font-weight:600; }
.pt-store__directions:hover{ text-decoration:underline; }
.pt-stores__map{ margin-bottom:calc(var(--pt-space-unit) * 3); }
.pt-stores__map iframe{ width:100%; height:320px; border:0; border-radius:var(--pt-radius); }
/* Language / currency switchers (header utility blocks). */
.pt-switcher{ display:inline-flex; align-items:center; gap:.15rem; font-size:.82rem; }
.pt-switcher__item{ color:inherit; text-decoration:none; opacity:.6; padding:.25rem .45rem; border-radius:var(--pt-radius); }
.pt-switcher__item:hover{ opacity:1; background:var(--pt-color-surface); }
.pt-switcher__item.is-current{ opacity:1; font-weight:700; }
.pt-switcher__item + .pt-switcher__item{ border-left:var(--pt-border-width) solid var(--pt-color-border); border-radius:0 var(--pt-radius) var(--pt-radius) 0; }
/* Product-card commerce: sale badge, struck-through old price, add-to-cart. */
.pt-card__media{ position:relative; }
.pt-card__badge{ position:absolute; top:10px; left:10px; z-index:1; background:var(--pt-color-accent, var(--pt-color-primary)); color:#fff; font-size:.72rem; font-weight:700; line-height:1; padding:.3rem .55rem; border-radius:999px; }
.pt-card__price--old{ text-decoration:line-through; opacity:.55; font-weight:400; }
.pt-card__addwrap{ margin-top:.6rem; }
.pt-card__add{ width:100%; cursor:pointer; }
/* Product spotlight: one hero product, image beside live price + description + CTA. */
.pt-spotlight{ display:grid; grid-template-columns:1.05fr 1fr; gap:calc(var(--pt-space-unit) * 5); align-items:center; }
.pt-spotlight--right .pt-spotlight__media{ order:2; }
.pt-spotlight__media img{ width:100%; height:auto; display:block; border-radius:var(--pt-radius); background:var(--pt-color-surface); }
.pt-spotlight__title{ margin:.15rem 0 .35rem; }
.pt-spotlight__price{ display:flex; align-items:baseline; gap:.6rem; font-size:1.45rem; font-weight:700; margin:.35rem 0 .9rem; }
.pt-spotlight__price--old{ text-decoration:line-through; opacity:.55; font-weight:400; font-size:1.05rem; }
.pt-spotlight__pct{ position:static; align-self:center; }
.pt-spotlight__desc{ opacity:.9; margin-bottom:1.25rem; }
.pt-spotlight__ctas{ display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; }
.pt-spotlight__ctas button{ cursor:pointer; }
.pt-spotlight__more{ color:var(--pt-color-primary); text-decoration:none; }
.pt-spotlight__more:hover{ text-decoration:underline; }
@media(max-width:767px){ .pt-spotlight{ grid-template-columns:1fr; } .pt-spotlight--right .pt-spotlight__media{ order:0; } }
.pt-divider{ border:0; border-top:var(--pt-border-width) solid var(--pt-color-border); }
.pt-brand{ display:flex; align-items:center; justify-content:center; padding:calc(var(--pt-space-unit) * 2); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); background:var(--pt-color-surface); min-height:90px; text-decoration:none; color:var(--pt-color-text); transition:box-shadow .15s, transform .15s; }
.pt-brand:hover{ box-shadow:0 6px 18px rgba(0,0,0,.08); transform:translateY(-2px); }
.pt-brand__logo{ max-width:100%; max-height:60px; width:auto; height:auto; object-fit:contain; }
.pt-brand__name{ font-weight:600; text-align:center; }
.pt-cmslinks{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; max-width:46rem; }
.pt-cmslinks a{ color:var(--pt-color-primary); text-decoration:none; }
.pt-cmslinks a:hover{ text-decoration:underline; }
.pt-features{ width:100%; border-collapse:collapse; }
.pt-features th, .pt-features td{ text-align:left; padding:.6rem .8rem; border-bottom:var(--pt-border-width) solid var(--pt-color-border); vertical-align:top; }
.pt-features th{ width:38%; color:var(--pt-color-heading); font-weight:600; }
.pt-features td{ color:var(--pt-color-text); }
/* Inline (single-row) zone layout — e.g. header logo + search + account/cart */
.pt-zone--inline{ display:flex; flex-wrap:wrap; align-items:center; max-width:var(--pt-container); margin:0 auto; padding:0 1rem; }
.pt-zone--inline .pt-section{ padding-top:0; padding-bottom:0; }
.pt-zone--inline .pt-section__inner{ max-width:none; margin:0; padding-left:0; padding-right:0; }
.pt-zone--inline .pt-section__title{ text-align:left; margin:0; }
.pt-zone--inline .pt-grow{ flex:1 1 auto; }
.pt-zone--inline > section, .pt-zone--inline > .pt-secwrap{ min-width:0; }
@media (max-width:575px){ .pt-zone--inline{ justify-content:center !important; } }
.pt-section__subtitle{ text-align:center; color:var(--pt-color-secondary); max-width:46rem; margin:-1rem auto calc(var(--pt-space-unit) * 3); }

/* --- Image with text --- */
.pt-iwt{ display:grid; grid-template-columns:1fr 1fr; gap:calc(var(--pt-space-unit) * 4); align-items:center; }
.pt-iwt--vtop{ align-items:start; }
.pt-iwt--vbottom{ align-items:end; }
.pt-iwt--right .pt-iwt__media{ order:2; }
.pt-iwt__media img{ width:100%; height:auto; display:block; border-radius:var(--pt-radius); }
.pt-iwt__eyebrow{ display:inline-block; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; font-weight:600; color:var(--pt-color-primary); margin-bottom:.5rem; }
.pt-iwt__heading{ margin:0 0 .75rem; }
.pt-iwt__text{ color:var(--pt-color-text); margin-bottom:1.25rem; }
.pt-iwt__text :last-child{ margin-bottom:0; }
@media (max-width: 767.98px){ .pt-iwt{ grid-template-columns:1fr; } .pt-iwt--right .pt-iwt__media{ order:0; } }

/* --- Pricing table --- */
.pt-price{ display:flex; flex-direction:column; position:relative; background:var(--pt-color-surface); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); padding:calc(var(--pt-space-unit) * 3); }
.pt-price--featured{ border-color:var(--pt-color-primary); border-width:2px; box-shadow:0 12px 30px rgba(0,0,0,.08); }
.pt-price__badge{ position:absolute; top:-.75rem; left:50%; transform:translateX(-50%); background:var(--pt-color-primary); color:#fff; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:.25rem .7rem; border-radius:999px; }
.pt-price__name{ margin:0 0 .5rem; text-align:center; }
.pt-price__amount{ text-align:center; margin-bottom:1.25rem; }
.pt-price__value{ font-size:2.4rem; font-weight:800; color:var(--pt-color-heading); }
.pt-price__period{ color:var(--pt-color-secondary); }
.pt-price__features{ list-style:none; margin:0 0 1.5rem; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.pt-price__features li{ position:relative; padding-left:1.6rem; color:var(--pt-color-text); }
.pt-price__features li::before{ content:"✓"; position:absolute; left:0; color:var(--pt-color-primary); font-weight:700; }
.pt-price__cta{ margin-top:auto; text-align:center; }
@media (max-width: 767.98px){ .pt-vis-desktop{ display:none !important; } }
@media (min-width: 768px){ .pt-vis-mobile{ display:none !important; } }

/* --- Product cards --- */
.pt-card{ display:flex; flex-direction:column; }
.pt-card__link{ display:flex; flex-direction:column; text-decoration:none; color:var(--pt-color-text); }
.pt-card__media{ position:relative; display:block; overflow:hidden; border-radius:var(--pt-radius); }
.pt-card__img{ width:100%; height:auto; display:block; transition:opacity .3s ease, transform .3s ease; }
.pt-card__img--alt{ position:absolute; inset:0; opacity:0; }
.pt-card--hover:hover .pt-card__img{ transform:scale(1.03); }
.pt-card--hover:hover .pt-card__img--alt{ opacity:1; }
.pt-card__name{ margin-top:.6rem; font-weight:600; }
.pt-card__price{ margin-top:.2rem; color:var(--pt-color-primary); font-weight:700; }

/* --- Product carousel --- */
.pt-carousel{ position:relative; }
.pt-carousel__viewport{ overflow:hidden; }
.pt-carousel__track{ display:flex; gap: calc(var(--pt-space-unit) * 2); scroll-snap-type:x mandatory; overflow-x:auto; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.pt-carousel__track::-webkit-scrollbar{ display:none; }
.pt-carousel__slide{ scroll-snap-align:start; flex:0 0 calc((100% - (var(--pt-space-unit) * 2) * 3) / 4); }
.pt-carousel__track--2 .pt-carousel__slide{ flex-basis: calc((100% - (var(--pt-space-unit) * 2)) / 2); }
.pt-carousel__track--3 .pt-carousel__slide{ flex-basis: calc((100% - (var(--pt-space-unit) * 2) * 2) / 3); }
.pt-carousel__track--6 .pt-carousel__slide{ flex-basis: calc((100% - (var(--pt-space-unit) * 2) * 5) / 6); }
.pt-carousel__arrow{ position:absolute; top:38%; transform:translateY(-50%); z-index:2; width:42px; height:42px; border-radius:999px; border:var(--pt-border-width) solid var(--pt-color-border); background:var(--pt-color-surface); color:var(--pt-color-text); font-size:1.5rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.1); transition:opacity .15s; }
.pt-carousel__arrow:hover{ color:var(--pt-color-primary); }
.pt-carousel__arrow[hidden]{ display:none; }
.pt-carousel__arrow--prev{ left:-8px; }
.pt-carousel__arrow--next{ right:-8px; }
.pt-carousel__dots{ display:flex; justify-content:center; gap:.5rem; margin-top:calc(var(--pt-space-unit) * 2); }
.pt-carousel__dot{ width:9px; height:9px; border-radius:999px; border:0; padding:0; background:var(--pt-color-border); cursor:pointer; }
.pt-carousel__dot.is-active{ background:var(--pt-color-primary); }
@media (max-width: 991px){ .pt-carousel__slide,.pt-carousel__track--3 .pt-carousel__slide,.pt-carousel__track--6 .pt-carousel__slide{ flex-basis: calc((100% - (var(--pt-space-unit) * 2)) / 2); } }
@media (max-width: 575px){ .pt-carousel__slide,.pt-carousel__track--2 .pt-carousel__slide,.pt-carousel__track--3 .pt-carousel__slide,.pt-carousel__track--6 .pt-carousel__slide{ flex-basis: 80%; } }

/* --- Newsletter --- */
.pt-newsletter__heading{ margin:0 0 .4rem; }
.pt-newsletter__text{ margin:0 0 calc(var(--pt-space-unit) * 1.5); color:var(--pt-color-secondary, var(--pt-color-text)); }
.pt-newsletter__form{ display:flex; gap:calc(var(--pt-space-unit)); max-width:520px; }
.pt-newsletter--center .pt-newsletter__form{ margin-left:auto; margin-right:auto; }
.pt-newsletter--right .pt-newsletter__form{ margin-left:auto; }
.pt-newsletter__form--stacked{ flex-direction:column; }
.pt-newsletter__input{ flex:1 1 auto; min-width:0; padding:calc(var(--pt-space-unit) * 1.25) calc(var(--pt-space-unit) * 1.5); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius-button, var(--pt-radius)); background:var(--pt-color-surface); color:var(--pt-color-text); font:inherit; }
.pt-newsletter__input:focus-visible{ outline:3px solid var(--pt-color-accent); outline-offset:1px; }
.pt-newsletter__btn{ white-space:nowrap; }
.pt-newsletter__form--inline .pt-newsletter__btn{ flex:0 0 auto; }
@media (max-width: 575px){ .pt-newsletter__form--inline{ flex-direction:column; } }

/* --- Banner slider --- */
.pt-slider .pt-carousel__track{ gap:0; }
.pt-slider__slide{ flex:0 0 100%; background-size:cover; background-position:center; background-color:var(--pt-color-primary); display:flex; align-items:center; position:relative; border-radius:var(--pt-radius); overflow:hidden; }
.pt-slider__slide--overlay::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.38); z-index:1; }
/* Free (drag-anywhere) placement: CSS vars give the element's centre; the
   -t/-m variants (set by dragging in tablet/mobile preview) override per device. */
.pt-freepos{ left:var(--pt-x); top:var(--pt-y); }
@media (max-width:1023px){ .pt-freepos{ left:var(--pt-x-t,var(--pt-x)); top:var(--pt-y-t,var(--pt-y)); } }
@media (max-width:767px){ .pt-freepos{ left:var(--pt-x-m,var(--pt-x-t,var(--pt-x))); top:var(--pt-y-m,var(--pt-y-t,var(--pt-y))); } }

.pt-banner__btn--custom{ right:auto; bottom:auto; transform:translate(-50%,-50%); }
.pt-promo__content--custom{ position:absolute; right:auto; bottom:auto; transform:translate(-50%,-50%); max-width:92%; }
.pt-cat__pill--custom{ right:auto !important; bottom:auto !important; transform:translate(-50%,-50%); }
.pt-hero__content--free{ position:absolute; right:auto; bottom:auto; width:auto; max-width:92%; transform:translate(-50%,-50%); z-index:2; }
.pt-hero__content--free .pt-section__inner{ padding:0; }
.pt-slider__content--free{ position:absolute; right:auto; bottom:auto; margin:0; transform:translate(-50%,-50%); z-index:2; }
/* Image fit: full — the hero takes the image's own height (no crop). */
.pt-hero--fullimg{ display:block; }
.pt-hero__img{ display:block; width:100%; height:auto; }
.pt-hero--fullimg .pt-hero__content{ position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); z-index:1; }
/* Image fit: full — the slide takes the image's own height (no crop). */
.pt-slider__slide--full{ display:block; }
.pt-slider__img{ display:block; width:100%; height:auto; }
.pt-slider__content--onimg{ position:absolute; top:50%; transform:translateY(-50%); left:0; right:0; z-index:2; }
.pt-slider__content--onimg.pt-slider__content--left{ right:auto; }
.pt-slider__content--onimg.pt-slider__content--right{ left:auto; }
.pt-slider__content{ position:relative; z-index:1; max-width:min(640px,82%); padding:calc(var(--pt-space-unit) * 3); color:#fff; }
.pt-slider__content--center{ margin:0 auto; text-align:center; }
.pt-slider__content--right{ margin-left:auto; text-align:right; }
.pt-slider__heading{ font-size:clamp(1.8rem, 4vw, 3rem); line-height:1.1; margin:0 0 .5rem; color:#fff; }
.pt-slider__sub{ font-size:1.1rem; margin:0 0 1.2rem; color:#fff; opacity:.95; }
@media (max-width: 575px){ .pt-slider__slide{ flex:0 0 100%; } .pt-slider__content{ max-width:90%; } }

/* --- Blog posts --- */
.pt-post{ display:flex; flex-direction:column; background:var(--pt-color-surface); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); overflow:hidden; }
.pt-post__media{ display:block; overflow:hidden; }
.pt-post__img{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:transform .3s ease; }
.pt-post:hover .pt-post__img{ transform:scale(1.04); }
.pt-post__body{ padding:calc(var(--pt-space-unit) * 1.75); display:flex; flex-direction:column; gap:.4rem; }
.pt-post__date{ font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:var(--pt-color-secondary, var(--pt-color-text)); }
.pt-post__title{ margin:0; font-size:1.15rem; line-height:1.3; }
.pt-post__title a{ color:var(--pt-color-heading, var(--pt-color-text)); text-decoration:none; }
.pt-post__title a:hover{ color:var(--pt-color-primary); }
.pt-post__excerpt{ margin:0; color:var(--pt-color-text); }
.pt-post__more{ margin-top:.3rem; font-weight:600; color:var(--pt-color-primary); text-decoration:none; }

/* --- Custom navigation menu --- */
.pt-nav{ position:relative; }
.pt-nav--sticky{ position:sticky; top:0; z-index:50; background:var(--pt-color-surface); }
.pt-nav__list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:calc(var(--pt-space-unit) * 2.5); align-items:center; }
.pt-nav--center .pt-nav__list{ justify-content:center; }
.pt-nav--end .pt-nav__list{ justify-content:flex-end; }
.pt-nav__item{ position:relative; }
.pt-nav__link{ display:inline-block; padding:.5rem 0; color:var(--pt-color-text); text-decoration:none; font-weight:600; cursor:pointer; background:none; border:0; font:inherit; }
.pt-nav__link:hover{ color:var(--pt-color-primary); }
.pt-nav__link--label{ cursor:default; opacity:.65; }
.pt-nav__sub{ list-style:none; margin:0; padding:.5rem 0; position:absolute; left:0; top:100%; min-width:200px; background:var(--pt-color-surface); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); box-shadow:0 8px 24px rgba(0,0,0,.12); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease, transform .15s ease; z-index:60; }
.pt-nav--hover .pt-nav__item--has:hover > .pt-nav__sub,
.pt-nav__item--has.is-open > .pt-nav__sub,
.pt-nav--hover .pt-nav__item--has:hover > .pt-nav__mega,
.pt-nav__item--has.is-open > .pt-nav__mega{ opacity:1; visibility:visible; transform:translateY(0); }
.pt-nav__mega{ position:absolute; left:0; top:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:calc(var(--pt-space-unit) * 2.5); padding:calc(var(--pt-space-unit) * 2.5); min-width:540px; background:var(--pt-color-surface); border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); box-shadow:0 8px 24px rgba(0,0,0,.12); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease, transform .15s ease; z-index:60; }
.pt-nav__mega--2{ grid-template-columns:repeat(2,1fr); min-width:400px; }
.pt-nav__mega--4{ grid-template-columns:repeat(4,1fr); min-width:700px; }
.pt-nav__col{ display:flex; flex-direction:column; gap:.3rem; }
.pt-nav__colhead{ font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--pt-color-secondary, var(--pt-color-text)); margin-bottom:.2rem; }
.pt-nav__mega .pt-nav__sublink{ padding:.25rem 0; }
.pt-nav__promo{ position:relative; display:flex; align-items:flex-end; min-height:150px; border-radius:var(--pt-radius); background-size:cover; background-position:center; background-color:var(--pt-color-primary); text-decoration:none; overflow:hidden; }
.pt-nav__promocap{ background:rgba(0,0,0,.45); color:#fff; padding:.45rem .7rem; width:100%; font-size:.85rem; }
/* Featured products inside a mega panel. */
.pt-nav__products{ grid-column:1 / -1; display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:calc(var(--pt-space-unit) * 1.5); }
.pt-nav__pcard{ display:flex; flex-direction:column; gap:.25rem; text-decoration:none; color:var(--pt-color-text); }
.pt-nav__pimg{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--pt-radius); background:var(--pt-color-background); }
.pt-nav__pname{ font-size:.82rem; line-height:1.25; }
.pt-nav__pprice{ font-size:.82rem; font-weight:700; color:var(--pt-color-primary); }
.pt-nav__pcard:hover .pt-nav__pname{ color:var(--pt-color-primary); }
.pt-nav__item--html{ display:inline-flex; align-items:center; }
/* Video / map embed inside a mega panel. */
.pt-nav__embed{ grid-column:1 / -1; position:relative; width:100%; aspect-ratio:16/9; border-radius:var(--pt-radius); overflow:hidden; background:var(--pt-color-background); }
.pt-nav__embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
/* Close button + backdrop are only used by the drawer / full mobile modes. */
.pt-nav__close{ display:none; position:absolute; top:1rem; right:1rem; background:none; border:0; font-size:2rem; line-height:1; cursor:pointer; color:var(--pt-color-text); z-index:1002; }
.pt-nav__backdrop{ display:none; }
/* Vertical orientation: stack items; submenus open to the side. */
.pt-nav--vertical .pt-nav__list{ flex-direction:column; align-items:stretch; gap:.2rem; }
.pt-nav--vertical .pt-nav__item{ width:100%; }
.pt-nav--vertical .pt-nav__sub, .pt-nav--vertical .pt-nav__mega{ left:100%; top:0; }
/* Submenu animation variants (default = slide via translateY). */
.pt-nav--anim-none .pt-nav__sub, .pt-nav--anim-none .pt-nav__mega{ transition:none; transform:none; }
.pt-nav--anim-fade .pt-nav__sub, .pt-nav--anim-fade .pt-nav__mega{ transform:none; }
/* Menu skins (top-level links) — all tint from the theme tokens. */
.pt-nav--skin-underline .pt-nav__link{ position:relative; }
.pt-nav--skin-underline .pt-nav__link::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--pt-color-primary); transition:width .2s ease; }
.pt-nav--skin-underline .pt-nav__link:hover::after{ width:100%; }
.pt-nav--skin-pill .pt-nav__link{ padding:.4rem .85rem; border-radius:999px; }
.pt-nav--skin-pill .pt-nav__link:hover{ background:rgba(0,0,0,.06); color:var(--pt-color-primary); }
.pt-nav--skin-solid .pt-nav__link{ padding:.4rem .85rem; border-radius:var(--pt-radius-button, var(--pt-radius)); }
.pt-nav--skin-solid .pt-nav__link:hover{ background:var(--pt-color-primary); color:#fff; }
.pt-nav--skin-bordered .pt-nav__link{ padding:.4rem .85rem; border:var(--pt-border-width) solid var(--pt-color-border); border-radius:var(--pt-radius); }
.pt-nav--skin-bordered .pt-nav__link:hover{ border-color:var(--pt-color-primary); color:var(--pt-color-primary); }
.pt-nav--skin-uppercase .pt-nav__link{ text-transform:uppercase; letter-spacing:.08em; font-size:.82rem; }
.pt-nav--skin-accent .pt-nav__link{ border-bottom:3px solid transparent; padding-bottom:.35rem; }
.pt-nav--skin-accent .pt-nav__link:hover{ border-bottom-color:var(--pt-color-accent, var(--pt-color-primary)); color:var(--pt-color-primary); }
.pt-nav--skin-separated .pt-nav__item + .pt-nav__item{ border-left:var(--pt-border-width) solid var(--pt-color-border); padding-left:calc(var(--pt-space-unit) * 2.5); }
.pt-nav--skin-ghost .pt-nav__list{ background:var(--pt-color-surface); padding:.4rem .8rem; border-radius:var(--pt-radius); }
.pt-nav--skin-ghost .pt-nav__link{ padding:.35rem .7rem; border-radius:var(--pt-radius); }
.pt-nav--skin-ghost .pt-nav__link:hover{ background:rgba(0,0,0,.05); }
.pt-nav--skin-large .pt-nav__link{ font-size:1.05rem; padding:.7rem .2rem; }
.pt-nav__sublink{ display:block; padding:.45rem 1rem; color:var(--pt-color-text); text-decoration:none; white-space:nowrap; }
.pt-nav__sublink:hover{ background:var(--pt-color-background); color:var(--pt-color-primary); }
.pt-nav__sublink--label{ opacity:.65; }
.pt-nav__toggle{ display:none; background:none; border:0; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--pt-color-text); }
@media (max-width: 767.98px){
  .pt-nav__toggle{ display:block; }
  .pt-nav__list{ display:none; flex-direction:column; align-items:stretch; gap:0; width:100%; }
  .pt-nav.is-open .pt-nav__list{ display:flex; }
  .pt-nav__sub{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding-left:1rem; min-width:0; }
  .pt-nav__mega{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; grid-template-columns:1fr; min-width:0; padding:0 0 0 1rem; }
  .pt-nav__products{ grid-template-columns:repeat(3,1fr); }
  /* Drawer (slide-in panel) and Full (overlay) modes share an off-canvas list. */
  .pt-nav--m-drawer .pt-nav__list, .pt-nav--m-full .pt-nav__list{
    display:flex; position:fixed; top:0; z-index:1001; height:100%; overflow-y:auto;
    background:var(--pt-color-surface); padding:3.25rem 1.25rem 1.25rem;
    transition:transform .25s ease; -webkit-overflow-scrolling:touch;
  }
  .pt-nav--m-drawer .pt-nav__list{ left:0; width:min(82vw,320px); transform:translateX(-105%); box-shadow:0 0 40px rgba(0,0,0,.25); }
  .pt-nav--m-full .pt-nav__list{ left:0; width:100%; transform:translateX(-105%); }
  .pt-nav--m-drawer.is-open .pt-nav__list, .pt-nav--m-full.is-open .pt-nav__list{ transform:translateX(0); }
  .pt-nav--m-drawer.is-open .pt-nav__close, .pt-nav--m-full.is-open .pt-nav__close{ display:block; }
  .pt-nav--m-drawer.is-open .pt-nav__backdrop{ display:block; position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.45); }
}

/* --- Lookbook / shop the look --- */
.pt-section--lookbook{ position:relative; z-index:10; }
/* An OPEN card may extend into the next section (which stacks equal-or-later):
   lift the section that owns the open card above its siblings. */
.pt-section--lookbook:has(.pt-look__spot.is-open){ z-index:60; }
.pt-look__spot.is-open{ z-index:50; }
.pt-look{ position:relative; display:inline-block; max-width:100%; line-height:0; }
.pt-look__img{ max-width:100%; height:auto; border-radius:var(--pt-radius-base); }
.pt-look__spot{ position:absolute; transform:translate(-50%,-50%); line-height:1.4; }
.pt-look__dot{ width:28px; height:28px; border-radius:50%; border:0; cursor:pointer; background:rgba(255,255,255,.92); box-shadow:0 1px 6px rgba(0,0,0,.35); padding:0; display:grid; place-items:center; }
.pt-look__dot span{ width:10px; height:10px; border-radius:50%; background:var(--pt-color-primary); display:block; transition:transform .15s; }
.pt-look__dot::after{ content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(255,255,255,.75); animation:ptLookPulse 2.2s infinite; }
@keyframes ptLookPulse{ 0%{ transform:scale(.8); opacity:.9; } 70%{ transform:scale(1.25); opacity:0; } 100%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ .pt-look__dot::after{ animation:none; } }
.pt-look__spot.is-open .pt-look__dot span{ transform:rotate(45deg) scale(1.25); }
.pt-look__card{ display:none; position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%); width:230px; background:var(--pt-color-surface); color:var(--pt-color-text); border:1px solid var(--pt-color-border); border-radius:var(--pt-radius-base); box-shadow:0 10px 30px rgba(0,0,0,.22); z-index:40; overflow:hidden; text-align:left; }
.pt-look__spot.is-open .pt-look__card{ display:block; }
.pt-look__spot--left .pt-look__card{ left:auto; right:0; transform:none; }
.pt-look__spot--up .pt-look__card{ top:auto; bottom:calc(100% + 10px); }
.pt-look__spot--right .pt-look__card{ left:0; right:auto; transform:none; }
.pt-look__cardimg{ width:100%; height:130px; object-fit:contain; background:#fff; display:block; }
.pt-look__cardbody{ padding:10px 12px 12px; }
.pt-look__cardname{ display:block; font-weight:600; color:var(--pt-color-heading); text-decoration:none; margin-bottom:4px; }
.pt-look__cardprice{ margin-bottom:8px; }
.pt-look__cardprice del{ color:var(--pt-color-secondary); margin-right:6px; }
/* Buttons living inside constrained cards must never outgrow them, whatever
   the theme's button tokens are (audited v3.17: lookbook was the only live
   offender, this is insurance for extreme token sets). */
.pt-card__add,.pt-shopvid__add,.pt-price__cta,.pt-promo__btn{ max-width:100%; box-sizing:border-box; }
/* The card is 230px with overflow:hidden — the theme's full-size button
   padding/font overflows and gets clipped, so size it to the mini card. */
.pt-look__card .pt-look__add{ width:100%; box-sizing:border-box; text-align:center; padding:9px 10px; font-size:13px; }
.pt-look__dot:focus-visible{ outline:3px solid var(--pt-color-accent); outline-offset:2px; }

/* --- Shoppable video --- */
.pt-shopvid{ display:flex; gap:20px; align-items:flex-start; }
.pt-shopvid--left{ flex-direction:row-reverse; }
.pt-shopvid--below{ flex-direction:column; }
.pt-shopvid__video{ flex:1 1 62%; position:relative; aspect-ratio:16/9; min-width:0; }
.pt-shopvid__video iframe, .pt-shopvid__video video{ position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:var(--pt-radius-base); }
.pt-shopvid__rail{ flex:1 1 32%; min-width:220px; max-height:480px; overflow-y:auto; }
.pt-shopvid--below .pt-shopvid__rail{ display:flex; gap:12px; max-height:none; overflow-x:auto; width:100%; }
.pt-shopvid__railhead{ font-size:.95rem; margin:0 0 8px; color:var(--pt-color-heading); }
.pt-shopvid__item{ display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--pt-color-border); }
.pt-shopvid--below .pt-shopvid__item{ border:1px solid var(--pt-color-border); border-radius:var(--pt-radius-base); padding:8px 10px; flex:0 0 240px; }
.pt-shopvid__thumb{ width:56px; height:56px; object-fit:cover; border-radius:6px; }
.pt-shopvid__meta{ flex:1; min-width:0; }
.pt-shopvid__name{ display:block; font-weight:600; color:var(--pt-color-heading); text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-shopvid__price del{ color:var(--pt-color-secondary); margin-right:5px; }
.pt-shopvid__add{ width:34px; height:34px; padding:0; border-radius:50%; font-size:1.1rem; line-height:1; flex:0 0 auto; }
@media (max-width: 767.98px){ .pt-shopvid{ flex-direction:column; } .pt-shopvid__rail{ width:100%; } }

/* --- Before/after slider --- */
.pt-ba{ --pt-ba:50%; position:relative; margin:0 auto; line-height:0; overflow:hidden; border-radius:var(--pt-radius-base); }
.pt-ba__img{ width:100%; height:auto; display:block; }
.pt-ba__img--after{ position:absolute; inset:0; height:100%; object-fit:cover; clip-path:inset(0 0 0 var(--pt-ba)); }
.pt-ba__divider{ position:absolute; top:0; bottom:0; left:var(--pt-ba); width:2px; background:#fff; box-shadow:0 0 8px rgba(0,0,0,.4); }
.pt-ba__handle{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:34px; height:34px; border-radius:50%; background:#fff; color:#333; display:grid; place-items:center; font-size:15px; line-height:1; box-shadow:0 1px 6px rgba(0,0,0,.35); }
.pt-ba__label{ position:absolute; top:10px; background:rgba(17,17,17,.72); color:#fff; font:600 12px/1.6 var(--pt-font-base); padding:1px 9px; border-radius:12px; }
.pt-ba__label--before{ left:10px; }
.pt-ba__label--after{ right:10px; }
.pt-ba__range{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0; }
.pt-ba__range:focus-visible ~ .pt-ba__divider, .pt-ba:has(.pt-ba__range:focus-visible) .pt-ba__divider{ outline:3px solid var(--pt-color-accent); }

/* --- Accessibility --- */
.pt-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.pt-tabs__tab:focus-visible, .pt-carousel__track:focus-visible, .pt-carousel__dot:focus-visible, .pt-popup__close:focus-visible, .pt-scheme-toggle:focus-visible{
  outline: 3px solid var(--pt-color-accent);
  outline-offset: 2px;
}
.pt-section a:focus-visible, .pt-hero__cta:focus-visible, .pt-card__link:focus-visible, .pt-cat:focus-visible, .pt-banner a:focus-visible{
  outline: 3px solid var(--pt-color-accent);
  outline-offset: 2px;
  border-radius: 2px;
}
@media (prefers-reduced-motion: reduce){
  .pt-card__img, .pt-hero__cta, .pt-card__link{ transition: none !important; }
}

/* --- Contrast fixes (Design Review) --- */
figcaption.pt-quote__author span.pt-quote__role{ color: #1d2025 !important; }
button.page-link.next span.d-none.d-xl-flex{ color: #1d2025 !important; }
#product-additional-info-review-button{ color: #1d2025 !important; }
#product-footer-review-button{ color: #1d2025 !important; }
