:root {
  --plp-ink: #2b0934;
  --plp-ink-soft: #694574;
  --plp-blue: #2b0934;
  --plp-blue-deep: #1d0524;
  --plp-blue-pale: #fbf4fd;
  --plp-cream: #ffffff;
  --plp-sand: #fbf7fc;
  --plp-warm: #8a3f9c;
  --plp-line: #e4c8eb;
  --plp-white: #ffffff;
  --plp-lilac: #edcbf6;
  --plp-shadow: 0 18px 50px rgba(43, 9, 52, 0.10);
  --plp-radius-lg: 28px;
  --plp-radius-md: 18px;
  --plp-container: 1460px;
  --plp-font-sans: "DM Sans", "Noto Sans SC", "Noto Sans", sans-serif;
  --plp-font-serif: "DM Serif Display", "Noto Serif SC", "Noto Serif", serif;
}

html { scroll-behavior: smooth; }
/* Main page background remains clean white. */
body.plp-storefront { margin: 0; background: var(--plp-cream); color: var(--plp-ink); font-family: var(--plp-font-sans); }
body.plp-storefront *, body.plp-storefront *::before, body.plp-storefront *::after { box-sizing: border-box; }
body.plp-storefront a { color: inherit; text-decoration: none; }
body.plp-storefront img { max-width: 100%; height: auto; }
body.plp-storefront h1, body.plp-storefront h2, body.plp-storefront h3, body.plp-storefront p { margin-top: 0; }
body.plp-storefront h1, body.plp-storefront h2, body.plp-storefront h3 { font-family: var(--plp-font-serif); letter-spacing: -0.03em; }
.plp-container { width: min(var(--plp-container), calc(100% - 48px)); margin: 0 auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Header — requested lilac surface */
.plp-header { background: var(--plp-lilac); backdrop-filter: blur(12px); border-bottom: 1px solid var(--plp-line); position: relative; top: auto; z-index: 50; }
.plp-header-main { min-height: 86px; display: grid; grid-template-columns: minmax(180px, .85fr) minmax(250px, 1.4fr) auto; align-items: center; gap: 28px; }
.plp-brand { display: inline-flex; align-items: center; gap: 11px; min-width: 0; }
.plp-brand strong { display: block; color: var(--plp-ink); font-size: 16px; letter-spacing: .01em; white-space: nowrap; }
.plp-brand small { display: block; color: var(--plp-ink-soft); font-size: 10px; letter-spacing: .08em; margin-top: 2px; text-transform: uppercase; white-space: nowrap; }
.plp-search { display: flex; align-items: center; border: 1px solid var(--plp-line); background: var(--plp-white); border-radius: 999px; overflow: hidden; min-width: 0; transition: .2s ease; }
.plp-search:focus-within { box-shadow: 0 0 0 4px rgba(43,9,52,.12); border-color: var(--plp-blue); }
.plp-search input { width: 100%; border: 0; background: transparent; padding: 13px 16px; color: var(--plp-ink); outline: 0; font: inherit; font-size: 13px; }
.plp-search button { width: 44px; border: 0; align-self: stretch; background: var(--plp-blue); color: #fff; font-size: 22px; cursor: pointer; }
.plp-header-actions { display: flex; align-items: center; gap: 16px; }
.plp-icon-link { display: grid; justify-items: center; gap: 2px; color: var(--plp-ink-soft); font-size: 10px; line-height: 1; }
.plp-icon-link > span:first-child { font-size: 21px; color: var(--plp-blue-deep); line-height: 1; }
.plp-language-switcher { font-size: 12px; color: var(--plp-ink); position: relative; }
.plp-language-switcher details { position: relative; }
.plp-language-switcher summary { cursor: pointer; list-style: none; border: 1px solid var(--plp-line); padding: 7px 9px; border-radius: 999px; }
.plp-language-switcher summary::-webkit-details-marker { display: none; }
.plp-language-list { position: absolute; top: calc(100% + 7px); right: 0; min-width: 90px; background: #fff; box-shadow: var(--plp-shadow); padding: 7px; border-radius: 12px; display: grid; gap: 2px; }
.plp-language-list a { padding: 7px 8px; border-radius: 8px; }
.plp-language-list a:hover { background: var(--plp-blue-pale); }
/*
 * Keep the Categories dropdown outside the navigation bar's box.
 * `overflow-x: auto` also clips vertical overflow in browsers, so it was
 * cutting off the dropdown even though the dropdown itself had z-index: 80.
 */
.plp-main-nav { position: relative; z-index: 2; overflow: visible; border-top: 1px solid var(--plp-line); background: var(--plp-lilac); }
.plp-nav-scroll { position: relative; overflow: visible; scrollbar-width: none; }
.plp-nav-scroll::-webkit-scrollbar { display: none; }
.plp-nav-menu { display: flex; gap: 28px; align-items: center; min-width: max-content; list-style: none; padding: 0; margin: 0; min-height: 48px; }
.plp-nav-menu > li { margin: 0; }
.plp-nav-item { position: relative; z-index: 3; display: flex; align-items: center; min-height: 48px; }
.plp-nav-menu > li > a, .plp-nav-section-link { display: block; font-size: 13px; color: var(--plp-ink); font-weight: 650; padding: 15px 0; white-space: nowrap; transition: color .2s ease; }
.plp-nav-menu > li > a:hover, .plp-nav-section-link:hover, .plp-nav-item:focus-within .plp-nav-section-link { color: var(--plp-blue); }
.plp-nav-item-control { display: inline-flex; align-items: center; }
.plp-category-menu-toggle { display: grid; place-items: center; width: 27px; height: 31px; padding: 0; margin: 0 0 0 2px; border: 0; background: transparent; color: var(--plp-ink); cursor: pointer; border-radius: 999px; font-size: 15px; line-height: 1; transition: background .2s ease, transform .2s ease, color .2s ease; }
.plp-category-menu-toggle:hover, .plp-category-menu-toggle:focus-visible, .plp-nav-item-has-dropdown.is-open .plp-category-menu-toggle { background: rgba(255,255,255,.62); color: var(--plp-blue); }
.plp-category-menu-toggle span { display: inline-block; transition: transform .2s ease; }
.plp-nav-item-has-dropdown.is-open .plp-category-menu-toggle span, .plp-nav-item-has-dropdown:hover .plp-category-menu-toggle span, .plp-nav-item-has-dropdown:focus-within .plp-category-menu-toggle span { transform: rotate(180deg); }
.plp-category-dropdown { position: absolute; top: calc(100% - 5px); left: -17px; z-index: 80; width: 272px; padding: 12px; border: 1px solid var(--plp-line); border-radius: 16px; background: #fff; box-shadow: var(--plp-shadow); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }
.plp-nav-item-has-dropdown:hover .plp-category-dropdown, .plp-nav-item-has-dropdown:focus-within .plp-category-dropdown, .plp-nav-item-has-dropdown.is-open .plp-category-dropdown { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.plp-category-dropdown-label { display: block; padding: 3px 9px 8px; color: var(--plp-ink-soft); font-size: 10px; font-weight: 800; letter-spacing: .10em; text-transform: uppercase; }
.plp-category-dropdown ul { display: grid; gap: 3px; list-style: none; margin: 0; padding: 0; }
.plp-category-dropdown li { margin: 0; }
.plp-category-dropdown ul a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 9px; border-radius: 10px; color: var(--plp-ink); font-size: 13px; font-weight: 750; line-height: 1.25; transition: background .18s ease, color .18s ease; }
.plp-category-dropdown ul a:hover, .plp-category-dropdown ul a:focus-visible { background: var(--plp-blue-pale); color: var(--plp-blue); }
.plp-category-dropdown ul small { flex: 0 0 auto; color: var(--plp-ink-soft); font-size: 10px; font-weight: 700; }
.plp-category-dropdown-all { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding: 11px 9px 4px; border-top: 1px solid var(--plp-line); color: var(--plp-blue); font-size: 12px; font-weight: 850; }
.plp-category-dropdown-all:hover { color: var(--plp-blue-deep); }

/* Homepage advertising slider */
.plp-hero { overflow: hidden; background: #ffffff; padding: 36px 0 44px; }
.plp-hero-carousel { position: relative; max-width: 1140px; margin: 0 auto; }
.plp-hero-viewport { overflow: hidden; border-radius: 28px; box-shadow: var(--plp-shadow); background: #f7eefa; }
.plp-hero-track { display: flex; width: 100%; transform: translateX(0); transition: transform .58s cubic-bezier(.2,.73,.2,1); }
.plp-hero-slide { flex: 0 0 100%; min-width: 0; background: var(--plp-white); }
.plp-hero-slide-image { display: block; position: relative; overflow: hidden; background: #f7eefa; aspect-ratio: 2.5 / 1; }
.plp-hero-slide-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.plp-hero-slide-image:hover img, .plp-hero-slide-image:focus-visible img { transform: scale(1.025); }
.plp-hero-slide-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(43,9,52,.035), transparent 45%, rgba(43,9,52,.035)); }
.plp-hero-image-hint { position: absolute; z-index: 1; right: 18px; bottom: 17px; border: 1px solid rgba(255,255,255,.82); border-radius: 999px; padding: 8px 11px; background: rgba(43,9,52,.78); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .02em; opacity: 0; transform: translateY(5px); transition: opacity .2s ease, transform .2s ease; }
.plp-hero-slide-image:hover .plp-hero-image-hint, .plp-hero-slide-image:focus-visible .plp-hero-image-hint { opacity: 1; transform: translateY(0); }
.plp-hero-caption { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 26px; padding: 25px 30px 27px; background: var(--plp-white); border-top: 1px solid var(--plp-line); }
.plp-kicker, .plp-eyebrow { color: var(--plp-blue); text-transform: uppercase; font-size: 11px; letter-spacing: .12em; font-weight: 800; }
.plp-hero-caption h1 { font-size: clamp(28px, 3.2vw, 46px); line-height: 1.03; margin: 8px 0 8px; color: var(--plp-ink); }
.plp-hero-caption h1 a:hover { color: var(--plp-blue); }
.plp-hero-caption p { max-width: 710px; margin: 0; color: var(--plp-ink-soft); font-size: 14px; line-height: 1.65; }
.plp-button { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 47px; border-radius: 999px; padding: 11px 20px; font-size: 13px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.plp-button:hover { transform: translateY(-2px); }
.plp-button-primary { background: var(--plp-blue); color: #fff !important; box-shadow: 0 10px 22px rgba(43,9,52,.20); }
.plp-button-primary:hover { background: var(--plp-blue-deep); }
.plp-button-secondary { background: rgba(255,255,255,.6); color: var(--plp-ink) !important; border: 1px solid var(--plp-line); }
.plp-button-secondary:hover { background: #fff; }
.plp-hero-carousel-controls { display: flex; align-items: center; gap: 13px; position: absolute; right: 18px; top: calc((100% - 88px) / 2); z-index: 3; }
.plp-hero-carousel-buttons { display: flex; gap: 7px; }
.plp-hero-arrow { width: 39px; height: 39px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.88); border-radius: 50%; background: rgba(43,9,52,.82); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.plp-hero-arrow:hover, .plp-hero-arrow:focus-visible { transform: scale(1.08); background: var(--plp-blue); }
.plp-hero-dots { display: flex; align-items: center; gap: 7px; background: rgba(255,255,255,.82); border-radius: 999px; padding: 8px 10px; box-shadow: 0 6px 18px rgba(43,9,52,.10); }
.plp-hero-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #cba7d5; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.plp-hero-dot.is-active { background: var(--plp-blue); transform: scale(1.45); }
.plp-hero-dot:focus-visible { outline: 2px solid var(--plp-blue); outline-offset: 3px; }
.plp-hero-count { display: none; }

/* general sections */
.plp-section { padding: 98px 0; }
.plp-section-soft { background: var(--plp-blue-pale); }
.plp-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 36px; }
.plp-section-heading h2, .plp-custom-banner h2, .plp-b2b-panel h2, .plp-inner-hero h1 { font-size: clamp(31px, 3.8vw, 52px); line-height: 1.04; margin: 10px 0 0; max-width: 700px; }
.plp-section-intro { max-width: 350px; color: var(--plp-ink-soft); font-size: 13px; line-height: 1.7; margin: 0; }
.plp-inline-link { font-weight: 800; color: var(--plp-blue) !important; white-space: nowrap; }
.plp-inline-link span { font-size: 18px; vertical-align: -1px; margin-left: 4px; }
.plp-service-strip { border-top: 1px solid var(--plp-line); border-bottom: 1px solid var(--plp-line); background: #fff; }
.plp-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.plp-service-grid > div { min-height: 114px; display: flex; align-items: center; gap: 15px; padding: 20px 30px 20px 0; border-right: 1px solid var(--plp-line); }
.plp-service-grid > div:not(:first-child) { padding-left: 30px; }
.plp-service-grid > div:last-child { border-right: 0; }
.plp-service-grid span { color: var(--plp-warm); font-family: var(--plp-font-serif); font-size: 25px; }
.plp-service-grid p { margin: 0; color: var(--plp-ink-soft); font-size: 12px; line-height: 1.55; }
.plp-service-grid strong { color: var(--plp-ink); display: block; font-size: 13px; margin-bottom: 3px; }

/* Categories */
.plp-category-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 15px; }
.plp-category-card { min-height: 240px; padding: 22px; border-radius: var(--plp-radius-md); display: flex; flex-direction: column; justify-content: flex-end; position: relative; overflow: hidden; box-shadow: 0 10px 20px rgba(43,9,52,.06); transition: transform .25s ease, box-shadow .25s ease; }
.plp-category-card:hover { transform: translateY(-5px); box-shadow: var(--plp-shadow); }
.plp-category-card::after { content: ""; width: 104px; height: 104px; border-radius: 50%; position: absolute; right: -23px; top: -20px; z-index: 1; background: rgba(255,255,255,.32); }
.plp-category-thumbnail { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.plp-category-thumbnail::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.70)); }
.plp-category-thumbnail img { width: 100%; height: 100%; object-fit: cover; opacity: .52; }
.plp-category-number { position: absolute; left: 22px; top: 18px; z-index: 2; color: rgba(43,9,52,.58); font-size: 11px; font-weight: 800; letter-spacing: .09em; }
.plp-category-card-content { position: relative; z-index: 2; display: flex; flex-direction: column; }
.plp-category-card strong { font-size: 20px; line-height: 1.04; }
.plp-category-card small { margin-top: 9px; line-height: 1.5; font-size: 12px; color: rgba(43,9,52,.78); }
.plp-category-care { background: #f7edf9; }
.plp-category-bowl { background: #f3e6f7; }
.plp-category-urn { background: #eadcf0; }
.plp-category-memory { background: #f9ecf7; }
.plp-category-ritual { background: #edcbf6; }
.plp-category-custom { background: #f1e5f5; }

/* Product cards */
.plp-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 19px; }
.plp-product-card { background: #fff; border-radius: var(--plp-radius-md); overflow: hidden; border: 1px solid var(--plp-line); display: flex; flex-direction: column; min-width: 0; }
.plp-product-image { display: grid; place-items: center; min-height: 220px; background: #fbf4fd; overflow: hidden; }
.plp-product-image img { width: 100%; height: 220px; object-fit: cover; }
.plp-product-copy { display: flex; flex-direction: column; align-items: flex-start; min-height: 163px; padding: 18px; }
.plp-product-copy .plp-eyebrow { margin-bottom: 8px; font-size: 9px; }
.plp-product-title { font-size: 16px; font-weight: 800; line-height: 1.35; color: var(--plp-ink); }
.plp-product-price { margin-top: 8px; color: var(--plp-blue-deep); font-weight: 800; font-size: 14px; }
.plp-card-action { margin-top: auto; color: var(--plp-blue); font-size: 12px; font-weight: 800; padding-top: 17px; }
.plp-demo-art { position: relative; color: rgba(43,9,52,.62); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.plp-demo-art::before, .plp-demo-art::after { content: ""; position: absolute; }
.plp-demo-art-1 { background: linear-gradient(135deg, #f3e3f7, #cfaed8); }
.plp-demo-art-1::before { width: 98px; height: 98px; border-radius: 40% 55% 49% 52%; background: #eac6f1; transform: rotate(19deg); }
.plp-demo-art-2 { background: linear-gradient(135deg, #f9edf8, #dcc0e5); }
.plp-demo-art-2::before { width: 120px; height: 58px; background: #ffffff; border-radius: 16% 16% 56% 56%; box-shadow: inset 0 10px 0 #d9bae2; }
.plp-demo-art-3 { background: linear-gradient(135deg, #efe3f3, #c9a7d2); }
.plp-demo-art-3::before { width: 86px; height: 130px; background: #ffffff; border-radius: 38% 38% 24% 24%; box-shadow: inset 0 0 0 11px #e3cde9; }
.plp-demo-art-4 { background: linear-gradient(135deg, #faeaf7, #d8add0); }
.plp-demo-art-4::before { width: 103px; height: 129px; background: #9b4b91; border: 10px solid #f0d2ee; }
.plp-demo-art span { z-index: 1; transform: translateY(66px); }

/* custom and b2b */
.plp-custom-banner { background: var(--plp-ink); color: #fff; overflow: hidden; }
.plp-custom-banner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; min-height: 510px; }
.plp-custom-banner h2 { color: #fff; }
.plp-custom-banner p { color: rgba(255,255,255,.76); line-height: 1.8; font-size: 16px; max-width: 570px; }
.plp-custom-banner .plp-kicker { color: #a8d3d9; }
.plp-custom-illustration { min-height: 430px; position: relative; }
.plp-custom-circle { position: absolute; width: 347px; height: 347px; border-radius: 50%; background: #5b1f68; top: 35px; left: 25px; }
.plp-custom-plaque { position: absolute; width: 178px; height: 211px; border-radius: 38% 38% 18% 18%; background: #fbf5fc; top: 102px; left: 126px; display: grid; place-items: center; color: var(--plp-warm); font-size: 46px; box-shadow: -20px 22px 0 rgba(0,0,0,.11); }
.plp-custom-card { position: absolute; right: 32px; top: 87px; width: 180px; min-height: 122px; padding: 22px; background: #eedaf3; color: var(--plp-ink); transform: rotate(9deg); box-shadow: 0 16px 29px rgba(0,0,0,.22); font-size: 17px; font-weight: 900; letter-spacing: .11em; }
.plp-custom-card span { font-size: 10px; letter-spacing: .03em; font-weight: 600; display: block; margin-top: 18px; }
.plp-check-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin: 26px 0; }
.plp-check-list span { font-size: 12px; line-height: 1.4; color: rgba(255,255,255,.84); }
.plp-check-list span::before { content: "✓"; color: #a8d3d9; font-weight: 900; margin-right: 7px; }
.plp-b2b-panel { background: #fbf2fd; border-radius: var(--plp-radius-lg); padding: 48px; display: grid; grid-template-columns: 1.35fr .65fr; gap: 36px; align-items: center; }
.plp-b2b-panel p { color: var(--plp-ink-soft); line-height: 1.7; margin: 19px 0 0; max-width: 680px; }
.plp-b2b-actions { display: grid; gap: 10px; }

/* reviews */
.plp-reviews-section { background: #fff; }
.plp-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.plp-review-grid figure { margin: 0; padding: 29px; border: 1px solid var(--plp-line); border-radius: var(--plp-radius-md); background: #ffffff; }
.plp-review-grid blockquote { margin: 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: 21px; line-height: 1.44; }
.plp-review-grid figcaption { margin-top: 20px; color: var(--plp-ink-soft); font-size: 11px; }

/* Inner pages */
.plp-inner-hero { padding: 116px 0 90px; background: linear-gradient(120deg, #ffffff, #f9edfc); }
.plp-inner-hero p { font-size: 17px; color: var(--plp-ink-soft); max-width: 700px; line-height: 1.72; margin: 24px 0 29px; }
.plp-wholesale-hero { background: linear-gradient(120deg, #ffffff 0%, #f5e4fa 100%); }
.plp-custom-hero { background: linear-gradient(120deg, #ffffff 0%, #f3e2f8 100%); }
.plp-benefit-grid, .plp-process-grid, .plp-custom-option-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.plp-benefit-grid article, .plp-process-grid article, .plp-custom-option-grid article { border: 1px solid var(--plp-line); background: #fff; border-radius: var(--plp-radius-md); padding: 27px; }
.plp-benefit-grid span, .plp-process-grid span { font-family: var(--plp-font-serif); color: var(--plp-warm); font-size: 28px; }
.plp-benefit-grid h2, .plp-process-grid h3, .plp-custom-option-grid h3 { font-size: 22px; margin: 16px 0 12px; line-height: 1.15; }
.plp-benefit-grid p, .plp-process-grid p, .plp-custom-option-grid p { color: var(--plp-ink-soft); line-height: 1.7; font-size: 14px; margin: 0; }
.plp-two-column { display: grid; grid-template-columns: 1.2fr .8fr; gap: 75px; align-items: center; }
.plp-two-column h2 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.05; margin: 12px 0 22px; }
.plp-detail-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 13px; color: var(--plp-ink-soft); }
.plp-detail-list li { padding-left: 28px; position: relative; line-height: 1.6; }
.plp-detail-list li::before { content: "✓"; color: var(--plp-blue); position: absolute; left: 0; font-weight: 900; }
.plp-note-card { background: var(--plp-ink); color: #fff; padding: 31px; border-radius: var(--plp-radius-md); }
.plp-note-card strong { font-size: 17px; }
.plp-note-card p { color: rgba(255,255,255,.76); line-height: 1.72; margin: 15px 0 0; font-size: 14px; }
.plp-inquiry-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 65px; align-items: start; }
.plp-inquiry-layout h2 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.05; margin: 12px 0 20px; }
.plp-inquiry-layout p { color: var(--plp-ink-soft); line-height: 1.7; }
.plp-inquiry-form { background: #fff; border: 1px solid var(--plp-line); padding: 29px; border-radius: var(--plp-radius-md); display: grid; gap: 16px; box-shadow: 0 15px 28px rgba(43,9,52,.05); }
.plp-inquiry-form label { display: grid; gap: 7px; color: var(--plp-ink); font-size: 12px; font-weight: 800; }
.plp-inquiry-form input, .plp-inquiry-form textarea { width: 100%; background: #ffffff; border: 1px solid var(--plp-line); border-radius: 10px; padding: 12px; font: inherit; color: var(--plp-ink); outline: none; }
.plp-inquiry-form input:focus, .plp-inquiry-form textarea:focus { border-color: var(--plp-blue); box-shadow: 0 0 0 4px rgba(43,9,52,.11); }
.plp-inquiry-form textarea { resize: vertical; }
.plp-inquiry-form .plp-button { border: 0; cursor: pointer; justify-self: start; }
.plp-form-success, .plp-form-error { margin: 0; padding: 11px 13px; border-radius: 10px; font-size: 13px; }
.plp-form-success { color: #1e6436; background: #e7f5eb; }
.plp-form-error { color: #923232; background: #faeaea; }
.plp-option-icon { color: var(--plp-warm); font-size: 31px; }

/* footer */
.plp-footer { background: var(--plp-lilac); color: var(--plp-ink); padding: 62px 0 22px; }
.plp-footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 35px; }
.plp-footer .plp-brand strong { color: var(--plp-ink); }
.plp-footer .plp-brand small { color: var(--plp-ink-soft); }
.plp-footer p { color: rgba(43,9,52,.72); line-height: 1.7; font-size: 13px; max-width: 330px; margin: 20px 0 0; }
.plp-footer h2 { color: var(--plp-ink); font-family: inherit; letter-spacing: 0; text-transform: uppercase; font-size: 11px; margin: 8px 0 17px; }
.plp-footer a:not(.plp-brand) { display: block; font-size: 13px; margin: 10px 0; transition: color .2s ease; }
.plp-footer a:not(.plp-brand):hover { color: var(--plp-blue); }
.plp-footer-note { font-size: 10px !important; }
.plp-footer-bottom { border-top: 1px solid rgba(43,9,52,.16); margin-top: 48px; padding-top: 19px; display: flex; justify-content: space-between; gap: 12px; color: rgba(43,9,52,.62); font-size: 11px; }
.plp-whatsapp-float { position: fixed; right: 20px; bottom: 96px; z-index: 55; border-radius: 999px; background: #25a870; color: #fff !important; padding: 12px 15px; display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; box-shadow: 0 14px 28px rgba(20,82,56,.25); }
.plp-whatsapp-float span:first-child { font-size: 20px; line-height: 1; }

/* Responsive: retain a visible, horizontally scrollable menu on mobile. */
@media (max-width: 1050px) {
  .plp-header-main { grid-template-columns: auto 1fr auto; gap: 16px; }
  .plp-brand small { display: none; }
  .plp-header-actions { gap: 11px; }
  .plp-category-grid { grid-template-columns: repeat(3, 1fr); }
  .plp-product-grid { grid-template-columns: repeat(2, 1fr); }
  .plp-custom-banner-grid { gap: 30px; }
  .plp-footer-grid { grid-template-columns: 1.5fr repeat(2, 1fr); }
}
@media (max-width: 780px) {
  .plp-container { width: min(var(--plp-container), calc(100% - 28px)); }
  .plp-header-main { min-height: auto; grid-template-columns: 1fr auto; padding: 12px 0; gap: 9px; }
  .plp-brand strong { font-size: 14px; max-width: 150px; overflow: hidden; text-overflow: ellipsis; }
  .plp-search { grid-column: 1 / -1; grid-row: 2; }
  .plp-header-actions { gap: 8px; }
  .plp-icon-link { font-size: 0; }
  .plp-icon-link > span:first-child { font-size: 20px; }
  .plp-main-nav { border-top: 0; }
  .plp-nav-scroll { overflow: visible; }
  .plp-nav-menu { gap: 21px; min-width: 0; min-height: 43px; }
  .plp-nav-item { min-height: 43px; }
  .plp-nav-menu > li > a, .plp-nav-section-link { padding: 12px 0; font-size: 12px; }
  .plp-category-menu-toggle { width: 23px; height: 29px; margin-left: 0; font-size: 13px; }
  .plp-category-dropdown { top: calc(100% - 1px); left: -64px; width: min(272px, calc(100vw - 28px)); border-radius: 14px; }
  .plp-hero { padding: 19px 0 26px; }
  .plp-hero-viewport { border-radius: 18px; }
  .plp-hero-slide-image { aspect-ratio: 1.24 / 1; }
  .plp-hero-caption { grid-template-columns: 1fr; gap: 17px; padding: 20px 18px 23px; }
  .plp-hero-caption h1 { font-size: clamp(28px, 8.4vw, 40px); }
  .plp-hero-caption p { font-size: 13px; }
  .plp-hero-caption .plp-button { width: 100%; }
  .plp-hero-carousel-controls { position: absolute; top: clamp(124px, 52vw, 280px); bottom: auto; right: 13px; gap: 8px; }
  .plp-hero-arrow { width: 35px; height: 35px; font-size: 18px; }
  .plp-hero-dots { padding: 7px 9px; gap: 6px; }
  .plp-hero-image-hint { opacity: 1; transform: none; right: 12px; bottom: 12px; padding: 7px 9px; font-size: 10px; }
  .plp-service-grid { grid-template-columns: 1fr; }
  .plp-service-grid > div, .plp-service-grid > div:not(:first-child) { min-height: auto; padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--plp-line); }
  .plp-service-grid > div:last-child { border-bottom: 0; }
  .plp-section { padding: 65px 0; }
  .plp-section-heading { display: grid; gap: 17px; align-items: start; margin-bottom: 27px; }
  .plp-section-intro { max-width: none; }
  .plp-category-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .plp-category-card { min-height: 190px; padding: 15px; }
  .plp-category-number { left: 15px; top: 14px; }
  .plp-category-card strong { font-size: 17px; }
  .plp-category-card small { font-size: 11px; }
  .plp-product-grid { gap: 10px; }
  .plp-product-image { min-height: 164px; }
  .plp-product-image img { height: 164px; }
  .plp-product-copy { min-height: 152px; padding: 13px; }
  .plp-product-title { font-size: 14px; }
  .plp-custom-banner-grid { grid-template-columns: 1fr; min-height: 0; padding: 54px 0; }
  .plp-custom-illustration { order: 2; min-height: 340px; }
  .plp-custom-circle { transform: scale(.78); transform-origin: top left; }
  .plp-custom-plaque { transform: scale(.8); transform-origin: top left; left: 100px; top: 94px; }
  .plp-custom-card { transform: rotate(9deg) scale(.75); transform-origin: top right; right: 5px; }
  .plp-check-list { grid-template-columns: 1fr; gap: 10px; }
  .plp-b2b-panel { padding: 28px; grid-template-columns: 1fr; }
  .plp-review-grid, .plp-benefit-grid, .plp-process-grid, .plp-custom-option-grid { grid-template-columns: 1fr; }
  .plp-review-grid figure { padding: 23px; }
  .plp-review-grid blockquote { font-size: 18px; }
  .plp-inner-hero { padding: 74px 0 62px; }
  .plp-inner-hero h1 { font-size: clamp(38px, 11vw, 54px); }
  .plp-two-column, .plp-inquiry-layout { grid-template-columns: 1fr; gap: 35px; }
  .plp-footer { padding-top: 48px; }
  .plp-footer-grid { grid-template-columns: 1fr 1fr; gap: 31px 19px; }
  .plp-footer-grid > :first-child { grid-column: 1 / -1; }
  .plp-footer-bottom { flex-direction: column; }
  .plp-whatsapp-float { right: 14px; bottom: 90px; padding: 11px 13px; }
}
@media (max-width: 420px) {
  .plp-header-actions .plp-icon-link:nth-child(1) { display: none; }
  .plp-product-grid { grid-template-columns: 1fr; }
  .plp-category-grid { grid-template-columns: 1fr 1fr; }
  .plp-footer-grid { grid-template-columns: 1fr; }
  .plp-footer-grid > :first-child { grid-column: auto; }
}

/* --------------------------------------------------------------------------
   WooCommerce single product — detail page
   -------------------------------------------------------------------------- */
.plp-main-content { background: var(--plp-cream); }
.plp-single-product { padding: 34px 0 82px; background: #fff; }
.plp-product-breadcrumb { margin: 0 0 24px; font-size: 14px; color: var(--plp-ink-soft); }
.plp-product-breadcrumb .woocommerce-breadcrumb { margin: 0; }
.plp-product-breadcrumb a { color: var(--plp-ink-soft); }
.plp-single-product-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(380px, .96fr); gap: clamp(38px, 6vw, 94px); align-items: start; }
.plp-product-media { min-width: 0; }
.plp-product-media .woocommerce-product-gallery { position: relative; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.plp-product-media .woocommerce-product-gallery__wrapper { margin: 0; border-radius: 22px; overflow: hidden; background: #fbf4fd; aspect-ratio: 1 / 1; }
.plp-product-media .woocommerce-product-gallery__wrapper > div { width: 100%; height: 100%; }
.plp-product-media .woocommerce-product-gallery__image { width: 100%; height: 100%; }
.plp-product-media .woocommerce-product-gallery__image a, .plp-product-media .woocommerce-product-gallery__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.plp-product-media .woocommerce-product-gallery__trigger { top: 14px; right: 14px; width: 37px; height: 37px; border-radius: 50%; background: #fff; color: var(--plp-ink); display: grid; place-items: center; text-indent: -9999px; z-index: 3; }
.plp-product-media .woocommerce-product-gallery__trigger::before { content: "⌕"; font-size: 22px; text-indent: 0; font-weight: 500; }
.plp-product-media .flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 0; margin: 0; }
.plp-product-media .flex-control-thumbs li { margin: 0; overflow: hidden; border: 1px solid transparent; border-radius: 12px; background: #fbf4fd; aspect-ratio: 1 / 1; }
.plp-product-media .flex-control-thumbs li:has(.flex-active) { border-color: var(--plp-blue); }
.plp-product-media .flex-control-thumbs img { width: 100%; height: 100%; object-fit: cover; cursor: pointer; opacity: .66; }
.plp-product-media .flex-control-thumbs .flex-active { opacity: 1; }


/* Same-category product carousel — shown directly below every product gallery. */
.plp-same-category-carousel { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--plp-line); }
.plp-same-category-carousel-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 13px; margin-bottom: 13px; }
.plp-same-category-kicker { display: block; margin-bottom: 4px; color: var(--plp-ink-soft); font-family: var(--plp-font-sans); font-size: 9px; font-weight: 850; letter-spacing: .11em; line-height: 1.25; text-transform: uppercase; }
.plp-same-category-carousel h2 { margin: 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(18px, 1.9vw, 24px); line-height: 1.05; letter-spacing: -.025em; }
.plp-same-category-carousel-controls { display: inline-flex; flex: 0 0 auto; gap: 7px; }
.plp-same-category-arrow { display: grid; width: 31px; height: 31px; padding: 0; place-items: center; border: 1px solid var(--plp-line); border-radius: 50%; background: #fff; color: var(--plp-ink); cursor: pointer; font-family: Arial, sans-serif; font-size: 24px; line-height: 1; transition: background .18s ease, color .18s ease, transform .18s ease, opacity .18s ease; }
.plp-same-category-arrow:hover, .plp-same-category-arrow:focus-visible { border-color: var(--plp-blue); background: var(--plp-blue); color: #fff; transform: translateY(-1px); outline: 0; }
.plp-same-category-arrow:disabled { cursor: default; opacity: .35; transform: none; }
.plp-same-category-carousel-viewport { overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; touch-action: pan-y pinch-zoom; }
.plp-same-category-carousel-viewport::-webkit-scrollbar { display: none; }
.plp-same-category-carousel-track { display: grid; grid-auto-columns: calc((100% - 24px) / 3); grid-auto-flow: column; gap: 12px; min-width: 100%; }
.plp-same-category-product-card { min-width: 0; scroll-snap-align: start; }
.plp-same-category-product-card > a { display: block; height: 100%; overflow: hidden; border: 1px solid var(--plp-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 20px rgba(43,9,52,.045); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.plp-same-category-product-card > a:hover, .plp-same-category-product-card > a:focus-visible { border-color: var(--plp-blue); box-shadow: 0 11px 23px rgba(43,9,52,.12); outline: 0; transform: translateY(-2px); }
.plp-same-category-product-image-wrap { display: block; overflow: hidden; aspect-ratio: 1 / .9; background: var(--plp-blue-pale); }
.plp-same-category-product-image-wrap img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease; }
.plp-same-category-product-card > a:hover .plp-same-category-product-image-wrap img { transform: scale(1.04); }
.plp-same-category-product-copy { display: grid; gap: 4px; padding: 9px 9px 10px; }
.plp-same-category-product-copy strong { display: -webkit-box; overflow: hidden; color: var(--plp-ink); font-family: var(--plp-font-sans); font-size: 11px; font-weight: 800; line-height: 1.24; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.plp-same-category-product-price { display: block; min-height: 15px; color: var(--plp-blue); font-family: var(--plp-font-sans); font-size: 11px; font-weight: 800; line-height: 1.3; }
.plp-same-category-product-price del { color: var(--plp-ink-soft); font-weight: 500; }
.plp-same-category-product-price ins { text-decoration: none; }
.plp-same-category-carousel-dots { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
.plp-same-category-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #d9b7df; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.plp-same-category-dot.is-active { background: var(--plp-blue); transform: scale(1.2); }
.plp-same-category-dot:focus-visible { outline: 2px solid var(--plp-blue); outline-offset: 3px; }
.plp-product-summary { min-width: 0; padding-top: 5px; }
.plp-product-overline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 15px; }
.plp-product-categories, .plp-product-categories a { color: var(--plp-ink-soft); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .085em; }
.plp-product-personalizable { color: var(--plp-blue); background: var(--plp-blue-pale); border: 1px solid var(--plp-line); border-radius: 999px; padding: 6px 9px; font-size: 10px; line-height: 1; font-weight: 800; letter-spacing: .035em; }
.plp-product-summary .product_title { color: var(--plp-ink); font-size: clamp(34px, 4vw, 55px); line-height: 1.03; margin: 0 0 13px; font-family: var(--plp-font-serif); letter-spacing: -.035em; }
.plp-product-summary .woocommerce-product-rating { display: flex; gap: 10px; align-items: center; margin: 0 0 15px; font-size: 12px; }
.plp-product-summary .star-rating { color: var(--plp-warm); float: none; margin: 0; }
.plp-product-summary .woocommerce-review-link { color: var(--plp-ink-soft); }
.plp-product-summary p.price, .plp-product-summary span.price { color: var(--plp-blue); display: block; font-size: 24px; font-weight: 850; margin: 0 0 20px; line-height: 1.2; }
.plp-product-summary del { color: var(--plp-ink-soft); font-weight: 500; font-size: 16px; margin-right: 8px; }
.plp-product-summary ins { text-decoration: none; }
.plp-product-summary .woocommerce-product-details__short-description { border-top: 1px solid var(--plp-line); padding-top: 19px; margin: 0 0 22px; color: var(--plp-ink-soft); font-size: 14px; line-height: 1.72; }
.plp-product-summary form.cart { margin: 0; padding: 0; }
.plp-product-summary .variations { width: 100%; margin: 0 0 19px; border: 0; }
.plp-product-summary .variations tr { display: grid; gap: 7px; margin-bottom: 15px; }
.plp-product-summary .variations th, .plp-product-summary .variations td { display: block; padding: 0; text-align: left; background: transparent; }
.plp-product-summary .variations label { color: var(--plp-ink); font-size: 12px; font-weight: 850; }
.plp-product-summary .variations select { width: 100%; min-height: 46px; border: 1px solid var(--plp-line); border-radius: 12px; background: #fff; padding: 0 12px; color: var(--plp-ink); font: inherit; }
.plp-product-summary .reset_variations { font-size: 11px; color: var(--plp-blue); }
.plp-product-summary .single_variation_wrap { display: grid; gap: 13px; }
.plp-product-summary .woocommerce-variation-price { margin: 0; }
.plp-product-summary .woocommerce-variation-price .price { margin: 0; }
.plp-product-summary .quantity { display: inline-flex; border: 1px solid var(--plp-line); border-radius: 999px; overflow: hidden; min-height: 50px; vertical-align: middle; }
.plp-product-summary .quantity .qty { width: 64px; min-height: 48px; border: 0; background: #fff; color: var(--plp-ink); text-align: center; font-weight: 800; outline: 0; }
.plp-product-summary button.single_add_to_cart_button { min-height: 50px; border: 0; border-radius: 999px; background: var(--plp-blue); color: #fff; padding: 0 24px; font: inherit; font-size: 13px; font-weight: 850; cursor: pointer; box-shadow: 0 10px 22px rgba(43,9,52,.20); transition: transform .2s ease, background .2s ease; }
.plp-product-summary button.single_add_to_cart_button:hover { background: var(--plp-blue-deep); transform: translateY(-2px); }
.plp-product-summary .woocommerce-variation-add-to-cart, .plp-product-summary .single_add_to_cart_button { display: inline-flex; gap: 10px; align-items: center; }
.plp-product-summary .product_meta { border-top: 1px solid var(--plp-line); margin-top: 22px; padding-top: 17px; display: grid; gap: 7px; color: var(--plp-ink-soft); font-size: 11px; }
.plp-product-summary .product_meta a { color: var(--plp-ink); font-weight: 750; }
.plp-product-summary .woocommerce-product-details__short-description + form.cart { margin-top: 0; }
.plp-product-summary .stock { margin: 0 0 13px; font-size: 12px; color: #28744d; font-weight: 800; }
.plp-personalization-fields { margin: 0 0 18px; padding: 18px; border: 1px solid var(--plp-line); border-radius: 16px; background: var(--plp-blue-pale); display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.plp-personalization-fields legend { width: 100%; margin: 0 0 1px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: 20px; font-weight: 700; }
.plp-personalization-fields > p { grid-column: 1 / -1; margin: -3px 0 1px; color: var(--plp-ink-soft); font-size: 12px; line-height: 1.55; }
.plp-personalization-fields label { display: grid; gap: 7px; color: var(--plp-ink); font-size: 11px; font-weight: 800; }
.plp-personalization-fields input, .plp-personalization-fields textarea { width: 100%; border: 1px solid var(--plp-line); border-radius: 10px; background: #fff; color: var(--plp-ink); padding: 11px 12px; font: inherit; font-size: 13px; outline: 0; }
.plp-personalization-fields input:focus, .plp-personalization-fields textarea:focus { border-color: var(--plp-blue); box-shadow: 0 0 0 3px rgba(43,9,52,.10); }
.plp-personalization-fields textarea { resize: vertical; }
.plp-personalization-note { grid-column: 1 / -1; }
.plp-product-assurances { margin-top: 23px; border-top: 1px solid var(--plp-line); padding-top: 17px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.plp-product-assurances > div { display: flex; align-items: flex-start; gap: 8px; }
.plp-product-assurances > div > span { color: var(--plp-warm); font-size: 20px; line-height: 1; }
.plp-product-assurances p { margin: 0; }
.plp-product-assurances strong { color: var(--plp-ink); display: block; font-size: 11px; line-height: 1.35; }
.plp-product-assurances small { color: var(--plp-ink-soft); display: block; font-size: 10px; line-height: 1.4; margin-top: 2px; }
.plp-product-wholesale-note { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; border-radius: 14px; border: 1px solid var(--plp-line); padding: 14px 15px; background: #fff; color: var(--plp-ink-soft); font-size: 11px; }
.plp-product-wholesale-note a { color: var(--plp-blue); font-weight: 850; white-space: nowrap; }
.plp-product-detail-section { padding: 78px 0 57px; margin-top: 68px; border-top: 1px solid var(--plp-line); }
.plp-product-detail-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 26px; margin-bottom: 27px; }
.plp-product-detail-heading h2 { max-width: 635px; margin: 8px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(31px, 3.8vw, 49px); line-height: 1.04; letter-spacing: -.03em; }
.plp-product-details { border-top: 1px solid var(--plp-line); }
.plp-product-details details { border-bottom: 1px solid var(--plp-line); }
.plp-product-details summary { list-style: none; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--plp-ink); cursor: pointer; font-family: var(--plp-font-serif); font-size: 21px; font-weight: 700; }
.plp-product-details summary::-webkit-details-marker { display: none; }
.plp-product-details summary > span { color: var(--plp-blue); font-family: Inter, sans-serif; font-size: 24px; font-weight: 400; transition: transform .2s ease; }
.plp-product-details details[open] summary > span { transform: rotate(45deg); }
.plp-product-detail-content { max-width: 860px; padding: 0 0 23px; color: var(--plp-ink-soft); font-size: 14px; line-height: 1.76; }
.plp-product-detail-content > :last-child { margin-bottom: 0; }
.plp-product-attributes table { width: min(100%, 660px); border-collapse: collapse; }
.plp-product-attributes th, .plp-product-attributes td { padding: 11px 12px; border: 1px solid var(--plp-line); text-align: left; font-size: 13px; }
.plp-product-attributes th { width: 36%; background: var(--plp-blue-pale); color: var(--plp-ink); }
.plp-product-reviews { padding: 48px 0 60px; }
.plp-product-reviews .comment-respond, .plp-product-reviews #comments { margin: 0; }
.plp-product-reviews .comment-reply-title, .plp-product-reviews #comments > h2 { color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: 25px; }
.plp-product-reviews textarea, .plp-product-reviews input { border: 1px solid var(--plp-line); border-radius: 10px; padding: 10px 11px; color: var(--plp-ink); font: inherit; }
.plp-product-reviews input[type="submit"] { border: 0; border-radius: 999px; padding: 12px 18px; background: var(--plp-blue); color: #fff; font-weight: 800; cursor: pointer; }
.plp-related-products { padding: 52px 0 0; border-top: 1px solid var(--plp-line); }
.plp-related-products .related > h2, .plp-related-products .upsells > h2 { margin: 0 0 25px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(28px, 3vw, 38px); letter-spacing: -.025em; }
.plp-related-products ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 0; padding: 0; }
.plp-related-products ul.products::before, .plp-related-products ul.products::after { display: none; }
.plp-related-products ul.products li.product { float: none; width: auto; margin: 0; border: 1px solid var(--plp-line); border-radius: 16px; overflow: hidden; padding: 0 0 16px; }
.plp-related-products ul.products li.product a img { width: 100%; aspect-ratio: 1 / .95; object-fit: cover; margin: 0 0 12px; }
.plp-related-products ul.products li.product .woocommerce-loop-product__title, .plp-related-products ul.products li.product .price, .plp-related-products ul.products li.product .button { margin-left: 14px; margin-right: 14px; }
.plp-related-products ul.products li.product .woocommerce-loop-product__title { color: var(--plp-ink); font-size: 15px; }
.plp-related-products ul.products li.product .price { color: var(--plp-blue); font-weight: 800; }
.plp-related-products ul.products li.product .button { display: inline-block; margin-top: 6px; border: 1px solid var(--plp-line); border-radius: 999px; padding: 9px 12px; background: #fff; color: var(--plp-ink); font-size: 11px; font-weight: 800; }

@media (max-width: 780px) {
  .plp-single-product { padding: 18px 0 58px; }
  .plp-product-breadcrumb { margin-bottom: 15px; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .plp-single-product-grid { grid-template-columns: 1fr; gap: 25px; }
  .plp-product-media .woocommerce-product-gallery__wrapper { border-radius: 18px; }
  .plp-product-media .flex-control-thumbs { gap: 7px; }
  .plp-product-summary { padding-top: 0; }
  .plp-product-summary .product_title { font-size: clamp(32px, 9vw, 43px); }
  .plp-product-summary .woocommerce-product-details__short-description { font-size: 13px; }
  .plp-personalization-fields { grid-template-columns: 1fr; padding: 15px; }
  .plp-personalization-note { grid-column: auto; }
  .plp-product-summary .variations tr { margin-bottom: 12px; }
  .plp-product-summary .quantity { width: 100%; justify-content: center; }
  .plp-product-summary .single_add_to_cart_button { width: 100%; justify-content: center; margin-top: 10px; }
  .plp-product-summary .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: 1fr; }
  .plp-product-assurances { grid-template-columns: 1fr; gap: 12px; }
  .plp-product-wholesale-note { align-items: flex-start; flex-direction: column; }
  .plp-product-detail-section { padding: 58px 0 43px; margin-top: 47px; }
  .plp-product-detail-heading { display: block; margin-bottom: 21px; }
  .plp-product-detail-heading h2 { font-size: clamp(30px, 9vw, 42px); }
  .plp-product-details summary { font-size: 18px; padding: 18px 0; }
  .plp-product-detail-content { font-size: 13px; padding-bottom: 18px; }
  .plp-product-reviews { padding: 37px 0 45px; }
  .plp-related-products { padding-top: 42px; }
  .plp-related-products ul.products { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .plp-related-products ul.products li.product { border-radius: 13px; }
  .plp-related-products ul.products li.product .woocommerce-loop-product__title { font-size: 13px; }
}

/* --------------------------------------------------------------------------
   Version 1.7 — Featured “More” link and Shop All archive
   -------------------------------------------------------------------------- */
.plp-featured-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "copy more"
    "intro intro";
  align-items: end;
  column-gap: 32px;
  row-gap: 17px;
}
.plp-featured-heading-copy { grid-area: copy; }
.plp-featured-heading .plp-section-intro { grid-area: intro; max-width: 760px; }
.plp-heading-more {
  grid-area: more;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: end;
  color: var(--plp-ink) !important;
  border-bottom: 1px solid var(--plp-ink);
  padding: 0 0 8px;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .015em;
  white-space: nowrap;
  transition: color .2s ease, border-color .2s ease, transform .2s ease;
}
.plp-heading-more span:last-child { font-size: 19px; line-height: .8; transition: transform .2s ease; }
.plp-heading-more:hover, .plp-heading-more:focus-visible { color: var(--plp-warm) !important; border-color: var(--plp-warm); transform: translateX(2px); }
.plp-heading-more:hover span:last-child, .plp-heading-more:focus-visible span:last-child { transform: translateX(3px); }

.plp-shop-archive { background: #fff; padding: 42px 0 88px; }
.plp-shop-breadcrumb { margin: 0 0 24px; color: var(--plp-ink-soft); font-size: 14px; }
.plp-shop-breadcrumb .woocommerce-breadcrumb { margin: 0; }
.plp-shop-breadcrumb a { color: var(--plp-ink-soft); }
.plp-shop-archive-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 42px; padding-bottom: 34px; border-bottom: 1px solid var(--plp-line); }
.plp-shop-archive-header h1 { max-width: 760px; margin: 9px 0 0; color: var(--plp-ink); font-size: clamp(39px, 5.2vw, 68px); line-height: .98; }
.plp-shop-archive-header p { max-width: 350px; margin: 0 0 3px; color: var(--plp-ink-soft); font-size: 13px; line-height: 1.7; }
.plp-shop-archive .term-description { max-width: 760px; margin: 24px 0 -5px; color: var(--plp-ink-soft); font-size: 14px; line-height: 1.7; }
.plp-shop-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: clamp(34px, 5vw, 72px); margin-top: 38px; }
.plp-shop-sidebar { position: sticky; top: 176px; min-width: 0; max-height: calc(100vh - 196px); overflow-y: auto; padding: 20px 17px 18px; border: 1px solid var(--plp-line); border-radius: 18px; background: var(--plp-blue-pale); }
.plp-shop-sidebar-heading { margin: 0 0 13px; padding: 0 8px 14px; border-bottom: 1px solid var(--plp-line); }
.plp-shop-sidebar-heading h2 { margin: 8px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: 27px; line-height: 1; letter-spacing: -.03em; }
.plp-shop-category-nav { display: grid; gap: 3px; }
.plp-shop-category-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 9px; border-radius: 10px; color: var(--plp-ink); font-size: 13px; font-weight: 750; line-height: 1.3; transition: background .18s ease, color .18s ease, transform .18s ease; }
.plp-shop-category-link:hover, .plp-shop-category-link:focus-visible { background: rgba(255,255,255,.74); color: var(--plp-warm); transform: translateX(2px); }
.plp-shop-category-link.is-active { background: var(--plp-ink); color: #fff; box-shadow: 0 8px 18px rgba(43,9,52,.13); }
.plp-shop-category-link small { color: var(--plp-ink-soft); font-size: 10px; font-weight: 800; }
.plp-shop-category-link.is-active small { color: rgba(255,255,255,.72); }
.plp-shop-sidebar-note { margin: 15px 8px 0; color: var(--plp-ink-soft); font-size: 10px; line-height: 1.55; }
.plp-shop-results { min-width: 0; }
.plp-shop-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; min-height: 42px; margin: 0 0 20px; color: var(--plp-ink-soft); font-size: 12px; }
.plp-shop-toolbar::after { content: ""; display: block; clear: both; }
.plp-shop-toolbar .woocommerce-result-count { float: none; margin: 0; color: var(--plp-ink-soft); }
.plp-shop-toolbar .woocommerce-ordering { float: none; margin: 0 0 0 auto; }
.plp-shop-toolbar select { min-height: 38px; border: 1px solid var(--plp-line); border-radius: 999px; background: #fff; color: var(--plp-ink); padding: 0 36px 0 13px; font: inherit; font-size: 12px; outline: 0; }
.plp-shop-results ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: 100%; margin: 0 !important; padding: 0; }
.plp-shop-results ul.products::before, .plp-shop-results ul.products::after { display: none; }
.plp-shop-results ul.products li.product { float: none !important; width: auto !important; min-width: 0; margin: 0 !important; padding: 0 0 17px; border: 1px solid var(--plp-line); border-radius: 17px; overflow: hidden; background: #fff; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.plp-shop-results ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--plp-shadow); }
.plp-shop-results ul.products li.product > a.woocommerce-LoopProduct-link { display: block; }
.plp-shop-results ul.products li.product a img { width: 100%; height: auto; aspect-ratio: 1 / 1.02; margin: 0 !important; object-fit: cover; background: #fbf4fd; }
.plp-shop-results ul.products li.product .woocommerce-loop-product__title { margin: 15px 15px 0; padding: 0; color: var(--plp-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.plp-shop-results ul.products li.product .star-rating { margin: 10px 15px 0; color: var(--plp-warm); font-size: 11px; }
.plp-shop-results ul.products li.product .price { margin: 8px 15px 0; color: var(--plp-blue); font-size: 14px; font-weight: 800; }
.plp-shop-results ul.products li.product .button { align-self: flex-start; margin: 16px 15px 0; border: 1px solid var(--plp-line); border-radius: 999px; padding: 9px 13px; background: #fff; color: var(--plp-ink); font-size: 11px; font-weight: 850; line-height: 1; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.plp-shop-results ul.products li.product .button:hover { background: var(--plp-ink); border-color: var(--plp-ink); color: #fff; }
.plp-shop-results .woocommerce-pagination { margin: 42px 0 0; }
.plp-shop-results .woocommerce-pagination ul.page-numbers { border: 0; }
.plp-shop-results .woocommerce-pagination ul.page-numbers li { border: 0; }
.plp-shop-results .woocommerce-pagination a.page-numbers, .plp-shop-results .woocommerce-pagination span.page-numbers { margin: 0 3px; border: 1px solid var(--plp-line); border-radius: 999px; background: #fff; color: var(--plp-ink); min-width: 34px; min-height: 34px; display: inline-grid; place-items: center; }
.plp-shop-results .woocommerce-pagination span.current { background: var(--plp-ink); color: #fff; border-color: var(--plp-ink); }
.plp-shop-empty { border: 1px dashed var(--plp-line); border-radius: 16px; padding: 28px; color: var(--plp-ink-soft); }

@media (max-width: 900px) {
  .plp-shop-layout { grid-template-columns: 195px minmax(0, 1fr); gap: 24px; }
  .plp-shop-results ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .plp-featured-heading { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "copy more" "intro intro"; gap: 15px 17px; }
  .plp-featured-heading .plp-section-intro { font-size: 13px; }
  .plp-heading-more { align-self: start; margin-top: 5px; font-size: 12px; padding-bottom: 6px; }
  .plp-shop-archive { padding: 22px 0 62px; }
  .plp-shop-breadcrumb { margin-bottom: 17px; font-size: 11px; }
  .plp-shop-archive-header { display: block; padding-bottom: 24px; }
  .plp-shop-archive-header h1 { font-size: clamp(38px, 11vw, 56px); }
  .plp-shop-archive-header p { max-width: 540px; margin: 17px 0 0; font-size: 13px; }
  .plp-shop-layout { display: block; margin-top: 25px; }
  .plp-shop-sidebar { position: static; max-height: none; overflow: visible; margin: 0 -14px 23px; padding: 0 14px 3px; border: 0; border-radius: 0; background: transparent; }
  .plp-shop-sidebar-heading { display: none; }
  .plp-shop-category-nav { display: flex; width: max-content; gap: 8px; }
  .plp-shop-sidebar::after { content: ""; display: block; }
  .plp-shop-sidebar { overflow-x: auto; scrollbar-width: none; }
  .plp-shop-sidebar::-webkit-scrollbar { display: none; }
  .plp-shop-category-link { flex: 0 0 auto; padding: 9px 12px; border: 1px solid var(--plp-line); background: #fff; font-size: 12px; }
  .plp-shop-category-link:hover { transform: none; }
  .plp-shop-category-link small { display: none; }
  .plp-shop-sidebar-note { display: none; }
  .plp-shop-toolbar { margin-bottom: 15px; font-size: 11px; }
  .plp-shop-toolbar select { min-height: 35px; max-width: 155px; font-size: 11px; }
  .plp-shop-results ul.products { gap: 10px; }
  .plp-shop-results ul.products li.product { border-radius: 13px; padding-bottom: 13px; }
  .plp-shop-results ul.products li.product .woocommerce-loop-product__title { margin: 12px 12px 0; font-size: 13px; }
  .plp-shop-results ul.products li.product .star-rating { margin: 7px 12px 0; }
  .plp-shop-results ul.products li.product .price { margin: 7px 12px 0; font-size: 13px; }
  .plp-shop-results ul.products li.product .button { margin: 12px 12px 0; padding: 8px 10px; font-size: 10px; }
}
@media (max-width: 420px) {
  .plp-featured-heading h2 { font-size: clamp(29px, 9vw, 38px); }
}


/* v2.1.0 — WordPress Site Identity + editable-menu support. */
.plp-brand-copy { display: block; min-width: 0; }
.plp-brand-logo { display: block; line-height: 0; }
.plp-brand-logo-image { display: block; width: auto; max-width: 185px; height: auto; max-height: 42px; object-fit: contain; object-position: left center; }
.plp-footer-brand .plp-brand-logo-image { max-width: 165px; max-height: 36px; }
.plp-nav-menu-managed > li { position: relative; display: flex; align-items: center; min-height: 48px; margin: 0; }
.plp-nav-menu-managed > li > a { display: block; font-size: 13px; color: var(--plp-ink); font-weight: 650; padding: 15px 0; white-space: nowrap; transition: color .2s ease; }
.plp-nav-menu-managed > li > a:hover, .plp-nav-menu-managed > li:focus-within > a { color: var(--plp-blue); }
.plp-nav-menu-managed .sub-menu { position: absolute; z-index: 80; top: calc(100% - 5px); left: -17px; display: grid; width: 250px; padding: 8px; margin: 0; list-style: none; border: 1px solid var(--plp-line); border-radius: 16px; background: #fff; box-shadow: var(--plp-shadow); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }
.plp-nav-menu-managed > li:hover > .sub-menu, .plp-nav-menu-managed > li:focus-within > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.plp-nav-menu-managed .sub-menu a { display: flex; align-items: center; padding: 10px 11px; border-radius: 10px; color: var(--plp-ink); font-size: 13px; font-weight: 650; }
.plp-nav-menu-managed .sub-menu a:hover, .plp-nav-menu-managed .sub-menu a:focus-visible { background: var(--plp-blue-pale); color: var(--plp-blue); }
.plp-elementor-home { width: 100%; }
.plp-elementor-home > .elementor { width: 100%; }

@media (max-width: 760px) {
  .plp-brand-logo-image { max-width: 148px; max-height: 34px; }
  .plp-nav-menu-managed .sub-menu { position: static; display: none; width: 100%; margin: 0 0 10px; opacity: 1; visibility: visible; pointer-events: auto; transform: none; box-shadow: none; }
  .plp-nav-menu-managed > li:hover > .sub-menu, .plp-nav-menu-managed > li:focus-within > .sub-menu { display: grid; }
}

/* ===== Version 2.1.2 — supplied GILIPET wordmark and centered menu ===== */
@media (min-width: 769px) {
  .plp-header-main {
    min-height: 104px;
    grid-template-columns: minmax(220px, .92fr) minmax(330px, 1.48fr) auto;
    gap: 28px;
  }

  /* Keep the wordmark flush to the left side of the logo column and vertically
     aligned with the centre of the search box. */
  .plp-brand {
    justify-self: start;
    align-self: center;
  }

  .plp-main-nav .plp-nav-scroll {
    display: flex;
    justify-content: center;
  }

  .plp-main-nav .plp-nav-menu {
    justify-content: center;
  }
}

.plp-brand-logo-image {
  display: block;
  width: min(220px, 100%);
  max-width: 220px;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: left center;
}

.plp-footer-brand .plp-brand-logo-image {
  width: min(180px, 100%);
  max-width: 180px;
  height: auto;
  max-height: none;
}

@media (max-width: 1024px) and (min-width: 769px) {
  .plp-header-main {
    grid-template-columns: minmax(178px, .8fr) minmax(250px, 1.35fr) auto;
    gap: 18px;
  }

  .plp-brand-logo-image {
    width: min(178px, 100%);
    max-width: 178px;
  }
}

@media (max-width: 768px) {
  .plp-brand-logo-image {
    width: min(160px, 100%);
    max-width: 160px;
  }

  .plp-footer-brand .plp-brand-logo-image {
    width: min(170px, 100%);
    max-width: 170px;
  }

  .plp-main-nav .plp-nav-scroll {
    display: block;
  }

  .plp-main-nav .plp-nav-menu {
    justify-content: flex-start;
  }
}


/* ===== v2.1.2.1 — functional product search ===== */
.plp-search { position: relative; overflow: visible; }
.plp-search button { border-radius: 0 999px 999px 0; }
.plp-search-suggestions { position: absolute; z-index: 120; top: calc(100% + 8px); left: 0; right: 0; overflow: hidden; border: 1px solid var(--plp-line); border-radius: 15px; background: #fff; box-shadow: var(--plp-shadow); }
.plp-search-suggestion { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 11px; color: var(--plp-ink); text-align: left; }
.plp-search-suggestion:hover, .plp-search-suggestion:focus-visible { background: var(--plp-blue-pale); color: var(--plp-ink); }
.plp-search-suggestion-image { width: 42px; height: 42px; overflow: hidden; border-radius: 10px; background: var(--plp-blue-pale); }
.plp-search-suggestion-image img { width: 100%; height: 100%; object-fit: cover; }
.plp-search-suggestion-copy { display: grid; gap: 2px; min-width: 0; }
.plp-search-suggestion-copy strong { overflow: hidden; color: inherit; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.plp-search-suggestion-copy small { color: var(--plp-ink-soft); font-size: 10px; }
.plp-search-suggestion-price { color: var(--plp-blue); font-size: 11px; font-weight: 800; white-space: nowrap; }
.plp-search-suggestion-empty { display: block; padding: 13px; color: var(--plp-ink-soft); font-size: 12px; }
.plp-search-clear { display: inline-flex; align-items: center; min-height: 34px; border: 1px solid var(--plp-line); border-radius: 999px; padding: 0 12px; color: var(--plp-ink); font-size: 11px; font-weight: 800; }
.plp-search-clear:hover { background: var(--plp-ink); border-color: var(--plp-ink); color: #fff; }
.plp-search-pagination { margin-top: 36px; }
.plp-search-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.plp-search-pagination .page-numbers { display: inline-grid; min-width: 34px; min-height: 34px; place-items: center; border: 1px solid var(--plp-line); border-radius: 999px; color: var(--plp-ink); font-size: 12px; }
.plp-search-pagination .page-numbers.current { background: var(--plp-ink); border-color: var(--plp-ink); color: #fff; }
@media (max-width: 768px) {
  .plp-search-suggestions { left: -1px; right: -1px; }
  .plp-search-suggestion { grid-template-columns: 38px minmax(0, 1fr) auto; padding: 8px 10px; }
  .plp-search-suggestion-image { width: 38px; height: 38px; }
  .plp-search-suggestion-price { font-size: 10px; }
}


/* === GILIPET About Us section (homepage) === */
html { scroll-behavior: smooth; }
#about { scroll-margin-top: 24px; }

.plp-about-section {
  padding-top: 42px;
  padding-bottom: 84px;
  background: linear-gradient(180deg, #fff 0%, #fbf2fd 100%);
}

.plp-about-grid {
  display: grid;
  grid-template-columns: minmax(300px, .92fr) minmax(0, 1.08fr);
  gap: clamp(38px, 7vw, 92px);
  align-items: center;
}

.plp-about-visual {
  position: relative;
  min-height: 400px;
  overflow: hidden;
  border-radius: var(--plp-radius-lg);
  background: #2b0934;
  box-shadow: var(--plp-shadow);
}

.plp-about-visual::before {
  content: '';
  position: absolute;
  inset: auto -60px -125px auto;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: #eedaf3;
  opacity: .98;
}

.plp-about-visual::after {
  content: '';
  position: absolute;
  top: -92px;
  left: -74px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
}

.plp-about-orbit {
  position: absolute;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
}

.plp-about-orbit-one { width: 286px; height: 286px; left: 31px; top: 68px; }
.plp-about-orbit-two { width: 206px; height: 206px; left: 71px; top: 108px; border-color: rgba(255,255,255,.12); }

.plp-about-wordmark {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 900;
  letter-spacing: -.055em;
  white-space: nowrap;
}


.plp-about-visual-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
  border-radius: inherit;
}
.plp-about-tagline {
  position: absolute;
  z-index: 1;
  left: 35px;
  bottom: 31px;
  color: rgba(255,255,255,.8);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
}

.plp-about-copy h2 {
  font-size: clamp(31px, 3.8vw, 52px);
  line-height: 1.04;
  margin: 10px 0 0;
  max-width: 735px;
}

.plp-about-copy > p {
  max-width: 690px;
  margin: 19px 0 0;
  color: var(--plp-ink-soft);
  font-size: 16px;
  line-height: 1.8;
}

.plp-about-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 28px 0;
}

.plp-about-values span {
  padding: 14px 13px;
  border: 1px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
  color: var(--plp-ink);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
}

@media (max-width: 768px) {
  #about { scroll-margin-top: 12px; }
  .plp-about-section { padding-top: 28px; padding-bottom: 56px; }
  .plp-about-grid { grid-template-columns: 1fr; gap: 30px; }
  .plp-about-visual { min-height: 295px; }
  .plp-about-orbit-one { width: 220px; height: 220px; top: 42px; left: 28px; }
  .plp-about-orbit-two { width: 154px; height: 154px; top: 75px; left: 61px; }
  .plp-about-tagline { left: 23px; bottom: 23px; font-size: 9px; }
  .plp-about-values { grid-template-columns: 1fr; margin: 23px 0; }
}

/* --------------------------------------------------------------------------
   Homepage category carousel — exactly three cards per view
   -------------------------------------------------------------------------- */
.plp-category-section-heading { margin-bottom: clamp(22px, 2.2vw, 30px); }
.plp-category-carousel {
  --plp-category-gap: clamp(8px, 1.35vw, 18px);
  --plp-category-visible: 3;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}
.plp-category-carousel-viewport { overflow: hidden; width: 100%; padding: 2px; margin: -2px; }
.plp-category-carousel-track {
  display: flex;
  align-items: stretch;
  gap: var(--plp-category-gap);
  width: 100%;
  transform: translate3d(0, 0, 0);
  transition: transform .48s cubic-bezier(.2,.73,.2,1);
  will-change: transform;
}
.plp-category-carousel .plp-category-card {
  flex: 0 0 calc((100% - (var(--plp-category-gap) * (var(--plp-category-visible) - 1))) / var(--plp-category-visible));
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1.36 / 1;
  padding: clamp(10px, 1.8vw, 22px);
}
.plp-category-carousel .plp-category-number {
  left: clamp(10px, 1.8vw, 22px);
  top: clamp(9px, 1.45vw, 18px);
  font-size: clamp(8px, .9vw, 11px);
}
.plp-category-carousel .plp-category-card::after {
  width: clamp(42px, 8.3vw, 104px);
  height: clamp(42px, 8.3vw, 104px);
  right: clamp(-23px, -1.8vw, -8px);
  top: clamp(-20px, -1.6vw, -7px);
}
.plp-category-carousel .plp-category-card strong {
  overflow-wrap: anywhere;
  font-size: clamp(11px, 1.7vw, 20px);
}
.plp-category-carousel .plp-category-card small {
  margin-top: clamp(4px, .7vw, 9px);
  overflow-wrap: anywhere;
  font-size: clamp(8px, 1vw, 12px);
  line-height: 1.35;
}
.plp-category-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1vw, 13px);
  margin-top: clamp(15px, 2vw, 22px);
}
.plp-category-carousel-buttons { display: flex; align-items: center; gap: 8px; }
.plp-category-arrow {
  width: clamp(34px, 3.2vw, 42px);
  height: clamp(34px, 3.2vw, 42px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0;
  border: 1px solid var(--plp-line);
  border-radius: 50%;
  background: #fff;
  color: var(--plp-ink);
  cursor: pointer;
  font-size: clamp(18px, 2vw, 25px);
  line-height: 1;
  text-align: center;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.plp-category-arrow-symbol {
  display: block;
  width: 1em;
  height: 1em;
  line-height: 1;
  transform: translateY(-.06em);
}
.plp-category-arrow:hover,
.plp-category-arrow:focus-visible {
  border-color: var(--plp-ink);
  background: var(--plp-ink);
  color: #fff;
  transform: translateY(-1px);
}
.plp-category-arrow:focus-visible,
.plp-category-dot:focus-visible { outline: 2px solid var(--plp-blue); outline-offset: 3px; }
.plp-category-dots { display: flex; align-items: center; gap: 7px; min-height: 22px; }
.plp-category-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(43,9,52,.25);
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}
.plp-category-dot.is-active { background: var(--plp-ink); transform: scale(1.2); }
.plp-category-count { min-width: 42px; color: var(--plp-ink-soft); font-size: 11px; font-weight: 800; letter-spacing: .08em; }

@media (max-width: 560px) {
  .plp-category-carousel { --plp-category-gap: 7px; }
  .plp-category-carousel .plp-category-card { aspect-ratio: 1.08 / 1; }
  .plp-category-carousel .plp-category-card small { display: none; }
  .plp-category-carousel-controls { gap: 8px; }
  .plp-category-dots { gap: 5px; }
  .plp-category-dot { width: 6px; height: 6px; }
  .plp-category-count { min-width: 35px; font-size: 9px; }
}



/* --------------------------------------------------------------------------
   Universal standard pages
   Cart, checkout, account, and ordinary WordPress pages use the same GILIPET
   frame as the homepage instead of Astra's separate header/footer chrome.
   -------------------------------------------------------------------------- */
.plp-standard-page {
  min-height: min(640px, 70vh);
  padding: clamp(42px, 6vw, 78px) 0 clamp(64px, 8vw, 108px);
  background: var(--plp-cream);
}
.plp-standard-page-container { max-width: 1040px; }
.plp-standard-page-article { min-width: 0; }
.plp-standard-page-heading {
  margin: 0 0 clamp(24px, 3vw, 38px);
  padding-bottom: clamp(20px, 2.6vw, 30px);
  border-bottom: 1px solid var(--plp-line);
}
.plp-standard-page-heading .plp-eyebrow { display: block; margin-bottom: 9px; }
.plp-standard-page-heading h1 {
  margin: 0;
  color: var(--plp-ink);
  font-size: clamp(36px, 5.2vw, 62px);
  line-height: 1.03;
}
.plp-standard-page-content { color: var(--plp-ink-soft); font-size: 15px; line-height: 1.75; }
.plp-standard-page-content > :last-child { margin-bottom: 0; }
.plp-standard-page-content h2,
.plp-standard-page-content h3,
.plp-standard-page-content h4 { color: var(--plp-ink); }
.plp-standard-page-content a { color: var(--plp-blue); font-weight: 750; }
.plp-standard-page-content a:hover { color: var(--plp-blue-deep); }
.plp-standard-page-content .woocommerce { color: var(--plp-ink); }
.plp-standard-page-content .woocommerce-notices-wrapper { margin-bottom: 20px; }
.plp-standard-page-content .woocommerce-message,
.plp-standard-page-content .woocommerce-info,
.plp-standard-page-content .woocommerce-error {
  margin: 0 0 16px;
  border-top-color: var(--plp-blue);
  border-radius: 14px;
  background: var(--plp-blue-pale);
  color: var(--plp-ink);
  box-shadow: none;
}
.plp-standard-page-content .woocommerce-message::before,
.plp-standard-page-content .woocommerce-info::before { color: var(--plp-blue); }
.plp-standard-page-content .woocommerce-error::before { color: #b3261e; }
.plp-standard-page-content .shop_table,
.plp-standard-page-content .woocommerce form .form-row input.input-text,
.plp-standard-page-content .woocommerce form .form-row textarea,
.plp-standard-page-content .woocommerce form .form-row select,
.plp-standard-page-content .woocommerce .select2-container .select2-selection {
  border-color: var(--plp-line);
  border-radius: 14px;
}
.plp-standard-page-content .shop_table {
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}
.plp-standard-page-content .shop_table th,
.plp-standard-page-content .shop_table td { border-color: var(--plp-line); }
.plp-standard-page-content .shop_table thead th { background: var(--plp-blue-pale); color: var(--plp-ink); }
.plp-standard-page-content .woocommerce-cart-form,
.plp-standard-page-content .cart-collaterals,
.plp-standard-page-content .woocommerce-checkout-review-order,
.plp-standard-page-content .woocommerce-account-fields,
.plp-standard-page-content .woocommerce-MyAccount-navigation,
.plp-standard-page-content .woocommerce-MyAccount-content,
.plp-standard-page-content .woocommerce-form-login,
.plp-standard-page-content .woocommerce-form-register {
  border-radius: var(--plp-radius-md);
}
.plp-standard-page-content .woocommerce-cart-form,
.plp-standard-page-content .woocommerce-MyAccount-navigation,
.plp-standard-page-content .woocommerce-MyAccount-content,
.plp-standard-page-content .woocommerce-form-login,
.plp-standard-page-content .woocommerce-form-register {
  border: 1px solid var(--plp-line);
  background: #fff;
}
.plp-standard-page-content .woocommerce-cart-form,
.plp-standard-page-content .woocommerce-MyAccount-content,
.plp-standard-page-content .woocommerce-form-login,
.plp-standard-page-content .woocommerce-form-register { padding: clamp(16px, 2vw, 26px); }
.plp-standard-page-content .woocommerce-MyAccount-navigation { padding: 10px; }
.plp-standard-page-content .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.plp-standard-page-content .woocommerce-MyAccount-navigation a { display: block; padding: 10px 12px; border-radius: 10px; }
.plp-standard-page-content .woocommerce-MyAccount-navigation .is-active a,
.plp-standard-page-content .woocommerce-MyAccount-navigation a:hover { background: var(--plp-blue-pale); color: var(--plp-blue); }
.plp-standard-page-content .woocommerce a.button,
.plp-standard-page-content .woocommerce button.button,
.plp-standard-page-content .woocommerce input.button,
.plp-standard-page-content .wc-proceed-to-checkout a.checkout-button {
  border: 0;
  border-radius: 999px;
  background: var(--plp-ink);
  color: #fff;
  font-weight: 800;
  padding: 13px 18px;
}
.plp-standard-page-content .woocommerce a.button:hover,
.plp-standard-page-content .woocommerce button.button:hover,
.plp-standard-page-content .woocommerce input.button:hover,
.plp-standard-page-content .wc-proceed-to-checkout a.checkout-button:hover { background: var(--plp-blue-deep); color: #fff; }
.plp-standard-page-content .woocommerce .quantity .qty { min-height: 40px; border: 1px solid var(--plp-line); border-radius: 10px; color: var(--plp-ink); }
.plp-standard-page-content .cart-collaterals .cart_totals,
.plp-standard-page-content .woocommerce-checkout-review-order { width: 100%; border: 1px solid var(--plp-line); background: var(--plp-blue-pale); padding: clamp(18px, 2.5vw, 28px); }
.plp-standard-page-content .woocommerce-MyAccount-navigation { float: left; width: 29%; }
.plp-standard-page-content .woocommerce-MyAccount-content { float: right; width: 67%; }
.plp-standard-page-content .woocommerce::after { content: ""; display: table; clear: both; }
.plp-page-links { display: flex; gap: 8px; margin-top: 24px; }
@media (max-width: 780px) {
  .plp-standard-page { padding: 39px 0 66px; }
  .plp-standard-page-content { font-size: 14px; }
  .plp-standard-page-content .woocommerce-cart-form { overflow-x: auto; }
  .plp-standard-page-content .woocommerce-MyAccount-navigation,
  .plp-standard-page-content .woocommerce-MyAccount-content { float: none; width: 100%; }
  .plp-standard-page-content .woocommerce-MyAccount-navigation { margin-bottom: 18px; }
  .plp-standard-page-content .shop_table { min-width: 620px; }
}


/* --------------------------------------------------------------------------
   v2.1.2.7 — product pagination + draggable floating contact control
   -------------------------------------------------------------------------- */
/* Keep all product archive pagination in the GILIPET ink colour rather than
   inheriting Astra/WooCommerce's green accent. */
.plp-shop-results .woocommerce-pagination a.page-numbers,
.plp-shop-results .woocommerce-pagination span.page-numbers,
.woocommerce nav.woocommerce-pagination a.page-numbers,
.woocommerce nav.woocommerce-pagination span.page-numbers,
.woocommerce .woocommerce-pagination a.page-numbers,
.woocommerce .woocommerce-pagination span.page-numbers {
  color: #2b0934;
}
.plp-shop-results .woocommerce-pagination span.current,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce .woocommerce-pagination span.current,
.plp-shop-results .woocommerce-pagination a.page-numbers:hover,
.plp-shop-results .woocommerce-pagination a.page-numbers:focus-visible,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus-visible,
.woocommerce .woocommerce-pagination a.page-numbers:hover,
.woocommerce .woocommerce-pagination a.page-numbers:focus-visible {
  background: #2b0934 !important;
  border-color: #2b0934 !important;
  color: #fff !important;
}

/* The bottom-right contact control is branded GILIPET purple and can be
   dragged by mouse or touch without breaking its ordinary click action. */
.plp-whatsapp-float {
  background: #2b0934;
  box-shadow: 0 14px 28px rgba(43, 9, 52, .25);
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  transition: background .2s ease, box-shadow .2s ease;
}
.plp-whatsapp-float:hover,
.plp-whatsapp-float:focus-visible { background: #1d0524; color: #fff !important; }
.plp-whatsapp-float.is-dragging {
  cursor: grabbing;
  transition: none;
  box-shadow: 0 18px 34px rgba(43, 9, 52, .32);
}


/* --------------------------------------------------------------------------
   v2.1.2.8 — wider content canvas + language dropdown above every section
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  .plp-container {
    width: min(var(--plp-container), calc(100% - 48px));
  }
}

/* The language details panel lives in the upper header row. Give that row a
   higher stacking level than the navigation and all page content so the panel
   never slips behind the hero/banner. */
.plp-header {
  z-index: 1000;
  overflow: visible;
  isolation: isolate;
}
.plp-header-main {
  position: relative;
  z-index: 20;
  overflow: visible;
}
.plp-main-nav {
  z-index: 10;
}
.plp-main-content,
.plp-hero,
.plp-category-section,
.plp-featured-section {
  position: relative;
  z-index: 0;
}
.plp-language-switcher,
.plp-language-switcher details,
.plp-language-switcher details[open] {
  position: relative;
  z-index: 220;
  overflow: visible;
}
.plp-language-list {
  z-index: 230;
  pointer-events: auto;
}


/* --------------------------------------------------------------------------
   Header action icons and full language names (v2.1.2.9)
   -------------------------------------------------------------------------- */
.plp-header-actions {
  gap: 12px;
}
.plp-icon-link {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border-radius: 50%;
  color: var(--plp-blue-deep);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.plp-icon-link:hover,
.plp-icon-link:focus-visible {
  background: rgba(255,255,255,.62);
  color: var(--plp-blue);
  transform: translateY(-1px);
}
.plp-header-icon {
  display: block;
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.plp-language-switcher {
  font-size: 13px;
}
.plp-language-switcher .plp-language-details {
  position: relative;
}
.plp-language-switcher .plp-language-details summary {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  min-height: 42px;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.15;
  white-space: nowrap;
}
.plp-language-list {
  min-width: 178px;
  padding: 8px;
}
.plp-language-list a {
  display: block;
  padding: 9px 11px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.25;
  white-space: nowrap;
}
.plp-language-list a[aria-current="page"] {
  background: var(--plp-blue-pale);
  color: var(--plp-blue);
}
@media (max-width: 780px) {
  .plp-header-actions { gap: 6px; }
  .plp-icon-link { width: 40px; height: 40px; }
  .plp-header-icon { width: 24px; height: 24px; }
  .plp-language-switcher .plp-language-details summary {
    min-width: 77px;
    min-height: 38px;
    padding: 8px 10px;
    font-size: 12px;
  }
  .plp-language-list { min-width: 168px; }
}

/* --------------------------------------------------------------------------
   v2.1.2.10 — mobile header fit + centred primary navigation
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  /* The action group keeps its natural width; the logo column is explicitly
     allowed to shrink instead of drawing underneath Account / Cart. */
  .plp-header-main {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  .plp-brand,
  .plp-brand-copy,
  .plp-brand-logo {
    min-width: 0;
  }

  .plp-brand {
    width: 100%;
    overflow: hidden;
  }

  .plp-brand-logo-image {
    width: min(150px, 100%);
    max-width: none;
    max-height: none;
  }

  .plp-header-actions {
    flex: 0 0 auto;
    gap: 6px;
  }

  /* The primary navigation itself is handled in the final mobile override
     below. Keeping this section free of overflow rules avoids nested native
     scrollbars on Android browsers. */

  /* Full language names remain available in the dropdown. The selected
     name is constrained only in the compact header so it cannot push the
     account controls into the wordmark. */
  .plp-language-current {
    display: block;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 380px) {
  .plp-container {
    width: min(var(--plp-container), calc(100% - 24px));
  }

  .plp-header-main {
    gap: 6px;
  }

  .plp-header-actions {
    gap: 4px;
  }

  .plp-icon-link {
    width: 36px;
    height: 36px;
  }

  .plp-header-icon {
    width: 22px;
    height: 22px;
  }

  .plp-language-switcher .plp-language-details summary {
    min-width: 70px;
    min-height: 36px;
    padding: 7px 8px;
    font-size: 11px;
  }

  .plp-language-current {
    max-width: 58px;
  }

  .plp-brand-logo-image {
    width: min(132px, 100%);
  }
}

/* --------------------------------------------------------------------------
   Mobile search focus treatment (v2.1.2.11)
   Android browsers can draw a dotted native focus outline inside the search
   field. Keep the focus cue on the rounded search container instead.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .plp-search input,
  .plp-search input:focus,
  .plp-search input:focus-visible {
    outline: none !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
  }

  .plp-search:focus-within {
    outline: none;
    border-color: var(--plp-blue);
    box-shadow: 0 0 0 3px rgba(43, 9, 52, .18);
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.12 — Mobile primary navigation without a horizontal scroll bar
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  /* The four primary links fit on one centred row at mobile sizes, so the
     navigation no longer needs an overflow container or a visible scroller. */
  /* Do not make the primary navigation a scroll container on mobile.
     Some Android WebViews were still exposing a vertical native scrollbar
     because an earlier overflow-x:auto rule remained in the cascade. */
  .plp-main-nav .plp-nav-scroll {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    overscroll-behavior: auto;
    -webkit-overflow-scrolling: auto;
    scrollbar-width: none !important;
    -ms-overflow-style: none;
    text-align: center;
  }

  .plp-main-nav .plp-nav-scroll::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
  }

  .plp-main-nav .plp-nav-menu {
    width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    overflow: visible;
    margin: 0;
    justify-content: center;
    gap: clamp(11px, 4vw, 21px);
  }

  .plp-main-nav .plp-nav-menu > li > a,
  .plp-main-nav .plp-nav-section-link,
  .plp-main-nav .plp-nav-menu-managed > li > a {
    font-size: clamp(11px, 3.1vw, 12px);
  }
}

/* v2.1.2.13 — final Android menu scrollbar safeguard */
@media (max-width: 780px) {
  .plp-main-nav {
    overflow: visible !important;
  }
  .plp-main-nav,
  .plp-main-nav .plp-container,
  .plp-main-nav .plp-nav-scroll,
  .plp-main-nav .plp-nav-menu {
    scrollbar-width: none !important;
    -ms-overflow-style: none;
  }
  .plp-main-nav::-webkit-scrollbar,
  .plp-main-nav .plp-container::-webkit-scrollbar,
  .plp-main-nav .plp-nav-scroll::-webkit-scrollbar,
  .plp-main-nav .plp-nav-menu::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.14 — Mobile navigation: responsive single-row sizing
   The menu is not a scroll container. Font size, item gap and inline padding
   scale down together so the four links retain one centred row on narrow screens.
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  .plp-main-nav .plp-container {
    width: 100%;
    max-width: none;
    padding-inline: clamp(8px, 3vw, 16px);
    box-sizing: border-box;
  }

  .plp-main-nav .plp-nav-scroll {
    display: block;
    width: 100%;
    overflow: visible !important;
    text-align: center;
  }

  .plp-main-nav .plp-nav-menu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    margin-inline: auto;
    gap: clamp(8px, 2.5vw, 18px);
    padding: 0;
    box-sizing: border-box;
  }

  .plp-main-nav .plp-nav-menu > li,
  .plp-main-nav .plp-nav-menu-managed > li {
    flex: 0 1 auto;
    min-width: 0;
  }

  .plp-main-nav .plp-nav-menu > li > a,
  .plp-main-nav .plp-nav-section-link,
  .plp-main-nav .plp-nav-menu-managed > li > a {
    font-size: clamp(10px, 2.9vw, 12px);
    line-height: 1.15;
    padding-block: clamp(11px, 3vw, 12px);
    letter-spacing: 0;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .plp-main-nav .plp-nav-item-control {
    gap: clamp(2px, .7vw, 5px);
  }

  .plp-main-nav .plp-category-menu-toggle {
    width: 1em;
    min-width: 1em;
    padding: 0;
  }
}

@media (max-width: 340px) {
  .plp-main-nav .plp-container {
    padding-inline: 7px;
  }

  .plp-main-nav .plp-nav-menu {
    gap: 6px;
  }

  .plp-main-nav .plp-nav-menu > li > a,
  .plp-main-nav .plp-nav-section-link,
  .plp-main-nav .plp-nav-menu-managed > li > a {
    font-size: 9.7px;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.15 — Dedicated Contact page
   -------------------------------------------------------------------------- */
.plp-contact-hero {
  padding: clamp(66px, 9vw, 118px) 0 clamp(54px, 7vw, 84px);
  background: linear-gradient(118deg, #ffffff 0%, #fbf1fd 54%, #edcbf6 100%);
  border-bottom: 1px solid var(--plp-line);
}
.plp-contact-hero h1 {
  max-width: 820px;
  margin: 11px 0 18px;
  color: var(--plp-ink);
  font-size: clamp(42px, 5.4vw, 76px);
  line-height: .98;
}
.plp-contact-hero p {
  max-width: 690px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: clamp(15px, 1.55vw, 18px);
  line-height: 1.75;
}
.plp-contact-section { padding: clamp(44px, 6vw, 76px) 0 clamp(76px, 9vw, 116px); background: #fff; }
.plp-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.plp-contact-card {
  min-height: 146px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px;
  border: 1px solid var(--plp-line);
  border-radius: var(--plp-radius-md);
  background: #fff;
  color: var(--plp-ink);
  box-shadow: 0 10px 24px rgba(43, 9, 52, .045);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.plp-contact-card:hover,
a.plp-contact-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(43, 9, 52, .34);
  box-shadow: var(--plp-shadow);
}
.plp-contact-card-placeholder { background: #fdf8fe; }
.plp-contact-icon {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--plp-lilac);
  color: var(--plp-ink);
  font-size: 23px;
  font-weight: 900;
  line-height: 1;
}
.plp-contact-icon-letter { font-family: var(--plp-font-sans); font-size: 27px; }
.plp-contact-icon svg {
  display: block;
  width: 24px;
  height: 24px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.plp-contact-card-social .plp-contact-icon svg { width: 25px; height: 25px; }
.plp-contact-card-social .plp-contact-icon svg path:only-child { fill: currentColor; stroke: none; }
.plp-contact-card-copy { min-width: 0; display: grid; gap: 6px; }
.plp-contact-card-copy strong { font-size: 18px; line-height: 1.15; }
.plp-contact-card-copy small { color: var(--plp-ink-soft); font-size: 13px; line-height: 1.45; }
.plp-contact-arrow { margin-left: auto; color: var(--plp-ink-soft); font-size: 23px; line-height: 1; }
.plp-contact-page-extra { margin-top: 30px; padding: 28px; border-radius: var(--plp-radius-md); background: var(--plp-blue-pale); color: var(--plp-ink-soft); line-height: 1.75; }
@media (max-width: 680px) {
  .plp-contact-grid { grid-template-columns: 1fr; gap: 12px; }
  .plp-contact-card { min-height: 118px; padding: 19px; gap: 14px; }
  .plp-contact-icon { width: 42px; height: 42px; font-size: 21px; }
  .plp-contact-card-copy strong { font-size: 16px; }
  .plp-contact-card-copy small { font-size: 12px; }
}


/* --------------------------------------------------------------------------
   v2.1.2.16 — English Account screen with registration + guest mode
   -------------------------------------------------------------------------- */
.plp-standard-page-content .plp-account-auth {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: clamp(18px, 3vw, 34px);
  align-items: start;
}
.plp-standard-page-content .plp-account-login-card,
.plp-standard-page-content .plp-account-register-card {
  padding: clamp(22px, 3.2vw, 38px);
  border: 1px solid var(--plp-line);
  border-radius: 24px;
  background: #fff;
  color: var(--plp-ink);
  box-shadow: 0 14px 34px rgba(43, 9, 52, .06);
}
.plp-standard-page-content .plp-account-register-card {
  scroll-margin-top: 28px;
  background: linear-gradient(145deg, #fff, var(--plp-blue-pale));
}
.plp-standard-page-content .plp-account-auth h2 {
  margin: 7px 0 8px;
  color: var(--plp-ink);
  font-size: clamp(27px, 3vw, 38px);
  letter-spacing: -.035em;
  line-height: 1.05;
}
.plp-account-intro { margin: 0 0 22px; color: var(--plp-ink-soft); line-height: 1.65; }
.plp-standard-page-content .plp-account-auth .woocommerce-form-login,
.plp-standard-page-content .plp-account-auth .woocommerce-form-register {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.plp-standard-page-content .plp-account-auth .form-row { margin: 0 0 16px; }
.plp-standard-page-content .plp-account-auth label {
  display: inline-block;
  margin: 0 0 7px;
  color: var(--plp-ink);
  font-size: 13px;
  font-weight: 800;
}
.plp-standard-page-content .plp-account-auth .input-text {
  width: 100%;
  min-height: 52px;
  padding: 13px 15px;
  border: 1px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
  color: var(--plp-ink);
  box-shadow: none;
}
.plp-standard-page-content .plp-account-auth .input-text:focus {
  outline: 0;
  border-color: var(--plp-ink);
  box-shadow: 0 0 0 3px rgba(43, 9, 52, .12);
}
.plp-account-login-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 3px 0 19px;
}
.plp-standard-page-content .plp-account-login-row .woocommerce-form__label { display: inline-flex; align-items: center; gap: 7px; margin: 0; font-weight: 700; }
.plp-standard-page-content .plp-account-login-row input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--plp-ink); }
.plp-account-forgot { color: var(--plp-blue) !important; font-size: 13px; font-weight: 800; }
.plp-standard-page-content .plp-account-auth .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--plp-ink);
  border-radius: 999px;
  background: var(--plp-ink);
  color: #fff !important;
  font-weight: 850;
  line-height: 1;
  text-align: center;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.plp-standard-page-content .plp-account-auth .button:hover { transform: translateY(-1px); background: var(--plp-blue-deep); color: #fff !important; }
.plp-account-choice {
  display: grid;
  gap: 13px;
  margin-top: 28px;
  padding: 19px;
  border: 1px solid var(--plp-line);
  border-radius: 18px;
  background: var(--plp-blue-pale);
}
.plp-account-choice-copy { display: grid; gap: 3px; }
.plp-account-choice-copy strong { color: var(--plp-ink); font-size: 15px; }
.plp-account-choice-copy span,
.plp-account-guest-note { color: var(--plp-ink-soft); font-size: 12px; line-height: 1.55; }
.plp-account-choice-actions { display: flex; flex-wrap: wrap; gap: 10px; }
/* Keep the Create an account action readable before and after a tap/click.
   This shared rule applies to both desktop and mobile account screens. */
.plp-standard-page-content .plp-account-auth .plp-account-outline-button,
.plp-standard-page-content .plp-account-auth .plp-account-outline-button:visited {
  border-color: var(--plp-ink);
  background: var(--plp-ink);
  color: #fff !important;
}
.plp-standard-page-content .plp-account-auth .plp-account-outline-button:hover,
.plp-standard-page-content .plp-account-auth .plp-account-outline-button:focus,
.plp-standard-page-content .plp-account-auth .plp-account-outline-button:focus-visible,
.plp-standard-page-content .plp-account-auth .plp-account-outline-button:active {
  background: var(--plp-blue-deep);
  color: #fff !important;
}
.plp-standard-page-content .plp-account-auth .plp-account-guest-button {
  border-color: transparent;
  background: var(--plp-blue);
}
.plp-standard-page-content .plp-account-auth .plp-account-guest-button:hover { background: var(--plp-blue-deep); }
.plp-account-guest-note { margin: 0; }
.plp-account-password-note {
  margin: -3px 0 16px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.5;
}
@media (max-width: 780px) {
  .plp-standard-page-content .plp-account-auth { grid-template-columns: 1fr; }
  .plp-standard-page-content .plp-account-login-card,
  .plp-standard-page-content .plp-account-register-card { padding: 22px 18px; }
}
@media (max-width: 420px) {
  .plp-account-login-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .plp-account-choice-actions { display: grid; grid-template-columns: 1fr; }
  .plp-standard-page-content .plp-account-auth .button { width: 100%; }
}

/* --------------------------------------------------------------------------
   v2.1.2.18 — compact mobile wordmark + visible Account control
   Keep the action group fully visible by giving the wordmark a smaller,
   responsive width on phones instead of allowing it to compete for space.
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  .plp-brand-logo-image {
    width: clamp(112px, 31vw, 136px);
    max-width: 136px;
  }

  .plp-header-actions {
    gap: 5px;
  }
}

@media (max-width: 420px) {
  /* Account was previously hidden at this breakpoint. With the compact logo,
     all header controls fit and remain available. */
  .plp-header-actions .plp-account-link,
  .plp-header-actions .plp-icon-link:nth-child(1) {
    display: inline-grid !important;
  }

  .plp-brand-logo-image {
    width: clamp(102px, 29vw, 118px);
    max-width: 118px;
  }

  .plp-header-actions {
    gap: 3px;
  }

  .plp-icon-link {
    width: 34px;
    height: 34px;
  }

  .plp-header-icon {
    width: 21px;
    height: 21px;
  }

  .plp-language-switcher .plp-language-details summary {
    min-width: 66px;
    min-height: 34px;
    padding: 6px 7px;
    font-size: 11px;
  }

  .plp-language-current {
    max-width: 52px;
  }
}



/* --------------------------------------------------------------------------
   v2.1.2.19 — roomier desktop menu + title-case footer labels
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  .plp-main-nav .plp-nav-menu {
    gap: clamp(34px, 3.8vw, 58px);
  }
}

/* Footer labels are written in Title Case in the markup. Do not force them
   back to all-uppercase; preserve the intended capitalization consistently. */
.plp-footer h2 {
  text-transform: none;
  letter-spacing: .025em;
  font-size: 12px;
}

/* --------------------------------------------------------------------------
   v2.1.2.20 — Compact account/cart header and product-search focus cleanup
   -------------------------------------------------------------------------- */
/* Account and Cart intentionally use the same GILIPET shell without a product
   search field. Reflow the two remaining header groups instead of leaving an
   empty centre grid column. */
.plp-header-main--without-search {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 102px;
}

/* Product archives, product-category pages, and single-product pages should
   never show a browser-native dotted focus rectangle inside the header search.
   The rounded search shell remains the visible focus cue. */
body.post-type-archive-product .plp-search,
body.tax-product_cat .plp-search,
body.tax-product_tag .plp-search,
body.single-product .plp-search,
body.woocommerce-shop .plp-search,
body.post-type-archive-product .plp-search input,
body.tax-product_cat .plp-search input,
body.tax-product_tag .plp-search input,
body.single-product .plp-search input,
body.woocommerce-shop .plp-search input,
body.post-type-archive-product .plp-search input:focus,
body.tax-product_cat .plp-search input:focus,
body.tax-product_tag .plp-search input:focus,
body.single-product .plp-search input:focus,
body.woocommerce-shop .plp-search input:focus,
body.post-type-archive-product .plp-search input:focus-visible,
body.tax-product_cat .plp-search input:focus-visible,
body.tax-product_tag .plp-search input:focus-visible,
body.single-product .plp-search input:focus-visible,
body.woocommerce-shop .plp-search input:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
  -webkit-tap-highlight-color: transparent;
}

body.post-type-archive-product .plp-search input:focus,
body.tax-product_cat .plp-search input:focus,
body.tax-product_tag .plp-search input:focus,
body.single-product .plp-search input:focus,
body.woocommerce-shop .plp-search input:focus,
body.post-type-archive-product .plp-search input:focus-visible,
body.tax-product_cat .plp-search input:focus-visible,
body.tax-product_tag .plp-search input:focus-visible,
body.single-product .plp-search input:focus-visible,
body.woocommerce-shop .plp-search input:focus-visible {
  box-shadow: none !important;
}

body.post-type-archive-product .plp-search:focus-within,
body.tax-product_cat .plp-search:focus-within,
body.tax-product_tag .plp-search:focus-within,
body.single-product .plp-search:focus-within,
body.woocommerce-shop .plp-search:focus-within {
  outline: none !important;
  border-color: var(--plp-blue);
  box-shadow: 0 0 0 3px rgba(43, 9, 52, .14);
}

@media (max-width: 780px) {
  .plp-header-main--without-search {
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 72px;
  }
}



/* --------------------------------------------------------------------------
   Mobile featured-product carousel (v2.1.2.21)
   The desktop homepage remains a four-column grid. On phones, the card track
   becomes a horizontally swipable, snap-aligned row so products do not fill
   the entire screen one at a time.
   -------------------------------------------------------------------------- */
.plp-featured-carousel {
  min-width: 0;
}

@media (max-width: 780px) {
  #shop-all .plp-featured-carousel {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
    padding: 0 1px 9px;
  }

  #shop-all .plp-featured-carousel::-webkit-scrollbar {
    display: none;
  }

  #shop-all .plp-featured-carousel .plp-product-grid {
    display: flex;
    grid-template-columns: none;
    width: max-content;
    gap: 12px;
    padding: 0 1px;
  }

  #shop-all .plp-featured-carousel .plp-product-card {
    flex: 0 0 clamp(152px, 46vw, 186px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  #shop-all .plp-featured-carousel .plp-product-image {
    min-height: 146px;
  }

  #shop-all .plp-featured-carousel .plp-product-image img {
    height: 146px;
  }

  #shop-all .plp-featured-carousel .plp-product-copy {
    min-height: 122px;
    padding: 12px;
  }

  #shop-all .plp-featured-carousel .plp-product-title {
    font-size: 13px;
    line-height: 1.3;
  }

  #shop-all .plp-featured-carousel .plp-product-price {
    margin-top: 6px;
    font-size: 13px;
  }

  #shop-all .plp-featured-carousel .plp-card-action {
    padding-top: 10px;
    font-size: 11px;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22 — Product-search visual shell and native focus repair
   The autocomplete dropdown needs overflow: visible, but WooCommerce/Astra
   can then repaint the input as a square white box on shop pages. Explicitly
   restore the pill geometry on the input and submit side independently.
   -------------------------------------------------------------------------- */
.plp-header .plp-search {
  overflow: visible;
  border: 1px solid var(--plp-line) !important;
  border-radius: 999px !important;
  background: var(--plp-white) !important;
  isolation: isolate;
}

.plp-header .plp-search > input[type="search"] {
  min-width: 0;
  border: 0 !important;
  border-radius: 999px 0 0 999px !important;
  background: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.plp-header .plp-search > button[type="submit"] {
  flex: 0 0 auto;
  border: 0 !important;
  border-radius: 0 999px 999px 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.plp-header .plp-search > input[type="search"]::-webkit-search-decoration,
.plp-header .plp-search > input[type="search"]::-webkit-search-cancel-button,
.plp-header .plp-search > input[type="search"]::-webkit-search-results-button,
.plp-header .plp-search > input[type="search"]::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
}

/* Product archives and individual product pages: never allow a native focus
   outline to reappear on top of the rounded search shell. */
body.post-type-archive-product .plp-search > input[type="search"]:focus,
body.post-type-archive-product .plp-search > input[type="search"]:focus-visible,
body.tax-product_cat .plp-search > input[type="search"]:focus,
body.tax-product_cat .plp-search > input[type="search"]:focus-visible,
body.tax-product_tag .plp-search > input[type="search"]:focus,
body.tax-product_tag .plp-search > input[type="search"]:focus-visible,
body.single-product .plp-search > input[type="search"]:focus,
body.single-product .plp-search > input[type="search"]:focus-visible,
body.woocommerce-shop .plp-search > input[type="search"]:focus,
body.woocommerce-shop .plp-search > input[type="search"]:focus-visible {
  outline: 0 !important;
  outline-offset: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.post-type-archive-product .plp-search:focus-within,
body.tax-product_cat .plp-search:focus-within,
body.tax-product_tag .plp-search:focus-within,
body.single-product .plp-search:focus-within,
body.woocommerce-shop .plp-search:focus-within {
  outline: 0 !important;
  border-color: var(--plp-blue) !important;
  box-shadow: 0 0 0 3px rgba(43, 9, 52, .14) !important;
}


/* --------------------------------------------------------------------------
   v2.1.2.22.1 — robust desktop dragging for the floating WhatsApp control
   -------------------------------------------------------------------------- */
.plp-whatsapp-float[data-plp-draggable="true"] {
  cursor: grab;
  -webkit-user-drag: none;
  user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  will-change: left, top;
}
.plp-whatsapp-float[data-plp-draggable="true"].is-dragging {
  cursor: grabbing;
}


/* v2.1.2.22.3 — unified open-source typography */
body.plp-storefront,
body.plp-storefront button,
body.plp-storefront input,
body.plp-storefront select,
body.plp-storefront textarea,
body.plp-storefront .woocommerce,
body.plp-storefront .woocommerce button,
body.plp-storefront .woocommerce input,
body.plp-storefront .woocommerce select,
body.plp-storefront .woocommerce textarea {
  font-family: var(--plp-font-sans);
}

body.plp-storefront h1,
body.plp-storefront h2,
body.plp-storefront h3,
.plp-product-summary .product_title,
.plp-personalization-fields legend,
.plp-product-detail-heading h2,
.plp-product-details summary,
.plp-product-reviews .comment-reply-title,
.plp-product-reviews #comments > h2,
.plp-related-products .related > h2,
.plp-related-products .upsells > h2,
.plp-shop-sidebar-heading h2,
.plp-review-grid blockquote,
.plp-service-grid span,
.plp-benefit-grid span,
.plp-process-grid span {
  font-family: var(--plp-font-serif);
}

/* Footer labels and compact navigation stay clean sans-serif. */
.plp-footer h2,
.plp-nav-menu,
.plp-button,
.plp-card-action,
.plp-whatsapp-float {
  font-family: var(--plp-font-sans);
}


/* v2.1.2.22.4 — keep three same-category cards visible on compact screens. */
@media (max-width: 780px) {
  .plp-same-category-carousel { margin-top: 15px; padding-top: 15px; }
  .plp-same-category-carousel-heading { align-items: center; margin-bottom: 10px; }
  .plp-same-category-kicker { margin-bottom: 3px; font-size: 8px; }
  .plp-same-category-carousel h2 { font-size: 18px; }
  .plp-same-category-carousel-controls { gap: 5px; }
  .plp-same-category-arrow { width: 28px; height: 28px; font-size: 22px; }
  .plp-same-category-carousel-track { grid-auto-columns: calc((100% - 16px) / 3); gap: 8px; }
  .plp-same-category-product-card > a { border-radius: 11px; }
  .plp-same-category-product-copy { gap: 3px; padding: 7px 7px 8px; }
  .plp-same-category-product-copy strong, .plp-same-category-product-price { font-size: 10px; }
  .plp-same-category-carousel-dots { margin-top: 10px; }
}


/* v2.1.2.22.5 — compact same-category swipe strip beneath the product image.
   The visual treatment intentionally uses a light, borderless product row like the supplied mobile reference. */
.plp-same-category-strip {
  margin-top: 18px;
  padding-top: 15px;
  border-top: 1px solid var(--plp-line);
}
.plp-same-category-strip-heading { margin: 0 0 11px; }
.plp-same-category-strip-kicker {
  display: block;
  margin: 0 0 3px;
  color: var(--plp-ink-soft);
  font-family: var(--plp-font-sans);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.3;
}
.plp-same-category-strip h2 {
  margin: 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -.01em;
  line-height: 1.25;
}
.plp-same-category-strip-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  touch-action: pan-y pinch-zoom;
  user-select: none;
}
.plp-same-category-strip-viewport::-webkit-scrollbar { display: none; }
.plp-same-category-strip-viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.plp-same-category-strip-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 24px) / 3);
  gap: 12px;
  min-width: 100%;
}
.plp-same-category-strip-card { min-width: 0; scroll-snap-align: start; }
.plp-same-category-strip-card > a { display: block; min-width: 0; color: inherit; }
.plp-same-category-strip-image-wrap {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #f7f6f5;
}
.plp-same-category-strip-image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .22s ease;
}
.plp-same-category-strip-card > a:hover .plp-same-category-strip-image-wrap img,
.plp-same-category-strip-card > a:focus-visible .plp-same-category-strip-image-wrap img { transform: scale(1.025); }
.plp-same-category-strip-card > a:focus-visible { outline: 2px solid var(--plp-blue); outline-offset: 3px; }
.plp-same-category-strip-copy {
  display: grid;
  gap: 3px;
  padding: 8px 1px 2px;
}
.plp-same-category-strip-copy strong {
  display: -webkit-box;
  overflow: hidden;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.plp-same-category-strip-price {
  min-height: 16px;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}
.plp-same-category-strip-price del { color: var(--plp-ink-soft); font-weight: 500; }
.plp-same-category-strip-price ins { text-decoration: none; }
@media (max-width: 768px) {
  .plp-same-category-strip { margin-top: 14px; padding-top: 14px; }
  .plp-same-category-strip-heading { margin-bottom: 9px; }
  .plp-same-category-strip-kicker { font-size: 10px; }
  .plp-same-category-strip h2 { font-size: 14px; }
  .plp-same-category-strip-viewport { margin-right: -2px; }
  .plp-same-category-strip-track {
    grid-auto-columns: calc((100% - 16px) / 2.16);
    gap: 8px;
    min-width: max-content;
  }
  .plp-same-category-strip-copy { padding-top: 7px; }
  .plp-same-category-strip-copy strong { font-size: 11px; }
  .plp-same-category-strip-price { font-size: 10px; }
}


/* v2.1.2.22.6 — mobile product gallery scales down proportionally.
   The desktop product media remains unchanged. On phones, the image/strip column
   keeps the same square gallery ratio but uses a centered, narrower width. */
@media (max-width: 780px) {
  .plp-single-product-grid > .plp-product-media {
    width: min(86vw, 430px);
    margin-inline: auto;
  }

  .plp-product-media .woocommerce-product-gallery__wrapper {
    aspect-ratio: 1 / 1;
  }
}

@media (max-width: 360px) {
  .plp-single-product-grid > .plp-product-media {
    width: min(88vw, 360px);
  }
}


/* v2.1.2.22.7 — same-category heading, three-across phone strip, and fixed phone product actions. */
.plp-mobile-product-actions { display: none; }

@media (max-width: 768px) {
  /* Exactly three related products are visible in the centred media column.
     Further products remain reachable with native horizontal swipe. */
  .plp-same-category-strip-track {
    grid-auto-columns: calc((100% - 16px) / 3);
    gap: 8px;
    min-width: 100%;
  }
  .plp-same-category-strip-heading { margin-bottom: 10px; }
  .plp-same-category-strip-kicker { font-size: 9px; letter-spacing: .01em; }
  .plp-same-category-strip h2 { font-size: 15px; }
  .plp-same-category-strip-copy { padding-top: 6px; }
  .plp-same-category-strip-copy strong { font-size: 10px; }
  .plp-same-category-strip-price { font-size: 9px; }

  /* Keep the bottom product bar above the device's safe-area inset and avoid
     covering the final product details while scrolling. */
  body.single-product .plp-main-content { padding-bottom: calc(94px + env(safe-area-inset-bottom)); }
  body.single-product .plp-whatsapp-float { bottom: calc(94px + env(safe-area-inset-bottom)); }

  .plp-mobile-product-actions {
    position: fixed;
    z-index: 1000;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: minmax(58px, .7fr) minmax(0, 1.35fr) minmax(0, 1.35fr);
    gap: 8px;
    align-items: stretch;
    padding: 9px 12px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(43, 9, 52, .12);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -12px 32px rgba(43, 9, 52, .12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .plp-mobile-product-actions button {
    min-width: 0;
    min-height: 46px;
    border-radius: 14px;
    font-family: var(--plp-font-sans);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    touch-action: manipulation;
  }

  .plp-mobile-product-favorite {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 4px;
    border: 1px solid var(--plp-line);
    background: #fff;
    color: var(--plp-ink);
  }
  .plp-mobile-product-favorite svg {
    width: 19px;
    height: 19px;
    fill: transparent;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }
  .plp-mobile-product-favorite span { font-size: 9px; }
  .plp-mobile-product-favorite.is-saved {
    border-color: var(--plp-blue);
    background: var(--plp-blue-pale);
    color: var(--plp-blue);
  }
  .plp-mobile-product-favorite.is-saved svg { fill: currentColor; }

  .plp-mobile-product-add {
    padding: 0 9px;
    border: 1px solid var(--plp-ink);
    background: #fff;
    color: var(--plp-ink);
  }
  .plp-mobile-product-buy {
    padding: 0 9px;
    border: 1px solid var(--plp-blue);
    background: var(--plp-blue);
    color: #fff;
  }
  .plp-mobile-product-actions button:focus-visible {
    outline: 2px solid var(--plp-blue);
    outline-offset: 2px;
  }

  .plp-single-product form.cart.plp-mobile-action-needs-selection {
    outline: 3px solid rgba(43, 9, 52, .18);
    outline-offset: 7px;
    border-radius: 14px;
  }
}

@media (max-width: 360px) {
  .plp-mobile-product-actions { gap: 6px; padding-inline: 8px; }
  .plp-mobile-product-actions button { min-height: 44px; font-size: 11px; }
  .plp-mobile-product-favorite span { font-size: 8px; }
  .plp-same-category-strip-copy strong { font-size: 9px; }
  .plp-same-category-strip-price { font-size: 8px; }
}

/* v2.1.2.22.8 — phone product pages use the fixed bottom action bar only.
   Keep option selectors and personalization fields visible; hide only the
   duplicated quantity control and the native Add to Cart button. */
@media (max-width: 768px) {
  .plp-single-product .plp-product-summary form.cart .quantity,
  .plp-single-product .plp-product-summary form.cart .single_add_to_cart_button,
  .plp-single-product .plp-product-summary form.cart .woocommerce-variation-add-to-cart .quantity,
  .plp-single-product .plp-product-summary form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    display: none !important;
  }

  .plp-single-product .plp-product-summary form.cart .woocommerce-variation-add-to-cart {
    min-height: 0;
    margin: 0;
    padding: 0;
  }
}



/* v2.1.2.22.9 — guarantee the custom phone purchase bar stays above third-party
   sticky-cart widgets. It is moved to <body> by main.js so no page container can
   clip or create a competing stacking context. */
@media (max-width: 768px) {
  body.single-product .plp-mobile-product-actions {
    position: fixed !important;
    z-index: 2147483000 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* v2.1.2.22.10 — equal-width mobile product actions with a quantity modal.
   The form's native quantity remains the source of truth; the modal only mirrors
   its value before it submits WooCommerce's standard product form. */
@media (max-width: 768px) {
  body.single-product .plp-mobile-product-actions {
    box-sizing: border-box;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100vw !important;
    gap: 7px !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    overflow: hidden;
  }

  body.single-product .plp-mobile-product-actions button {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 46px;
    margin: 0 !important;
    padding: 0 6px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: clamp(10px, 3vw, 12px);
  }

  body.single-product .plp-mobile-product-favorite {
    gap: 2px;
  }

  body.single-product .plp-mobile-product-modal[hidden] {
    display: none !important;
  }

  body.single-product .plp-mobile-product-modal {
    position: fixed;
    z-index: 2147483500;
    inset: 0;
    display: grid;
    place-items: end center;
    box-sizing: border-box;
  }

  body.single-product .plp-mobile-product-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 7, 25, .38);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  body.single-product .plp-mobile-product-modal-dialog {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: min(100%, 480px);
    padding: 20px 18px calc(18px + env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
    background: #fff;
    color: var(--plp-ink);
    box-shadow: 0 -18px 48px rgba(43, 9, 52, .22);
  }

  body.single-product .plp-mobile-product-modal-close {
    position: absolute;
    top: 12px;
    right: 13px;
    display: inline-grid;
    width: 34px;
    height: 34px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--plp-blue-pale);
    color: var(--plp-ink);
    font-size: 24px;
    line-height: 1;
  }

  body.single-product .plp-mobile-product-modal-kicker {
    display: block;
    margin-bottom: 4px;
    color: var(--plp-blue);
    font-family: var(--plp-font-sans);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  body.single-product .plp-mobile-product-modal h2 {
    max-width: calc(100% - 48px);
    margin: 0;
    font-family: var(--plp-font-serif);
    font-size: 25px;
    line-height: 1.06;
  }

  body.single-product .plp-mobile-product-modal-name {
    margin: 8px 0 18px;
    color: var(--plp-muted);
    font-size: 13px;
  }

  body.single-product .plp-mobile-product-modal-label {
    display: block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
  }

  body.single-product .plp-mobile-product-modal-quantity {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 14px;
  }

  body.single-product .plp-mobile-product-modal-quantity button,
  body.single-product .plp-mobile-product-modal-quantity input {
    box-sizing: border-box;
    min-height: 48px;
    border: 1px solid var(--plp-line);
    border-radius: 13px;
    background: #fff;
    color: var(--plp-ink);
    font: inherit;
    font-weight: 800;
    text-align: center;
  }

  body.single-product .plp-mobile-product-modal-quantity button {
    font-size: 24px;
    line-height: 1;
  }

  body.single-product .plp-mobile-product-modal-quantity input {
    width: 100%;
    appearance: textfield;
    -moz-appearance: textfield;
  }

  body.single-product .plp-mobile-product-modal-quantity input::-webkit-outer-spin-button,
  body.single-product .plp-mobile-product-modal-quantity input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
  }

  body.single-product .plp-mobile-product-modal-confirm {
    display: block;
    width: 100%;
    min-height: 50px;
    border: 1px solid var(--plp-blue);
    border-radius: 14px;
    background: var(--plp-blue);
    color: #fff;
    font-family: var(--plp-font-sans);
    font-size: 14px;
    font-weight: 850;
  }
}

@media (max-width: 360px) {
  body.single-product .plp-mobile-product-actions {
    gap: 5px !important;
    padding-inline: 7px !important;
  }
  body.single-product .plp-mobile-product-actions button {
    min-height: 44px;
    padding-inline: 4px;
    font-size: 10px;
  }
}


/* v2.1.2.22.11 — fixed phone purchase bar independent of browser desktop-mode
   viewport emulation. A real touch/coarse-pointer device receives the bar even
   when its browser exposes a wide CSS layout viewport. */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  body.single-product {
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
  }

  body.single-product .plp-main-content {
    padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }

  body.single-product .plp-mobile-product-actions {
    position: fixed !important;
    z-index: 2147483000 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
    width: 100% !important;
    max-width: 100vw !important;
    box-sizing: border-box;
    gap: 7px !important;
    margin: 0 !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    overflow: hidden;
    border-top: 1px solid rgba(43, 9, 52, .12);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -12px 32px rgba(43, 9, 52, .12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body.single-product .plp-mobile-product-actions button {
    display: inline-flex;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px;
    margin: 0 !important;
    padding: 0 6px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 14px;
    font-family: var(--plp-font-sans);
    font-size: clamp(10px, 3vw, 12px);
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    cursor: pointer;
    touch-action: manipulation;
  }

  body.single-product .plp-mobile-product-favorite {
    flex-direction: column;
    gap: 2px;
    border: 1px solid var(--plp-line);
    background: #fff;
    color: var(--plp-ink);
  }
  body.single-product .plp-mobile-product-favorite svg { width: 19px; height: 19px; }
  body.single-product .plp-mobile-product-favorite span { font-size: 9px; }
  body.single-product .plp-mobile-product-add { border: 1px solid var(--plp-ink); background: #fff; color: var(--plp-ink); }
  body.single-product .plp-mobile-product-buy { border: 1px solid var(--plp-blue); background: var(--plp-blue); color: #fff; }

  /* Generic hard-stop for wrappers that the theme guard detects as a competing
     third-party sticky cart. The class is applied by main.js at runtime. */
  body.single-product [data-plp-hidden-sticky-cart="true"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.single-product .plp-whatsapp-float {
    bottom: calc(94px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 360px), (hover: none) and (pointer: coarse) and (max-height: 700px) {
  body.single-product .plp-mobile-product-actions { gap: 5px !important; padding-inline: 7px !important; }
  body.single-product .plp-mobile-product-actions button { min-height: 44px; padding-inline: 4px; font-size: 10px; }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.12 — phone product page viewport/self-sizing fix
   --------------------------------------------------------------------------
   Some mobile browsers zoom the entire page out when WooCommerce/FlexSlider
   injects very wide inline widths into the product gallery wrapper. Keep all
   product-page media wrappers inside the phone viewport so the layout uses the
   real device width instead of a huge synthetic document width.
*/
@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  html,
  body.plp-storefront,
  body.single-product,
  body.single-product .plp-page-shell,
  body.single-product .plp-main-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.single-product .plp-container {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    min-width: 0 !important;
    margin-inline: auto !important;
  }

  body.single-product .plp-single-product-grid,
  body.single-product .plp-product-media,
  body.single-product .summary.entry-summary,
  body.single-product .plp-product-detail-section,
  body.single-product .plp-product-reviews {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere;
  }

  body.single-product .plp-product-media {
    width: min(86vw, 430px) !important;
    max-width: min(86vw, 430px) !important;
    margin-inline: auto !important;
    overflow: hidden !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper > div,
  body.single-product .plp-product-media .woocommerce-product-gallery__image,
  body.single-product .plp-product-media .woocommerce-product-gallery__image a,
  body.single-product .plp-product-media .woocommerce-product-gallery__image img {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    transform: none !important;
  }

  body.single-product .plp-same-category-strip,
  body.single-product .plp-same-category-strip-viewport {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-product .plp-same-category-strip-track {
    max-width: none !important;
  }
}

@media (max-width: 360px) {
  body.single-product .plp-container {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
  }

  body.single-product .plp-product-media {
    width: min(88vw, 360px) !important;
    max-width: min(88vw, 360px) !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.13 — centered header search shell + optically centered icon
   Every page that renders the storefront search now uses the same centered
   search column. Account and Cart intentionally keep their compact header.
   -------------------------------------------------------------------------- */
.plp-header .plp-search > button[type="submit"] {
  display: inline-grid !important;
  place-items: center !important;
  justify-content: center !important;
  align-content: center !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.plp-header .plp-search-submit-icon {
  display: block;
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translate(-.25px, -.25px);
  pointer-events: none;
}

/* Wide desktop: equal outer grid tracks keep the middle search column at the
   actual visual centre of the header, independent of the logo/actions widths. */
@media (min-width: 1200px) {
  .plp-header-main:not(.plp-header-main--without-search) {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 650px) minmax(0, 1fr);
    column-gap: clamp(18px, 2vw, 34px);
  }

  .plp-header-main:not(.plp-header-main--without-search) > .plp-brand {
    justify-self: start;
    min-width: 0;
  }

  .plp-header-main:not(.plp-header-main--without-search) > .plp-search {
    width: min(100%, 650px);
    justify-self: center;
  }

  .plp-header-main:not(.plp-header-main--without-search) > .plp-header-actions {
    justify-self: end;
    min-width: 0;
  }
}

/* Tablet and phone: put search on its own full row and centre that row. This
   prevents either the logo or action controls from shifting the search shell. */
@media (min-width: 781px) and (max-width: 1199px) {
  .plp-header-main:not(.plp-header-main--without-search) {
    min-height: auto;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 11px 16px;
    padding: 13px 0;
  }

  .plp-header-main:not(.plp-header-main--without-search) > .plp-search {
    grid-column: 1 / -1;
    grid-row: 2;
    width: min(100%, 650px);
    justify-self: center;
  }
}

@media (max-width: 780px) {
  .plp-header-main:not(.plp-header-main--without-search) > .plp-search {
    width: 100%;
    max-width: 650px;
    justify-self: center;
  }

  .plp-header .plp-search-submit-icon {
    width: 22px;
    height: 22px;
  }
}



/* v2.1.2.22.14 — dedicated About Us page, large promotional hero, and homepage Learn More route. */
.plp-page-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 26px;
  color: var(--plp-ink-soft);
  font-size: 14px;
  line-height: 1.4;
}
.plp-page-breadcrumb a {
  color: var(--plp-ink-soft);
  text-decoration: none;
}
.plp-page-breadcrumb a:hover,
.plp-page-breadcrumb a:focus-visible {
  color: var(--plp-ink);
  text-decoration: underline;
}
.plp-about-page-hero { padding: clamp(42px, 7vw, 98px) 0 clamp(48px, 7.5vw, 110px); background: linear-gradient(180deg, #fff 0%, #fbf3fd 100%); }
.plp-about-page-hero-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: center; gap: clamp(32px, 6vw, 92px); }
.plp-about-page-hero-copy { max-width: 560px; }
.plp-about-page-hero-copy h1 { margin: 11px 0 20px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(42px, 5vw, 76px); line-height: .98; letter-spacing: -.045em; }
.plp-about-page-hero-copy p { max-width: 510px; margin: 0; color: var(--plp-ink-soft); font-size: clamp(16px, 1.45vw, 20px); line-height: 1.65; }
.plp-about-page-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; }
.plp-about-page-hero-actions .plp-button { min-height: 48px; }
.plp-about-page-hero-image { position: relative; min-height: 0; margin: 0; overflow: hidden; border-radius: clamp(24px, 3vw, 42px); box-shadow: 0 24px 64px rgba(61, 13, 75, .15); background: #ead0f2; }
.plp-about-page-hero-image::after { content: ''; position: absolute; inset: auto 0 0; height: 25%; background: linear-gradient(180deg, transparent, rgba(46, 8, 55, .10)); pointer-events: none; }
.plp-about-page-hero-image img { display: block; width: 100%; min-height: 420px; aspect-ratio: 1.45 / 1; object-fit: cover; }
.plp-about-page-story { padding: clamp(54px, 8vw, 112px) 0; background: #fff; }
.plp-about-page-story-stack { display: grid; gap: clamp(32px, 5vw, 54px); }
.plp-about-page-story-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 76px); }
.plp-about-page-story-image { margin: 0; overflow: hidden; border-radius: clamp(24px, 3vw, 36px); background: #fbf3fd; border: 1px solid rgba(60, 10, 73, .10); box-shadow: 0 18px 42px rgba(61, 13, 75, .10); }
.plp-about-page-story-image img { display: block; width: 100%; min-height: 360px; aspect-ratio: 1.08 / 1; object-fit: cover; }
.plp-about-page-story-image--secondary img { object-fit: contain; padding: clamp(18px, 3vw, 34px); background: linear-gradient(180deg, #fdf8ff 0%, #f6ebfb 100%); }
.plp-about-page-story h2 { max-width: 650px; margin: 11px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(34px, 4vw, 57px); line-height: 1.04; letter-spacing: -.04em; }
.plp-about-page-story-copy { display: grid; gap: 16px; padding-top: 7px; color: var(--plp-ink-soft); font-size: 17px; line-height: 1.75; }
.plp-about-page-story-copy p { margin: 0; }
.plp-about-page-values { padding: clamp(42px, 6vw, 84px) 0; background: #ffffff; }
.plp-about-page-values-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(60, 10, 73, .13); border-radius: 24px; background: rgba(60, 10, 73, .13); }
.plp-about-page-values-grid article { min-height: 258px; padding: clamp(24px, 3vw, 38px); background: var(--plp-lilac); }
.plp-about-page-value-number { display: block; margin-bottom: 34px; color: var(--plp-blue); font-family: var(--plp-font-sans); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.plp-about-page-values h2 { margin: 0 0 12px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(24px, 2.3vw, 34px); line-height: 1.03; }
.plp-about-page-values p { max-width: 330px; margin: 0; color: var(--plp-ink-soft); font-size: 15px; line-height: 1.65; }
/* v2.1.2.22.47 — About Us CTA: remove the purple panel and use its brand purple as the text/button accent. */
.plp-about-page-cta { --plp-about-cta-purple: #5a1d68; padding: clamp(46px, 7vw, 92px) 0; background: #fff; }
.plp-about-page-cta-inner { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: clamp(28px, 4vw, 56px); border-radius: 0; background: transparent; color: var(--plp-ink); }
.plp-about-page-cta .plp-kicker { color: var(--plp-about-cta-purple); }
.plp-about-page-cta h2 { margin: 10px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(33px, 4vw, 56px); line-height: .98; letter-spacing: -.035em; }
.plp-about-page-cta .plp-button-primary { border-color: var(--plp-about-cta-purple); background: var(--plp-about-cta-purple); color: #fff !important; white-space: nowrap; box-shadow: 0 10px 22px rgba(90,29,104,.20); }
.plp-about-page-cta .plp-button-primary:hover { border-color: #3d0a49; background: #3d0a49; }
.plp-about-page-extra { padding: 0 0 64px; background: #fff; }
.plp-about-page-extra .plp-container { max-width: 850px; }

@media (max-width: 820px) {
  .plp-page-breadcrumb { margin-bottom: 18px; font-size: 13px; }
  .plp-about-page-hero { padding: 34px 0 52px; }
  .plp-about-page-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .plp-about-page-hero-copy { max-width: none; }
  .plp-about-page-hero-copy h1 { font-size: clamp(39px, 11vw, 58px); }
  .plp-about-page-hero-image { order: -1; border-radius: 23px; }
  .plp-about-page-hero-image img { min-height: 0; aspect-ratio: 1.15 / 1; }
  .plp-about-page-story { padding: 56px 0; }
  .plp-about-page-story-row { grid-template-columns: 1fr; gap: 24px; }
  .plp-about-page-story-row--reverse .plp-about-page-story-copy { order: 0; }
  .plp-about-page-story-row--reverse .plp-about-page-story-image { order: 1; }
  .plp-about-page-story-image img { min-height: 0; aspect-ratio: 1.12 / 1; }
  .plp-about-page-story h2 { font-size: clamp(31px, 9vw, 45px); }
  .plp-about-page-story-copy { font-size: 16px; }
  .plp-about-page-values-grid { grid-template-columns: 1fr; border-radius: 19px; }
  .plp-about-page-values-grid article { min-height: 0; padding: 28px 25px; }
  .plp-about-page-value-number { margin-bottom: 19px; }
  .plp-about-page-cta-inner { display: grid; align-items: start; gap: 24px; padding: 30px 25px; border-radius: 21px; }
  .plp-about-page-cta h2 { font-size: clamp(32px, 9vw, 47px); }
  .plp-about-page-cta .plp-button-primary { justify-self: start; }
}

@media (max-width: 430px) {
  .plp-about-page-hero-actions { display: grid; grid-template-columns: 1fr; }
  .plp-about-page-hero-actions .plp-button { justify-content: center; }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.15 — Footer section labels match footer links
   -------------------------------------------------------------------------- */
/* The Shop, Customer Care, and Contact Us labels use exactly the same
   open-font, size, weight, and line-height as the links beneath them. */
.plp-footer h2,
.plp-footer h2 a {
  font-family: var(--plp-font-sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
  text-transform: none;
}

.plp-footer h2 {
  margin: 10px 0;
}

.plp-footer h2 a {
  display: block;
  margin: 0;
}

/* --------------------------------------------------------------------------
   v2.1.2.22.16 — Homepage shared content width
   Keep every homepage content block on the same visual column. Previously the
   hero was capped at 1140px, the category carousel at 1180px, while the
   service row could grow to the full 1460px site container.
   -------------------------------------------------------------------------- */
:root {
  --plp-home-content-width: var(--plp-container);
}

/* Hero, service highlights, categories, featured products and homepage About
   now use the same 1460px site-wide container as the header and product pages. */
.plp-main-content > .plp-hero > .plp-container,
.plp-main-content > .plp-service-strip,
.plp-main-content > .plp-section > .plp-container,
.plp-main-content > .plp-about-section > .plp-about-grid {
  width: min(var(--plp-home-content-width), calc(100% - 48px));
  max-width: var(--plp-home-content-width);
  margin-inline: auto;
}

/* The service strip is itself the shared-width block. Its inner grid must not
   apply a second container calculation, otherwise it becomes narrower than
   every other homepage module. */
.plp-main-content > .plp-service-strip > .plp-service-grid {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

/* Remove older per-section width caps so the inner carousel/grid fills the
   shared homepage column instead of introducing a second narrower alignment. */
.plp-main-content > .plp-hero > .plp-container .plp-hero-carousel,
.plp-main-content > #categories .plp-category-carousel {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

@media (max-width: 768px) {
  .plp-main-content > .plp-hero > .plp-container,
  .plp-main-content > .plp-service-strip,
  .plp-main-content > .plp-section > .plp-container,
  .plp-main-content > .plp-about-section > .plp-about-grid {
    width: min(var(--plp-home-content-width), calc(100% - 28px));
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.17 — Primary navigation aligned to the search-field width
   Keep the menu as a single 650px rail on desktop/tablet, matching the
   storefront search shell. Distribute the four primary items evenly rather
   than keeping them clustered around the centre.
   -------------------------------------------------------------------------- */
@media (min-width: 781px) {
  .plp-main-nav .plp-nav-scroll {
    width: min(650px, 100%);
    max-width: 650px;
    margin-inline: auto;
  }

  .plp-main-nav .plp-nav-menu {
    width: 100%;
    min-width: 0;
    justify-content: space-between;
    gap: 0;
  }
}

@media (max-width: 780px) {
  .plp-main-nav .plp-nav-menu {
    width: 100%;
    justify-content: space-between;
    gap: 0;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.18 — larger, truly centred header-search icon
   Keep the magnifier optically centred inside the dark submit segment on all
   storefront pages without changing the search shell width or page layout.
   -------------------------------------------------------------------------- */
.plp-header .plp-search > button[type="submit"] {
  display: grid !important;
  place-items: center !important;
  align-items: center !important;
  justify-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  text-align: center !important;
}

.plp-header .plp-search > button[type="submit"] .plp-search-submit-icon {
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  transform: translate(-0.25px, -0.25px) !important;
}

/* --------------------------------------------------------------------------
   v2.1.2.22.19 — Categories chevron baseline alignment
   Keep the dropdown trigger visually level with the Categories word rather
   than sitting lower inside a tall button box. The invisible hit-area remains
   generous for touch use.
   -------------------------------------------------------------------------- */
.plp-nav-item-control {
  align-items: baseline;
}

.plp-category-menu-toggle {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  align-self: baseline;
  width: 1em;
  min-width: 1em;
  height: 1em;
  min-height: 0;
  margin: 0 0 0 .28em;
  padding: 0;
  font-size: 1em;
  line-height: 1;
  transform: translateY(-.07em);
}

/* Preserve a comfortable tap target without affecting text alignment. */
.plp-category-menu-toggle::before {
  content: "";
  position: absolute;
  inset: -9px -7px;
}

.plp-category-menu-toggle span {
  position: relative;
  display: block;
  line-height: .72;
  transform: translateY(-.03em);
}



/* --------------------------------------------------------------------------
   v2.1.2.22.23 — balanced Categories chevron
   Use a cleaner, smaller SVG chevron and center it vertically with the menu
   text so the icon no longer appears tilted or lower than the word itself.
   -------------------------------------------------------------------------- */
.plp-nav-item-control {
  align-items: center;
  gap: .18em;
}

.plp-category-menu-toggle {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: .92em;
  min-width: .92em;
  height: .92em;
  min-height: .92em;
  margin: 0 0 0 .14em;
  padding: 0;
  line-height: 1;
  transform: none;
  vertical-align: middle;
  color: currentColor;
}

/* Keep a generous hit area without affecting visible alignment. */
.plp-category-menu-toggle::before {
  content: "";
  position: absolute;
  inset: -10px -8px;
}

.plp-category-menu-toggle .plp-category-chevron {
  display: block;
  width: .78em;
  height: .78em;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.95;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform-origin: 50% 50%;
  transition: transform .2s ease;
}

/* Rotate the SVG when the dropdown opens. */
.plp-nav-item-has-dropdown.is-open .plp-category-menu-toggle .plp-category-chevron,
.plp-nav-item-has-dropdown:hover .plp-category-menu-toggle .plp-category-chevron,
.plp-nav-item-has-dropdown:focus-within .plp-category-menu-toggle .plp-category-chevron {
  transform: rotate(180deg);
}

/* --------------------------------------------------------------------------
   v2.1.2.22.21 — Scroll-away header + floating Back to Top control
   The site header belongs to normal document flow on every storefront page:
   it now scrolls upward with the page instead of remaining pinned to the
   viewport. The Top control sits just inside the right edge, immediately left
   of the browser scrollbar, and appears after the visitor starts scrolling.
   -------------------------------------------------------------------------- */
.plp-header {
  position: relative !important;
  top: auto !important;
}

.plp-back-to-top {
  position: fixed;
  right: 20px;
  bottom: 94px;
  z-index: 56;
  width: 50px;
  height: 50px;
  padding: 5px 0 4px;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 15px;
  background: var(--plp-blue-deep);
  color: #fff;
  box-shadow: 0 12px 24px rgba(43, 9, 52, .22);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  font-family: var(--plp-sans);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, background .2s ease;
}

.plp-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.plp-back-to-top:hover,
.plp-back-to-top:focus-visible {
  background: var(--plp-blue);
  color: #fff;
  outline: none;
}

.plp-back-to-top:focus-visible {
  box-shadow: 0 0 0 3px rgba(43, 9, 52, .22), 0 12px 24px rgba(43, 9, 52, .22);
}

.plp-back-to-top-icon {
  display: block;
  width: 18px;
  height: 18px;
  margin: -1px 0 -1px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 780px) {
  .plp-back-to-top {
    right: 14px;
    bottom: 86px;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    font-size: 9px;
  }

  .single-product .plp-back-to-top {
    bottom: 150px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .plp-back-to-top {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.22 — Back-to-Top follows the browser scrollbar thumb
   Native scrollbar geometry is not exposed by CSS, so JavaScript mirrors the
   thumb's calculated scroll position and keeps the control immediately to the
   left of the scrollbar track.
   -------------------------------------------------------------------------- */
.plp-back-to-top {
  top: var(--plp-top-control-y, calc(100vh - 144px)) !important;
  right: calc(var(--plp-scrollbar-width, 0px) + 8px) !important;
  bottom: auto !important;
  will-change: top, transform, opacity;
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, background .2s ease;
}

@media (max-width: 780px) {
  .plp-back-to-top,
  .single-product .plp-back-to-top {
    right: calc(var(--plp-scrollbar-width, 0px) + 6px) !important;
    bottom: auto !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.24 — Full-width, swipeable same-category recommendations
   The related strip now sits below the complete product overview rather than
   inside the gallery column. This gives it the same content width as the
   desktop product layout, keeps the mobile product price above the strip, and
   removes the unnecessary grey image-bottom area.
   -------------------------------------------------------------------------- */
.plp-single-product > .plp-container > .plp-same-category-strip {
  width: 100%;
  max-width: none;
  margin-top: clamp(38px, 5vw, 68px);
  padding-top: 22px;
  border-top: 1px solid var(--plp-line);
}

.plp-same-category-strip-heading {
  margin-bottom: 15px;
}

.plp-same-category-strip-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
}

.plp-same-category-strip-track {
  grid-auto-flow: column;
  min-width: 100%;
}

.plp-same-category-strip-card > a {
  height: auto;
  background: transparent;
}

.plp-same-category-strip-image-wrap {
  line-height: 0;
  aspect-ratio: 1 / .88;
  background: #fff;
}

.plp-same-category-strip-image-wrap img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center;
  vertical-align: top;
}

.plp-same-category-strip-copy {
  min-height: 0;
  padding: 8px 0 3px;
  background: transparent;
}

@media (min-width: 769px) {
  /* Six compact cards span the same desktop container as the product overview.
     Additional same-category products stay horizontally draggable/swipeable. */
  .plp-same-category-strip-track {
    grid-auto-columns: calc((100% - 70px) / 6);
    gap: 14px;
  }

  .plp-same-category-strip-image-wrap {
    aspect-ratio: 1 / .84;
  }

  .plp-same-category-strip-copy strong {
    font-size: 12px;
  }

  .plp-same-category-strip-price {
    font-size: 11px;
  }
}

@media (max-width: 768px) {
  /* Keep the phone strip deliberately smaller than the summary column so the
     three visible recommendation images feel compact rather than oversized. */
  body.single-product .plp-same-category-strip {
    width: min(82vw, 330px) !important;
    max-width: min(82vw, 330px) !important;
    margin: 25px auto 0 !important;
    padding-top: 14px;
  }

  body.single-product .plp-same-category-strip-viewport {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  body.single-product .plp-same-category-strip-track {
    grid-auto-columns: calc((100% - 16px) / 3);
    gap: 8px;
    min-width: 100%;
  }

  body.single-product .plp-same-category-strip-image-wrap {
    aspect-ratio: 1 / .82;
  }

  body.single-product .plp-same-category-strip-copy {
    padding-top: 6px;
  }

  body.single-product .plp-same-category-strip-copy strong {
    font-size: 9px;
    line-height: 1.25;
  }

  body.single-product .plp-same-category-strip-price {
    min-height: 0;
    font-size: 9px;
    line-height: 1.2;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.25 — Product lower-section tab navigation
   Product information, wholesale/custom entry points, recommendations, and
   reviews share one navigation rail. Choosing a tab swaps only the panel below
   it; the product gallery and purchase summary remain unchanged.
   -------------------------------------------------------------------------- */
.plp-product-lower-tabs {
  margin-top: clamp(38px, 5vw, 68px);
  border-top: 1px solid var(--plp-line);
}

.plp-product-lower-tab-list {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(26px, 4vw, 58px);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--plp-line);
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.plp-product-lower-tab-list::-webkit-scrollbar {
  display: none;
}

.plp-product-lower-tab {
  position: relative;
  flex: 0 0 auto;
  min-height: 62px;
  margin: 0;
  padding: 20px 0 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--plp-ink-soft);
  font-family: var(--plp-font-sans);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.plp-product-lower-tab::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--plp-blue);
  content: '';
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}

.plp-product-lower-tab.is-active,
.plp-product-lower-tab[aria-selected='true'] {
  color: var(--plp-ink);
}

.plp-product-lower-tab.is-active::after,
.plp-product-lower-tab[aria-selected='true']::after {
  transform: scaleX(1);
}

.plp-product-lower-tab:focus-visible {
  outline: 2px solid var(--plp-blue);
  outline-offset: -5px;
}

.plp-product-lower-tab-panels {
  min-width: 0;
}

.plp-product-tab-panel {
  min-width: 0;
  padding: clamp(28px, 4vw, 48px) 0 6px;
}

.plp-product-tab-panel[hidden] {
  display: none !important;
}

/* Product Info panel. */
.plp-product-basic-info {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(24px, 5vw, 76px);
  align-items: start;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: var(--plp-blue-pale);
}

.plp-product-basic-info-heading h2,
.plp-product-b2b-heading h2 {
  max-width: 570px;
  margin: 9px 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(29px, 3.5vw, 47px);
  line-height: 1.04;
  letter-spacing: -.03em;
}

.plp-product-basic-info-list {
  display: grid;
  gap: 0;
  margin: 0;
  border-top: 1px solid rgba(43, 9, 52, .14);
}

.plp-product-basic-info-list > div {
  display: grid;
  grid-template-columns: minmax(110px, .38fr) minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(43, 9, 52, .14);
}

.plp-product-basic-info-list dt {
  color: var(--plp-ink);
  font-size: 11px;
  font-weight: 850;
}

.plp-product-basic-info-list dd {
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.55;
}

.plp-product-basic-info-list dd a {
  color: var(--plp-ink);
  font-weight: 750;
}

.plp-product-tab-panel--info .plp-product-detail-section {
  margin-top: 38px;
  padding: 0 0 12px;
  border-top: 0;
}

/* Wholesale / custom panel. */
.plp-product-b2b-heading {
  max-width: 720px;
}

.plp-product-b2b-heading > p {
  max-width: 610px;
  margin: 16px 0 0;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.7;
}

.plp-product-b2b-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.plp-product-b2b-card {
  display: flex;
  min-height: 265px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
}

.plp-product-b2b-card:first-child {
  background: var(--plp-blue-pale);
}

.plp-product-b2b-card-label {
  color: var(--plp-blue);
  font-family: var(--plp-font-sans);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.plp-product-b2b-card h3 {
  max-width: 430px;
  margin: 18px 0 10px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(25px, 2.6vw, 34px);
  line-height: 1.05;
}

.plp-product-b2b-card p {
  max-width: 440px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 13px;
  line-height: 1.65;
}

.plp-product-b2b-card .plp-button {
  margin-top: auto;
  padding-top: 13px;
  padding-bottom: 13px;
}

/* Recommendation / review panels reuse the existing content, without a second
   exterior border or large top gap now that they live inside the tab panel. */
.plp-product-tab-panel--related .plp-same-category-strip {
  width: 100%;
  max-width: none;
  margin-top: 0 !important;
  padding-top: 0;
  border-top: 0;
}

.plp-product-tab-panel--related .plp-related-products {
  margin-top: 42px;
}

.plp-product-tab-panel--reviews .plp-product-reviews {
  padding: 0 0 42px;
}

@media (max-width: 780px) {
  .plp-product-lower-tabs {
    margin-top: 34px;
  }

  .plp-product-lower-tab-list {
    gap: 28px;
    margin-inline: -1px;
    padding-inline: 1px;
  }

  .plp-product-lower-tab {
    min-height: 55px;
    padding: 17px 0 15px;
    font-size: 12px;
  }

  .plp-product-tab-panel {
    padding-top: 25px;
  }

  .plp-product-basic-info {
    grid-template-columns: 1fr;
    gap: 21px;
    padding: 22px 19px;
    border-radius: 17px;
  }

  .plp-product-basic-info-heading h2,
  .plp-product-b2b-heading h2 {
    font-size: clamp(28px, 8.5vw, 39px);
  }

  .plp-product-basic-info-list > div {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 11px;
    padding: 12px 0;
  }

  .plp-product-basic-info-list dd {
    font-size: 11px;
  }

  .plp-product-tab-panel--info .plp-product-detail-section {
    margin-top: 31px;
    padding-bottom: 0;
  }

  .plp-product-b2b-heading > p {
    font-size: 13px;
  }

  .plp-product-b2b-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 22px;
  }

  .plp-product-b2b-card {
    min-height: 0;
    padding: 23px 20px;
    border-radius: 17px;
  }

  .plp-product-b2b-card h3 {
    margin-top: 14px;
    font-size: 28px;
  }

  .plp-product-b2b-card .plp-button {
    width: 100%;
    justify-content: center;
    margin-top: 20px;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip {
    width: min(82vw, 330px) !important;
    max-width: min(82vw, 330px) !important;
    margin: 0 auto !important;
  }

  .plp-product-tab-panel--reviews .plp-product-reviews {
    padding-bottom: 24px;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.26 — Product lower tabs matched to the product image column
   The tab rail now shares the exact desktop width of the left gallery column.
   It uses the requested lilac surface, dark inactive text, and a full dark
   active tab with white text. On phones it matches the compact gallery width
   and remains horizontally scrollable.
   -------------------------------------------------------------------------- */
@media (min-width: 781px) {
  .plp-product-lower-tab-list {
    /* First product-grid column = 52% of the available width after its gap.
       The subtracted clamp is 52% of the same grid gap. Only the navigation
       rail takes this width; the selected content panel keeps full width. */
    width: calc(52% - clamp(19.76px, 3.12vw, 48.88px));
    max-width: calc(52% - clamp(19.76px, 3.12vw, 48.88px));
    margin-right: auto;
    margin-left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
  }

  .plp-product-lower-tab {
    width: 100%;
    min-width: 0;
    text-align: center;
  }
}

.plp-product-lower-tabs {
  border-top: 0;
  background: transparent;
}

.plp-product-lower-tab-list {
  gap: 0;
  border-bottom: 0;
  background: #edcbf6;
}

.plp-product-lower-tab {
  color: #2b0934;
  background: #edcbf6;
  padding-right: 14px;
  padding-left: 14px;
  transition: background .2s ease, color .2s ease;
}

.plp-product-lower-tab::after {
  display: none;
}

.plp-product-lower-tab:hover,
.plp-product-lower-tab:focus-visible {
  color: #2b0934;
  background: rgba(255, 255, 255, .32);
}

.plp-product-lower-tab.is-active,
.plp-product-lower-tab[aria-selected='true'] {
  color: #fff;
  background: #2b0934;
}

.plp-product-lower-tab.is-active:hover,
.plp-product-lower-tab[aria-selected='true']:hover {
  color: #fff;
  background: #2b0934;
}

.plp-product-lower-tab:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -5px;
}

@media (max-width: 780px) {
  body.single-product .plp-product-lower-tab-list {
    width: min(86vw, 430px);
    max-width: min(86vw, 430px);
    gap: 0;
    margin-right: auto;
    margin-left: auto;
    padding-inline: 0;
    background: #edcbf6;
  }

  body.single-product .plp-product-lower-tab {
    flex: 0 0 auto;
    min-width: 156px;
    padding-right: 18px;
    padding-left: 18px;
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.27 — Product information tables, product-details panel, and
   destination/customization notices
   -------------------------------------------------------------------------- */
.plp-product-order-notices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.plp-product-order-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  min-height: 146px;
  padding: 17px 17px 16px;
  border: 1px solid var(--plp-line);
  border-radius: 17px;
  background: #fff;
}

.plp-product-order-notice--custom {
  border-color: #2b0934;
  background: #2b0934;
  color: #fff;
  box-shadow: 0 14px 28px rgba(43, 9, 52, .16);
}

.plp-product-order-notice--shipping {
  background: #edcbf6;
  border-color: rgba(43, 9, 52, .15);
}

.plp-product-order-notice-icon {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 10px;
  background: rgba(255, 255, 255, .17);
  color: #fff;
  font-size: 17px;
  line-height: 1;
}

.plp-product-order-notice--shipping .plp-product-order-notice-icon {
  background: rgba(43, 9, 52, .10);
  color: #2b0934;
}

.plp-product-order-notice-kicker {
  display: block;
  margin: 0 0 5px;
  color: rgba(255, 255, 255, .72);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.plp-product-order-notice--shipping .plp-product-order-notice-kicker {
  color: #6d3977;
}

.plp-product-order-notice strong {
  display: block;
  color: inherit;
  font-size: 13px;
  line-height: 1.35;
}

.plp-product-order-notice p {
  margin: 5px 0 0;
  color: inherit;
  font-size: 11px;
  line-height: 1.5;
  opacity: .82;
}


.plp-product-order-notice--custom p {
  color: #fff;
  opacity: 1;
}
.plp-product-order-notice a {
  display: inline-flex;
  gap: 5px;
  margin-top: 10px;
  color: #fff;
  font-size: 11px;
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.plp-product-information-stack {
  display: grid;
  gap: 24px;
}

.plp-product-information-card {
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 20px;
  background: #fff;
}

.plp-product-information-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 14px 28px;
  padding: 23px 25px 19px;
  border-bottom: 1px solid var(--plp-line);
  background: #fcf7fd;
}

.plp-product-information-heading h2 {
  margin: 7px 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(27px, 3vw, 40px);
  line-height: 1.03;
  letter-spacing: -.03em;
}

.plp-product-information-heading p {
  max-width: 390px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.55;
}

.plp-product-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.plp-product-dimension-table,
.plp-product-parameter-table {
  width: 100%;
  min-width: 710px;
  border-collapse: collapse;
  table-layout: fixed;
}

.plp-product-dimension-table th,
.plp-product-dimension-table td,
.plp-product-parameter-table th,
.plp-product-parameter-table td {
  padding: 14px 15px;
  border-right: 1px solid rgba(43, 9, 52, .10);
  border-bottom: 1px solid rgba(43, 9, 52, .10);
  text-align: left;
  vertical-align: middle;
}

.plp-product-dimension-table tr > *:last-child,
.plp-product-parameter-table tr > *:last-child {
  border-right: 0;
}

.plp-product-dimension-table tbody tr:last-child > *,
.plp-product-parameter-table tbody tr:last-child > * {
  border-bottom: 0;
}

.plp-product-dimension-table thead th {
  background: #f4edf6;
  color: var(--plp-ink);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}

.plp-product-dimension-table tbody th,
.plp-product-dimension-table td {
  color: var(--plp-ink-soft);
  font-size: 12px;
  font-weight: 500;
}

.plp-product-dimension-table tbody th {
  color: var(--plp-ink);
  font-weight: 800;
}

.plp-product-parameter-table th {
  width: 17%;
  background: #fcfafd;
  color: var(--plp-ink);
  font-size: 11px;
  font-weight: 850;
}

.plp-product-parameter-table td {
  width: 33%;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.plp-product-category-story {
  display: grid;
  grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr);
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
}

.plp-product-category-story-image {
  min-height: 280px;
  margin: 0;
  background: #f4edf6;
}

.plp-product-category-story-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plp-product-category-story-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(26px, 4vw, 54px);
}

.plp-product-category-story-copy h2 {
  margin: 8px 0 13px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(32px, 4vw, 55px);
  line-height: 1;
  letter-spacing: -.04em;
}

.plp-product-category-story-copy p {
  max-width: 580px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.7;
}

.plp-product-detail-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.plp-product-detail-facts article {
  min-height: 118px;
  padding: 19px 18px;
  border: 1px solid var(--plp-line);
  border-radius: 16px;
  background: #fcf7fd;
}

.plp-product-detail-facts span {
  display: block;
  margin-bottom: 8px;
  color: #74407d;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.plp-product-detail-facts strong {
  display: block;
  color: var(--plp-ink);
  font-size: 13px;
  line-height: 1.45;
}

.plp-product-tab-panel--details .plp-product-detail-section {
  margin-top: 38px;
  padding: 0 0 12px;
  border-top: 0;
}

@media (max-width: 780px) {
  .plp-product-order-notices {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 18px;
  }

  .plp-product-order-notice {
    min-height: 0;
    padding: 16px;
    border-radius: 15px;
  }

  .plp-product-information-stack {
    gap: 17px;
  }

  .plp-product-information-card {
    border-radius: 17px;
  }

  .plp-product-information-heading {
    display: block;
    padding: 20px 18px 16px;
  }

  .plp-product-information-heading h2 {
    font-size: 30px;
  }

  .plp-product-information-heading p {
    margin-top: 9px;
    font-size: 11px;
  }

  .plp-product-dimension-table,
  .plp-product-parameter-table {
    min-width: 650px;
  }

  .plp-product-dimension-table th,
  .plp-product-dimension-table td,
  .plp-product-parameter-table th,
  .plp-product-parameter-table td {
    padding: 12px 13px;
    font-size: 11px;
  }

  .plp-product-category-story {
    grid-template-columns: 1fr;
    border-radius: 17px;
  }

  .plp-product-category-story-image {
    min-height: 220px;
    max-height: 280px;
  }

  .plp-product-category-story-copy {
    padding: 24px 20px 26px;
  }

  .plp-product-category-story-copy h2 {
    font-size: 39px;
  }

  .plp-product-category-story-copy p {
    font-size: 13px;
  }

  .plp-product-detail-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
  }

  .plp-product-detail-facts article {
    min-height: 104px;
    padding: 15px 14px;
    border-radius: 14px;
  }

  .plp-product-tab-panel--details .plp-product-detail-section {
    margin-top: 28px;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.28 — Mobile product-tab rail fits every tab in one row
   The mobile rail uses four equal grid columns rather than four wide scrolling
   buttons. Long labels may wrap gracefully on very narrow phones, but every
   tab remains visible and selectable without horizontal scrolling.
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  body.single-product .plp-product-lower-tab-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(86vw, 330px) !important;
    max-width: min(86vw, 330px) !important;
    overflow: hidden !important;
    overscroll-behavior-inline: auto;
  }

  body.single-product .plp-product-lower-tab {
    display: flex;
    flex: 0 1 auto !important;
    width: 100%;
    min-width: 0 !important;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    padding: 7px 2px;
    font-size: clamp(8px, 2.45vw, 10px);
    line-height: 1.08;
    letter-spacing: -.025em;
    text-align: center;
    white-space: normal;
    overflow: hidden;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 350px) {
  body.single-product .plp-product-lower-tab {
    min-height: 50px;
    padding-inline: 1px;
    font-size: 8px;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.29 — Guaranteed one-row mobile product-tab rail
   Mobile browsers may expose a desktop-width CSS viewport. Apply the compact
   four-column layout to both narrow viewports and real coarse-pointer devices.
   Compact labels prevent any tab from being clipped while preserving the full
   accessible labels and full desktop labels.
   -------------------------------------------------------------------------- */
.plp-product-tab-label-compact {
  display: none;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  body.single-product .plp-product-lower-tab-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    width: min(86vw, 430px) !important;
    max-width: min(86vw, 430px) !important;
    min-width: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
    overscroll-behavior-inline: auto !important;
    scroll-snap-type: none !important;
  }

  body.single-product .plp-product-lower-tab {
    display: flex !important;
    grid-column: auto !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 6px 1px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: clamp(8px, 2.7vw, 11px) !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
  }

  body.single-product .plp-product-tab-label-full {
    display: none !important;
  }

  body.single-product .plp-product-tab-label-compact {
    display: block !important;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 350px), (hover: none) and (pointer: coarse) and (max-height: 600px) {
  body.single-product .plp-product-lower-tab-list {
    width: min(88vw, 430px) !important;
    max-width: min(88vw, 430px) !important;
  }

  body.single-product .plp-product-lower-tab {
    min-height: 45px !important;
    font-size: 8px !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.30 — Unified product-tab width, tighter spacing, rounded rail
   The tab rail and its selected content now share one product-image-width
   column on phones, removing the mismatched left/right edges. The rail uses
   the same soft rounded-corner language as the other product cards.
   -------------------------------------------------------------------------- */
.plp-product-lower-tabs {
  margin-top: clamp(20px, 3vw, 32px);
}

.plp-product-lower-tab-list {
  overflow: hidden;
  border-radius: 20px;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  body.single-product .plp-product-lower-tabs {
    width: min(86vw, 430px) !important;
    max-width: min(86vw, 430px) !important;
    min-width: 0 !important;
    margin-top: 20px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body.single-product .plp-product-lower-tab-list {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 17px !important;
    overflow: hidden !important;
  }

  body.single-product .plp-product-lower-tab-panels,
  body.single-product .plp-product-tab-panel,
  body.single-product .plp-product-information-stack,
  body.single-product .plp-product-information-card,
  body.single-product .plp-product-category-story,
  body.single-product .plp-product-reviews {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-product .plp-product-tab-panel {
    padding-top: 20px !important;
  }
}



/* --------------------------------------------------------------------------
   v2.1.2.22.31 — Mobile header-menu width + product-tab width alignment
   Keep the mobile primary navigation inside the same width as the search bar
   on every page. The single-product tab rail now matches the content width,
   stays inside the viewport, and keeps all four compact labels visible.
   -------------------------------------------------------------------------- */
@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  .plp-main-nav .plp-container {
    width: min(var(--plp-container), calc(100% - 28px)) !important;
    max-width: min(var(--plp-container), calc(100% - 28px)) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }

  .plp-main-nav .plp-nav-scroll {
    width: 100% !important;
    max-width: 100% !important;
  }

  .plp-main-nav .plp-nav-menu {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    justify-content: space-between !important;
    align-items: stretch !important;
    gap: clamp(6px, 2vw, 14px) !important;
    box-sizing: border-box !important;
  }

  .plp-main-nav .plp-nav-menu > li,
  .plp-main-nav .plp-nav-menu-managed > li {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    justify-content: center !important;
  }

  .plp-main-nav .plp-nav-item-control {
    display: inline-flex !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .18em !important;
  }

  .plp-main-nav .plp-nav-menu > li > a,
  .plp-main-nav .plp-nav-section-link,
  .plp-main-nav .plp-nav-menu-managed > li > a {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    padding-block: 12px !important;
    font-size: clamp(10px, 3vw, 12px) !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }

  .plp-main-nav .plp-category-menu-toggle {
    width: .9em !important;
    min-width: .9em !important;
    height: .9em !important;
    min-height: .9em !important;
    margin-left: .1em !important;
  }

  body.single-product .plp-product-lower-tabs {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-top: 18px !important;
    margin-inline: auto !important;
  }

  body.single-product .plp-product-lower-tab-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
    border-radius: 17px !important;
  }

  body.single-product .plp-product-lower-tab {
    display: flex !important;
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 6px 2px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: clamp(8.5px, 2.6vw, 10.5px) !important;
    line-height: 1.08 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
  }

  body.single-product .plp-product-lower-tab-panels,
  body.single-product .plp-product-tab-panel,
  body.single-product .plp-product-information-stack,
  body.single-product .plp-product-information-card,
  body.single-product .plp-product-category-story,
  body.single-product .plp-product-reviews {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 360px) {
  body.single-product .plp-product-lower-tab {
    font-size: 8px !important;
    padding-inline: 1px !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.32 — Denser section rhythm + unified readable content type
   The DevTools green highlight represents layout spacing, not a visible page
   colour. Homepage section padding is reduced while body copy is normalized
   into a readable, consistent hierarchy. UI/body copy uses DM Sans with Noto
   Sans SC fallback; editorial headings use DM Serif Display with Noto Serif
   SC fallback. All families are OFL-1.1 licensed and commercial-use friendly.
   -------------------------------------------------------------------------- */
:root {
  --plp-copy-size: 15px;
  --plp-copy-size-mobile: 14px;
  --plp-label-size: 13px;
  --plp-label-size-mobile: 12px;
  --plp-copy-line-height: 1.65;
}

/* One open-source sans family for equal-level body, UI, tabular and form copy. */
body.plp-storefront,
body.plp-storefront button,
body.plp-storefront input,
body.plp-storefront select,
body.plp-storefront textarea,
body.plp-storefront .woocommerce,
body.plp-storefront .woocommerce button,
body.plp-storefront .woocommerce input,
body.plp-storefront .woocommerce select,
body.plp-storefront .woocommerce textarea,
.plp-shop-results ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--plp-font-sans) !important;
}

/* Keep actual display headings on the matching open-source serif family. */
body.plp-storefront h1,
body.plp-storefront h2,
body.plp-storefront h3,
.plp-product-summary .product_title,
.plp-product-information-heading h2,
.plp-product-detail-heading h2,
.plp-product-category-story-copy h2,
.plp-product-reviews h2 {
  font-family: var(--plp-font-serif) !important;
}

/* Reduce the excess vertical space around homepage sections. */
.plp-main-content > .plp-section {
  padding-block: 72px;
}

.plp-main-content > .plp-section .plp-section-heading {
  margin-bottom: 28px;
}

.plp-category-carousel-controls {
  margin-top: 16px;
}

/* Standard body copy: visually +2px versus the former 12–13px treatment. */
.plp-hero-caption p,
.plp-section-intro,
.plp-service-grid p,
.plp-category-card small,
.plp-about-copy > p,
.plp-shop-archive-header p,
.plp-shop-archive .term-description,
.plp-shop-sidebar-note,
.plp-shop-toolbar,
.plp-product-summary .woocommerce-product-details__short-description,
.plp-product-order-notice p,
.plp-product-information-heading p,
.plp-product-b2b-heading > p,
.plp-product-b2b-card p,
.plp-product-category-story-copy .entry-content,
.plp-product-detail-content,
.plp-product-reviews .comment-content,
.plp-footer p,
.plp-standard-page .entry-content p,
.plp-standard-page .entry-content li {
  font-family: var(--plp-font-sans);
  font-size: var(--plp-copy-size);
  line-height: var(--plp-copy-line-height);
}

/* Equal-level action/card labels use the same Sans family and a unified scale. */
.plp-service-grid strong,
.plp-shop-category-link,
.plp-shop-results ul.products li.product .woocommerce-loop-product__title,
.plp-shop-results ul.products li.product .price,
.plp-shop-results ul.products li.product .button,
.plp-product-summary .variations label,
.plp-product-summary .reset_variations,
.plp-product-summary button.single_add_to_cart_button,
.plp-product-summary .product_meta,
.plp-product-order-notice strong,
.plp-product-order-notice a,
.plp-product-tab-panel--details .plp-product-detail-facts strong,
.plp-same-category-strip-copy strong,
.plp-same-category-strip-price,
.plp-footer h2,
.plp-footer h2 a,
.plp-footer a:not(.plp-brand) {
  font-family: var(--plp-font-sans) !important;
  font-size: var(--plp-copy-size);
  line-height: 1.45;
}

/* Small supporting labels remain consistently secondary, but are also +2px. */
.plp-kicker,
.plp-eyebrow,
.plp-service-grid span,
.plp-category-number,
.plp-shop-sidebar-heading .plp-kicker,
.plp-shop-category-link small,
.plp-product-order-notice-kicker,
.plp-product-summary .woocommerce-product-rating,
.plp-product-summary .stock,
.plp-product-table-wrap th,
.plp-product-table-wrap td,
.plp-product-detail-facts span,
.plp-footer-note,
.plp-shop-breadcrumb,
.plp-product-breadcrumb {
  font-family: var(--plp-font-sans) !important;
  font-size: var(--plp-label-size);
}

/* Preserve the decorative service numerals in the headline typeface. */
.plp-service-grid > div > span {
  font-family: var(--plp-font-serif) !important;
}

.plp-category-card small,
.plp-shop-sidebar-note,
.plp-product-order-notice p,
.plp-product-information-heading p,
.plp-product-detail-content,
.plp-product-table-wrap td {
  color: var(--plp-ink-soft);
}

/* Product-summary body and notices become easier to scan without changing titles. */
.plp-product-summary .woocommerce-product-details__short-description {
  font-size: 16px;
}

.plp-product-summary .variations select,
.plp-product-summary .quantity .qty {
  font-family: var(--plp-font-sans);
  font-size: 15px;
}

.plp-product-order-notice-kicker {
  line-height: 1.25;
}

.plp-product-order-notice strong {
  font-size: 15px;
}

.plp-product-order-notice p,
.plp-product-order-notice a {
  font-size: 13px;
}

/* Tables: headers and values use one open-source Sans family at readable sizes. */
.plp-product-dimension-table th,
.plp-product-parameter-table th {
  font-family: var(--plp-font-sans) !important;
  font-size: 13px;
  line-height: 1.35;
}

.plp-product-dimension-table td,
.plp-product-parameter-table td {
  font-family: var(--plp-font-sans) !important;
  font-size: 14px;
  line-height: 1.5;
}

/* Product cards and the category panel now share the same readable copy scale. */
.plp-category-card small,
.plp-same-category-strip-copy strong,
.plp-same-category-strip-price {
  font-size: 14px;
}

.plp-shop-category-link {
  font-size: 15px;
}

.plp-shop-category-link small,
.plp-shop-sidebar-note {
  font-size: 12px;
}

/* The four lower product tabs are UI labels: larger but still safe in one row. */
.plp-product-lower-tab {
  font-family: var(--plp-font-sans) !important;
  font-size: 14px;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  .plp-main-content > .plp-section {
    padding-block: 50px;
  }

  .plp-main-content > .plp-section .plp-section-heading {
    margin-bottom: 22px;
  }

  .plp-category-carousel-controls {
    margin-top: 13px;
  }

  .plp-hero-caption p,
  .plp-section-intro,
  .plp-service-grid p,
  .plp-category-card small,
  .plp-about-copy > p,
  .plp-shop-archive-header p,
  .plp-shop-archive .term-description,
  .plp-shop-sidebar-note,
  .plp-shop-toolbar,
  .plp-product-summary .woocommerce-product-details__short-description,
  .plp-product-order-notice p,
  .plp-product-information-heading p,
  .plp-product-b2b-heading > p,
  .plp-product-b2b-card p,
  .plp-product-category-story-copy .entry-content,
  .plp-product-detail-content,
  .plp-product-reviews .comment-content,
  .plp-footer p,
  .plp-standard-page .entry-content p,
  .plp-standard-page .entry-content li {
    font-size: var(--plp-copy-size-mobile);
  }

  .plp-service-grid strong,
  .plp-shop-category-link,
  .plp-shop-results ul.products li.product .woocommerce-loop-product__title,
  .plp-shop-results ul.products li.product .price,
  .plp-shop-results ul.products li.product .button,
  .plp-product-summary .variations label,
  .plp-product-summary .reset_variations,
  .plp-product-summary button.single_add_to_cart_button,
  .plp-product-summary .product_meta,
  .plp-product-order-notice strong,
  .plp-product-order-notice a,
  .plp-product-tab-panel--details .plp-product-detail-facts strong,
  .plp-same-category-strip-copy strong,
  .plp-same-category-strip-price,
  .plp-footer h2,
  .plp-footer h2 a,
  .plp-footer a:not(.plp-brand) {
    font-size: var(--plp-copy-size-mobile);
  }

  .plp-kicker,
  .plp-eyebrow,
  .plp-service-grid span,
  .plp-category-number,
  .plp-shop-sidebar-heading .plp-kicker,
  .plp-shop-category-link small,
  .plp-product-order-notice-kicker,
  .plp-product-summary .woocommerce-product-rating,
  .plp-product-summary .stock,
  .plp-product-table-wrap th,
  .plp-product-table-wrap td,
  .plp-product-detail-facts span,
  .plp-footer-note,
  .plp-shop-breadcrumb,
  .plp-product-breadcrumb {
    font-size: var(--plp-label-size-mobile);
  }

  .plp-product-summary .woocommerce-product-details__short-description {
    font-size: 15px;
  }

  .plp-product-summary .variations select,
  .plp-product-summary .quantity .qty {
    font-size: 14px;
  }

  .plp-product-dimension-table th,
  .plp-product-parameter-table th {
    font-size: 12px;
  }

  .plp-product-dimension-table td,
  .plp-product-parameter-table td {
    font-size: 13px;
  }

  body.single-product .plp-product-lower-tab {
    font-size: 12px !important;
  }
}


/* Preserve the intended display treatment of the three service numerals. */
.plp-service-grid > div > span {
  font-size: 25px;
  line-height: 1;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  .plp-service-grid > div > span {
    font-size: 23px;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.34 — Product Details direct image column + transaction accordion
   Product-gallery images are displayed directly in upload order rather than as
   a carousel. Each image remains square and uses the same left-column width as
   the main product image. The right column is reserved for the product-story
   copy and stays in view on desktop while the image column is read downward.
   -------------------------------------------------------------------------- */
.plp-product-details-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  align-items: start;
  /* Match the main product grid gap so each stacked detail image has
     exactly the same desktop width as the main product image above. */
  gap: clamp(38px, 6vw, 94px);
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.plp-product-details-images {
  display: grid;
  min-width: 0;
  gap: clamp(16px, 2vw, 24px);
}

.plp-product-details-image-item {
  width: 100%;
  aspect-ratio: 1 / 1;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fbf4fd;
}

.plp-product-details-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.plp-product-details-copy {
  position: sticky;
  top: 24px;
  display: flex;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1 / 1;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 4vw, 58px);
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
}

.plp-product-details-copy h2 {
  margin: 8px 0 16px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1;
  letter-spacing: -.04em;
}

.plp-product-details-copy-content {
  max-width: 580px;
  color: var(--plp-ink-soft);
  font-family: var(--plp-font-sans);
  font-size: var(--plp-copy-size);
  line-height: var(--plp-copy-line-height);
}

.plp-product-details-copy-content > :first-child {
  margin-top: 0;
}

.plp-product-details-copy-content > :last-child {
  margin-bottom: 0;
}

.plp-product-tab-panel--details .plp-product-detail-section--transaction {
  margin-top: clamp(30px, 4vw, 48px);
  padding: 0 0 12px;
  border-top: 0;
}

.plp-product-tab-panel--details .plp-product-detail-section--transaction .plp-product-details {
  border-top: 1px solid var(--plp-line);
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  .plp-product-details-showcase {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .plp-product-details-images {
    gap: 14px;
  }

  .plp-product-details-image-item {
    border-radius: 17px;
  }

  .plp-product-details-copy {
    position: static;
    aspect-ratio: auto;
    padding: 24px 20px 27px;
    border-radius: 17px;
  }

  .plp-product-details-copy h2 {
    font-size: clamp(34px, 10vw, 44px);
  }

  .plp-product-details-copy-content {
    font-size: var(--plp-copy-size-mobile);
  }

  .plp-product-tab-panel--details .plp-product-detail-section--transaction {
    margin-top: 26px;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.35 — Product Details image column viewport safeguard
   A few mobile browsers keep a wide layout viewport, causing the desktop
   image column to remain wider than the visible screen. Constrain the entire
   Details showcase to the available viewport and collapse it to one column
   before any gallery image can extend beyond the page edge.
   -------------------------------------------------------------------------- */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  body.single-product .plp-product-tab-panel--details,
  body.single-product .plp-product-details-showcase,
  body.single-product .plp-product-details-images,
  body.single-product .plp-product-details-image-item,
  body.single-product .plp-product-details-copy {
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .plp-product-details-showcase {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(100%, calc(100vw - 28px)) !important;
    max-width: min(100%, calc(100vw - 28px)) !important;
    margin-inline: auto !important;
    gap: 14px !important;
    overflow-x: clip !important;
  }

  body.single-product .plp-product-details-images {
    display: grid !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 14px !important;
  }

  body.single-product .plp-product-details-image-item {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
  }

  body.single-product .plp-product-details-image {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  body.single-product .plp-product-details-copy {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: auto !important;
    padding: 24px 20px 27px !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.36 — Desktop visible scrollbar for related products
   Keep six cards across the desktop viewport. When a category has more than
   six related products, its horizontal rail exposes a visible, draggable
   scrollbar below the cards in the GILIPET colour system.
   -------------------------------------------------------------------------- */
@media (min-width: 781px) {
  .plp-product-tab-panel--related .plp-same-category-strip-viewport {
    overflow-x: scroll;
    overflow-y: hidden;
    padding: 0 0 14px;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #2b0934 #edcbf6;
  }

  .plp-product-tab-panel--related .plp-same-category-strip-viewport::-webkit-scrollbar {
    display: block;
    width: auto;
    height: 11px;
  }

  .plp-product-tab-panel--related .plp-same-category-strip-viewport::-webkit-scrollbar-track {
    border: 1px solid rgba(43, 9, 52, .12);
    border-radius: 999px;
    background: #edcbf6;
  }

  .plp-product-tab-panel--related .plp-same-category-strip-viewport::-webkit-scrollbar-thumb {
    min-width: 58px;
    border: 2px solid #edcbf6;
    border-radius: 999px;
    background: #2b0934;
  }

  .plp-product-tab-panel--related .plp-same-category-strip-viewport::-webkit-scrollbar-thumb:hover {
    background: #5a1a69;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.38 — Mobile Product Info cleanup + Modern Cart layer priority
   -------------------------------------------------------------------------- */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  /* Keep only the actual section titles on phone. */
  body.single-product .plp-product-tab-panel--info .plp-product-information-heading .plp-kicker,
  body.single-product .plp-product-tab-panel--info .plp-product-information-heading p {
    display: none !important;
  }

  body.single-product .plp-product-tab-panel--info .plp-product-information-heading {
    padding-top: 18px !important;
    padding-bottom: 16px !important;
  }

  /* A single full-width cart action replaces Save + Buy Now. */
  body.single-product .plp-mobile-product-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom)) !important;
    z-index: 2147483000 !important;
  }

  body.single-product .plp-mobile-product-favorite,
  body.single-product .plp-mobile-product-buy {
    display: none !important;
  }

  body.single-product .plp-mobile-product-add {
    display: inline-flex !important;
    width: 100% !important;
    min-height: 48px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 14px !important;
    border: 1px solid #2b0934 !important;
    border-radius: 14px !important;
    background: #2b0934 !important;
    color: #fff !important;
    font-size: 13px !important;
  }

  /* The Modern Cart slide-out must always sit over the fixed product button.
     The exact plugin root visible in DevTools is .moderncart-panel. */
  html body .moderncart-panel {
    z-index: 2147483646 !important;
  }

  html body .moderncart-overlay,
  html body .moderncart-backdrop {
    z-index: 2147483645 !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.39 — Modern Cart drawer always clears the mobile product bar
   Modern Cart's own checkout footer must remain clickable. Raising only the
   drawer z-index is not enough when plugin transitions create a separate
   stacking context, so the GILIPET fixed Add to Cart bar is removed while the
   visible .moderncart-panel drawer is open and restored immediately on close.
   -------------------------------------------------------------------------- */
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
  html body .moderncart-panel {
    z-index: 2147483647 !important;
  }

  html body .moderncart-panel .moderncart-slide-out-cart,
  html body .moderncart-panel .moderncart-slide-out-footer {
    z-index: 2147483647 !important;
  }

  html body.plp-moderncart-open .plp-mobile-product-actions {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.40 — Timed success notice + mobile cart card layout
   Success notices close automatically after five seconds. On phones the
   WooCommerce cart table reflows into compact product cards, so every item,
   quantity control and subtotal fits inside the page without horizontal spill.
   -------------------------------------------------------------------------- */
.woocommerce-message.plp-auto-dismiss-notice {
  overflow: hidden;
  transition: opacity .28s ease, transform .28s ease, max-height .28s ease,
    margin .28s ease, padding-block .28s ease, border-width .28s ease;
}

.woocommerce-message.plp-auto-dismiss-notice.plp-auto-dismiss-leaving {
  max-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-top-width: 0 !important;
  border-bottom-width: 0 !important;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  /* Reset the old desktop-width scroll table. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form {
    overflow: visible !important;
    padding: 10px !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form .shop_table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: transparent !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table thead {
    display: none !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table tbody {
    display: grid !important;
    gap: 12px;
    width: 100%;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item {
    display: grid !important;
    grid-template-columns: 76px minmax(0, 1fr) !important;
    grid-template-areas:
      "thumbnail name"
      "thumbnail price"
      "thumbnail quantity"
      "thumbnail subtotal"
      "remove remove";
    gap: 8px 13px;
    width: 100% !important;
    min-width: 0 !important;
    padding: 15px !important;
    border: 1px solid var(--plp-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table tr.woocommerce-cart-form__cart-item > td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-thumbnail {
    grid-area: thumbnail;
    align-self: start;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-thumbnail a,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-thumbnail img {
    display: block;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-thumbnail img {
    width: 76px !important;
    max-width: 76px !important;
    height: 76px !important;
    max-height: 76px !important;
    border-radius: 12px;
    object-fit: cover;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-name {
    grid-area: name;
    min-width: 0;
    color: var(--plp-ink);
    font-family: var(--plp-font-sans) !important;
    font-size: 15px !important;
    font-weight: 750;
    line-height: 1.35;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-name a {
    color: inherit;
    font: inherit;
    text-decoration: none;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal {
    display: flex !important;
    grid-column: 2;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--plp-ink);
    font-family: var(--plp-font-sans) !important;
    font-size: 14px !important;
    line-height: 1.35;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price { grid-area: price; }
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity { grid-area: quantity; }
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal { grid-area: subtotal; font-weight: 800; }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal::before {
    flex: 0 0 auto;
    color: var(--plp-ink-soft);
    font-family: var(--plp-font-sans) !important;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price::before { content: attr(data-title); }
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity::before { content: attr(data-title); }
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal::before { content: attr(data-title); }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity .qty {
    margin: 0 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity .qty {
    width: 58px !important;
    min-height: 36px !important;
    padding-inline: 6px !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 14px !important;
    text-align: center;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove {
    grid-area: remove;
    justify-self: start;
    margin-top: 2px !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border: 1px solid var(--plp-line);
    border-radius: 999px;
    color: var(--plp-ink-soft) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 0 !important;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove::after {
    content: "Remove";
    font-size: 12px;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table tr.actions {
    display: block !important;
    width: 100% !important;
    padding: 2px 0 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form table.shop_table tr.actions > td {
    display: grid !important;
    width: 100% !important;
    gap: 10px;
    padding: 0 !important;
    border: 0 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    width: 100%;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon .input-text {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 10px 11px !important;
    border: 1px solid var(--plp-line) !important;
    border-radius: 10px !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 13px !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon button,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions > button,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions input[name="update_cart"] {
    width: 100% !important;
    min-height: 42px;
    margin: 0 !important;
    padding: 9px 12px !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 13px !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals {
    margin-top: 18px;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals {
    padding: 17px !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.41 — Mobile cart controls, totals fit, and Modern Cart routing
   Keep each cart line legible on a phone: labels and prices use the same
   type scale, quantities get true +/- controls, coupon controls share one
   line, and the Cart Totals table stays inside the page width.
   -------------------------------------------------------------------------- */
@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  /* Product card labels and monetary values share one visual scale. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal {
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .72em !important;
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price .woocommerce-Price-amount,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal .woocommerce-Price-amount {
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal::before {
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  /* Desktop-style quantity stepper, kept level with the Quantity label. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity {
    display: inline-flex !important;
    width: auto !important;
    min-height: 40px !important;
    align-items: stretch !important;
    overflow: hidden !important;
    border: 1px solid var(--plp-line) !important;
    border-radius: 11px !important;
    background: #fff !important;
    vertical-align: middle !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity .qty {
    width: 42px !important;
    min-width: 42px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 3px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 40px !important;
    text-align: center !important;
    appearance: textfield;
    -moz-appearance: textfield;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity .qty::-webkit-inner-spin-button,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity .qty::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
  }

  body.woocommerce-cart .plp-standard-page-content .plp-cart-quantity-step {
    display: inline-grid !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer;
  }

  body.woocommerce-cart .plp-standard-page-content .plp-cart-quantity-step:first-child {
    border-right: 1px solid var(--plp-line) !important;
  }

  body.woocommerce-cart .plp-standard-page-content .plp-cart-quantity-step:last-child {
    border-left: 1px solid var(--plp-line) !important;
  }

  body.woocommerce-cart .plp-standard-page-content .plp-cart-quantity-step:active,
  body.woocommerce-cart .plp-standard-page-content .plp-cart-quantity-step:focus-visible {
    background: var(--plp-blue-pale) !important;
    outline: none !important;
  }

  /* Text-only remove link: no inherited circular control. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #2b0934 !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 0 !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove::after {
    content: 'Remove' !important;
    color: #2b0934 !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove:hover,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-remove a.remove:focus-visible {
    color: #2b0934 !important;
    background: transparent !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    outline: none !important;
  }

  /* Coupon field and Apply Coupon remain a single, compact row. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon .input-text {
    width: auto !important;
    min-width: 0 !important;
    flex: 1 1 0 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.actions .coupon button {
    width: auto !important;
    min-width: 108px !important;
    max-width: 42% !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  /* Cart Totals uses a true two-column table rather than Woo's stacked
     data-title layout, avoiding widths that spill outside a narrow phone. */
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals {
    overflow: hidden !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .shop_table {
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table tbody,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table tr {
    display: table-row-group !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table tr {
    display: table-row !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table th,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td[data-title],
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td {
    display: table-cell !important;
    float: none !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
    padding: 11px 8px !important;
    border-color: var(--plp-line) !important;
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    vertical-align: top !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table th {
    width: 43% !important;
    font-weight: 750 !important;
    text-align: left !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td[data-title],
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td {
    width: 57% !important;
    text-align: right !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td::before {
    display: none !important;
    content: none !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .woocommerce-shipping-methods,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .woocommerce-shipping-destination,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .shipping-calculator-form {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.42 — Cart coupon labels and manual WhatsApp shipping status
   -------------------------------------------------------------------------- */
body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals tr.plp-cart-whatsapp-shipping th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.plp-cart-whatsapp-shipping th {
  color: var(--plp-ink) !important;
  font-family: var(--plp-font-sans) !important;
  font-weight: 750 !important;
}

body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals tr.plp-cart-whatsapp-shipping th a,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.plp-cart-whatsapp-shipping th a {
  color: #2b0934 !important;
  font: inherit !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .plp-cart-whatsapp-shipping-status,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .plp-cart-whatsapp-shipping-status {
  display: inline-block;
  color: var(--plp-ink-soft) !important;
  font-family: var(--plp-font-sans) !important;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  white-space: normal;
}

/* The old welcome15 code was a shipping placeholder rather than a customer
   promotion. Hide it defensively during the transition; PHP also removes it
   from the active cart so it cannot affect totals. */
body.woocommerce-cart .plp-standard-page-content tr.cart-discount.coupon-welcome15,
body.woocommerce-checkout tr.cart-discount.coupon-welcome15 {
  display: none !important;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  /* Make each mobile product detail line a real flex row. This keeps labels,
     amount, and the +/- quantity control on a shared horizontal baseline. */
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-price,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-subtotal {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
  }

  /* Remove all inherited Astra/Woo circular treatments, including the ×
     pseudo-element, leaving one compact deep-purple text action. */
  body.woocommerce-cart .woocommerce-cart-form a.remove,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form a.remove {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #2b0934 !important;
    font-size: 0 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
  }

  body.woocommerce-cart .woocommerce-cart-form a.remove::before,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form a.remove::before {
    display: none !important;
    content: none !important;
  }

  body.woocommerce-cart .woocommerce-cart-form a.remove::after,
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form a.remove::after {
    content: 'Remove' !important;
    color: #2b0934 !important;
    font-family: var(--plp-font-sans) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
  }

  /* Cart-total cells remain two fixed columns and the manual shipping status
     wraps safely inside its amount cell rather than widening the page. */
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals tr.plp-cart-whatsapp-shipping th {
    width: 50% !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals tr.plp-cart-whatsapp-shipping td {
    width: 50% !important;
    text-align: right !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .plp-cart-whatsapp-shipping-status {
    font-size: 12px !important;
    overflow-wrap: anywhere !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.43 — Mobile related products: three columns × two rows
   Related items are grouped into swipe pages of six. Desktop retains six
   cards in one row; phone-sized screens show a compact 3-by-2 grid per page
   and swipe horizontally only when more than six recommendations exist.
   -------------------------------------------------------------------------- */
.plp-product-tab-panel--related .plp-same-category-strip-track {
  display: flex !important;
  width: 100% !important;
  min-width: 100% !important;
  gap: 14px !important;
}

.plp-product-tab-panel--related .plp-same-category-strip-page {
  display: grid;
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  scroll-snap-align: start;
}

.plp-product-tab-panel--related .plp-same-category-strip-card {
  min-width: 0;
  scroll-snap-align: none;
}

@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  /* Use the available tab-panel width so three cards remain legible. */
  body.single-product .plp-product-tab-panel--related .plp-same-category-strip {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-viewport {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-viewport::-webkit-scrollbar {
    display: none;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-track {
    gap: 10px !important;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-page {
    flex-basis: 100%;
    width: 100%;
    min-width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, auto);
    column-gap: 8px;
    row-gap: 14px;
    align-content: start;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-image-wrap {
    aspect-ratio: 1 / .92;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-copy {
    min-height: 43px;
    padding-top: 6px;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-copy strong {
    font-size: 10px;
    line-height: 1.25;
  }

  body.single-product .plp-product-tab-panel--related .plp-same-category-strip-price {
    min-height: 12px;
    font-size: 9px;
    line-height: 1.2;
  }
}



/* --------------------------------------------------------------------------
   v2.1.2.22.44 — Fine-tune mobile Cart quantity alignment
   On some mobile browsers the native WooCommerce quantity wrapper paints a
   few pixels below the flex-row centre. Lift only the visual stepper so its
   centre line aligns with the "Quantity" label; the cart grid itself remains
   unchanged.
   -------------------------------------------------------------------------- */
@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  body.woocommerce-cart .plp-standard-page-content .woocommerce-cart-form td.product-quantity .quantity {
    position: relative !important;
    top: -6px !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.45 — No WooCommerce success banners on Shop / Product / Cart
   Keep errors visible, but remove success messages from the requested pages.
   Valid coupons still apply and remain visible in Cart Totals without showing
   a success banner.
   -------------------------------------------------------------------------- */
body.single-product .woocommerce-message,
body.woocommerce-cart .woocommerce-message,
body.post-type-archive-product .woocommerce-message,
body.tax-product_cat .woocommerce-message,
body.tax-product_tag .woocommerce-message {
  display: none !important;
}

body.single-product .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce-notices-wrapper,
body.post-type-archive-product .woocommerce-notices-wrapper,
body.tax-product_cat .woocommerce-notices-wrapper,
body.tax-product_tag .woocommerce-notices-wrapper {
  min-height: 0 !important;
}

body.single-product .woocommerce-notices-wrapper:not(:has(.woocommerce-error, .woocommerce-info)),
body.woocommerce-cart .woocommerce-notices-wrapper:not(:has(.woocommerce-error, .woocommerce-info)),
body.post-type-archive-product .woocommerce-notices-wrapper:not(:has(.woocommerce-error, .woocommerce-info)),
body.tax-product_cat .woocommerce-notices-wrapper:not(:has(.woocommerce-error, .woocommerce-info)),
body.tax-product_tag .woocommerce-notices-wrapper:not(:has(.woocommerce-error, .woocommerce-info)) {
  display: none !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   v2.1.2.22.46 — Coupon errors + responsive desktop Cart Totals
   Invalid coupon entries show WooCommerce's real error. Valid coupon discounts
   remain in Cart Totals while success banners stay hidden. Desktop Cart Totals
   cells share centered, proportional table columns.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce-message {
  display: none !important;
}

@media (min-width: 781px) {
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .shop_table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table th,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td[data-title],
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td {
    width: 50% !important;
    min-width: 0 !important;
    padding: clamp(12px, 1.35vw, 20px) clamp(10px, 1.7vw, 24px) !important;
    box-sizing: border-box !important;
    color: var(--plp-ink) !important;
    font-family: var(--plp-font-sans) !important;
    font-size: clamp(13px, 1.05vw, 16px) !important;
    line-height: 1.42 !important;
    text-align: center !important;
    vertical-align: middle !important;
    overflow-wrap: anywhere !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table th {
    font-weight: 750 !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td[data-title]::before,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals table.shop_table td::before {
    display: none !important;
    content: none !important;
  }

  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .woocommerce-shipping-methods,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .woocommerce-shipping-destination,
  body.woocommerce-cart .plp-standard-page-content .cart-collaterals .cart_totals .shipping-calculator-form {
    max-width: 100% !important;
    margin-inline: auto !important;
    text-align: center !important;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.52 — Phone shop display switcher
   On phones the native “Default sorting” select is replaced by a compact
   two-option view control. “Large” preserves the existing full-card layout;
   “List” uses a compact image + name + price row.
   -------------------------------------------------------------------------- */
.plp-mobile-product-view-toggle {
  display: none;
}

@media (max-width: 780px) {
  .plp-shop-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 142px;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
    min-height: 48px;
  }

  .plp-shop-toolbar .woocommerce-result-count {
    min-width: 0;
    font-size: 12px;
    line-height: 1.35;
  }

  /* The desktop-only selector remains available above 780px. */
  .plp-shop-toolbar .woocommerce-ordering {
    display: none;
  }

  .plp-mobile-product-view-toggle {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 142px;
    overflow: hidden;
    border: 1px solid var(--plp-line);
    border-radius: 12px;
    background: #fff;
  }

  .plp-mobile-product-view-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 7px 5px;
    border: 0;
    border-right: 1px solid var(--plp-line);
    border-radius: 0;
    background: transparent;
    color: var(--plp-ink-soft);
    font-family: var(--plp-font-sans);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .plp-mobile-product-view-button:last-child {
    border-right: 0;
  }

  .plp-mobile-product-view-button svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    flex: 0 0 auto;
  }

  .plp-mobile-product-view-button.is-active {
    background: var(--plp-ink);
    color: #fff;
  }

  .plp-mobile-product-view-button:focus-visible {
    position: relative;
    z-index: 1;
    outline: 2px solid var(--plp-blue);
    outline-offset: -2px;
  }

  /* List / tiled view: each product becomes a compact, directly clickable row. */
  .plp-shop-results ul.products.plp-products--list {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px;
  }

  .plp-shop-results ul.products.plp-products--list li.product {
    display: grid !important;
    grid-template-columns: 106px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    column-gap: 13px;
    min-height: 116px;
    padding: 9px;
    border-radius: 15px;
    align-items: center;
  }

  .plp-shop-results ul.products.plp-products--list li.product > a.woocommerce-LoopProduct-link {
    display: contents;
  }

  .plp-shop-results ul.products.plp-products--list li.product a img {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 106px;
    height: 96px;
    aspect-ratio: auto;
    margin: 0 !important;
    border-radius: 10px;
    object-fit: cover;
  }

  .plp-shop-results ul.products.plp-products--list li.product .woocommerce-loop-product__title {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin: 0 !important;
    padding: 0;
    color: var(--plp-ink);
    font-size: 15px !important;
    line-height: 1.35;
  }

  .plp-shop-results ul.products.plp-products--list li.product .price {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin: 6px 0 0 !important;
    color: var(--plp-blue);
    font-size: 14px !important;
    font-weight: 800;
  }

  .plp-shop-results ul.products.plp-products--list li.product .star-rating,
  .plp-shop-results ul.products.plp-products--list li.product .button,
  .plp-shop-results ul.products.plp-products--list li.product .added_to_cart {
    display: none !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.53 — Phone archive card layout refinement
   Large view uses a two-column image grid. Product categories and the archive
   card actions are intentionally omitted on phones; product details remain
   available by tapping the image, product name, or price. List-view copy is
   top-aligned with the product image instead of being bottom-aligned.
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  /* The default view and the explicit “Large” view always use two columns. */
  .plp-shop-results ul.products:not(.plp-products--list),
  .plp-shop-results ul.products.plp-products--large {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: start !important;
  }

  .plp-shop-results ul.products:not(.plp-products--list) li.product,
  .plp-shop-results ul.products.plp-products--large li.product {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 0 12px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  .plp-shop-results ul.products:not(.plp-products--list) li.product a img,
  .plp-shop-results ul.products.plp-products--large li.product a img {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
  }

  /* Hide any category output supplied by WooCommerce or an archive-card plugin. */
  .plp-shop-results ul.products li.product .product-category,
  .plp-shop-results ul.products li.product .product-category-name,
  .plp-shop-results ul.products li.product .product-categories,
  .plp-shop-results ul.products li.product .product-cat,
  .plp-shop-results ul.products li.product .category,
  .plp-shop-results ul.products li.product .categories,
  .plp-shop-results ul.products li.product .woocommerce-loop-product__category,
  .plp-shop-results ul.products li.product .woocommerce-loop-product__categories,
  .plp-shop-results ul.products li.product .wc-block-components-product-card__categories,
  .plp-shop-results ul.products li.product .plp-product-category,
  .plp-shop-results ul.products li.product .plp-product-card-category,
  .plp-shop-results ul.products li.product .plp-loop-product-category,
  .plp-shop-results ul.products li.product [data-product-category] {
    display: none !important;
  }

  /* Remove product-card add-to-cart actions in both phone views. */
  .plp-shop-results ul.products li.product > .button,
  .plp-shop-results ul.products li.product .button,
  .plp-shop-results ul.products li.product .added_to_cart,
  .plp-shop-results ul.products li.product .add_to_cart_button,
  .plp-shop-results ul.products li.product .ajax_add_to_cart,
  .plp-shop-results ul.products li.product .plp-card-action {
    display: none !important;
  }

  /* Do not let the global floating WhatsApp CTA cover archive cards on phones. */
  body.post-type-archive-product .plp-whatsapp-float,
  body.woocommerce-shop .plp-whatsapp-float,
  body.tax-product_cat .plp-whatsapp-float {
    display: none !important;
  }

  /* In list view, begin the title/price block at the image's top edge. */
  .plp-shop-results ul.products.plp-products--list li.product {
    grid-template-rows: auto minmax(0, 1fr) !important;
    align-items: start !important;
  }

  .plp-shop-results ul.products.plp-products--list li.product .woocommerce-loop-product__title {
    align-self: start !important;
    margin: 0 !important;
  }

  .plp-shop-results ul.products.plp-products--list li.product .price {
    align-self: start !important;
    margin: 5px 0 0 !important;
  }
}



/* v2.1.2.22.54 — Shop / footer cleanup
   Center desktop archive-card Add to Cart actions without changing phone layouts. */
@media (min-width: 781px) {
  .plp-shop-results ul.products li.product > .button,
  .plp-shop-results ul.products li.product .add_to_cart_button,
  .plp-shop-results ul.products li.product .ajax_add_to_cart {
    align-self: center;
    margin-right: auto;
    margin-left: auto;
  }
}

/* v2.1.2.22.57 — Product customization card: keep every text element pure white.
   This appears after the global typography rules so the muted body-copy rule
   cannot override the card's intended contrast. */
.plp-product-order-notice--custom .plp-product-order-notice-kicker,
.plp-product-order-notice--custom strong,
.plp-product-order-notice--custom p,
.plp-product-order-notice--custom a,
.plp-product-order-notice--custom a:visited,
.plp-product-order-notice--custom a:hover,
.plp-product-order-notice--custom a:focus,
.plp-product-order-notice--custom a:active {
  color: #fff !important;
  opacity: 1 !important;
}


/* v2.1.2.22.61 — Footer column headings: keep Contact Us aligned and bold like Shop / Customer Care. */
.plp-footer h2,
.plp-footer h2 a,
.plp-footer h2 a:not(.plp-brand) {
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0;
  text-transform: none;
}

.plp-footer h2 {
  margin: 10px 0;
}

.plp-footer h2 a,
.plp-footer h2 a:not(.plp-brand) {
  display: inline-block;
  margin: 0;
  padding: 0;
}


/* v2.1.2.22.62 — Unify breadcrumb size on Shop, category archives, product pages, About Us, and Contact. */
.plp-shop-breadcrumb,
.plp-shop-breadcrumb .woocommerce-breadcrumb,
.plp-shop-breadcrumb .woocommerce-breadcrumb a,
.plp-shop-breadcrumb .woocommerce-breadcrumb span,
.plp-product-breadcrumb,
.plp-product-breadcrumb .woocommerce-breadcrumb,
.plp-product-breadcrumb .woocommerce-breadcrumb a,
.plp-product-breadcrumb .woocommerce-breadcrumb span,
.plp-page-breadcrumb,
.plp-page-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb span,
body.post-type-archive-product .woocommerce-breadcrumb,
body.post-type-archive-product .woocommerce-breadcrumb a,
body.post-type-archive-product .woocommerce-breadcrumb span {
  font-size: 14px !important;
  line-height: 1.4;
}


/* v2.1.2.22.63 — Product lower content is now stacked, not tab-switched.
   The menu links jump to each section; all sections stay visible in one column. */
html {
  scroll-behavior: smooth;
}

body.single-product .plp-product-lower-sections {
  margin-top: clamp(38px, 5vw, 68px);
  border-top: 0;
}

body.single-product .plp-product-lower-sections .plp-product-lower-tab-list {
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: #edcbf6;
}

body.single-product .plp-product-lower-sections .plp-product-lower-tab,
body.single-product .plp-product-lower-sections .plp-product-lower-tab:visited {
  display: flex;
  min-width: 0;
  min-height: 62px;
  align-items: center;
  justify-content: center;
  padding: 18px 14px;
  color: #2b0934;
  background: #edcbf6;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

body.single-product .plp-product-lower-sections .plp-product-lower-tab:hover,
body.single-product .plp-product-lower-sections .plp-product-lower-tab:focus-visible {
  color: #fff;
  background: #2b0934;
}

body.single-product .plp-product-lower-sections .plp-product-lower-tab::after {
  display: none;
}

body.single-product .plp-product-lower-stack {
  display: grid;
  gap: clamp(42px, 6vw, 76px);
  padding-top: clamp(28px, 4vw, 48px);
}

body.single-product .plp-product-lower-sections .plp-product-tab-panel {
  padding: 0;
  scroll-margin-top: 110px;
}

body.single-product .plp-product-lower-sections .plp-product-tab-panel[hidden] {
  display: block !important;
}

body.single-product .plp-product-stacked-section-heading {
  margin: 0 0 22px;
}

body.single-product .plp-product-stacked-section-heading h2 {
  margin: 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(31px, 3.8vw, 52px);
  line-height: 1.03;
  letter-spacing: -.035em;
}

body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip {
  width: 100%;
  max-width: none;
  margin-top: 0 !important;
  padding-top: 0;
  border-top: 0;
}

body.single-product .plp-product-lower-sections .plp-product-tab-panel--reviews .plp-product-reviews {
  padding: 0 0 42px;
}

@media (max-width: 780px) {
  body.single-product .plp-product-lower-sections .plp-product-lower-tab-list {
    width: min(86vw, 430px);
    max-width: min(86vw, 430px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-right: auto;
    margin-left: auto;
    border-radius: 16px;
  }

  body.single-product .plp-product-lower-sections .plp-product-lower-tab {
    min-height: 52px;
    padding: 14px 12px;
    font-size: 12px;
  }

  body.single-product .plp-product-lower-stack {
    gap: 42px;
    padding-top: 25px;
  }

  body.single-product .plp-product-stacked-section-heading {
    margin-bottom: 17px;
  }

  body.single-product .plp-product-stacked-section-heading h2 {
    font-size: clamp(28px, 8.5vw, 40px);
  }

  body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip {
    width: min(82vw, 330px) !important;
    max-width: min(82vw, 330px) !important;
    margin: 0 auto !important;
  }
}


/* v2.1.2.22.65 — Restore mobile swipe for the stacked You May Also Like strip.
   Earlier touch-action rules allowed vertical gestures only; mobile browsers
   then would not perform native horizontal scrolling inside the recommendation row. */
body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip-viewport,
body.single-product .plp-same-category-strip-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  touch-action: pan-x pan-y pinch-zoom;
}

body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip-track {
  grid-auto-flow: column;
  min-width: max-content;
}

@media (max-width: 780px) {
  body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip {
    width: min(92vw, 430px) !important;
    max-width: min(92vw, 430px) !important;
    margin: 0 auto !important;
  }

  body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip-track {
    grid-auto-columns: calc((100% - 16px) / 3);
    gap: 8px;
    min-width: max-content;
  }

  body.single-product .plp-product-lower-sections .plp-product-tab-panel--related .plp-same-category-strip-card {
    scroll-snap-align: start;
  }
}


/* v2.1.2.22.66 — Mobile product-detail cleanup.
   Keep the top breadcrumb only, hide duplicate breadcrumbs in the summary area,
   hide the zoom icon, and compress the two notice cards into one row. */
@media (max-width: 780px) {
  body.single-product .plp-product-summary .woocommerce-breadcrumb,
  body.single-product .summary .woocommerce-breadcrumb,
  body.single-product .entry-summary .woocommerce-breadcrumb,
  body.single-product .plp-product-summary .plp-product-breadcrumb,
  body.single-product .summary .plp-product-breadcrumb,
  body.single-product .entry-summary .plp-product-breadcrumb {
    display: none !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery__trigger {
    display: none !important;
  }

  body.single-product .plp-product-order-notices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
  }

  body.single-product .plp-product-order-notice {
    display: flex;
    min-width: 0;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    border-radius: 14px;
    text-align: center;
  }

  body.single-product .plp-product-order-notice-icon,
  body.single-product .plp-product-order-notice-kicker {
    display: none !important;
  }

  body.single-product .plp-product-order-notice--custom strong,
  body.single-product .plp-product-order-notice--custom p,
  body.single-product .plp-product-order-notice--shipping p {
    display: none !important;
  }

  body.single-product .plp-product-order-notice--custom a {
    display: inline-flex;
    margin: 0;
    color: #fff !important;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    white-space: normal;
  }

  body.single-product .plp-product-order-notice--shipping strong {
    display: block;
    width: 100%;
    color: #2b0934;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.25;
    text-align: center;
  }
}

@media (max-width: 360px) {
  body.single-product .plp-product-order-notice {
    padding: 9px 6px;
    border-radius: 12px;
  }

  body.single-product .plp-product-order-notice--custom a,
  body.single-product .plp-product-order-notice--shipping strong {
    font-size: 10px;
  }
}


/* v2.1.2.22.67 — Product variant / colour thumbnail browser below the gallery. */
.plp-product-variant-thumbs {
  margin-top: 14px;
}

.plp-product-variant-thumbs-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  touch-action: pan-x pan-y pinch-zoom;
}

.plp-product-variant-thumbs-viewport::-webkit-scrollbar {
  display: none;
}

.plp-product-variant-thumbs-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(74px, 86px);
  gap: 10px;
  min-width: max-content;
  padding: 3px 2px 7px;
}

.plp-product-variant-thumb {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--plp-ink);
  font: inherit;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.plp-product-variant-thumb-image {
  position: relative;
  display: block;
  overflow: hidden;
  border: 2px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
  aspect-ratio: 1 / 1;
}

.plp-product-variant-thumb-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plp-product-variant-thumb.is-active .plp-product-variant-thumb-image,
.plp-product-variant-thumb:hover .plp-product-variant-thumb-image,
.plp-product-variant-thumb:focus-visible .plp-product-variant-thumb-image {
  border-color: var(--plp-ink);
  box-shadow: 0 0 0 2px rgba(43, 9, 52, .08);
}

.plp-product-variant-thumb:focus-visible {
  outline: 2px solid var(--plp-blue);
  outline-offset: 3px;
}

.plp-product-variant-thumb-label {
  display: -webkit-box;
  overflow: hidden;
  color: var(--plp-ink-soft);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.plp-product-variant-thumb-badge {
  position: absolute;
  right: 4px;
  bottom: 4px;
  min-width: 25px;
  padding: 3px 5px;
  border-radius: 999px;
  background: rgba(43, 9, 52, .88);
  color: #fff;
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
}

@media (max-width: 780px) {
  body.single-product .plp-product-variant-thumbs {
    margin-top: 12px;
  }

  body.single-product .plp-product-variant-thumbs-track {
    grid-auto-columns: 64px;
    gap: 8px;
    padding-bottom: 5px;
  }

  body.single-product .plp-product-variant-thumb-image {
    border-radius: 12px;
  }

  body.single-product .plp-product-variant-thumb-label {
    font-size: 9px;
  }
}


/* v2.1.2.22.69 — Product Info image/text blocks replace table layout. */
.plp-product-info-image-stack {
  gap: clamp(24px, 4vw, 42px);
}

.plp-product-info-block {
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
}

.plp-product-info-block--image_full {
  display: block;
}

.plp-product-info-block--image_left,
.plp-product-info-block--image_right {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
}

.plp-product-info-block--image_right .plp-product-info-block-media {
  order: 2;
}

.plp-product-info-block-media {
  margin: 0;
  min-width: 0;
  background: #f7f3f8;
}

.plp-product-info-block-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

.plp-product-info-block--image_full .plp-product-info-block-image {
  height: auto;
  min-height: 0;
  object-fit: contain;
}

.plp-product-info-block-copy {
  display: grid;
  align-content: center;
  min-width: 0;
  padding: clamp(26px, 4vw, 48px);
}

.plp-product-info-block-copy h2 {
  margin: 8px 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(29px, 3.4vw, 47px);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.plp-product-info-block-text {
  margin-top: 15px;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.72;
}

.plp-product-info-block-text p {
  margin: 0 0 10px;
}

.plp-product-info-block-text p:last-child {
  margin-bottom: 0;
}

.plp-product-info-block-placeholder {
  display: grid;
  min-height: 260px;
  place-items: center;
  padding: 32px;
  background: #fcf7fd;
  color: var(--plp-ink-soft);
  font-size: 14px;
  text-align: center;
}

@media (max-width: 780px) {
  body.single-product .plp-product-info-block--image_left,
  body.single-product .plp-product-info-block--image_right {
    grid-template-columns: 1fr;
  }

  body.single-product .plp-product-info-block--image_right .plp-product-info-block-media {
    order: 0;
  }

  body.single-product .plp-product-info-block-image {
    min-height: 0;
    aspect-ratio: 1.1 / 1;
  }

  body.single-product .plp-product-info-block-copy {
    padding: 23px 19px;
  }

  body.single-product .plp-product-info-block-copy h2 {
    font-size: clamp(27px, 8.4vw, 38px);
  }

  body.single-product .plp-product-info-block-text {
    font-size: 13px;
  }
}


/* v2.1.2.22.70 — Standard pages use the same breadcrumb path style as Shop/Product/About/Contact. */
.plp-standard-page-heading .plp-standard-page-breadcrumb {
  margin-bottom: 14px;
}

.plp-standard-page-heading .plp-eyebrow {
  display: none;
}


/* v2.1.2.22.71 — Account page starts with login centered; register panel opens only after clicking Create an account. */
.plp-standard-page-content .plp-account-auth:not(.is-register-open) {
  grid-template-columns: minmax(0, 680px);
  justify-content: center;
}

.plp-standard-page-content .plp-account-auth:not(.is-register-open) .plp-account-register-card {
  display: none;
}

.plp-standard-page-content .plp-account-auth:not(.is-register-open) .plp-account-login-card {
  width: 100%;
}

.plp-account-register-back {
  margin: -8px 0 20px;
  font-size: 13px;
}

.plp-account-register-back a {
  color: var(--plp-blue);
  font-weight: 800;
  text-decoration: none;
}

.plp-account-register-back a:hover,
.plp-account-register-back a:focus-visible {
  color: var(--plp-blue-deep);
  text-decoration: underline;
}

@media (min-width: 900px) {
  .plp-standard-page-content .plp-account-auth.is-register-open {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    justify-content: stretch;
  }
}

@media (max-width: 899px) {
  .plp-standard-page-content .plp-account-auth:not(.is-register-open),
  .plp-standard-page-content .plp-account-auth.is-register-open {
    grid-template-columns: 1fr;
  }
}



/* v2.1.2.22.72 — Account registration: desktop expands right panel; mobile replaces login with register panel. */
.plp-account-field-note {
  display: block;
  margin-top: 6px;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.plp-account-verification {
  margin: 0 0 16px;
}

.plp-account-verification label {
  display: block;
  margin-bottom: 7px;
  color: var(--plp-ink);
  font-weight: 800;
}

.plp-account-verification-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.plp-account-verification-row input {
  margin: 0 !important;
}

.plp-account-send-code {
  min-height: 50px;
  white-space: nowrap;
}

.plp-account-code-status {
  min-height: 18px;
  margin: 8px 0 0;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.45;
}

.plp-account-code-status.is-success {
  color: #227a3a;
}

.plp-account-code-status.is-error {
  color: #b3261e;
}

@media (max-width: 899px) {
  .plp-standard-page-content .plp-account-auth.is-register-open .plp-account-login-card {
    display: none;
  }

  .plp-standard-page-content .plp-account-auth.is-register-open .plp-account-register-card {
    display: block;
    width: 100%;
  }

  .plp-standard-page-content .plp-account-auth:not(.is-register-open),
  .plp-standard-page-content .plp-account-auth.is-register-open {
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .plp-account-verification-row {
    grid-template-columns: 1fr;
  }

  .plp-account-send-code {
    width: 100%;
  }
}


/* v2.1.2.22.73 — Language selector: only English / 中文 and icon-like hover background. */
.plp-language-switcher .plp-language-details summary {
  transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
}

.plp-language-switcher .plp-language-details summary:hover,
.plp-language-switcher .plp-language-details summary:focus-visible,
.plp-language-switcher .plp-language-details[open] summary {
  background: rgba(255,255,255,.62);
  color: var(--plp-blue);
  border-color: rgba(255,255,255,.62);
  transform: translateY(-1px);
}

.plp-language-list {
  min-width: 132px;
}

.plp-language-list a {
  transition: background .2s ease, color .2s ease;
}

.plp-language-list a:hover,
.plp-language-list a:focus-visible,
.plp-language-list a[aria-current="page"] {
  background: var(--plp-blue-pale);
  color: var(--plp-blue-deep);
}


/* v2.1.2.22.74 — Product review image upload field and displayed review photos. */
.plp-review-image-upload {
  margin: 18px 0 22px;
}

.plp-review-image-upload label {
  display: block;
  margin: 0 0 8px;
  color: var(--plp-ink);
  font-size: 15px;
  font-weight: 800;
}

.plp-review-image-upload input[type="file"] {
  width: 100%;
  padding: 14px;
  border: 1px dashed var(--plp-line);
  border-radius: 14px;
  background: #fff;
  color: var(--plp-ink-soft);
  font-size: 13px;
}

.plp-review-image-upload-note {
  margin: 7px 0 0;
  color: var(--plp-ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.plp-review-images {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.plp-review-image-link {
  display: block;
  overflow: hidden;
  width: 86px;
  height: 86px;
  border: 1px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
}

.plp-review-image-link:hover,
.plp-review-image-link:focus-visible {
  border-color: var(--plp-blue);
  box-shadow: 0 0 0 3px rgba(90, 29, 104, .10);
}

.plp-review-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* v2.1.2.22.76 — FAQ page. */
.plp-faq-hero {
  padding: clamp(54px, 8vw, 100px) 0 clamp(42px, 6vw, 72px);
  background: linear-gradient(90deg, #fff 0%, #f5e5fb 100%);
  border-bottom: 1px solid var(--plp-line);
}

.plp-faq-hero h1 {
  max-width: 780px;
  margin: 10px 0 16px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(48px, 7vw, 84px);
  line-height: .98;
  letter-spacing: -.045em;
}

.plp-faq-hero p {
  max-width: 720px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: clamp(16px, 1.8vw, 20px);
  line-height: 1.65;
}

.plp-faq-section {
  padding: clamp(48px, 7vw, 86px) 0;
}

.plp-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(28px, 5vw, 60px);
  align-items: start;
}

.plp-faq-list {
  display: grid;
  gap: 14px;
}

.plp-faq-item {
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 18px;
  background: #fff;
}

.plp-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  color: var(--plp-ink);
  font-size: 17px;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.plp-faq-item summary::-webkit-details-marker {
  display: none;
}

.plp-faq-item summary span:last-child {
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: var(--plp-blue-pale);
  color: var(--plp-blue-deep);
  font-size: 19px;
  line-height: 1;
  transition: transform .2s ease;
}

.plp-faq-item[open] summary span:last-child {
  transform: rotate(45deg);
}

.plp-faq-answer {
  padding: 0 24px 23px;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.72;
}

.plp-faq-answer p {
  margin: 0;
}

.plp-faq-support {
  position: sticky;
  top: 96px;
  padding: 28px;
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fcf7fd;
  box-shadow: 0 18px 42px rgba(43, 9, 52, .07);
}

.plp-faq-support h2 {
  margin: 8px 0 12px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(32px, 3vw, 42px);
  line-height: 1.03;
  letter-spacing: -.035em;
}

.plp-faq-support p {
  margin: 0 0 20px;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.7;
}

@media (max-width: 820px) {
  .plp-faq-grid {
    grid-template-columns: 1fr;
  }

  .plp-faq-support {
    position: static;
  }

  .plp-faq-item summary {
    padding: 19px 18px;
    font-size: 15px;
  }

  .plp-faq-answer {
    padding: 0 18px 19px;
    font-size: 14px;
  }
}


/* v2.1.2.22.77 — Footer headings: make linked Contact Us visually identical to Shop / Customer Care. */
.plp-footer-grid > div > h2,
.plp-footer-grid > div > h2 a,
.plp-footer-grid > div > h2 a:not(.plp-brand),
.plp-footer .plp-footer-grid > div > h2,
.plp-footer .plp-footer-grid > div > h2 a {
  display: block;
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: var(--plp-ink) !important;
  font-family: var(--plp-font-serif) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  text-transform: none !important;
  text-decoration: none !important;
}

.plp-footer-grid > div > h2 a:hover,
.plp-footer-grid > div > h2 a:focus-visible {
  color: var(--plp-ink) !important;
  text-decoration: none !important;
}


/* v2.1.2.22.78 — Hide duplicate product breadcrumb above product title.
   The only breadcrumb left visible on product pages is the top .plp-product-breadcrumb. */
body.single-product .summary .woocommerce-breadcrumb,
body.single-product .summary .plp-product-breadcrumb,
body.single-product .entry-summary .woocommerce-breadcrumb,
body.single-product .entry-summary .plp-product-breadcrumb,
body.single-product .plp-product-summary .woocommerce-breadcrumb,
body.single-product .plp-product-summary .plp-product-breadcrumb {
  display: none !important;
}


/* v2.1.2.22.79 — Footer heading final fix.
   Contact Us is now plain h2 markup like Shop and Customer Care.
   These rules keep all footer column headings visually identical. */
.plp-footer-grid > div > h2,
.plp-footer .plp-footer-grid > div > h2 {
  display: block !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: var(--plp-ink) !important;
  font-family: var(--plp-font-serif), Georgia, "Times New Roman", serif !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  text-transform: none !important;
  text-decoration: none !important;
}


/* v2.1.2.22.80 — Hard fallback: never show breadcrumbs inside the product summary grid.
   The only product breadcrumb should be the top .plp-product-breadcrumb before the image/title grid. */
body.single-product .plp-single-product-grid .woocommerce-breadcrumb,
body.single-product .plp-single-product-grid nav.woocommerce-breadcrumb,
body.single-product .plp-single-product-grid nav[aria-label="Breadcrumb"],
body.single-product .plp-product-summary .woocommerce-breadcrumb,
body.single-product .plp-product-summary nav.woocommerce-breadcrumb,
body.single-product .plp-product-summary nav[aria-label="Breadcrumb"] {
  display: none !important;
}


/* v2.1.2.22.81 — Product Info blocks: no frames/placeholders; show text area only when filled.
   If blocks are image-only, images stack directly with no card gap. */
body.single-product .plp-product-info-image-stack {
  gap: 0 !important;
}

body.single-product .plp-product-info-block {
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-product .plp-product-info-block-placeholder {
  display: none !important;
}

body.single-product .plp-product-info-block-media {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.single-product .plp-product-info-block-image {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  object-fit: contain;
}

body.single-product .plp-product-info-block--image_left,
body.single-product .plp-product-info-block--image_right {
  align-items: stretch;
}

body.single-product .plp-product-info-block--text_only {
  display: block;
}

body.single-product .plp-product-info-block--text_only .plp-product-info-block-copy {
  padding: clamp(24px, 4vw, 44px) 0;
}

body.single-product .plp-product-info-block--image_full .plp-product-info-block-copy {
  display: none !important;
}

/* Only create visible separation when there is actual text beside/inside a block. */
body.single-product .plp-product-info-block:has(.plp-product-info-block-copy) + .plp-product-info-block:has(.plp-product-info-block-copy),
body.single-product .plp-product-info-block:has(.plp-product-info-block-copy) + .plp-product-info-block:has(.plp-product-info-block-media),
body.single-product .plp-product-info-block:has(.plp-product-info-block-media) + .plp-product-info-block:has(.plp-product-info-block-copy) {
  margin-top: clamp(24px, 4vw, 42px);
}

@supports not selector(:has(*)) {
  body.single-product .plp-product-info-block--image_left,
  body.single-product .plp-product-info-block--image_right,
  body.single-product .plp-product-info-block--text_only {
    margin-top: clamp(24px, 4vw, 42px);
  }

  body.single-product .plp-product-info-block--image_left:first-child,
  body.single-product .plp-product-info-block--image_right:first-child,
  body.single-product .plp-product-info-block--text_only:first-child {
    margin-top: 0;
  }
}

@media (max-width: 780px) {
  body.single-product .plp-product-info-block--image_left,
  body.single-product .plp-product-info-block--image_right {
    grid-template-columns: 1fr;
  }

  body.single-product .plp-product-info-block--image_right .plp-product-info-block-media {
    order: 0;
  }

  body.single-product .plp-product-info-block-copy {
    padding: 22px 0;
  }
}


/* v2.1.2.22.82 — Product page reviews are read-only. */
body.single-product .plp-product-reviews #review_form_wrapper,
body.single-product .plp-product-reviews #respond,
body.single-product .plp-product-reviews .comment-respond {
  display: none !important;
}

.plp-product-reviews-readonly {
  margin-top: 8px;
}

.plp-product-no-reviews {
  margin: 0 0 10px;
  color: var(--plp-ink);
  font-size: 16px;
  line-height: 1.65;
}

.plp-product-review-note {
  margin: 10px 0 0;
  color: var(--plp-ink-soft);
  font-size: 14px;
  line-height: 1.6;
}

.plp-product-review-list {
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.plp-product-review-item {
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--plp-line);
  border-radius: 20px;
  background: #fff;
}

.plp-product-review-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.plp-product-review-author {
  display: block;
  color: var(--plp-ink);
  font-size: 16px;
  font-weight: 850;
}

.plp-product-review-meta time {
  display: block;
  margin-top: 3px;
  color: var(--plp-ink-soft);
  font-size: 12px;
}

.plp-product-review-rating .star-rating {
  float: none;
  margin: 0;
}

.plp-product-review-content {
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.72;
}

.plp-product-review-content p {
  margin: 0 0 10px;
}

.plp-product-review-content p:last-child {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .plp-product-review-meta {
    display: grid;
    gap: 8px;
  }
}


/* v2.1.2.22.83 — Single product main image size: 560 × 560.
   Desktop/tablet product gallery is capped at 560px square; on smaller screens it scales down responsively. */
body.single-product .plp-product-media,
body.single-product .plp-product-media .woocommerce-product-gallery {
  width: min(100%, 560px);
  max-width: 560px;
}

body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
  width: min(100%, 560px) !important;
  max-width: 560px !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
}

body.single-product .plp-product-media .woocommerce-product-gallery__image,
body.single-product .plp-product-media .woocommerce-product-gallery__image a,
body.single-product .plp-product-media .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
}

body.single-product .plp-product-media .woocommerce-product-gallery__image img {
  object-fit: cover;
}

@media (min-width: 781px) {
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    height: 560px !important;
  }
}

@media (max-width: 780px) {
  body.single-product .plp-product-media,
  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    max-width: 560px !important;
  }
}


/* v2.1.2.22.84 — Remove product summary category overline and move right content upward. */
body.single-product .plp-product-overline,
body.single-product .plp-product-categories,
body.single-product .plp-product-personalizable {
  display: none !important;
}

body.single-product .plp-product-summary {
  padding-top: 0 !important;
}

body.single-product .plp-product-summary .product_title {
  margin-top: 0 !important;
}


/* v2.1.2.22.85 — Remove summary category row and reduce oversized product headings. */
body.single-product .plp-product-summary .product_meta,
body.single-product .summary .product_meta,
body.single-product .entry-summary .product_meta {
  display: none !important;
}

body.single-product .plp-product-summary .product_title {
  font-size: clamp(30px, 3.35vw, 46px) !important;
  line-height: 1.04 !important;
  margin-bottom: 12px !important;
}

body.single-product .plp-product-stacked-section-heading h2 {
  font-size: clamp(28px, 3.15vw, 42px) !important;
  line-height: 1.05 !important;
}

body.single-product .plp-product-info-block-copy h2,
body.single-product .plp-product-category-story-copy h2,
body.single-product .plp-product-detail-card h2,
body.single-product .plp-product-reviews h2,
body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
  font-size: clamp(26px, 3vw, 40px) !important;
  line-height: 1.06 !important;
}

@media (max-width: 780px) {
  body.single-product .plp-product-summary .product_title {
    font-size: clamp(30px, 9vw, 38px) !important;
  }

  body.single-product .plp-product-stacked-section-heading h2 {
    font-size: clamp(26px, 8vw, 34px) !important;
  }

  body.single-product .plp-product-info-block-copy h2,
  body.single-product .plp-product-category-story-copy h2,
  body.single-product .plp-product-detail-card h2,
  body.single-product .plp-product-reviews h2,
  body.single-product .related.products > h2,
  body.single-product .upsells.products > h2 {
    font-size: clamp(24px, 7.5vw, 32px) !important;
  }
}


/* v2.1.2.22.86 — Remove duplicate inner heading inside You May Also Like carousel. */
body.single-product .plp-product-tab-panel--related .plp-same-category-strip-heading,
body.single-product .plp-product-tab-panel--related .plp-same-category-strip-kicker,
body.single-product .plp-product-tab-panel--related .plp-same-category-strip-heading h2 {
  display: none !important;
}

body.single-product .plp-product-tab-panel--related .plp-same-category-strip {
  margin-top: 0 !important;
}


/* v2.1.2.22.87 — Product gallery vertical thumbnail column and hover zoom. */
@media (min-width: 781px) {
  body.single-product .plp-product-media {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 560px) 78px;
    gap: 24px;
    align-items: start;
    width: min(100%, 662px) !important;
    max-width: 662px !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery {
    grid-column: 1;
    width: 560px !important;
    max-width: 560px !important;
  }

  body.single-product .plp-product-variant-thumbs {
    grid-column: 2;
    align-self: stretch;
    margin-top: 0 !important;
    width: 78px;
    height: 560px;
  }

  body.single-product .plp-product-variant-thumbs-viewport {
    height: 100%;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-width: thin;
    overscroll-behavior: contain;
    touch-action: pan-y;
  }

  body.single-product .plp-product-variant-thumbs-viewport::-webkit-scrollbar {
    display: block;
    width: 4px;
  }

  body.single-product .plp-product-variant-thumbs-viewport::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(43, 9, 52, .28);
  }

  body.single-product .plp-product-variant-thumbs-track {
    display: grid !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    grid-auto-rows: 74px;
    gap: 10px;
    min-width: 0 !important;
    padding: 0 4px 0 0;
  }

  body.single-product .plp-product-variant-thumb {
    width: 74px;
    height: 74px;
  }

  body.single-product .plp-product-variant-thumb-image {
    border-width: 2px;
    border-radius: 14px;
  }

  body.single-product .plp-product-variant-thumb-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  body.single-product .plp-product-media .flex-control-thumbs {
    display: none !important;
  }

  body.single-product .plp-product-hover-zoom {
    position: absolute;
    top: 0;
    left: calc(100% + 24px);
    z-index: 80;
    width: min(420px, 34vw);
    height: min(420px, 34vw);
    border: 1px solid var(--plp-line);
    border-radius: 22px;
    background-color: #fff;
    background-repeat: no-repeat;
    background-size: 230% 230%;
    box-shadow: 0 22px 55px rgba(43, 9, 52, .16);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .15s ease, visibility .15s ease, transform .15s ease;
  }

  body.single-product .plp-product-hover-zoom.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  body.single-product .plp-product-hover-lens {
    position: absolute;
    z-index: 10;
    display: none;
    border: 1px solid rgba(43, 9, 52, .28);
    border-radius: 16px;
    background: rgba(255, 255, 255, .32);
    box-shadow: 0 8px 22px rgba(43, 9, 52, .10);
    pointer-events: none;
  }

  body.single-product .plp-product-hover-lens.is-visible {
    display: block;
  }
}

@media (max-width: 780px) {
  body.single-product .plp-product-media {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100% !important;
    max-width: 560px !important;
    margin-inline: auto;
  }

  body.single-product .plp-product-variant-thumbs {
    margin-top: 0 !important;
    width: 100%;
  }

  body.single-product .plp-product-variant-thumbs-track {
    grid-auto-flow: column !important;
    grid-auto-columns: 64px !important;
  }

  body.single-product .plp-product-hover-zoom,
  body.single-product .plp-product-hover-lens {
    display: none !important;
  }
}


/* v2.1.2.22.88 — Product gallery thumbnail rail: pink framed column with 8 visible thumbnails. */
@media (min-width: 781px) {
  body.single-product .plp-product-media {
    grid-template-columns: minmax(0, 560px) 94px !important;
    gap: 22px !important;
    width: min(100%, 676px) !important;
    max-width: 676px !important;
  }

  body.single-product .plp-product-variant-thumbs {
    width: 94px !important;
    height: 560px !important;
    padding: 10px !important;
    border: 1px solid var(--plp-line) !important;
    border-radius: 20px !important;
    background: #f2d2f6 !important;
    box-shadow: 0 12px 30px rgba(43, 9, 52, .06);
  }

  body.single-product .plp-product-variant-thumbs-viewport {
    height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(43, 9, 52, .32) transparent;
  }

  body.single-product .plp-product-variant-thumbs-viewport::-webkit-scrollbar {
    display: block !important;
    width: 4px;
  }

  body.single-product .plp-product-variant-thumbs-viewport::-webkit-scrollbar-track {
    background: transparent;
  }

  body.single-product .plp-product-variant-thumbs-viewport::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(43, 9, 52, .32);
  }

  body.single-product .plp-product-variant-thumbs-track {
    grid-auto-rows: 58px !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body.single-product .plp-product-variant-thumb {
    width: 58px !important;
    height: 58px !important;
    margin: 0 auto !important;
  }

  body.single-product .plp-product-variant-thumb-image {
    border-radius: 12px !important;
    background: #fff !important;
  }
}

@media (max-width: 780px) {
  body.single-product .plp-product-variant-thumbs {
    padding: 8px !important;
    border: 1px solid var(--plp-line) !important;
    border-radius: 18px !important;
    background: #f2d2f6 !important;
  }
}



/* v2.1.2.22.89 — Position thumbnail rail in the middle gutter beside the main image. */
@media (min-width: 781px) {
  body.single-product .plp-single-product-grid {
    grid-template-columns: 560px minmax(0, 1fr) !important;
    gap: 150px !important;
    align-items: start !important;
  }

  body.single-product .plp-product-media {
    position: relative !important;
    display: block !important;
    width: 560px !important;
    max-width: 560px !important;
    min-width: 560px !important;
    overflow: visible !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery {
    width: 560px !important;
    max-width: 560px !important;
  }

  body.single-product .plp-product-variant-thumbs {
    position: absolute !important;
    top: 0 !important;
    left: calc(100% + 16px) !important;
    grid-column: auto !important;
    width: 94px !important;
    height: 560px !important;
    margin: 0 !important;
    z-index: 5;
  }

  body.single-product .plp-product-hover-zoom {
    left: calc(100% + 126px) !important;
  }
}


/* v2.1.2.22.90 — Align thumbnail rail directly parallel to the main product image. */
@media (min-width: 781px) {
  body.single-product .plp-single-product-grid {
    grid-template-columns: minmax(0, 676px) minmax(0, 1fr) !important;
    gap: 84px !important;
    align-items: start !important;
  }

  body.single-product .plp-product-media {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 560px 94px !important;
    grid-template-rows: auto !important;
    column-gap: 22px !important;
    row-gap: 0 !important;
    align-items: start !important;
    width: 676px !important;
    max-width: 676px !important;
    min-width: 676px !important;
    overflow: visible !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 560px !important;
    max-width: 560px !important;
  }

  body.single-product .plp-product-variant-thumbs {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: start !important;
    width: 94px !important;
    height: 560px !important;
    margin: 0 !important;
    z-index: 2 !important;
  }

  body.single-product .plp-product-summary {
    margin-top: 0 !important;
  }

  body.single-product .plp-product-hover-zoom {
    left: calc(100% + 22px) !important;
  }
}


/* v2.1.2.22.91 — Make thumbnail rail outer height exactly match the 560px main image. */
@media (min-width: 781px) {
  body.single-product .plp-product-media {
    align-items: start !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    height: 560px !important;
    min-height: 560px !important;
    max-height: 560px !important;
  }

  body.single-product .plp-product-variant-thumbs {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    height: 560px !important;
    min-height: 560px !important;
    max-height: 560px !important;
    padding: 10px !important;
    overflow: hidden !important;
    align-self: start !important;
  }

  body.single-product .plp-product-variant-thumbs-viewport {
    box-sizing: border-box !important;
    flex: 1 1 auto !important;
    height: calc(560px - 20px) !important;
    min-height: calc(560px - 20px) !important;
    max-height: calc(560px - 20px) !important;
  }
}



/* v2.1.2.22.92 — Align thumbnail rail top with the main 560×560 image box, not the gallery container/search icon. */
@media (min-width: 781px) {
  body.single-product .plp-product-media {
    --plp-product-gallery-top-offset: 56px;
  }

  body.single-product .plp-product-variant-thumbs {
    margin-top: var(--plp-product-gallery-top-offset) !important;
    height: 560px !important;
    min-height: 560px !important;
    max-height: 560px !important;
  }

  body.single-product .plp-product-hover-zoom {
    top: var(--plp-product-gallery-top-offset) !important;
  }
}

@media (min-width: 781px) and (max-width: 1180px) {
  body.single-product .plp-product-media {
    --plp-product-gallery-top-offset: 48px;
  }
}



/* v2.1.2.22.93 — Final phone gallery containment fix.
   Later desktop thumbnail-rail rules use fixed 560px/94px dimensions. Some
   touch browsers can also match those rules, so this final block restores a
   fluid one-column gallery and keeps every thumbnail scroller inside the
   visible product container. */
@media (max-width: 780px), (hover: none) and (pointer: coarse) and (max-width: 1180px) {
  body.single-product .plp-single-product-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-product .plp-product-media {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    overflow: hidden !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper > div,
  body.single-product .plp-product-media .woocommerce-product-gallery__image,
  body.single-product .plp-product-media .woocommerce-product-gallery__image a,
  body.single-product .plp-product-media .woocommerce-product-gallery__image img {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
    overflow: hidden !important;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    left: 0 !important;
    margin: 0 !important;
    transform: none !important;
    aspect-ratio: 1 / 1;
  }

  body.single-product .plp-product-media .woocommerce-product-gallery__image a,
  body.single-product .plp-product-media .woocommerce-product-gallery__image img {
    display: block !important;
    height: 100% !important;
    object-fit: cover;
  }

  /* The custom variant browser replaces WooCommerce's second thumbnail row. */
  body.single-product .plp-product-media .flex-control-thumbs {
    display: none !important;
  }

  body.single-product .plp-product-variant-thumbs {
    position: static !important;
    inset: auto !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 8px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.single-product .plp-product-variant-thumbs-viewport {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }

  body.single-product .plp-product-variant-thumbs-track {
    display: flex !important;
    flex-flow: row nowrap !important;
    width: max-content !important;
    max-width: none !important;
    min-width: 100% !important;
    gap: 8px !important;
    padding: 0 0 4px !important;
  }

  body.single-product .plp-product-variant-thumb {
    flex: 0 0 64px !important;
    width: 64px !important;
    max-width: 64px !important;
    min-width: 64px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
  }

  body.single-product .plp-product-hover-zoom,
  body.single-product .plp-product-hover-lens {
    display: none !important;
  }
}

@media (max-width: 360px) {
  body.single-product .plp-product-variant-thumb {
    flex-basis: 58px !important;
    width: 58px !important;
    max-width: 58px !important;
    min-width: 58px !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.94 — Remove coupon-applied success popups
   Coupon application and discount totals remain functional. Standard coupon
   errors remain visible; only coupon-success message containers are hidden.
   -------------------------------------------------------------------------- */
.woocommerce-message.plp-coupon-success-notice,
.woocommerce-message:has(.plp-coupon-success-marker),
.woocommerce-notices-wrapper.plp-coupon-success-wrapper {
  display: none !important;
}

/* v2.1.2.22.97 — Keep product thumbnails transparent in every interaction state. */
body.single-product button.plp-product-variant-thumb,
body.single-product button.plp-product-variant-thumb:hover,
body.single-product button.plp-product-variant-thumb:focus,
body.single-product button.plp-product-variant-thumb:focus-visible,
body.single-product button.plp-product-variant-thumb:active,
body.single-product button.plp-product-variant-thumb.is-active {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

body.single-product button.plp-product-variant-thumb .plp-product-variant-thumb-image,
body.single-product button.plp-product-variant-thumb:hover .plp-product-variant-thumb-image,
body.single-product button.plp-product-variant-thumb:focus .plp-product-variant-thumb-image,
body.single-product button.plp-product-variant-thumb:focus-visible .plp-product-variant-thumb-image,
body.single-product button.plp-product-variant-thumb:active .plp-product-variant-thumb-image,
body.single-product button.plp-product-variant-thumb.is-active .plp-product-variant-thumb-image {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
}

body.single-product button.plp-product-variant-thumb:focus,
body.single-product button.plp-product-variant-thumb:focus-visible,
body.single-product button.plp-product-variant-thumb:active {
  outline: none !important;
}

/* --------------------------------------------------------------------------
   v2.1.2.22.98 — Remove the Power Coupons drawer trigger.
   The primary Cart action remains the WooCommerce Proceed to checkout button.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .power-coupons-drawer-trigger-wrapper,
body.woocommerce-checkout .power-coupons-drawer-trigger-wrapper,
body.woocommerce-cart #power-coupons-view-coupons-btn,
body.woocommerce-checkout #power-coupons-view-coupons-btn,
body.woocommerce-cart .power-coupons-view-coupons-btn,
body.woocommerce-checkout .power-coupons-view-coupons-btn {
  display: none !important;
}



/* --------------------------------------------------------------------------
   v2.1.2.22.99 — Checkout order panel cleanup + hard coupon-trigger removal
   -------------------------------------------------------------------------- */

/* Power Coupons can inject the trigger after either the Cart or Checkout AJAX
   refresh. Hide both the known wrapper/button and close naming variants. */
body.woocommerce-cart div.power-coupons-drawer-trigger-wrapper,
body.woocommerce-checkout div.power-coupons-drawer-trigger-wrapper,
body.woocommerce-cart .wc-proceed-to-checkout > .power-coupons-drawer-trigger-wrapper,
body.woocommerce-checkout #order_review .power-coupons-drawer-trigger-wrapper,
body.woocommerce-cart #power-coupons-view-coupons-btn,
body.woocommerce-checkout #power-coupons-view-coupons-btn,
body.woocommerce-cart button.power-coupons-view-coupons-btn,
body.woocommerce-checkout button.power-coupons-view-coupons-btn,
body.woocommerce-cart [class*="power-coupons"][class*="drawer-trigger"],
body.woocommerce-checkout [class*="power-coupons"][class*="drawer-trigger"],
body.woocommerce-cart [id*="power-coupons"][id*="view-coupons"],
body.woocommerce-checkout [id*="power-coupons"][id*="view-coupons"] {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* Give the classic checkout a predictable two-column structure instead of
   combining Astra floats with WooCommerce/plugin widths. */
body.woocommerce-checkout .plp-standard-page-container {
  max-width: 1180px;
}

body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.42fr) minmax(360px, .9fr);
  grid-template-rows: auto 1fr;
  column-gap: clamp(30px, 4vw, 54px);
  row-gap: 0;
  align-items: start;
  width: 100%;
}

body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #customer_details {
  grid-column: 1;
  grid-row: 1 / span 2;
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
}

body.woocommerce-checkout .plp-standard-page-content #customer_details .col-1,
body.woocommerce-checkout .plp-standard-page-content #customer_details .col-2 {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
}

body.woocommerce-checkout .plp-standard-page-content #customer_details .col-2 {
  margin-top: 20px;
}

body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 22px 26px 16px !important;
  border: 1px solid var(--plp-line) !important;
  border-bottom: 0 !important;
  border-radius: 18px 18px 0 0;
  background: var(--plp-blue-pale);
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.15;
}

body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review {
  grid-column: 2;
  grid-row: 2;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 24px 24px !important;
  border: 1px solid var(--plp-line) !important;
  border-top: 0 !important;
  border-radius: 0 0 18px 18px !important;
  background: var(--plp-blue-pale) !important;
  box-shadow: 0 16px 38px rgba(43, 9, 52, .07);
}

/* Order summary table: stable widths, aligned totals, and less visual noise. */
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 18px !important;
  table-layout: fixed;
  border: 1px solid var(--plp-line) !important;
  border-radius: 14px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  background: #fff !important;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td {
  box-sizing: border-box;
  padding: 12px 14px !important;
  border-right: 0 !important;
  border-left: 0 !important;
  border-color: var(--plp-line) !important;
  vertical-align: middle;
  font-size: 13.5px;
  line-height: 1.4;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead th {
  background: #fff !important;
  font-size: 14px;
  font-weight: 800;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th:first-child,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td:first-child {
  width: 68%;
  text-align: left !important;
  overflow-wrap: anywhere;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th:last-child,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td:last-child {
  width: 32%;
  text-align: right !important;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table .product-total,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot td {
  white-space: nowrap;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot tr:last-child th,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot tr:last-child td {
  font-size: 15px;
  font-weight: 850;
  color: var(--plp-ink);
}

/* Payment methods become separate, readable cards. */
body.woocommerce-checkout #order_review #payment {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-checkout #order_review #payment ul.payment_methods {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none !important;
}

body.woocommerce-checkout #order_review #payment ul.payment_methods > li.wc_payment_method {
  position: relative;
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 1px solid var(--plp-line) !important;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}

body.woocommerce-checkout #order_review #payment ul.payment_methods > li.wc_payment_method > input[type="radio"] {
  position: absolute;
  top: 17px;
  left: 15px;
  margin: 0 !important;
}

body.woocommerce-checkout #order_review #payment ul.payment_methods > li.wc_payment_method > label {
  display: block !important;
  min-height: 48px;
  margin: 0 !important;
  padding: 14px 16px 12px 42px !important;
  color: var(--plp-ink);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.45;
  cursor: pointer;
}

body.woocommerce-checkout #order_review #payment div.payment_box {
  position: relative;
  width: auto !important;
  margin: 0 !important;
  padding: 16px !important;
  border-top: 1px solid var(--plp-line);
  border-radius: 0 !important;
  background: #fbf7fd !important;
  color: var(--plp-ink-soft) !important;
  font-size: 13px;
  line-height: 1.55;
}

body.woocommerce-checkout #order_review #payment div.payment_box::before,
body.woocommerce-checkout #order_review #payment div.payment_box::after {
  display: none !important;
  content: none !important;
}

body.woocommerce-checkout #order_review #payment div.payment_box p {
  margin: 0 0 10px !important;
}

body.woocommerce-checkout #order_review #payment div.payment_box p:last-child {
  margin-bottom: 0 !important;
}

body.woocommerce-checkout #order_review #payment div.payment_box img {
  width: auto !important;
  max-width: 64px !important;
  max-height: 46px !important;
  margin: 4px 8px 4px 0 !important;
  object-fit: contain;
}

body.woocommerce-checkout #order_review #payment .place-order {
  margin: 0 !important;
  padding: 12px 0 0 !important;
  background: transparent !important;
}

body.woocommerce-checkout #order_review #payment .woocommerce-privacy-policy-text {
  margin: 0 0 16px !important;
  color: var(--plp-ink-soft);
  font-size: 12.5px;
  line-height: 1.65;
}

body.woocommerce-checkout #order_review #payment #place_order {
  float: none !important;
  width: 100% !important;
  min-height: 52px;
  margin: 0 !important;
  border-radius: 999px !important;
  background: var(--plp-ink) !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 850;
  letter-spacing: .01em;
}

body.woocommerce-checkout #order_review #payment #place_order:hover,
body.woocommerce-checkout #order_review #payment #place_order:focus-visible {
  background: var(--plp-blue-deep) !important;
}

@media (max-width: 920px) {
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout {
    display: block !important;
  }

  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #customer_details {
    margin-bottom: 30px !important;
  }

  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review_heading,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review {
    width: 100% !important;
  }
}

@media (max-width: 560px) {
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review_heading {
    padding: 18px 18px 13px !important;
  }

  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review {
    padding: 0 14px 16px !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td {
    padding: 10px 9px !important;
    font-size: 12.5px;
  }

  body.woocommerce-checkout #order_review #payment ul.payment_methods > li.wc_payment_method > label {
    padding-right: 12px !important;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.100 — Float WhatsApp above ModernCart + contain mobile checkout
   -------------------------------------------------------------------------- */

/* CSS fallback before JavaScript measures the actual ModernCart trigger. */
.plp-whatsapp-float {
  max-width: calc(100vw - 28px);
  box-sizing: border-box;
}

@media (max-width: 600px) {
  /* Prevent any checkout wrapper or plugin panel from imposing a desktop
     minimum width on the phone layout. */
  body.woocommerce-checkout .plp-page-shell,
  body.woocommerce-checkout .plp-main-content,
  body.woocommerce-checkout .plp-standard-page,
  body.woocommerce-checkout .plp-standard-page-container,
  body.woocommerce-checkout .plp-standard-page-article,
  body.woocommerce-checkout .plp-standard-page-content,
  body.woocommerce-checkout .plp-standard-page-content .woocommerce,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #customer_details,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review_heading,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review,
  body.woocommerce-checkout #order_review .woocommerce-checkout-review-order,
  body.woocommerce-checkout #order_review #payment,
  body.woocommerce-checkout #order_review #payment ul.payment_methods,
  body.woocommerce-checkout #order_review #payment ul.payment_methods > li.wc_payment_method,
  body.woocommerce-checkout #order_review #payment div.payment_box {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout {
    overflow: visible !important;
  }

  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout > #order_review {
    overflow: hidden !important;
    padding-right: 10px !important;
    padding-left: 10px !important;
  }

  /* Keep the order summary as a real two-column table, but force both columns
     to share the available phone width instead of inheriting Woo/Astra's
     generic 620px shop-table minimum. */
  body.woocommerce-checkout #order_review table.shop_table,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tbody,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tr {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td {
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 9px 7px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    hyphens: auto;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th:first-child,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td:first-child {
    width: 62% !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th:last-child,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td:last-child {
    width: 38% !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table .product-total,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot td {
    white-space: normal !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table .woocommerce-Price-amount {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
  }

  body.woocommerce-checkout #order_review #payment div.payment_box,
  body.woocommerce-checkout #order_review #payment div.payment_box p,
  body.woocommerce-checkout #order_review #payment label {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  body.woocommerce-checkout #order_review #payment div.payment_box img {
    max-width: min(56px, 24vw) !important;
    height: auto !important;
  }
}


/* --------------------------------------------------------------------------
   v2.1.2.22.101 — Cart checkout hang hotfix
   The functional fix is in assets/js/main.js. This marker keeps release
   tracking aligned with the child-theme version.
   -------------------------------------------------------------------------- */


/* --------------------------------------------------------------------------
   v2.1.2.22.102 — Native Cart-to-Checkout form
   Avoid JavaScript interception by using a normal GET form submission.
   -------------------------------------------------------------------------- */
body.woocommerce-cart .wc-proceed-to-checkout .plp-cart-checkout-form {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout .plp-cart-checkout-submit {
  display: block !important;
  width: 100% !important;
  min-height: 54px;
  margin: 0 !important;
  padding: 14px 22px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--plp-ink) !important;
  color: #fff !important;
  font: inherit;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  cursor: pointer !important;
  appearance: none;
  -webkit-appearance: none;
}

body.woocommerce-cart .wc-proceed-to-checkout .plp-cart-checkout-submit:hover,
body.woocommerce-cart .wc-proceed-to-checkout .plp-cart-checkout-submit:focus-visible {
  background: var(--plp-blue-deep) !important;
  color: #fff !important;
}

/* --------------------------------------------------------------------------
   v2.1.2.22.103 — Continuous checkout separators + mobile page alignment
   -------------------------------------------------------------------------- */

/* WooCommerce/Astra can draw horizontal borders cell by cell in the order
   review table. On narrow screens those cell borders may leave a visible gap
   around the column boundary. Draw one separator on the complete row instead. */
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td {
  border-top-width: 0 !important;
  border-bottom-width: 0 !important;
}

body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead tr,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tbody tr,
body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot tr:not(:last-child) {
  box-shadow: inset 0 -1px 0 var(--plp-line) !important;
}

@media (max-width: 600px) {
  /* v22.100 deliberately removed desktop minimum widths, but its generic
     width:100% rule also overrode the shared mobile page gutter. Restore the
     same centred canvas used by About, Account and other standard pages. */
  body.woocommerce-checkout .plp-standard-page-container {
    width: min(var(--plp-container), calc(100% - 28px)) !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body.woocommerce-checkout .plp-standard-page-heading,
  body.woocommerce-checkout .plp-standard-page-content {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body.woocommerce-checkout .plp-standard-page-breadcrumb {
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  /* Keep form copy and fields away from the physical screen edge while the
     inner checkout columns continue to use the full shared page canvas. */
  body.woocommerce-checkout .plp-standard-page-content .woocommerce,
  body.woocommerce-checkout .plp-standard-page-content form.checkout.woocommerce-checkout,
  body.woocommerce-checkout .plp-standard-page-content #customer_details,
  body.woocommerce-checkout .plp-standard-page-content #order_review_heading,
  body.woocommerce-checkout .plp-standard-page-content #order_review {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead tr,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tbody tr,
  body.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tfoot tr:not(:last-child) {
    box-shadow: inset 0 -1px 0 var(--plp-line) !important;
  }
}

@media (max-width: 380px) {
  body.woocommerce-checkout .plp-standard-page-container {
    width: min(var(--plp-container), calc(100% - 24px)) !important;
  }
}

/* --------------------------------------------------------------------------
   v2.1.2.22.104 — Order-received WhatsApp follow-up card
   -------------------------------------------------------------------------- */
body.woocommerce-order-received .plp-order-whatsapp-followup {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  width: 100%;
  margin: 24px 0 32px;
  padding: 24px 26px;
  border: 1px solid var(--plp-line);
  border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #fbf0ff 100%);
  box-shadow: 0 14px 34px rgba(54, 3, 64, 0.08);
}

body.woocommerce-order-received .plp-order-whatsapp-followup__copy {
  min-width: 0;
}

body.woocommerce-order-received .plp-order-whatsapp-followup__eyebrow {
  margin: 0 0 6px;
  color: var(--plp-blue-deep);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  line-height: 1.3;
}

body.woocommerce-order-received .plp-order-whatsapp-followup__title {
  margin: 0 0 8px;
  color: var(--plp-ink);
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.15;
}

body.woocommerce-order-received .plp-order-whatsapp-followup__text {
  max-width: 760px;
  margin: 0;
  color: var(--plp-muted);
  font-size: 15px;
  line-height: 1.65;
}

body.woocommerce-order-received .plp-order-whatsapp-followup__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 50px;
  padding: 13px 20px;
  border-radius: 999px;
  background: var(--plp-ink);
  color: #fff !important;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 12px 24px rgba(54, 3, 64, 0.16);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

body.woocommerce-order-received .plp-order-whatsapp-followup__button:hover,
body.woocommerce-order-received .plp-order-whatsapp-followup__button:focus-visible {
  background: var(--plp-blue-deep);
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 15px 28px rgba(54, 3, 64, 0.22);
}

body.woocommerce-order-received .plp-order-whatsapp-followup__button span:first-child {
  font-size: 19px;
  line-height: 1;
}

@media (max-width: 700px) {
  body.woocommerce-order-received .plp-order-whatsapp-followup {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-top: 20px;
    padding: 21px 18px;
    border-radius: 18px;
  }

  body.woocommerce-order-received .plp-order-whatsapp-followup__button {
    width: 100%;
    white-space: normal;
  }
}



/* --------------------------------------------------------------------------
   v2.1.2.22.106 — Multiple Facebook and Instagram buttons on Contact page
   -------------------------------------------------------------------------- */
.plp-contact-card-social {
  align-items: flex-start;
}
.plp-contact-card-social .plp-contact-icon {
  margin-top: 2px;
}
.plp-contact-card-social .plp-contact-card-copy {
  flex: 1 1 auto;
  width: min(100%, 620px);
}
.plp-contact-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 10px;
}
.plp-contact-social-link {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  border: 1px solid rgba(43, 9, 52, .17);
  border-radius: 999px;
  background: #fff;
  color: var(--plp-ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.plp-contact-social-link:hover,
.plp-contact-social-link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(43, 9, 52, .45);
  background: var(--plp-lilac);
  color: var(--plp-ink);
  box-shadow: 0 7px 18px rgba(43, 9, 52, .09);
}
@media (max-width: 680px) {
  .plp-contact-social-links {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .plp-contact-social-link {
    width: 100%;
    border-radius: 14px;
  }
}


/* v2.1.2.22.107 — Contact Settings label and dedicated Gmail verification routing. */


/* --------------------------------------------------------------------------
   v3.1.0 — GILIPET showcase mode (no WooCommerce, cart, account, or payment)
   -------------------------------------------------------------------------- */
body.single-gili_product .plp-product-summary .plp-eyebrow { display: inline-block; margin-bottom: 12px; }
.plp-showcase-product-subtitle { margin: 0 0 18px; color: var(--plp-blue); font-size: 18px; font-weight: 750; line-height: 1.5; }
.plp-showcase-feature-list { display: grid; gap: 9px; margin: 0 0 22px; padding: 0; list-style: none; }
.plp-showcase-feature-list li { position: relative; padding-left: 22px; color: var(--plp-ink); font-size: 13px; line-height: 1.55; }
.plp-showcase-feature-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--plp-blue); font-weight: 900; }
.plp-showcase-primary-actions { display: flex; flex-wrap: wrap; gap: 11px; margin: 0 0 24px; }
.plp-showcase-primary-actions .plp-button { min-width: 160px; text-align: center; }
.plp-showcase-quick-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0 0 22px; border: 1px solid var(--plp-line); border-radius: 16px; overflow: hidden; background: #fff; }
.plp-showcase-quick-specs div { padding: 13px 15px; border-bottom: 1px solid var(--plp-line); }
.plp-showcase-quick-specs div:nth-child(odd) { border-right: 1px solid var(--plp-line); }
.plp-showcase-quick-specs dt { color: var(--plp-ink-soft); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.plp-showcase-quick-specs dd { margin: 4px 0 0; color: var(--plp-ink); font-size: 13px; font-weight: 750; }
.plp-showcase-gallery-thumbs button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.plp-showcase-gallery-thumbs button.is-active { box-shadow: inset 0 0 0 2px var(--plp-blue); border-radius: 11px; }
.plp-gallery-placeholder, .plp-loop-placeholder { display: grid; place-items: center; width: 100%; aspect-ratio: 1/1; background: #fbf4fd; color: var(--plp-blue); font-family: var(--plp-font-serif); font-size: 28px; }
.plp-loop-product-category { display: block; margin: 14px 15px 0; color: var(--plp-ink-soft); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.plp-showcase-card-copy { display: block; min-height: 42px; color: var(--plp-ink-soft) !important; font-size: 12px !important; font-weight: 500 !important; line-height: 1.55; }
.plp-product-summary-line { min-height: 42px; color: var(--plp-ink-soft) !important; font-size: 12px !important; font-weight: 500 !important; line-height: 1.55; }
.plp-showcase-view-button { margin-top: auto !important; }
.plp-showcase-information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.plp-showcase-spec-table, .plp-showcase-info-card { padding: clamp(22px, 3vw, 34px); border: 1px solid var(--plp-line); border-radius: 20px; background: #fff; }
.plp-showcase-spec-table { grid-column: 1 / -1; }
.plp-showcase-spec-table h3, .plp-showcase-info-card h3 { margin: 0 0 18px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: 28px; }
.plp-showcase-spec-table dl { margin: 0; }
.plp-showcase-spec-table dl div { display: grid; grid-template-columns: minmax(130px, .38fr) 1fr; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--plp-line); }
.plp-showcase-spec-table dl div:last-child { border-bottom: 0; }
.plp-showcase-spec-table dt { color: var(--plp-ink-soft); font-size: 12px; font-weight: 800; }
.plp-showcase-spec-table dd { margin: 0; color: var(--plp-ink); font-size: 13px; }
.plp-showcase-info-card p, .plp-showcase-inquiry-intro { color: var(--plp-ink-soft); line-height: 1.75; }
.plp-showcase-inquiry-section .gsm-inquiry { max-width: none; padding: 0; background: transparent; }
.plp-showcase-inquiry-section .gsm-inquiry-form, .plp-inquiry-layout .gsm-inquiry-form { border: 1px solid var(--plp-line); border-radius: 22px; background: #fff; box-shadow: var(--plp-shadow); }
.plp-inquiry-layout > .gsm-inquiry { width: 100%; }
.plp-header-actions .plp-icon-link { text-decoration: none; }
.plp-header-actions .plp-header-icon path, .plp-header-actions .plp-header-icon circle { fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.plp-product-order-notice--shipping { background: var(--plp-blue-pale); }
.plp-product-order-notice--shipping a { color: var(--plp-blue); }
body.post-type-archive-gili_product .plp-whatsapp-float, body.tax-gili_product_cat .plp-whatsapp-float { display: none; }

@media (max-width: 780px) {
  .plp-showcase-quick-specs { grid-template-columns: 1fr; }
  .plp-showcase-quick-specs div:nth-child(odd) { border-right: 0; }
  .plp-showcase-primary-actions { display: grid; grid-template-columns: 1fr; }
  .plp-showcase-information-grid { grid-template-columns: 1fr; }
  .plp-showcase-spec-table { grid-column: auto; }
  .plp-shop-results ul.products.plp-products--list li.product .plp-showcase-card-copy { grid-column: 2; grid-row: 2; margin: 5px 0 0 !important; min-height: 0; }
  .plp-shop-results ul.products.plp-products--list li.product .plp-loop-product-category { display: none; }
}


/* --------------------------------------------------------------------------
   v3.1.1 — simplified header, exact showcase navigation, public Comment page
   -------------------------------------------------------------------------- */
.plp-header-actions--language-only {
  justify-content: flex-end;
  min-width: 0;
}
.plp-header-actions--language-only .plp-language-switcher {
  margin-left: 0;
}

.plp-comment-page-hero {
  padding: clamp(48px, 7vw, 88px) 0 clamp(42px, 6vw, 72px);
  background: linear-gradient(135deg, #f7e4fb 0%, #f1d4f7 48%, #edf8f7 100%);
}
.plp-comment-page-hero .plp-page-breadcrumb { margin-bottom: 32px; }
.plp-comment-page-hero h1 {
  max-width: 780px;
  margin: 10px 0 16px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(42px, 6vw, 72px);
  line-height: 1.02;
}
.plp-comment-page-hero p {
  max-width: 720px;
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: clamp(16px, 2vw, 19px);
  line-height: 1.75;
}
.plp-comment-page-section { padding: clamp(50px, 7vw, 90px) 0; background: #fff; }
.plp-comment-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .75fr);
  gap: clamp(30px, 5vw, 72px);
  align-items: start;
}
.plp-comment-page-heading h2,
.plp-comment-page-form .comment-reply-title {
  margin: 8px 0 24px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.15;
}
.plp-public-comment-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.plp-public-comment-list .comment {
  padding: 22px;
  border: 1px solid var(--plp-line);
  border-radius: 18px;
  background: var(--plp-cream);
}
.plp-public-comment-list .comment-body { position: relative; }
.plp-public-comment-list .comment-meta { margin-bottom: 12px; }
.plp-public-comment-list .comment-author { display: flex; align-items: center; gap: 11px; }
.plp-public-comment-list .avatar { border-radius: 50%; }
.plp-public-comment-list .fn { color: var(--plp-ink); font-style: normal; font-weight: 850; }
.plp-public-comment-list .says { display: none; }
.plp-public-comment-list .comment-metadata { margin: 5px 0 0 59px; font-size: 11px; }
.plp-public-comment-list .comment-metadata a { color: var(--plp-ink-soft); text-decoration: none; }
.plp-public-comment-list .comment-content { color: var(--plp-ink-soft); font-size: 14px; line-height: 1.75; }
.plp-public-comment-list .comment-content p:last-child { margin-bottom: 0; }
.plp-public-comment-list .reply { display: none; }
.plp-comment-empty-state {
  padding: 28px;
  border: 1px dashed rgba(43, 9, 52, .24);
  border-radius: 18px;
  background: var(--plp-cream);
}
.plp-comment-empty-state strong { display: block; margin-bottom: 6px; color: var(--plp-ink); }
.plp-comment-empty-state p { margin: 0; color: var(--plp-ink-soft); }
.plp-comment-page-form {
  position: sticky;
  top: 28px;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--plp-shadow);
}
.plp-comment-page-form .comment-notes,
.plp-comment-page-form .logged-in-as { color: var(--plp-ink-soft); font-size: 12px; line-height: 1.65; }
.plp-comment-page-form label { display: block; margin-bottom: 7px; color: var(--plp-ink); font-size: 12px; font-weight: 800; }
.plp-comment-page-form input[type="text"],
.plp-comment-page-form input[type="email"],
.plp-comment-page-form input[type="url"],
.plp-comment-page-form textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid var(--plp-line);
  border-radius: 12px;
  background: #fff;
  color: var(--plp-ink);
  font: inherit;
}
.plp-comment-page-form textarea { min-height: 150px; resize: vertical; }
.plp-comment-page-form .form-submit { margin: 22px 0 0; }
.plp-comment-page-form .submit { width: 100%; border: 0; cursor: pointer; }

@media (max-width: 900px) {
  .plp-comment-page-layout { grid-template-columns: 1fr; }
  .plp-comment-page-form { position: static; }
}

/* --------------------------------------------------------------------------
   v3.1.3 — Visitor comment photo upload
   -------------------------------------------------------------------------- */
.plp-comment-image-field {
  margin-top: 16px;
  padding: 16px;
  border: 1px dashed rgba(43, 9, 52, .28);
  border-radius: 14px;
  background: var(--plp-blue-pale);
}
.plp-comment-image-field label {
  margin-bottom: 9px;
}
.plp-comment-image-optional {
  color: var(--plp-ink-soft);
  font-weight: 600;
}
.plp-comment-image-field input[type="file"] {
  display: block;
  width: 100%;
  padding: 9px;
  border: 1px solid var(--plp-line);
  border-radius: 11px;
  background: #fff;
  color: var(--plp-ink-soft);
  font: inherit;
  font-size: 12px;
}
.plp-comment-image-field input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 8px 12px;
  border: 0;
  border-radius: 999px;
  background: var(--plp-blue);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.plp-comment-image-field small {
  display: block;
  margin-top: 8px;
  color: var(--plp-ink-soft);
  font-size: 11px;
  line-height: 1.5;
}
.plp-comment-image-preview {
  margin-top: 12px;
}
.plp-comment-image-preview img {
  display: block;
  width: 100%;
  max-height: 240px;
  object-fit: cover;
  border: 1px solid var(--plp-line);
  border-radius: 12px;
}
.plp-comment-uploaded-photo {
  margin: 16px 0 0;
}
.plp-comment-uploaded-image {
  display: block;
  width: auto;
  max-width: min(100%, 680px);
  max-height: 620px;
  object-fit: contain;
  border: 1px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(43, 9, 52, .08);
}

/* --------------------------------------------------------------------------
   v3.2.0 — Restored product gallery, one-row section navigation and flexible
   Product Info / Product Details content.
   -------------------------------------------------------------------------- */
body.single-product .plp-showcase-primary-actions {
  display: none !important;
}

/* The new gallery rail is independent of WooCommerce's hidden flex thumbnails. */
body.single-product .plp-showcase-gallery-rail {
  box-sizing: border-box;
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--plp-line);
  border-radius: 18px;
  background: #f2d2f6;
  box-shadow: 0 12px 30px rgba(43, 9, 52, .06);
}
body.single-product .plp-showcase-gallery-viewport {
  min-width: 0;
  flex: 1 1 auto;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(43, 9, 52, .34) transparent;
}
body.single-product .plp-showcase-gallery-viewport::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
body.single-product .plp-showcase-gallery-viewport::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(43, 9, 52, .34);
}
body.single-product .plp-showcase-gallery-thumbs {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 8px;
  list-style: none;
}
body.single-product .plp-showcase-gallery-thumbs li {
  min-width: 0;
  margin: 0;
}
body.single-product .plp-showcase-thumb {
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  aspect-ratio: 1 / 1;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
body.single-product .plp-showcase-thumb:hover,
body.single-product .plp-showcase-thumb:focus-visible {
  transform: translateY(-1px);
  outline: 0;
}
body.single-product .plp-showcase-thumb.is-active {
  border-color: var(--plp-blue);
  box-shadow: 0 5px 14px rgba(43, 9, 52, .15);
}
body.single-product .plp-showcase-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.single-product .plp-gallery-rail-arrow {
  flex: 0 0 auto;
  height: 31px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--plp-ink);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}
body.single-product .plp-gallery-rail-arrow:hover,
body.single-product .plp-gallery-rail-arrow:focus-visible {
  background: rgba(255,255,255,.58);
  outline: 0;
}

/* Main-image hover magnification and explicit full-screen button. */
body.single-product .woocommerce-product-gallery__image {
  position: relative;
  overflow: hidden;
}
body.single-product .plp-showcase-main-image {
  cursor: zoom-in;
  transition: transform .18s ease;
  will-change: transform;
}
body.single-product .plp-showcase-main-image.is-hover-zoomed {
  transform: scale(1.75);
}
body.single-product .plp-showcase-zoom-trigger {
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 14;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(43, 9, 52, .16);
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--plp-ink);
  box-shadow: 0 8px 22px rgba(43,9,52,.12);
  cursor: pointer;
  font-size: 24px;
}
body.single-product .plp-product-hover-zoom,
body.single-product .plp-product-hover-lens {
  display: none !important;
}

@media (min-width: 981px) {
  body.single-product .plp-single-product-grid {
    grid-template-columns: minmax(0, 676px) minmax(360px, 1fr) !important;
    gap: clamp(48px, 5vw, 84px) !important;
    align-items: start !important;
  }
  body.single-product .plp-product-media {
    --plp-product-gallery-top-offset: 0px !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 560px) 94px !important;
    grid-template-rows: 560px !important;
    column-gap: 22px !important;
    width: 676px !important;
    max-width: 676px !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 560px !important;
    height: 560px !important;
    min-height: 560px !important;
    max-height: 560px !important;
    margin: 0 !important;
  }
  body.single-product .plp-showcase-gallery-rail {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 94px !important;
    height: 560px !important;
    margin: 0 !important;
  }
  body.single-product .plp-showcase-gallery-thumbs {
    grid-auto-rows: 64px;
  }
}

@media (min-width: 781px) and (max-width: 980px) {
  body.single-product .plp-single-product-grid {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr) !important;
    gap: 34px !important;
  }
  body.single-product .plp-product-media {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 78px !important;
    gap: 14px !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 1 / 1;
  }
  body.single-product .plp-showcase-gallery-rail {
    height: auto;
    max-height: min(520px, 52vw);
  }
}

@media (max-width: 780px) {
  body.single-product .plp-product-media {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 12px !important;
    width: 100% !important;
  }
  body.single-product .plp-product-media .woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  body.single-product .plp-showcase-gallery-rail {
    grid-column: 1 !important;
    grid-row: 2 !important;
    display: grid;
    grid-template-columns: 31px minmax(0,1fr) 31px;
    width: 100%;
    height: 88px;
    padding: 7px 0;
  }
  body.single-product .plp-showcase-gallery-viewport {
    overflow-x: auto;
    overflow-y: hidden;
  }
  body.single-product .plp-showcase-gallery-thumbs {
    display: flex;
    width: max-content;
    height: 72px;
    gap: 8px;
    padding: 0 7px;
  }
  body.single-product .plp-showcase-gallery-thumbs li,
  body.single-product .plp-showcase-thumb {
    flex: 0 0 68px;
    width: 68px;
    height: 68px;
  }
  body.single-product .plp-gallery-rail-arrow--up { transform: rotate(-90deg); }
  body.single-product .plp-gallery-rail-arrow--down { transform: rotate(-90deg); }
  body.single-product .plp-showcase-main-image.is-hover-zoomed { transform: none; }
}

/* Full-screen image viewer. */
body.plp-lightbox-open {
  overflow: hidden;
}
.plp-product-lightbox[hidden] {
  display: none !important;
}
.plp-product-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  display: grid;
  grid-template-columns: minmax(44px, 8vw) minmax(0, 1fr) minmax(44px, 8vw);
  align-items: center;
  padding: clamp(18px, 3vw, 42px);
  background: rgba(24, 8, 29, .92);
  backdrop-filter: blur(10px);
}
.plp-product-lightbox figure {
  grid-column: 2;
  display: grid;
  max-width: min(1180px, 84vw);
  max-height: 90vh;
  justify-self: center;
  margin: 0;
}
.plp-product-lightbox img {
  display: block;
  max-width: 100%;
  max-height: 84vh;
  margin: auto;
  border-radius: 12px;
  object-fit: contain;
  background: #fff;
}
.plp-product-lightbox figcaption {
  margin-top: 10px;
  color: #fff;
  text-align: center;
}
.plp-product-lightbox-close,
.plp-product-lightbox-arrow {
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
  color: #fff;
  cursor: pointer;
}
.plp-product-lightbox-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 46px;
  height: 46px;
  font-size: 30px;
}
.plp-product-lightbox-arrow {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  justify-self: center;
  font-size: 25px;
}
.plp-product-lightbox-arrow--prev { grid-column: 1; }
.plp-product-lightbox-arrow--next { grid-column: 3; }

/* The lower product navigation is always one horizontal row. */
body.single-product .plp-product-lower-tabs {
  display: flex !important;
  width: 100%;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 0 !important;
  overflow-x: auto !important;
  margin-top: clamp(38px, 5vw, 68px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: var(--plp-lilac);
  scrollbar-width: none;
}
body.single-product .plp-product-lower-tabs::-webkit-scrollbar {
  display: none;
}
body.single-product .plp-product-lower-tabs .plp-product-lower-tab {
  position: relative;
  display: flex !important;
  min-width: 180px;
  min-height: 68px;
  flex: 1 0 0 !important;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 20px 22px !important;
  border-right: 1px solid rgba(43,9,52,.10);
  color: var(--plp-ink) !important;
  font-size: 14px !important;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
}
body.single-product .plp-product-lower-tabs .plp-product-lower-tab:last-child {
  border-right: 0;
}
body.single-product .plp-product-lower-tabs .plp-product-lower-tab:hover,
body.single-product .plp-product-lower-tabs .plp-product-lower-tab:focus-visible {
  background: rgba(255,255,255,.42);
  outline: 0;
}

/* Flexible Product Info and Product Details blocks. */
.plp-flexible-content {
  display: grid;
  gap: clamp(24px, 4vw, 52px);
}
.plp-flexible-block {
  min-width: 0;
}
.plp-flexible-block--text,
.plp-flexible-block--list {
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--plp-line);
  border-radius: 22px;
  background: #fff;
}
.plp-flexible-block h3 {
  margin: 0 0 18px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.08;
}
.plp-flexible-copy-body {
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.8;
}
.plp-flexible-copy-body > :last-child {
  margin-bottom: 0;
}
.plp-flexible-image {
  margin: 0;
}
.plp-flexible-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  background: var(--plp-blue-pale);
}
.plp-flexible-image figcaption {
  margin-top: 10px;
  color: var(--plp-ink-soft);
  font-size: 12px;
  text-align: center;
}
.plp-flexible-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 5vw, 72px);
  align-items: center;
  padding: clamp(24px, 4vw, 46px);
  border: 1px solid var(--plp-line);
  border-radius: 24px;
  background: #fff;
}
.plp-flexible-list-heading {
  margin-bottom: 20px !important;
}
.plp-flexible-list {
  margin: 0;
  border-top: 1px solid var(--plp-line);
}
.plp-flexible-list > div {
  display: grid;
  grid-template-columns: minmax(140px, .34fr) minmax(0, 1fr);
  gap: 22px;
  padding: 14px 0;
  border-bottom: 1px solid var(--plp-line);
}
.plp-flexible-list dt {
  color: var(--plp-ink);
  font-weight: 800;
}
.plp-flexible-list dd {
  margin: 0;
  color: var(--plp-ink-soft);
}
.plp-flexible-list-bullet {
  grid-template-columns: 20px minmax(0, 1fr) !important;
}

@media (max-width: 720px) {
  .plp-flexible-split {
    grid-template-columns: 1fr;
  }
  .plp-flexible-block--image_right .plp-flexible-copy {
    order: 2;
  }
  .plp-flexible-list > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  body.single-product .plp-product-lower-tabs .plp-product-lower-tab {
    min-width: 150px;
    flex-basis: 150px !important;
    font-size: 12px !important;
  }
}



/* --------------------------------------------------------------------------
   v3.2.1 — Per-block typography and image sizing from the product editor
   -------------------------------------------------------------------------- */
.plp-flexible-block h3,
.plp-flexible-list-heading {
  font-size: var(--plp-flex-heading-size, clamp(28px, 3.4vw, 44px)) !important;
  font-weight: var(--plp-flex-heading-weight, 700);
}
.plp-flexible-copy-body,
.plp-flexible-list,
.plp-flexible-list dt,
.plp-flexible-list dd {
  font-size: var(--plp-flex-body-size, 15px);
  font-weight: var(--plp-flex-body-weight, 400);
}
.plp-flexible-image {
  width: min(var(--plp-flex-image-width, 100%), 100%);
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}
.plp-flexible-image img {
  width: 100%;
  max-height: var(--plp-flex-image-max-height, none);
  object-fit: var(--plp-flex-image-fit, contain);
}
.plp-flexible-block--image_left .plp-flexible-split {
  grid-template-columns: minmax(0, var(--plp-flex-image-width, 50%)) minmax(0, 1fr);
}
.plp-flexible-block--image_right .plp-flexible-split {
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--plp-flex-image-width, 50%));
}
@media (max-width: 720px) {
  .plp-flexible-block--image_left .plp-flexible-split,
  .plp-flexible-block--image_right .plp-flexible-split {
    grid-template-columns: 1fr;
  }
  .plp-flexible-image {
    width: min(var(--plp-flex-image-width, 100%), 100%);
  }
}


/* --------------------------------------------------------------------------
   v3.4.0 — Backend-controlled section visibility
   -------------------------------------------------------------------------- */
.plp-comment-page-layout--single {
  grid-template-columns: minmax(0, 860px);
  justify-content: center;
}
.plp-comment-page-layout--single .plp-comment-page-form {
  position: static;
}
.plp-faq-layout--single {
  grid-template-columns: minmax(0, 900px);
  justify-content: center;
}
.plp-shop-layout--without-categories {
  grid-template-columns: 1fr !important;
}
body.single-product .plp-single-product-grid--single {
  grid-template-columns: minmax(0, 760px) !important;
  justify-content: center;
}
body.single-product .plp-single-product-grid--single .plp-product-media,
body.single-product .plp-single-product-grid--single .plp-product-summary {
  width: 100%;
  max-width: 760px;
  justify-self: center;
}


/* --------------------------------------------------------------------------
   v3.5.0 — Draggable floating contact dock
   WhatsApp, email, Instagram, Facebook and Back to Top share one movable rail.
   -------------------------------------------------------------------------- */
.plp-back-to-top,
.plp-whatsapp-float {
  display: none !important;
}

.plp-contact-dock {
  position: fixed;
  top: 50%;
  right: max(14px, env(safe-area-inset-right));
  z-index: 9000;
  display: flex;
  width: 72px;
  flex-direction: column;
  align-items: stretch;
  overflow: visible;
  border: 1px solid rgba(43, 9, 52, .22);
  border-radius: 18px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 18px 48px rgba(43, 9, 52, .17);
  transform: translateY(-50%);
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: grab;
  backdrop-filter: blur(12px);
}

.plp-contact-dock.is-dragging {
  cursor: grabbing;
  box-shadow: 0 24px 60px rgba(43, 9, 52, .28);
}

.plp-contact-dock-item {
  position: relative;
  display: grid;
  width: 100%;
  min-width: 0;
  height: 68px;
  padding: 0;
  place-items: center;
  border: 0;
  border-bottom: 1px solid rgba(43, 9, 52, .16);
  border-radius: 0;
  background: transparent;
  color: var(--plp-ink) !important;
  text-decoration: none !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background .18s ease, color .18s ease;
}

.plp-contact-dock-item:first-child {
  border-radius: 17px 17px 0 0;
}

.plp-contact-dock-item:last-child {
  border-bottom: 0;
  border-radius: 0 0 17px 17px;
}

.plp-contact-dock-item:hover,
.plp-contact-dock-item:focus-visible {
  background: var(--plp-blue-pale);
  color: var(--plp-blue) !important;
  outline: 0;
}

.plp-contact-dock-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  pointer-events: none;
}

.plp-contact-dock-icon svg {
  display: block;
  width: 30px;
  height: 30px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.plp-contact-dock-item--facebook .plp-contact-dock-icon svg {
  fill: currentColor;
  stroke: none;
}

.plp-contact-dock-label {
  position: absolute;
  top: 50%;
  right: calc(100% + 16px);
  z-index: 2;
  display: block;
  width: min(240px, calc(100vw - 118px));
  padding: 15px 18px;
  border: 1px solid rgba(43, 9, 52, .16);
  border-radius: 15px;
  background: #fff;
  color: var(--plp-ink);
  box-shadow: 0 16px 42px rgba(43, 9, 52, .16);
  text-align: left;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(10px, -50%);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}

.plp-contact-dock-label::after {
  position: absolute;
  top: 50%;
  left: 100%;
  width: 12px;
  height: 12px;
  border-top: 1px solid rgba(43, 9, 52, .16);
  border-right: 1px solid rgba(43, 9, 52, .16);
  background: #fff;
  content: "";
  transform: translate(-6px, -50%) rotate(45deg);
}

.plp-contact-dock-label strong,
.plp-contact-dock-label small {
  display: block;
}

.plp-contact-dock-label strong {
  color: var(--plp-ink);
  font-size: 15px;
  font-weight: 850;
  line-height: 1.25;
}

.plp-contact-dock-label small {
  margin-top: 5px;
  overflow-wrap: anywhere;
  color: var(--plp-ink-soft);
  font-size: 12px;
  font-weight: 550;
  line-height: 1.45;
}

.plp-contact-dock-item:hover .plp-contact-dock-label,
.plp-contact-dock-item:focus-visible .plp-contact-dock-label,
.plp-contact-dock-item:focus-within .plp-contact-dock-label {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(0, -50%);
}

/* When the visitor drags the dock to the left half, labels open to the right. */
.plp-contact-dock.is-left-side .plp-contact-dock-label {
  right: auto;
  left: calc(100% + 16px);
  transform: translate(-10px, -50%);
}

.plp-contact-dock.is-left-side .plp-contact-dock-label::after {
  right: 100%;
  left: auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid rgba(43, 9, 52, .16);
  border-left: 1px solid rgba(43, 9, 52, .16);
  transform: translate(6px, -50%) rotate(45deg);
}

.plp-contact-dock.is-left-side .plp-contact-dock-item:hover .plp-contact-dock-label,
.plp-contact-dock.is-left-side .plp-contact-dock-item:focus-visible .plp-contact-dock-label,
.plp-contact-dock.is-left-side .plp-contact-dock-item:focus-within .plp-contact-dock-label {
  transform: translate(0, -50%);
}

.plp-contact-dock.is-dragging .plp-contact-dock-label {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 780px) {
  .plp-contact-dock {
    width: 58px;
    border-radius: 15px;
  }

  .plp-contact-dock-item {
    height: 55px;
  }

  .plp-contact-dock-item:first-child {
    border-radius: 14px 14px 0 0;
  }

  .plp-contact-dock-item:last-child {
    border-radius: 0 0 14px 14px;
  }

  .plp-contact-dock-icon,
  .plp-contact-dock-icon svg {
    width: 26px;
    height: 26px;
  }

  .plp-contact-dock-label {
    right: calc(100% + 11px);
    width: min(205px, calc(100vw - 88px));
    padding: 12px 14px;
  }

  .plp-contact-dock.is-left-side .plp-contact-dock-label {
    left: calc(100% + 11px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .plp-contact-dock-item,
  .plp-contact-dock-label {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   v3.5.3 — Mobile product navigation width + English photo picker
   -------------------------------------------------------------------------- */

/* The real file input remains accessible but its browser/OS-localized native
   button and filename are visually replaced by the English control below. */
.plp-comment-image-label {
  display: block;
  margin-bottom: 10px;
  color: var(--plp-ink);
  font-weight: 800;
}
.plp-comment-image-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}
.plp-comment-file-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 8px;
  border: 1px solid var(--plp-line);
  border-radius: 14px;
  background: #fff;
}
.plp-comment-file-button {
  display: inline-flex !important;
  min-height: 42px;
  margin: 0 !important;
  padding: 10px 16px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--plp-blue);
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
}
.plp-comment-file-button:hover,
.plp-comment-file-button:focus-visible {
  background: var(--plp-blue-deep);
  outline: 0;
}
.plp-comment-image-input:focus-visible + .plp-comment-file-control .plp-comment-file-button {
  box-shadow: 0 0 0 3px rgba(43, 9, 52, .18);
}
.plp-comment-file-name {
  min-width: 0;
  overflow: hidden;
  color: var(--plp-ink-soft);
  font-size: 13px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* The three product-section links must occupy exactly the available phone
   width. Text may wrap inside a column instead of pushing the page sideways. */
@media (max-width: 720px) {
  body.single-product .plp-product-lower-sections,
  body.single-product .plp-product-lower-tabs {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .plp-product-lower-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    overflow: hidden !important;
  }

  body.single-product .plp-product-lower-tabs .plp-product-lower-tab {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 64px !important;
    flex: none !important;
    padding: 12px 5px !important;
    box-sizing: border-box !important;
    font-size: clamp(10px, 3.15vw, 12px) !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .plp-comment-file-control {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .plp-comment-file-button {
    width: 100%;
    box-sizing: border-box;
  }

  .plp-comment-file-name {
    padding: 0 5px 3px;
    text-align: center;
  }
}

/* --------------------------------------------------------------------------
   v3.5.4 — Mobile floating dock: icons only
   -------------------------------------------------------------------------- */
@media (max-width: 780px) {
  .plp-contact-dock-label,
  .plp-contact-dock-item:hover .plp-contact-dock-label,
  .plp-contact-dock-item:focus-visible .plp-contact-dock-label,
  .plp-contact-dock-item:focus-within .plp-contact-dock-label,
  .plp-contact-dock.is-left-side .plp-contact-dock-label,
  .plp-contact-dock.is-left-side .plp-contact-dock-item:hover .plp-contact-dock-label,
  .plp-contact-dock.is-left-side .plp-contact-dock-item:focus-visible .plp-contact-dock-label,
  .plp-contact-dock.is-left-side .plp-contact-dock-item:focus-within .plp-contact-dock-label {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}


/* Manual Chinese display: keep CJK typography natural while reusing all layout controls. */
body.gilipet-lang-zh {
  word-break: normal;
  overflow-wrap: anywhere;
}
body.gilipet-lang-zh h1,
body.gilipet-lang-zh h2,
body.gilipet-lang-zh h3 {
  letter-spacing: 0;
}

/* --------------------------------------------------------------------------
   v3.6.1 — Keep only the GILIPET header language selector.
   TranslatePress may output its own floating selector in the bottom corner;
   hide both legacy and current floating/menu containers so the custom header
   selector remains the single public language control.
   -------------------------------------------------------------------------- */
#trp-floater-ls,
.trp-floater-ls,
.trp-floating-language-switcher,
.trp-language-switcher-floating,
body > .trp-language-switcher-container,
body > .trp-language-switcher {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   v3.6.3 — flexible Homepage About text rows
   -------------------------------------------------------------------------- */
.plp-about-text-blocks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  margin: 0;
}

.plp-about-text-block {
  min-width: 0;
  margin: 0;
  color: var(--plp-ink-soft);
  font-family: var(--plp-font-sans);
  font-size: var(--plp-flex-text-size, var(--plp-copy-size, 15px)) !important;
  line-height: var(--plp-copy-line-height, 1.65);
  overflow-wrap: anywhere;
}

.plp-about-text-block--full {
  grid-column: 1 / -1;
}

.plp-about-text-block--half {
  grid-column: span 1;
}

@media (max-width: 780px) {
  .plp-about-text-blocks {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .plp-about-text-block--full,
  .plp-about-text-block--half {
    grid-column: 1;
  }
}


/* --------------------------------------------------------------------------
   v3.6.4 — full-width memorial category heading
   -------------------------------------------------------------------------- */
#categories .plp-category-section-heading {
  display: block;
  width: 100%;
}

#categories .plp-category-section-heading > div {
  width: 100%;
}

#categories .plp-category-section-heading h2 {
  width: 100%;
  max-width: none;
  font-size: clamp(34px, 3.8vw, 56px);
  line-height: 1.06;
  text-wrap: balance;
}

#categories .plp-category-carousel .plp-category-card small {
  max-width: 34em;
}

body.gilipet-lang-zh #categories .plp-category-section-heading h2 {
  letter-spacing: -.045em;
}


/* v3.6.6 — complete footer index and split sales / after-sales email card */
.plp-footer-grid {
  grid-template-columns: minmax(250px, 1.28fr) minmax(190px, 1.08fr) minmax(170px, .9fr) minmax(245px, 1.18fr);
  align-items: start;
}
.plp-footer-intro p { max-width: 430px; }
.plp-footer-index-column a { line-height: 1.45; overflow-wrap: anywhere; }
.plp-footer-contact-column a span { font-weight: 700; }
.plp-contact-card-email { align-items: flex-start; }
.plp-contact-card-email .plp-contact-card-copy { width: 100%; }
.plp-contact-email-links { display: grid; gap: 9px; margin-top: 4px; }
.plp-contact-email-link {
  display: grid;
  grid-template-columns: minmax(82px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid rgba(77, 18, 86, .18);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.plp-contact-email-link:hover,
.plp-contact-email-link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(77, 18, 86, .48);
  background: #fff;
}
.plp-contact-email-role { font-size: 13px; font-weight: 800; color: var(--plp-ink); }
.plp-contact-email-address { min-width: 0; overflow-wrap: anywhere; color: var(--plp-ink-soft); font-size: 13px; }
.plp-contact-email-arrow { font-size: 16px; color: var(--plp-ink); }
@media (max-width: 1100px) {
  .plp-footer-grid { grid-template-columns: 1.25fr repeat(2, minmax(0, 1fr)); }
  .plp-footer-contact-column { grid-column: 2 / -1; }
}
@media (max-width: 780px) {
  .plp-footer-grid { grid-template-columns: 1fr 1fr; }
  .plp-footer-intro,
  .plp-footer-contact-column { grid-column: 1 / -1; }
  .plp-contact-email-link { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 9px; padding: 10px 11px; }
}
@media (max-width: 520px) {
  .plp-footer-grid { grid-template-columns: 1fr; }
  .plp-footer-intro,
  .plp-footer-contact-column { grid-column: auto; }
  .plp-contact-email-link { grid-template-columns: 1fr auto; }
  .plp-contact-email-role { grid-column: 1 / -1; }
}


/* --------------------------------------------------------------------------
   v3.6.7 — verified customer reviews and product-summary merchandising fields
   -------------------------------------------------------------------------- */
.plp-comment-page-form .comment-form-author,
.plp-comment-page-form .comment-form-email {
  display: inline-block;
  width: calc(50% - 7px);
  vertical-align: top;
}
.plp-comment-page-form .comment-form-author { margin-right: 10px; }
.plp-comment-page-form .comment-form-country { clear: both; }
.plp-review-public-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 11px;
}
.plp-review-country,
.plp-review-verified {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}
.plp-review-country {
  border: 1px solid var(--plp-line);
  background: #fff;
  color: var(--plp-ink-soft);
}
.plp-review-verified {
  border: 1px solid rgba(24, 128, 56, .22);
  background: #eaf7ee;
  color: #137333;
}

.plp-simple-product-description {
  margin: 0 0 18px;
  padding: 16px 18px;
  border-left: 3px solid var(--plp-blue);
  border-radius: 0 14px 14px 0;
  background: var(--plp-cream);
}
.plp-simple-product-description p { margin: 0; }
.plp-wholesale-tier-pricing {
  margin: 0 0 20px;
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 17px;
  background: #fff;
}
.plp-wholesale-tier-pricing__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px 11px;
  background: var(--plp-blue-pale);
}
.plp-wholesale-tier-pricing__heading span {
  color: var(--plp-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.plp-wholesale-tier-pricing__heading h2 {
  margin: 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 15px;
  line-height: 1.3;
}
.plp-wholesale-tier-pricing__rows { display: grid; }
.plp-wholesale-tier-pricing__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 11px 16px;
  border-top: 1px solid var(--plp-line);
}
.plp-wholesale-tier-pricing__row span { color: var(--plp-ink-soft); font-size: 12px; }
.plp-wholesale-tier-pricing__row strong { color: var(--plp-ink); font-size: 13px; text-align: right; }
.plp-wholesale-tier-pricing > p {
  margin: 0;
  padding: 10px 16px 13px;
  border-top: 1px solid var(--plp-line);
  color: var(--plp-ink-soft);
  font-size: 10px;
  line-height: 1.55;
}

@media (min-width: 981px) {
  body.single-product .plp-product-media {
    grid-template-columns: 94px minmax(0, 560px) !important;
  }
  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    grid-column: 2 !important;
  }
  body.single-product .plp-showcase-gallery-rail {
    grid-column: 1 !important;
  }
}

@media (min-width: 781px) and (max-width: 980px) {
  body.single-product .plp-product-media {
    grid-template-columns: 78px minmax(0, 1fr) !important;
  }
  body.single-product .plp-product-media .woocommerce-product-gallery,
  body.single-product .plp-product-media .woocommerce-product-gallery__wrapper {
    grid-column: 2 !important;
  }
  body.single-product .plp-showcase-gallery-rail {
    grid-column: 1 !important;
  }
}

@media (max-width: 620px) {
  .plp-comment-page-form .comment-form-author,
  .plp-comment-page-form .comment-form-email {
    display: block;
    width: 100%;
    margin-right: 0;
  }
  .plp-wholesale-tier-pricing__heading {
    display: block;
  }
  .plp-wholesale-tier-pricing__heading h2 { margin-top: 4px; }
}


/* --------------------------------------------------------------------------
   v3.6.9 — customer-review email one-time-code verification
   -------------------------------------------------------------------------- */
.plp-review-email-verification {
  clear: both;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid var(--plp-line);
  border-radius: 16px;
  background: rgba(249, 239, 252, .58);
}
.plp-review-email-verification__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 7px;
  color: var(--plp-ink);
  font-size: 12px;
  font-weight: 900;
}
.plp-review-email-verification__status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid rgba(77, 18, 86, .18);
  border-radius: 999px;
  background: #fff;
  color: var(--plp-ink-soft);
  font-size: 10px;
  font-weight: 800;
}
.plp-review-email-verification__help,
.plp-review-email-verification__target,
.plp-review-email-verification__message {
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 11px;
  line-height: 1.55;
}
.plp-review-email-verification__target { margin-top: 6px; }
.plp-review-email-verification__actions {
  display: grid;
  grid-template-columns: auto minmax(105px, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}
.plp-review-email-send,
.plp-review-email-verify {
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid var(--plp-ink);
  border-radius: 12px;
  background: var(--plp-ink);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.plp-review-email-verify {
  border-color: rgba(77, 18, 86, .24);
  background: #fff;
  color: var(--plp-ink);
}
.plp-review-email-send:disabled,
.plp-review-email-verify:disabled {
  cursor: not-allowed;
  opacity: .62;
}
.plp-review-email-code {
  width: 100%;
  min-height: 42px;
  margin: 0 !important;
  text-align: center;
  letter-spacing: .18em;
  font-variant-numeric: tabular-nums;
}
.plp-review-email-verification__message {
  min-height: 18px;
  margin-top: 9px;
}
.plp-review-email-verification__message.is-success { color: #137333; }
.plp-review-email-verification__message.is-error { color: #b3261e; }
.plp-review-email-verification__message.is-info { color: var(--plp-ink-soft); }
.plp-review-email-verification.is-verified {
  border-color: rgba(24, 128, 56, .28);
  background: #eef8f1;
}
.plp-review-email-verification.is-verified .plp-review-email-verification__status {
  border-color: rgba(24, 128, 56, .22);
  background: #e3f4e8;
  color: #137333;
}
.plp-comment-page-form .submit[disabled],
.plp-comment-page-form button[type="submit"][disabled] {
  cursor: not-allowed;
  filter: grayscale(.2);
  opacity: .58;
}
@media (max-width: 620px) {
  .plp-review-email-verification__actions {
    grid-template-columns: 1fr;
  }
  .plp-review-email-send,
  .plp-review-email-verify {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   v3.6.10 — FAQ readability and simplified contact action
   -------------------------------------------------------------------------- */
.plp-faq-item summary {
  font-size: clamp(18px, 1.35vw, 20px);
  line-height: 1.45;
}

.plp-faq-answer {
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.75;
}

.plp-faq-support p {
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.72;
}

.plp-faq-whatsapp-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  font-size: 17px;
  font-weight: 800;
}

@media (max-width: 820px) {
  .plp-faq-item summary {
    font-size: 17px;
  }

  .plp-faq-answer,
  .plp-faq-support p {
    font-size: 15px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.13 — About Us: founder story, B2B value, categories, trust and CTA
   -------------------------------------------------------------------------- */
.plp-about-v2-hero {
  padding: clamp(36px, 5.5vw, 84px) 0 clamp(52px, 7vw, 104px);
  background: linear-gradient(180deg, #fff 0%, #fbf3fd 100%);
}

.plp-about-v2-hero .plp-page-breadcrumb {
  margin-bottom: clamp(28px, 4vw, 52px);
}

.plp-about-v2-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  align-items: center;
  gap: clamp(36px, 6vw, 92px);
}

.plp-about-v2-hero-copy h1 {
  max-width: 760px;
  margin: 12px 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(46px, 5.8vw, 86px);
  line-height: .98;
  letter-spacing: -.05em;
}

.plp-about-v2-hero-image {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(60, 10, 73, .12);
  border-radius: clamp(26px, 3.4vw, 46px);
  background: #ead0f2;
  box-shadow: 0 28px 72px rgba(61, 13, 75, .14);
}

.plp-about-v2-hero-image img {
  display: block;
  width: 100%;
  min-height: 410px;
  aspect-ratio: 1.35 / 1;
  object-fit: cover;
}

.plp-about-v2-section-heading {
  max-width: 780px;
}

.plp-about-v2-section-heading--center {
  margin-inline: auto;
  text-align: center;
}

.plp-about-v2-section-heading h2,
.plp-about-v2-team h2,
.plp-about-v2-cta h2 {
  margin: 11px 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(35px, 4.2vw, 62px);
  line-height: 1.02;
  letter-spacing: -.042em;
}

.plp-about-v2-story {
  padding: clamp(64px, 9vw, 126px) 0;
  background: #fff;
}

.plp-about-v2-story-grid {
  display: grid;
  grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(38px, 7vw, 116px);
}

.plp-about-v2-story-copy {
  display: grid;
  gap: 18px;
  color: var(--plp-ink-soft);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.82;
}

.plp-about-v2-story-copy p,
.plp-about-v2-trust p,
.plp-about-v2-team p,
.plp-about-v2-cta p {
  margin: 0;
}

.plp-about-v2-story-copy p:first-child::first-letter {
  float: left;
  margin: .08em .13em 0 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: 4em;
  line-height: .72;
}

.plp-about-v2-advantages {
  padding: clamp(58px, 8vw, 110px) 0;
  background: #fbf3fd;
}

.plp-about-v2-advantages-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: clamp(30px, 4vw, 52px);
}

.plp-about-v2-advantage-card {
  min-height: 320px;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid rgba(60, 10, 73, .13);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(61, 13, 75, .07);
}

.plp-about-v2-card-number {
  display: block;
  margin-bottom: clamp(42px, 6vw, 76px);
  color: #8f3aa0;
  font-family: var(--plp-font-serif);
  font-size: 22px;
  font-weight: 700;
}

.plp-about-v2-advantage-card h3,
.plp-about-v2-category-card h3,
.plp-about-v2-trust-cards h3 {
  margin: 0 0 13px;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(25px, 2.3vw, 35px);
  line-height: 1.05;
}

.plp-about-v2-advantage-card p,
.plp-about-v2-category-card p,
.plp-about-v2-trust-cards p {
  margin: 0;
  color: var(--plp-ink-soft);
  font-size: 15px;
  line-height: 1.7;
}

.plp-about-v2-categories {
  padding: clamp(64px, 9vw, 124px) 0;
  background: #fff;
}

.plp-about-v2-category-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  margin-top: clamp(32px, 5vw, 58px);
}

.plp-about-v2-category-card {
  grid-column: span 2;
  padding: clamp(24px, 2.6vw, 35px);
  border: 1px solid rgba(60, 10, 73, .12);
  border-radius: 24px;
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.plp-about-v2-category-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.plp-about-v2-category-card:hover {
  transform: translateY(-4px);
  border-color: rgba(94, 29, 105, .28);
  box-shadow: 0 18px 40px rgba(61, 13, 75, .09);
}

.plp-about-v2-category-icon {
  display: grid;
  width: 64px;
  height: 64px;
  margin-bottom: 27px;
  place-items: center;
  border-radius: 19px;
  background: #f3def8;
  color: var(--plp-ink);
}

.plp-about-v2-category-icon svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.plp-about-v2-category-card h3 {
  font-size: clamp(22px, 2vw, 30px);
}

.plp-about-v2-trust {
  padding: clamp(62px, 8vw, 112px) 0;
  background: #2f0739;
  color: #fff;
}

.plp-about-v2-trust-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  align-items: center;
  gap: clamp(38px, 7vw, 100px);
}

.plp-about-v2-trust .plp-kicker {
  color: #e8b9f2;
}

.plp-about-v2-trust h2 {
  margin: 11px 0 22px;
  color: #fff;
  font-family: var(--plp-font-serif);
  font-size: clamp(35px, 4.2vw, 60px);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.plp-about-v2-trust .plp-about-v2-section-heading > p {
  color: rgba(255,255,255,.78);
  font-size: 17px;
  line-height: 1.78;
}

.plp-about-v2-trust-cards {
  display: grid;
  gap: 14px;
}

.plp-about-v2-trust-cards article {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 17px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 22px;
  background: rgba(255,255,255,.07);
}

.plp-about-v2-trust-cards article > span {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 16px;
  background: #efd5f5;
  color: #3d0a49;
  font-size: 23px;
  font-weight: 800;
}

.plp-about-v2-trust-cards h3 {
  color: #fff;
  font-size: 25px;
}

.plp-about-v2-trust-cards p {
  color: rgba(255,255,255,.73);
}

.plp-about-v2-team {
  padding: clamp(64px, 9vw, 126px) 0;
  background: #fff;
}

.plp-about-v2-team-inner {
  display: grid;
  grid-template-columns: clamp(150px, 20vw, 270px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(36px, 7vw, 108px);
  padding: clamp(32px, 5vw, 68px);
  border: 1px solid rgba(60, 10, 73, .12);
  border-radius: clamp(26px, 4vw, 42px);
  background: linear-gradient(135deg, #fff 0%, #fbf3fd 100%);
}

.plp-about-v2-team-mark {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: #3d0a49;
  color: #fff;
  font-family: var(--plp-font-serif);
  font-size: clamp(72px, 10vw, 142px);
  box-shadow: 0 20px 48px rgba(61, 13, 75, .22);
}

.plp-about-v2-team h2 {
  margin-bottom: 22px;
}

.plp-about-v2-team p {
  color: var(--plp-ink-soft);
  font-size: 17px;
  line-height: 1.78;
}

.plp-about-v2-team p + p {
  margin-top: 14px;
}

.plp-about-v2-cta {
  padding: clamp(60px, 8vw, 112px) 0;
  background: #f1d4f5;
}

.plp-about-v2-cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
  align-items: center;
  gap: clamp(38px, 7vw, 96px);
}

.plp-about-v2-cta h2 {
  max-width: 880px;
  margin-bottom: 18px;
}

.plp-about-v2-cta-copy > p {
  color: var(--plp-ink-soft);
  font-size: 19px;
}

.plp-about-v2-cta-actions {
  display: grid;
  gap: 11px;
}

.plp-about-v2-contact-link {
  display: flex;
  min-height: 58px;
  padding: 13px 18px;
  align-items: center;
  gap: 13px;
  border: 1px solid rgba(60, 10, 73, .16);
  border-radius: 17px;
  background: rgba(255,255,255,.68);
  color: var(--plp-ink) !important;
  text-decoration: none !important;
}

.plp-about-v2-contact-link > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: #3d0a49;
  color: #fff;
}

.plp-about-v2-contact-link strong {
  overflow-wrap: anywhere;
}

.plp-about-v2-catalog-button {
  justify-content: center;
  margin-top: 5px;
}

.plp-about-v2-cta-actions small {
  color: var(--plp-ink-soft);
  text-align: center;
}

@media (max-width: 980px) {
  .plp-about-v2-hero-grid,
  .plp-about-v2-story-grid,
  .plp-about-v2-trust-grid,
  .plp-about-v2-cta-inner {
    grid-template-columns: 1fr;
  }

  .plp-about-v2-hero-image {
    order: -1;
  }

  .plp-about-v2-advantages-grid {
    grid-template-columns: 1fr;
  }

  .plp-about-v2-advantage-card {
    min-height: 0;
  }

  .plp-about-v2-card-number {
    margin-bottom: 28px;
  }

  .plp-about-v2-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .plp-about-v2-category-card,
  .plp-about-v2-category-card:nth-child(4) {
    grid-column: auto;
  }

  .plp-about-v2-category-card:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .plp-about-v2-hero {
    padding: 28px 0 54px;
  }

  .plp-about-v2-hero-copy h1 {
    font-size: clamp(40px, 12vw, 58px);
  }

  .plp-about-v2-hero-image img {
    min-height: 0;
    aspect-ratio: 1.1 / 1;
  }

  .plp-about-v2-story,
  .plp-about-v2-categories,
  .plp-about-v2-team {
    padding: 56px 0;
  }

  .plp-about-v2-section-heading h2,
  .plp-about-v2-team h2,
  .plp-about-v2-cta h2 {
    font-size: clamp(32px, 9.5vw, 45px);
  }

  .plp-about-v2-story-copy,
  .plp-about-v2-trust .plp-about-v2-section-heading > p,
  .plp-about-v2-team p {
    font-size: 15px;
    line-height: 1.72;
  }

  .plp-about-v2-category-grid {
    grid-template-columns: 1fr;
  }

  .plp-about-v2-category-card:last-child {
    grid-column: auto;
  }

  .plp-about-v2-team-inner {
    grid-template-columns: 1fr;
    padding: 25px;
  }

  .plp-about-v2-team-mark {
    width: 126px;
  }

  .plp-about-v2-cta {
    padding: 55px 0;
  }
}


/* =========================================================
   v3.6.14 — Policy pages and homepage trust section
   ========================================================= */
.plp-home-trust { padding: clamp(64px, 8vw, 112px) 0; background: linear-gradient(180deg, #fff 0%, #fbf3fd 100%); border-top: 1px solid rgba(60,10,73,.10); }
.plp-home-trust-heading { display: block; margin-bottom: 36px; }
.plp-home-trust-heading > div { max-width: 980px; }
.plp-home-trust-heading h2 { max-width: 980px; margin: 10px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(34px,4.4vw,62px); line-height: 1; letter-spacing: -.04em; }
.plp-home-trust-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.plp-trust-panel { display: flex; flex-direction: column; min-height: 430px; padding: clamp(24px,2.6vw,34px); border: 1px solid rgba(60,10,73,.13); border-radius: 24px; background: rgba(255,255,255,.88); box-shadow: 0 20px 50px rgba(61,13,75,.07); }
.plp-trust-panel-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 25px; }
.plp-trust-panel-heading > span { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 16px; color: var(--plp-blue); background: var(--plp-lilac); }
.plp-trust-panel-heading svg,.plp-assurance-list svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.plp-trust-panel-heading small { display: block; color: var(--plp-blue); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.plp-trust-panel h3 { margin: 4px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(23px,2vw,31px); line-height: 1.05; }
.plp-trust-panel > p { margin: 22px 0 0; color: var(--plp-ink-soft); font-size: 13px; line-height: 1.7; }
.plp-trust-panel > a { margin-top: auto; padding-top: 22px; color: var(--plp-blue); font-size: 13px; font-weight: 850; text-decoration: none; }
.plp-payment-badges { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.plp-payment-badge { display: flex; align-items: center; gap: 9px; min-height: 58px; padding: 12px 13px; border: 1px solid rgba(60,10,73,.12); border-radius: 15px; background: #fff; color: var(--plp-ink); font-size: 12px; }
.plp-payment-brand-logo { display: block; flex: 0 0 29px; width: 29px; height: 29px; overflow: visible; }
.plp-payment-brand-logo--alipay { border-radius: 6px; }
.plp-payment-brand-logo--compact { flex-basis: 18px; width: 18px; height: 18px; }
.plp-payment-badge { transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.plp-payment-badge:hover { transform: translateY(-1px); border-color: rgba(60,10,73,.23); box-shadow: 0 8px 20px rgba(61,13,75,.07); }
.plp-payment-badge--alipay { box-shadow: inset 3px 0 0 rgba(22,119,255,.72); }
.plp-payment-badge--wechat { box-shadow: inset 3px 0 0 rgba(7,193,96,.72); }
.plp-payment-badge--tt { box-shadow: inset 3px 0 0 rgba(40,50,78,.72); }
.plp-payment-badge--lianlian { box-shadow: inset 3px 0 0 rgba(20,92,255,.72); }
.plp-assurance-list { display: grid; gap: 10px; }
.plp-assurance-list a { display: grid; grid-template-columns: 44px minmax(0,1fr); column-gap: 12px; padding: 13px; border: 1px solid rgba(60,10,73,.11); border-radius: 15px; background: #fff; text-decoration: none; }
.plp-assurance-list a > span { grid-row: 1 / 3; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--plp-blue-pale); color: var(--plp-blue); }
.plp-assurance-list strong { align-self: end; color: var(--plp-ink); font-size: 13px; }.plp-assurance-list small { color: var(--plp-ink-soft); font-size: 11px; }
.plp-trust-review-list { display: grid; gap: 10px; }
.plp-trust-review-list blockquote { margin: 0; padding: 14px 15px; border: 1px solid rgba(60,10,73,.11); border-radius: 15px; background: #fff; }
.plp-trust-review-list blockquote p { margin: 0 0 10px; color: var(--plp-ink); font-size: 13px; line-height: 1.6; }
.plp-trust-review-list footer { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 9px; color: var(--plp-ink-soft); font-size: 10px; }
.plp-trust-review-list footer strong { color: var(--plp-ink); }.plp-trust-review-list footer em { margin-left: auto; color: #277540; font-style: normal; font-weight: 800; }
.plp-trust-review-empty { padding: 25px; border: 1px dashed rgba(60,10,73,.22); border-radius: 18px; background: var(--plp-blue-pale); }
.plp-trust-review-empty strong { color: var(--plp-ink); font-size: 14px; }.plp-trust-review-empty p { margin: 8px 0 0; color: var(--plp-ink-soft); font-size: 12px; line-height: 1.65; }
.plp-home-trust-policy-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 25px; margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(60,10,73,.11); }
.plp-home-trust-policy-links a { color: var(--plp-ink); font-size: 12px; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.plp-footer-payment-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 38px; padding-top: 20px; border-top: 1px solid rgba(43,9,52,.16); }
.plp-footer-payment-strip span,.plp-footer-payment-strip a { display: inline-flex !important; align-items: center; min-height: 34px; margin: 0 !important; padding: 6px 11px; border: 1px solid rgba(43,9,52,.16); border-radius: 999px; color: var(--plp-ink); background: rgba(255,255,255,.42); font-size: 10px !important; text-decoration: none; }
.plp-footer-payment-method { gap: 7px; }
.plp-footer-payment-method--alipay { border-color: rgba(22,119,255,.26) !important; }
.plp-footer-payment-method--wechat { border-color: rgba(7,193,96,.28) !important; }
.plp-footer-payment-method--tt { border-color: rgba(40,50,78,.26) !important; }
.plp-footer-payment-method--lianlian { border-color: rgba(20,92,255,.26) !important; }
.plp-footer-payment-strip strong { margin-right: 3px; }.plp-footer-bottom { margin-top: 18px; }
.plp-product-policy-shortcut { display: flex; justify-content: flex-end; margin: -6px 0 18px; }
.plp-product-policy-shortcut a { color: var(--plp-blue); font-size: 12px; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.plp-policy-hero { padding: clamp(56px,8vw,110px) 0 clamp(52px,7vw,90px); background: linear-gradient(180deg,#fff 0%,#fbf3fd 100%); border-bottom: 1px solid rgba(60,10,73,.10); }
.plp-policy-hero .plp-page-breadcrumb { margin-bottom: 35px; }.plp-policy-hero h1 { max-width: 900px; margin: 12px 0 20px; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(46px,6vw,82px); line-height: .97; letter-spacing: -.05em; }
.plp-policy-hero > .plp-container > p { max-width: 850px; margin: 0; color: var(--plp-ink-soft); font-size: clamp(16px,1.6vw,20px); line-height: 1.7; }
.plp-policy-body { padding: clamp(54px,8vw,104px) 0; background: #fff; }.plp-policy-layout { display: grid; grid-template-columns: minmax(210px,270px) minmax(0,1fr); align-items: start; gap: clamp(30px,5vw,74px); }
.plp-policy-index { position: sticky; top: 115px; display: grid; gap: 3px; padding: 22px; border: 1px solid rgba(60,10,73,.12); border-radius: 20px; background: var(--plp-blue-pale); }
.plp-policy-index > strong { margin-bottom: 12px; color: var(--plp-ink); font-size: 15px; }.plp-policy-index > a { display: grid; grid-template-columns: 30px 1fr; gap: 8px; padding: 9px 0; color: var(--plp-ink-soft); font-size: 14px; line-height: 1.45; text-decoration: none; }.plp-policy-index > a span { color: var(--plp-blue); font-weight: 850; }
.plp-policy-index-contact { margin-top: 17px; padding-top: 17px; border-top: 1px solid rgba(60,10,73,.13); }.plp-policy-index-contact small { display: block; color: var(--plp-ink-soft); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }.plp-policy-index-contact a { display: block; margin-top: 5px; color: var(--plp-blue); font-size: 13px; overflow-wrap: anywhere; }
.plp-policy-content { display: grid; gap: 18px; }.plp-policy-card { scroll-margin-top: 110px; padding: clamp(25px,3.4vw,46px); border: 1px solid rgba(60,10,73,.12); border-radius: 24px; background: #fff; box-shadow: 0 18px 45px rgba(61,13,75,.05); }
.plp-policy-card > header { display: grid; grid-template-columns: 45px 1fr; align-items: start; gap: 15px; margin-bottom: 25px; }.plp-policy-card > header > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: var(--plp-lilac); color: var(--plp-blue); font-size: 11px; font-weight: 850; }.plp-policy-card h2 { margin: 2px 0 0; color: var(--plp-ink); font-family: var(--plp-font-serif); font-size: clamp(28px,3vw,43px); line-height: 1.05; }
.plp-policy-copy { color: var(--plp-ink-soft); font-size: 15px; line-height: 1.78; }.plp-policy-copy p { margin: 0 0 17px; }.plp-policy-copy p:last-child { margin-bottom: 0; }.plp-policy-copy h3 { margin: 27px 0 10px; color: var(--plp-ink); font-family: var(--plp-font-sans); font-size: 16px; }.plp-policy-copy ul,.plp-policy-copy ol { margin: 0; padding-left: 21px; }.plp-policy-copy li + li { margin-top: 9px; }.plp-policy-copy a { color: var(--plp-blue); text-decoration: underline; }
.plp-policy-contact-card { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 35px; padding: clamp(28px,4vw,50px); border-radius: 24px; background: var(--plp-blue); color: #fff; }.plp-policy-contact-card .plp-kicker { color: #ebc8f4; }.plp-policy-contact-card h2 { margin: 10px 0 0; color: #fff; font-family: var(--plp-font-serif); font-size: clamp(30px,3.5vw,48px); line-height: 1.02; }
.plp-policy-contact-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.plp-policy-contact-details a,.plp-policy-contact-details p { display: flex; flex-direction: column; justify-content: center; min-height: 84px; margin: 0; padding: 15px; border: 1px solid rgba(255,255,255,.18); border-radius: 15px; color: #fff; background: rgba(255,255,255,.08); text-decoration: none; }.plp-policy-contact-details strong { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }.plp-policy-contact-details span { margin-top: 5px; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
@media (max-width: 980px) { .plp-home-trust-grid { grid-template-columns: 1fr 1fr; }.plp-trust-panel--reviews { grid-column: 1 / -1; min-height: 0; }.plp-policy-layout { grid-template-columns: 1fr; }.plp-policy-index { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }.plp-policy-index > strong,.plp-policy-index-contact { grid-column: 1 / -1; }.plp-policy-contact-card { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .plp-home-trust-heading,.plp-home-trust-grid { grid-template-columns: 1fr; }.plp-trust-panel--reviews { grid-column: auto; }.plp-trust-panel { min-height: 0; }.plp-payment-badges { grid-template-columns: 1fr 1fr; }.plp-policy-index { grid-template-columns: 1fr; }.plp-policy-index > strong,.plp-policy-index-contact { grid-column: auto; }.plp-policy-contact-details { grid-template-columns: 1fr; }.plp-product-policy-shortcut { justify-content: flex-start; margin-top: 0; } }
@media (max-width: 440px) { .plp-payment-badges { grid-template-columns: 1fr; }.plp-home-trust-policy-links { justify-content: flex-start; }.plp-policy-card { border-radius: 18px; }.plp-policy-card > header { grid-template-columns: 1fr; } }


/* =========================================================
   v3.6.16 — Recognizable payment-brand marks
   ========================================================= */
@media (prefers-reduced-motion: reduce) { .plp-payment-badge { transition: none; } }


/* =========================================================
   v3.6.18 — Footer cleanup and three-review homepage preview
   ========================================================= */
.plp-home-trust-sections {
  display: block;
}

.plp-trust-block {
  padding: clamp(42px, 5.5vw, 76px) 0;
  border-top: 1px solid rgba(60,10,73,.13);
}

.plp-trust-block:first-child {
  padding-top: 12px;
  border-top: 0;
}

.plp-trust-block-heading {
  max-width: 850px;
  margin-bottom: clamp(26px, 3vw, 40px);
}

.plp-trust-block-heading .plp-kicker {
  display: block;
  margin-bottom: 9px;
}

.plp-trust-block-heading h3 {
  margin: 0;
  color: var(--plp-ink);
  font-family: var(--plp-font-serif);
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.02;
  letter-spacing: -.035em;
}

/* Brand logos: one clean line, no cards, borders, labels or buttons. */
.plp-payment-logo-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: clamp(34px, 5vw, 88px);
  width: 100%;
  overflow-x: auto;
  padding: 5px 1px 12px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.plp-payment-logo-row::-webkit-scrollbar {
  display: none;
}

.plp-payment-logo-item {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.plp-payment-brand-logo {
  display: block;
  width: auto;
  height: 58px;
  max-width: 220px;
  object-fit: contain;
  overflow: visible;
}

.plp-payment-brand-logo--alipay {
  width: 184px;
  height: auto;
  max-height: 76px;
}

.plp-payment-brand-logo--wechat {
  width: 182px;
  height: auto;
  max-height: 76px;
}

.plp-payment-brand-logo--unionpay {
  width: 210px;
  height: auto;
  max-height: 62px;
}

.plp-payment-brand-logo--mastercard {
  width: 108px;
  height: auto;
  max-height: 62px;
}

.plp-payment-brand-logo--visa {
  width: 132px;
  height: auto;
  max-height: 56px;
}

.plp-payment-brand-logo--lianlian {
  width: 220px;
  height: auto;
  max-height: 72px;
}

/* Complete policy content is available in native click-to-open accordions. */
.plp-home-policy-accordion {
  border-top: 1px solid rgba(60,10,73,.16);
}

.plp-home-policy-details {
  border-bottom: 1px solid rgba(60,10,73,.16);
}

.plp-home-policy-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 90px;
  padding: 22px 0;
  color: var(--plp-ink);
  cursor: pointer;
  list-style: none;
}

.plp-home-policy-details > summary::-webkit-details-marker {
  display: none;
}

.plp-home-policy-details > summary > span {
  display: grid;
  gap: 6px;
}

.plp-home-policy-details > summary strong {
  font-family: var(--plp-font-serif);
  font-size: clamp(24px, 2.4vw, 35px);
  line-height: 1.05;
}

.plp-home-policy-details > summary small {
  color: var(--plp-ink-soft);
  font-size: 12px;
  font-weight: 650;
}

.plp-home-policy-details > summary i {
  position: relative;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
}

.plp-home-policy-details > summary i::before,
.plp-home-policy-details > summary i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1.5px;
  background: var(--plp-blue);
  transform: translate(-50%, -50%);
  transition: transform .2s ease;
}

.plp-home-policy-details > summary i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.plp-home-policy-details[open] > summary i::after {
  transform: translate(-50%, -50%) rotate(0);
}

.plp-home-policy-details-body {
  max-width: 1050px;
  padding: 2px 0 clamp(32px, 4vw, 54px);
  color: var(--plp-ink-soft);
  font-size: 14px;
  line-height: 1.78;
}

.plp-home-policy-intro {
  max-width: 920px;
  margin: 0 0 30px;
  color: var(--plp-ink);
  font-size: 16px;
  line-height: 1.75;
}

.plp-home-policy-section {
  padding: 25px 0;
  border-top: 1px solid rgba(60,10,73,.10);
}

.plp-home-policy-section h4 {
  margin: 0 0 13px;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 18px;
  line-height: 1.3;
}

.plp-home-policy-section h3 {
  margin: 20px 0 8px;
  color: var(--plp-ink);
  font-family: var(--plp-font-sans);
  font-size: 15px;
}

.plp-home-policy-section p {
  margin: 0 0 14px;
}

.plp-home-policy-section p:last-child {
  margin-bottom: 0;
}

.plp-home-policy-section ul,
.plp-home-policy-section ol {
  margin: 0;
  padding-left: 22px;
}

.plp-home-policy-section li + li {
  margin-top: 8px;
}

.plp-home-policy-section a,
.plp-home-policy-page-link,
.plp-trust-reviews-link {
  color: var(--plp-blue);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.plp-home-policy-page-link {
  display: inline-block;
  margin-top: 23px;
  font-size: 13px;
  font-weight: 800;
}

/* Reviews are a separate full-width section, not a third card. */
.plp-trust-block--reviews .plp-trust-review-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}

.plp-trust-block--reviews .plp-trust-review-list blockquote {
  margin: 0;
  padding: clamp(21px, 2.5vw, 30px);
  border: 0;
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 14px 34px rgba(61,13,75,.055);
}

.plp-trust-block--reviews .plp-trust-review-list blockquote p {
  font-size: 14px;
  line-height: 1.72;
}

.plp-trust-block--reviews .plp-trust-review-empty {
  max-width: 720px;
  padding: 26px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.plp-trust-reviews-link {
  display: inline-block;
  margin-top: 25px;
  font-size: 13px;
  font-weight: 800;
}

/* Footer payment logo strip removed in v3.6.18. */

@media (max-width: 900px) {
  .plp-trust-block--reviews .plp-trust-review-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .plp-home-trust-heading {
    margin-bottom: 18px;
  }

  .plp-trust-block {
    padding: 42px 0;
  }

  .plp-payment-logo-row {
    gap: 34px;
  }

  .plp-payment-brand-logo--alipay {
    width: 164px;
    height: auto;
    max-height: 68px;
  }

  .plp-payment-brand-logo--wechat {
    width: 162px;
    height: auto;
    max-height: 68px;
  }

  .plp-payment-brand-logo--unionpay { width: 180px; }
  .plp-payment-brand-logo--mastercard { width: 96px; }
  .plp-payment-brand-logo--visa { width: 116px; }
  .plp-payment-brand-logo--lianlian { width: 194px; max-height: 68px; }

  .plp-home-policy-details > summary {
    min-height: 78px;
    padding: 18px 0;
  }

  .plp-home-policy-details > summary strong {
    font-size: 24px;
  }

  .plp-home-policy-details-body {
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .plp-home-policy-details > summary i::before,
  .plp-home-policy-details > summary i::after {
    transition: none;
  }
}


/* --------------------------------------------------------------------------
   v3.6.21 — Category cards: 70/30 split or full-image background
   -------------------------------------------------------------------------- */
.plp-category-static-grid {
  --plp-category-count: 6;
  display: grid;
  grid-template-columns: repeat(var(--plp-category-count), minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(12px, 1.3vw, 18px);
  width: 100%;
}

.plp-category-static-grid .plp-category-card,
.plp-category-carousel .plp-category-card {
  --plp-category-image-width: 100%;
  --plp-category-image-height: 100%;
  position: relative;
  width: 100%;
  height: clamp(320px, 21vw, 360px);
  min-width: 0;
  min-height: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--plp-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(43, 9, 52, .07);
  isolation: isolate;
}

.plp-category-static-grid .plp-category-card::after,
.plp-category-carousel .plp-category-card::after {
  display: none;
}

.plp-category-media {
  overflow: hidden;
  background: linear-gradient(145deg, #fbf4fd, #edcbf6);
}

.plp-category-media img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .3s ease;
}

.plp-category-card:hover .plp-category-media img {
  transform: scale(1.035);
}

.plp-category-media-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: rgba(43, 9, 52, .28);
  font-family: var(--plp-font-serif);
  font-size: 54px;
  line-height: 1;
}

/* Default layout: image takes 70%, title takes 30%. */
.plp-category-card.is-split-layout .plp-category-media {
  position: relative;
  z-index: 1;
  flex: 0 0 70%;
  width: 100%;
  min-height: 0;
  display: grid;
  place-items: center;
}

.plp-category-card.is-split-layout .plp-category-media img {
  width: var(--plp-category-image-width);
  height: var(--plp-category-image-height);
}

.plp-category-card.is-split-layout .plp-category-card-content {
  position: relative;
  z-index: 2;
  flex: 0 0 30%;
  min-height: 0;
  padding: 14px 17px 16px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: #fff;
}

/* Optional layout: the image covers the card, with the title overlaid below. */
.plp-category-card.is-full-background .plp-category-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

.plp-category-card.is-full-background .plp-category-media img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
}

.plp-category-card.is-full-background .plp-category-media::after {
  content: "";
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(to bottom, transparent, rgba(31, 4, 38, .82));
  pointer-events: none;
}

.plp-category-card.is-full-background .plp-category-card-content {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  min-height: 30%;
  padding: 18px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.plp-category-card.is-full-background .plp-category-card-content strong {
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.plp-category-static-grid .plp-category-number,
.plp-category-carousel .plp-category-number {
  left: 12px;
  top: 12px;
  z-index: 4;
  min-width: 32px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 5px 16px rgba(43, 9, 52, .08);
  font-size: 10px;
  text-align: center;
}

.plp-category-static-grid .plp-category-card strong,
.plp-category-carousel .plp-category-card strong {
  display: block;
  margin: 0;
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

/* Category descriptions are intentionally hidden on the homepage cards. */
.plp-category-static-grid .plp-category-card small,
.plp-category-carousel .plp-category-card small {
  display: none !important;
}

.plp-category-carousel {
  --plp-category-visible: 6;
  --plp-category-gap: clamp(12px, 1.3vw, 18px);
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.plp-category-carousel-viewport {
  width: 100%;
  overflow: hidden;
}

.plp-category-carousel-track {
  align-items: stretch;
}

.plp-category-slide {
  flex: 0 0 calc((100% - (var(--plp-category-gap) * (var(--plp-category-visible) - 1))) / var(--plp-category-visible));
  min-width: 0;
  display: flex;
}

.plp-category-carousel .plp-category-card {
  flex: 1 1 auto;
}

@media (max-width: 1200px) {
  .plp-category-static-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .plp-category-carousel {
    --plp-category-visible: 3;
  }

  .plp-category-static-grid .plp-category-card,
  .plp-category-carousel .plp-category-card {
    height: 350px;
  }
}

@media (max-width: 700px) {
  .plp-category-static-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .plp-category-carousel {
    --plp-category-visible: 1;
    --plp-category-gap: 10px;
  }

  .plp-category-static-grid .plp-category-card,
  .plp-category-carousel .plp-category-card {
    height: 320px;
  }

  .plp-category-card.is-split-layout .plp-category-card-content {
    padding: 13px 14px 14px;
  }
}

@media (max-width: 420px) {
  .plp-category-static-grid {
    grid-template-columns: 1fr;
  }

  .plp-category-static-grid .plp-category-card,
  .plp-category-carousel .plp-category-card {
    height: 360px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.22 — About page: horizontal hero title and story image on the right
   -------------------------------------------------------------------------- */
.plp-about-v2-hero {
  padding: clamp(34px, 4.4vw, 66px) 0 clamp(42px, 5.2vw, 76px);
}

.plp-about-v2-hero .plp-page-breadcrumb {
  margin-bottom: clamp(30px, 4vw, 54px);
}

.plp-about-v2-hero-copy--wide {
  width: 100%;
  max-width: none;
}

.plp-about-v2-hero-copy--wide h1 {
  width: 100%;
  max-width: none;
  margin-top: 14px;
  font-size: clamp(34px, 2.8vw, 48px);
  line-height: 1.04;
  letter-spacing: -.038em;
}

.plp-about-v2-story-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  align-items: center;
  gap: clamp(42px, 6vw, 92px);
}

.plp-about-v2-story-main {
  min-width: 0;
}

.plp-about-v2-story-main .plp-about-v2-section-heading {
  max-width: 760px;
}

.plp-about-v2-story-main .plp-about-v2-section-heading h2 {
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.06;
  letter-spacing: -.035em;
}

.plp-about-v2-story-copy {
  margin-top: clamp(26px, 3.5vw, 42px);
  font-size: clamp(15px, 1.08vw, 17px);
  line-height: 1.78;
}

.plp-about-v2-story-image {
  width: min(100%, 500px);
  margin: 0;
  justify-self: end;
  overflow: hidden;
  border: 1px solid rgba(60, 10, 73, .12);
  border-radius: clamp(24px, 3vw, 38px);
  background: #ead0f2;
  box-shadow: 0 24px 62px rgba(61, 13, 75, .13);
}

.plp-about-v2-story-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.08 / 1;
  object-fit: cover;
}

@media (min-width: 1180px) {
  .plp-about-v2-hero-copy--wide h1 {
    white-space: nowrap;
  }
}

@media (max-width: 980px) {
  .plp-about-v2-story-grid {
    grid-template-columns: 1fr;
  }

  .plp-about-v2-story-image {
    width: min(100%, 620px);
    justify-self: start;
  }
}

@media (max-width: 680px) {
  .plp-about-v2-hero-copy--wide h1 {
    font-size: clamp(34px, 10vw, 48px);
  }

  .plp-about-v2-story-main .plp-about-v2-section-heading h2 {
    font-size: clamp(30px, 8.5vw, 40px);
  }

  .plp-about-v2-story-image {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   v3.6.24 — Three-tier GILIPET typography system

   The storefront now uses only three visual text levels:
   1) Level-one title (Astra H1)
   2) Level-two title (Astra H2; H3-H6 are visually folded into this level)
   3) Body text (Astra Body Font)

   Page-level overrides set --plp-page-*-size variables in wp_head. Product
   content-builder blocks and homepage flexible text rows keep their own local
   variables and therefore take priority over both page and global values.
   -------------------------------------------------------------------------- */
:root {
  --plp-global-body-size: 15px;
  --plp-global-h1-size: 40px;
  --plp-global-h2-size: 25px;
}

body.plp-storefront {
  --plp-body-size: var(--plp-page-body-size, var(--plp-global-body-size));
  --plp-h1-size: var(--plp-page-h1-size, var(--plp-global-h1-size));
  --plp-h2-size: var(--plp-page-h2-size, var(--plp-global-h2-size));
  --plp-copy-size: var(--plp-body-size);
  --plp-copy-size-mobile: var(--plp-body-size);
  --plp-label-size: var(--plp-body-size);
  --plp-label-size-mobile: var(--plp-body-size);
}

/* Hidden probes read Astra's actual H1/H2 sizes without being restyled here. */
.plp-typography-probes {
  position: fixed !important;
  inset: auto auto 200vh 200vw !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Level one: page, hero, archive and product titles. */
body.plp-storefront h1:not(.plp-typography-probe) {
  font-size: var(--plp-h1-size) !important;
  line-height: 1.02;
}

/* Level two: every lower heading is intentionally one shared tier. */
body.plp-storefront h2:not(.plp-typography-probe),
body.plp-storefront h3:not(.plp-typography-probe),
body.plp-storefront h4:not(.plp-typography-probe),
body.plp-storefront h5:not(.plp-typography-probe),
body.plp-storefront h6:not(.plp-typography-probe),
body.plp-storefront .plp-category-card strong,
body.plp-storefront .plp-product-title,
body.plp-storefront .plp-contact-card-copy > strong,
body.plp-storefront .plp-service-grid strong,
body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a {
  font-size: var(--plp-h2-size) !important;
  line-height: 1.15;
}

/* Body tier: reading copy, navigation, buttons, labels and form controls. */
body.plp-storefront p,
body.plp-storefront li,
body.plp-storefront dd,
body.plp-storefront dt,
body.plp-storefront small,
body.plp-storefront figcaption,
body.plp-storefront label,
body.plp-storefront textarea,
body.plp-storefront select,
body.plp-storefront input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.plp-storefront button,
body.plp-storefront td,
body.plp-storefront th,
body.plp-storefront blockquote,
body.plp-storefront .plp-kicker,
body.plp-storefront .plp-eyebrow,
body.plp-storefront .plp-category-number,
body.plp-storefront .plp-footer-note,
body.plp-storefront .plp-shop-breadcrumb,
body.plp-storefront .plp-product-breadcrumb,
body.plp-storefront .plp-page-breadcrumb,
body.plp-storefront .plp-search input,
body.plp-storefront .plp-nav-menu > li > a,
body.plp-storefront .plp-nav-section-link,
body.plp-storefront .plp-language-switcher,
body.plp-storefront .plp-category-dropdown ul a,
body.plp-storefront .plp-category-dropdown-all,
body.plp-storefront .plp-button,
body.plp-storefront .plp-inline-link,
body.plp-storefront .plp-card-action,
body.plp-storefront .plp-footer a:not(.plp-brand),
body.plp-storefront input[type="submit"],
body.plp-storefront .plp-product-price,
body.plp-storefront .plp-contact-email-role,
body.plp-storefront .plp-contact-email-address {
  font-size: var(--plp-body-size) !important;
}

body.plp-storefront p,
body.plp-storefront li,
body.plp-storefront dd,
body.plp-storefront dt,
body.plp-storefront blockquote,
body.plp-storefront .plp-about-v2-story-copy,
body.plp-storefront .plp-about-page-story-copy,
body.plp-storefront .plp-product-detail-content,
body.plp-storefront .plp-home-policy-details-body {
  line-height: 1.65;
}

/* Page/component-level font sizes outrank the three global tiers. */
body.plp-storefront .plp-about-text-block {
  font-size: var(--plp-flex-text-size, var(--plp-body-size)) !important;
}

body.plp-storefront .plp-flexible-block h3,
body.plp-storefront .plp-flexible-list-heading {
  font-size: var(--plp-flex-heading-size, var(--plp-h2-size)) !important;
}

body.plp-storefront .plp-flexible-copy-body,
body.plp-storefront .plp-flexible-copy-body p,
body.plp-storefront .plp-flexible-copy-body li,
body.plp-storefront .plp-flexible-list,
body.plp-storefront .plp-flexible-list dt,
body.plp-storefront .plp-flexible-list dd {
  font-size: var(--plp-flex-body-size, var(--plp-body-size)) !important;
}

/* Prevent compact badges from growing vertically with the body line-height. */
body.plp-storefront .plp-category-number {
  width: auto;
  height: auto;
  min-height: 0;
  line-height: 1 !important;
  padding: .45em .7em;
}

/* --------------------------------------------------------------------------
   v3.6.25 — Audited three-tier priority model

   Size priority:
   1. Component/local variable (for a specific editable text block)
   2. Page variable (Homepage/About/Contact/Product Customizer override)
   3. Global Astra Body/H1/H2 value

   Semantic mapping:
   - H1: page and product primary titles
   - H2: section, card and lower-level headings (including H3-H6 markup)
   - Body: paragraphs, navigation, buttons, forms, labels and helper text
   -------------------------------------------------------------------------- */
body.plp-storefront {
  --plp-title-level-1: var(--plp-page-h1-size, var(--plp-global-h1-size));
  --plp-title-level-2: var(--plp-page-h2-size, var(--plp-global-h2-size));
  --plp-text-body: var(--plp-page-body-size, var(--plp-global-body-size));

  --plp-h1-size: var(--plp-title-level-1);
  --plp-h2-size: var(--plp-title-level-2);
  --plp-body-size: var(--plp-text-body);
}

/* Local, editable text-block values explicitly remain above page/global sizes. */
body.plp-storefront [style*="--plp-flex-text-size"] {
  font-size: var(--plp-flex-text-size) !important;
}

body.plp-storefront [style*="--plp-flex-heading-size"] h2,
body.plp-storefront [style*="--plp-flex-heading-size"] h3,
body.plp-storefront [style*="--plp-flex-heading-size"] h4,
body.plp-storefront [style*="--plp-flex-heading-size"] h5,
body.plp-storefront [style*="--plp-flex-heading-size"] h6,
body.plp-storefront [style*="--plp-flex-heading-size"].plp-flexible-list-heading {
  font-size: var(--plp-flex-heading-size) !important;
}

body.plp-storefront [style*="--plp-flex-body-size"],
body.plp-storefront [style*="--plp-flex-body-size"] p,
body.plp-storefront [style*="--plp-flex-body-size"] li,
body.plp-storefront [style*="--plp-flex-body-size"] dt,
body.plp-storefront [style*="--plp-flex-body-size"] dd {
  font-size: var(--plp-flex-body-size) !important;
}

/* --------------------------------------------------------------------------
   v3.6.28 — Per-page flexible text / image containers
   -------------------------------------------------------------------------- */
.plp-page-blocks-section {
  padding: clamp(42px, 6vw, 88px) 0;
  background: #fff;
}

.plp-page-blocks-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 42px);
  align-items: start;
}

.plp-page-block {
  min-width: 0;
  margin-top: var(--plp-page-block-margin-top, 0);
  margin-right: 0;
  margin-bottom: var(--plp-page-block-margin-bottom, 0);
  margin-left: 0;
  padding-top: var(--plp-page-block-padding-top, 0);
  padding-right: var(--plp-page-block-padding-right, 0);
  padding-bottom: var(--plp-page-block-padding-bottom, 0);
  padding-left: var(--plp-page-block-padding-left, 0);
  box-sizing: border-box;
}

.plp-page-block--full {
  grid-column: 1 / -1;
}

.plp-page-block--half {
  grid-column: span 1;
}

.plp-page-block--align-left { text-align: left; }
.plp-page-block--align-center { text-align: center; }
.plp-page-block--align-right { text-align: right; }

.plp-page-block--text-h1 h1 {
  margin: 0;
  font-size: var(--plp-page-block-font-size, var(--plp-h1-size)) !important;
  line-height: 1.04;
}

.plp-page-block--text-h2 h2 {
  margin: 0;
  font-size: var(--plp-page-block-font-size, var(--plp-h2-size)) !important;
  line-height: 1.12;
}

.plp-page-block-body,
.plp-page-block-body p,
.plp-page-block-body li {
  font-size: var(--plp-page-block-font-size, var(--plp-body-size)) !important;
  line-height: 1.65;
}

.plp-page-block-body > :first-child { margin-top: 0; }
.plp-page-block-body > :last-child { margin-bottom: 0; }

.plp-page-block--image img {
  display: block;
  width: var(--plp-page-block-image-width, auto);
  max-width: 100%;
  height: var(--plp-page-block-image-height, auto);
  max-height: none;
  object-fit: var(--plp-page-block-image-fit, cover);
  border-radius: 18px;
}

.plp-page-block--image.plp-page-block--align-left img { margin-right: auto; }
.plp-page-block--image.plp-page-block--align-center img { margin-inline: auto; }
.plp-page-block--image.plp-page-block--align-right img { margin-left: auto; }

@media (max-width: 780px) {
  .plp-page-blocks-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .plp-page-block--half,
  .plp-page-block--full {
    grid-column: 1;
  }
}


/* --------------------------------------------------------------------------
   v3.6.30 — Homepage Trust & Assurance Customizer controls

   Direct values entered in GILIPET Homepage override the page/global H1/H2/
   Body scale. A value of 0 leaves the relevant CSS variable unset.
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-home-trust .plp-kicker {
  font-size: var(--plp-trust-kicker-size, var(--plp-body-size)) !important;
}

body.plp-storefront .plp-home-trust-heading h2 {
  font-size: var(--plp-trust-main-title-size, var(--plp-h2-size)) !important;
}

body.plp-storefront .plp-trust-block-heading h3 {
  font-size: var(--plp-trust-block-title-size, var(--plp-h2-size)) !important;
}

body.plp-storefront .plp-home-policy-details > summary strong {
  font-size: var(--plp-trust-policy-item-size, var(--plp-h2-size)) !important;
}

body.plp-storefront .plp-home-policy-details > summary small,
body.plp-storefront .plp-home-policy-page-link,
body.plp-storefront .plp-trust-reviews-link {
  font-size: var(--plp-trust-helper-size, var(--plp-body-size)) !important;
}

body.plp-storefront .plp-home-policy-details-body,
body.plp-storefront .plp-home-policy-details-body p,
body.plp-storefront .plp-home-policy-details-body li,
body.plp-storefront .plp-trust-block--reviews blockquote p,
body.plp-storefront .plp-trust-review-empty strong,
body.plp-storefront .plp-trust-review-empty p,
body.plp-storefront .plp-trust-review-list footer {
  font-size: var(--plp-trust-review-text-size, var(--plp-body-size)) !important;
}


/* --------------------------------------------------------------------------
   v3.6.31 — Simplified payment presentation
   Removes the redundant right-hand trust description and the payment kicker.
   Brand artwork is enlarged while remaining a clean, borderless single row.
   -------------------------------------------------------------------------- */
.plp-trust-block--payments .plp-trust-block-heading {
  margin-bottom: clamp(24px, 2.6vw, 34px);
}

/* --------------------------------------------------------------------------
   v3.6.43 — Compact, evenly spaced mobile primary navigation
   Keep the mobile menu independent from the global Body font-size setting.
   -------------------------------------------------------------------------- */
@media (max-width: 780px), (hover: none) and (pointer: coarse) {
  body.plp-storefront .plp-main-nav .plp-nav-menu {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    justify-content: center !important;
    align-items: center !important;
    gap: clamp(10px, 2.8vw, 16px) !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    width: auto !important;
    min-width: 0 !important;
    padding: 12px 0 !important;
    font-size: clamp(11px, 2.9vw, 13px) !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
}

@media (max-width: 360px) {
  body.plp-storefront .plp-main-nav .plp-nav-menu {
    gap: 8px !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    font-size: 10.5px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.44 — mobile categories, payment-logo grid, CTA cleanup, and comment overflow fixes
   -------------------------------------------------------------------------- */

/* Category carousel: when more than six categories exist, each slide becomes
   a complete page that holds up to six small category cards. */
.plp-category-carousel--paged .plp-category-slide {
  flex: 0 0 100%;
}

.plp-category-page-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(12px, 1.3vw, 18px);
  width: 100%;
}

@media (max-width: 1200px) {
  .plp-category-page-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .plp-category-static-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .plp-category-page-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .plp-category-static-grid .plp-category-card,
  .plp-category-carousel .plp-category-card {
    height: auto;
    aspect-ratio: 1 / 1.14;
    border-radius: 16px;
  }

  .plp-category-card.is-split-layout .plp-category-card-content {
    padding: 8px 8px 10px;
    justify-content: center;
  }

  .plp-category-static-grid .plp-category-card strong,
  .plp-category-carousel .plp-category-card strong {
    font-size: clamp(10px, 2.8vw, 14px);
    line-height: 1.18;
    text-align: center;
  }

  .plp-category-static-grid .plp-category-number,
  .plp-category-carousel .plp-category-number {
    left: 8px;
    top: 8px;
    min-width: 28px;
    padding: 4px 6px;
    font-size: 9px;
  }

  .plp-category-carousel-controls {
    margin-top: 12px;
  }
}

/* Payment brands: mobile uses a clean 3 × 2 icon grid. */
@media (max-width: 720px) {
  .plp-payment-logo-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 12px;
    overflow: visible;
    padding: 6px 0 0;
  }

  .plp-payment-logo-item {
    min-width: 0;
    width: 100%;
  }

  .plp-payment-brand-logo,
  .plp-payment-brand-logo--alipay,
  .plp-payment-brand-logo--wechat,
  .plp-payment-brand-logo--unionpay,
  .plp-payment-brand-logo--mastercard,
  .plp-payment-brand-logo--visa,
  .plp-payment-brand-logo--lianlian {
    width: auto;
    max-width: 100%;
    height: 34px;
    max-height: 34px;
    margin-inline: auto;
  }

  .plp-payment-brand-logo--unionpay,
  .plp-payment-brand-logo--alipay,
  .plp-payment-brand-logo--wechat,
  .plp-payment-brand-logo--lianlian {
    height: 30px;
    max-height: 30px;
  }
}

/* Comment page: keep every form block inside the phone viewport. */
.plp-comment-page-layout,
.plp-comment-page-list,
.plp-comment-page-form,
.plp-comment-page-form form,
.plp-comment-page-form .comment-form,
.plp-review-email-verification,
.plp-review-email-verification__heading,
.plp-review-email-verification__actions,
.plp-review-email-verification__help,
.plp-review-email-verification__target,
.plp-comment-page-form p,
.plp-comment-page-form label,
.plp-comment-page-form input,
.plp-comment-page-form textarea,
.plp-comment-page-form button {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.plp-comment-page-form,
.plp-comment-page-form * {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.plp-review-email-verification__target strong,
.plp-comment-file-name {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 720px) {
  .plp-comment-page-form {
    padding: 20px 16px;
  }

  .plp-comment-page-form .comment-reply-title {
    margin-bottom: 18px;
  }

  .plp-review-email-verification {
    padding: 14px;
  }

  .plp-review-email-verification__help,
  .plp-review-email-verification__target,
  .plp-comment-page-form .comment-notes,
  .plp-comment-page-form .logged-in-as {
    font-size: 13px;
    line-height: 1.65;
  }

  .plp-review-email-code {
    letter-spacing: .08em;
    font-size: 15px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.45 — remove category index badges and shrink mobile category titles
   -------------------------------------------------------------------------- */

/* Remove the top-left category number badges. */
.plp-category-number {
  display: none !important;
}

/* Mobile category cards: make the title smaller and allow safe wrapping so
   long labels stay inside each square card. */
@media (max-width: 700px) {
  .plp-category-static-grid .plp-category-card strong,
  .plp-category-carousel .plp-category-card strong {
    font-size: clamp(8px, 2.2vw, 11px) !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-align: center;
    max-width: 100%;
  }

  .plp-category-card.is-split-layout .plp-category-card-content {
    padding: 8px 6px 10px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.47 — compact three-column tier-price strip
   -------------------------------------------------------------------------- */
.plp-product-price-tiers {
  display: grid;
  grid-template-columns: repeat(var(--plp-tier-count, 3), minmax(0, 1fr));
  align-items: start;
  width: 100%;
  margin: 14px 0 24px;
  padding: 2px 0;
  background: transparent;
}

.plp-product-price-tier {
  min-width: 0;
  padding: 4px clamp(10px, 1.5vw, 22px);
  text-align: left;
}

.plp-product-price-tier + .plp-product-price-tier {
  border-left: 1px solid rgba(60, 10, 73, .12);
}

.plp-product-price-tier__price {
  display: block;
  margin: 0;
  color: #ff3b00;
  font-family: var(--plp-font-sans) !important;
  font-size: clamp(25px, 2.25vw, 36px) !important;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.035em;
  white-space: nowrap;
}

.plp-product-price-tier__quantity {
  display: block;
  margin-top: 7px;
  color: var(--plp-ink-soft);
  font-family: var(--plp-font-sans);
  font-size: clamp(12px, 1vw, 15px);
  font-weight: 500;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

@media (max-width: 620px) {
  .plp-product-price-tiers {
    margin: 12px 0 20px;
  }

  .plp-product-price-tier {
    padding-inline: 7px;
    text-align: center;
  }

  .plp-product-price-tier__price {
    font-size: clamp(19px, 6.2vw, 25px) !important;
  }

  .plp-product-price-tier__quantity {
    margin-top: 5px;
    font-size: clamp(10px, 3vw, 12px);
  }
}

/* --------------------------------------------------------------------------
   v3.6.48 — comment form fields full-width alignment
   -------------------------------------------------------------------------- */
.plp-comment-page-form form,
.plp-comment-page-form .comment-form {
  width: 100%;
  max-width: none;
}

.plp-comment-page-form .comment-form-author,
.plp-comment-page-form .comment-form-email,
.plp-comment-page-form .comment-form-country,
.plp-comment-page-form .comment-form-comment,
.plp-comment-page-form .plp-review-email-verification,
.plp-comment-page-form .plp-comment-image-field,
.plp-comment-page-form .form-submit {
  display: block;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.plp-comment-page-form .comment-form-author,
.plp-comment-page-form .comment-form-email {
  width: 100%;
  margin-right: 0;
}

.plp-comment-page-form .comment-form-author + .comment-form-email {
  margin-top: 16px;
}

.plp-comment-page-form .comment-form-country input,
.plp-comment-page-form .comment-form-comment textarea,
.plp-comment-page-form .plp-comment-image-field,
.plp-comment-page-form .plp-review-email-verification,
.plp-comment-page-form .submit {
  width: 100%;
  max-width: none;
}

.plp-comment-page-form .plp-comment-image-field {
  padding: 16px 0 0;
  border: 0;
  border-top: 1px dashed rgba(43, 9, 52, .18);
  border-radius: 0;
  background: transparent;
}

.plp-comment-page-form .plp-comment-file-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.plp-comment-page-form .plp-comment-file-button,
.plp-comment-page-form .plp-comment-file-name,
.plp-comment-page-form .plp-comment-image-preview {
  max-width: 100%;
}

.plp-comment-page-form .plp-comment-image-preview img {
  display: block;
  max-width: 100%;
  height: auto;
}

@media (max-width: 720px) {
  .plp-comment-page-form {
    padding: 20px 16px;
  }

  .plp-comment-page-form .plp-comment-image-field {
    padding-top: 14px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.49 — force full-width customer-review form controls
   -------------------------------------------------------------------------- */
.plp-comment-page-form,
.plp-comment-page-form #respond,
.plp-comment-page-form .comment-respond,
.plp-comment-page-form form,
.plp-comment-page-form .comment-form {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.plp-comment-page-form #respond,
.plp-comment-page-form .comment-respond,
.plp-comment-page-form form,
.plp-comment-page-form .comment-form {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.plp-comment-page-form .comment-reply-title,
.plp-comment-page-form .comment-notes,
.plp-comment-page-form .logged-in-as,
.plp-comment-page-form .comment-form-author,
.plp-comment-page-form .comment-form-email,
.plp-comment-page-form .comment-form-country,
.plp-comment-page-form .comment-form-comment,
.plp-comment-page-form .plp-review-email-verification,
.plp-comment-page-form .plp-comment-image-field,
.plp-comment-page-form .form-submit {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.plp-comment-page-form input[type="text"],
.plp-comment-page-form input[type="email"],
.plp-comment-page-form input[type="url"],
.plp-comment-page-form textarea,
.plp-comment-page-form .plp-comment-file-control,
.plp-comment-page-form .submit {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.plp-comment-page-form .comment-form-author,
.plp-comment-page-form .comment-form-email {
  display: block !important;
  float: none !important;
}

.plp-comment-page-form .plp-comment-image-field {
  padding: 16px 0 0 !important;
  border: 0 !important;
  border-top: 1px dashed rgba(43, 9, 52, .18) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

@media (max-width: 720px) {
  .plp-comment-page-form {
    padding: 18px 14px !important;
  }
}


/* v3.6.50 footer font-size alignment */
.plp-footer-intro p,
.plp-footer .plp-footer-grid > div > h2,
.plp-footer .plp-footer-grid > div > h2 a,
.plp-footer .plp-footer-grid > div > a:not(.plp-brand),
.plp-footer .plp-footer-grid > div > a:not(.plp-brand) span {
  font-size: 13px !important;
  line-height: 1.7;
}

.plp-footer .plp-footer-grid > div > h2 {
  margin: 8px 0 10px;
}

.plp-footer-contact-column a span {
  font-size: inherit !important;
}


/* v3.6.51 footer payment logos */
.plp-footer-payment-wrap {
  margin-top: 18px;
  width: 100%;
}

.plp-footer-payment-wrap .plp-payment-logo-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  overflow: visible;
  padding: 2px 0 0;
}

.plp-footer-payment-wrap .plp-payment-logo-item {
  min-width: 0;
}

.plp-footer-payment-wrap .plp-payment-brand-logo,
.plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
.plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
.plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
.plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
.plp-footer-payment-wrap .plp-payment-brand-logo--visa,
.plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
  width: auto;
  height: 24px;
  max-height: 24px;
  max-width: none;
}

.plp-footer-payment-wrap .plp-payment-brand-logo--unionpay { width: 100px; }
.plp-footer-payment-wrap .plp-payment-brand-logo--alipay { width: 84px; }
.plp-footer-payment-wrap .plp-payment-brand-logo--mastercard { width: 44px; }
.plp-footer-payment-wrap .plp-payment-brand-logo--visa { width: 64px; }
.plp-footer-payment-wrap .plp-payment-brand-logo--wechat { width: 84px; }
.plp-footer-payment-wrap .plp-payment-brand-logo--lianlian { width: 62px; }

@media (max-width: 920px) {
  .plp-footer-payment-wrap .plp-payment-logo-row {
    flex-wrap: wrap;
    gap: 12px 14px;
  }
}

@media (max-width: 720px) {
  .plp-footer-payment-wrap .plp-payment-logo-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 12px;
    justify-items: start;
  }

  .plp-footer-payment-wrap .plp-payment-brand-logo,
  .plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
  .plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
  .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
  .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
  .plp-footer-payment-wrap .plp-payment-brand-logo--visa,
  .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
    height: 20px;
    max-height: 20px;
  }

  .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay { width: 88px; }
  .plp-footer-payment-wrap .plp-payment-brand-logo--alipay { width: 74px; }
  .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard { width: 40px; }
  .plp-footer-payment-wrap .plp-payment-brand-logo--visa { width: 58px; }
  .plp-footer-payment-wrap .plp-payment-brand-logo--wechat { width: 74px; }
  .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian { width: 54px; }
}


/* v3.6.52 — unify all page breadcrumb text to the compact Product-page size. */
body.plp-storefront .plp-shop-breadcrumb,
body.plp-storefront .plp-shop-breadcrumb .woocommerce-breadcrumb,
body.plp-storefront .plp-shop-breadcrumb .woocommerce-breadcrumb a,
body.plp-storefront .plp-shop-breadcrumb .woocommerce-breadcrumb span,
body.plp-storefront .plp-product-breadcrumb,
body.plp-storefront .plp-product-breadcrumb .woocommerce-breadcrumb,
body.plp-storefront .plp-product-breadcrumb .woocommerce-breadcrumb a,
body.plp-storefront .plp-product-breadcrumb .woocommerce-breadcrumb span,
body.plp-storefront .plp-page-breadcrumb,
body.plp-storefront .plp-page-breadcrumb a,
body.plp-storefront .plp-page-breadcrumb span,
body.plp-storefront .plp-standard-page-breadcrumb,
body.plp-storefront .plp-standard-page-breadcrumb a,
body.plp-storefront .plp-standard-page-breadcrumb span,
body.plp-storefront.tax-product_cat .woocommerce-breadcrumb,
body.plp-storefront.tax-product_cat .woocommerce-breadcrumb a,
body.plp-storefront.tax-product_cat .woocommerce-breadcrumb span,
body.plp-storefront.post-type-archive-product .woocommerce-breadcrumb,
body.plp-storefront.post-type-archive-product .woocommerce-breadcrumb a,
body.plp-storefront.post-type-archive-product .woocommerce-breadcrumb span {
  font-size: 11px !important;
  line-height: 1.4 !important;
}


/* v3.6.53 — policy hero spacing, full-width intro, and readable policy index */
body.plp-storefront .plp-policy-hero {
  padding-top: 16px;
}

body.plp-storefront .plp-policy-hero .plp-page-breadcrumb {
  margin-bottom: 16px;
}

body.plp-storefront .plp-policy-hero h1 {
  margin-top: 0;
}

body.plp-storefront .plp-policy-hero > .plp-container > p {
  width: 100%;
  max-width: none;
}

body.plp-storefront .plp-policy-index {
  font-size: 17px;
  line-height: 1.65;
}

body.plp-storefront .plp-policy-index > strong {
  font-size: 17px;
  line-height: 1.5;
}

body.plp-storefront .plp-policy-index > a {
  font-size: 17px;
  line-height: 1.55;
}

body.plp-storefront .plp-policy-index > a span {
  font-size: 13px;
}

body.plp-storefront .plp-policy-index-contact small,
body.plp-storefront .plp-policy-index-contact a {
  font-size: 17px;
  line-height: 1.55;
}

@media (max-width: 720px) {
  body.plp-storefront .plp-policy-hero {
    padding-top: 12px;
  }
}


/* v3.6.54 — move breadcrumbs upward consistently across all internal pages. */
body.plp-storefront .plp-contact-hero,
body.plp-storefront .plp-comment-page-hero,
body.plp-storefront .plp-faq-hero,
body.plp-storefront .plp-about-v2-hero,
body.plp-storefront .plp-about-page-hero,
body.plp-storefront .plp-inner-hero,
body.plp-storefront .plp-policy-hero {
  padding-top: 16px !important;
}

body.plp-storefront .plp-standard-page,
body.plp-storefront .plp-shop-archive,
body.plp-storefront .plp-single-product,
body.plp-storefront .plp-search-results-page {
  padding-top: 16px !important;
}

body.plp-storefront .plp-contact-hero .plp-page-breadcrumb,
body.plp-storefront .plp-comment-page-hero .plp-page-breadcrumb,
body.plp-storefront .plp-faq-hero .plp-page-breadcrumb,
body.plp-storefront .plp-about-v2-hero .plp-page-breadcrumb,
body.plp-storefront .plp-about-page-hero .plp-page-breadcrumb,
body.plp-storefront .plp-inner-hero .plp-page-breadcrumb,
body.plp-storefront .plp-policy-hero .plp-page-breadcrumb,
body.plp-storefront .plp-standard-page-heading .plp-standard-page-breadcrumb,
body.plp-storefront .plp-shop-breadcrumb,
body.plp-storefront .plp-product-breadcrumb {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

@media (max-width: 720px) {
  body.plp-storefront .plp-contact-hero,
  body.plp-storefront .plp-comment-page-hero,
  body.plp-storefront .plp-faq-hero,
  body.plp-storefront .plp-about-v2-hero,
  body.plp-storefront .plp-about-page-hero,
  body.plp-storefront .plp-inner-hero,
  body.plp-storefront .plp-policy-hero,
  body.plp-storefront .plp-standard-page,
  body.plp-storefront .plp-shop-archive,
  body.plp-storefront .plp-single-product,
  body.plp-storefront .plp-search-results-page {
    padding-top: 12px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.55 — page-title descriptions use the full content width
   -------------------------------------------------------------------------- */
.plp-contact-hero > .plp-container > p,
.plp-comment-page-hero > .plp-container > p,
.plp-faq-hero > .plp-container > p,
.plp-inner-hero > .plp-container > p,
.plp-policy-hero > .plp-container > p {
  width: 100%;
  max-width: none !important;
}

.plp-shop-archive-header {
  display: block;
}

.plp-shop-archive-header .term-description,
.plp-shop-archive-header .term-description p,
.plp-shop-archive-header > .term-description,
.plp-shop-archive-header > .term-description p {
  width: 100%;
  max-width: none !important;
}

.plp-shop-archive-header .term-description {
  margin-top: 18px;
}

.plp-shop-archive-header .term-description p {
  margin: 0;
}


/* --------------------------------------------------------------------------
   v3.6.56 — remove selected hero kicker labels
   -------------------------------------------------------------------------- */
.plp-contact-hero h1,
.plp-comment-page-hero h1,
.plp-shop-archive-header h1 {
  margin-top: 0;
}


/* --------------------------------------------------------------------------
   v3.6.57 — force every footer column text to match the brand philosophy size
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-intro > p,
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > h2,
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > h2 a,
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > a:not(.plp-brand) span {
  font-size: var(--plp-body-size, 13px) !important;
}

body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > h2 {
  line-height: 1.35 !important;
  margin-bottom: 10px !important;
}

body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-index-column > a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-grid .plp-footer-intro > p {
  line-height: 1.7 !important;
}


/* --------------------------------------------------------------------------
   v3.6.58 — zoom-resilient primary navigation

   The desktop menu stays centered inside a capped content width rather than
   stretching with space-between. At narrower CSS viewports (including browser
   zoom), it becomes a compact horizontal scroller instead of squeezing or
   redistributing links across the full row.
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-main-nav {
  width: 100%;
  overflow: hidden;
}

body.plp-storefront .plp-main-nav .plp-nav-scroll {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: none;
  overflow: visible;
}

body.plp-storefront .plp-main-nav .plp-nav-menu,
body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center !important;
  align-items: center;
  width: min(calc(100% - 40px), 860px) !important;
  max-width: 860px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  gap: clamp(28px, 3.4vw, 62px) !important;
}

body.plp-storefront .plp-main-nav .plp-nav-menu > li,
body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
}

body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
body.plp-storefront .plp-main-nav .plp-nav-section-link,
body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
  display: block;
  width: auto !important;
  min-width: 0 !important;
  padding: 14px 0 !important;
  font-size: clamp(13px, .78vw, 15px) !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Browser zoom reduces the CSS viewport just like a narrower screen. Switch
   to a predictable scroll row before the links have a chance to collide. */
@media (max-width: 900px) {
  body.plp-storefront .plp-main-nav {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.plp-storefront .plp-main-nav::-webkit-scrollbar,
  body.plp-storefront .plp-main-nav .plp-nav-scroll::-webkit-scrollbar {
    display: none;
  }

  body.plp-storefront .plp-main-nav .plp-nav-scroll {
    justify-content: flex-start;
    width: max-content;
    min-width: 100%;
    overflow: visible;
    padding-inline: 20px;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
    justify-content: flex-start !important;
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    margin: 0 !important;
    gap: 24px !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    padding: 12px 0 !important;
    font-size: 13px !important;
  }
}

@media (max-width: 520px) {
  body.plp-storefront .plp-main-nav .plp-nav-scroll {
    padding-inline: 16px;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
    gap: 18px !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    font-size: 12px !important;
  }
}


/* v3.6.59 — keep the floating contact dock visually stable during desktop zoom. */
.plp-contact-dock {
  /* JS writes the inverse browser zoom through the CSS zoom property. */
  transform-origin: right center;
}

.plp-contact-dock.is-left-side {
  transform-origin: left center;
}


/* --------------------------------------------------------------------------
   v3.6.60 — balanced gutters for 13–14 inch laptops and scaled displays
   -------------------------------------------------------------------------- */
/*
 * On common 13–14 inch laptops, Windows display scaling can reduce the CSS
 * viewport even when the browser is at 100%. The former fixed 24px gutter made
 * the canvas look almost edge-to-edge. Use a responsive total gutter instead:
 * roughly 36–60px per side across laptop-sized viewports.
 */
@media (min-width: 781px) and (max-width: 1599px) {
  body.plp-storefront .plp-container {
    width: min(1280px, calc(100% - clamp(72px, 8vw, 120px))) !important;
    max-width: min(1280px, calc(100% - clamp(72px, 8vw, 120px))) !important;
  }
}

/* Keep the compact mobile gutter unchanged. */
@media (max-width: 780px) {
  body.plp-storefront .plp-container {
    width: min(var(--plp-container), calc(100% - 28px)) !important;
    max-width: min(var(--plp-container), calc(100% - 28px)) !important;
  }
}



/* --------------------------------------------------------------------------
   v3.6.62 — product detail order layout and combined child-variant selector
   -------------------------------------------------------------------------- */
.plp-product-summary--order-layout {
  display: block;
}

.plp-product-variant-section {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 14px 0 18px;
}

.plp-product-variant-label {
  padding-top: 7px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--plp-muted, #725d77);
}

.plp-product-variant-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.plp-product-variant-option {
  appearance: none;
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid #decce2;
  border-radius: 7px;
  background: #fff;
  color: #2b0934;
  font: inherit;
  font-size: 11px;
  line-height: 1.3;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease;
}

.plp-product-variant-option:hover {
  border-color: #ad78ba;
  background: #fcf7fd;
}

.plp-product-variant-option.is-selected {
  border-color: #ff5a00;
  color: #ff4f00;
  background: #fff8f2;
  box-shadow: inset 0 0 0 1px rgba(255, 90, 0, .08);
}

.plp-product-two-tier-pricing {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 16px 0;
  overflow: hidden;
  border: 1px solid #dfcce3;
  border-radius: 14px;
  background: #fff;
}

.plp-product-two-tier-card {
  display: grid;
  gap: 3px;
  align-content: start;
  padding: 16px 18px;
}

.plp-product-two-tier-card + .plp-product-two-tier-card {
  border-left: 1px solid #e5d9e7;
}

.plp-product-two-tier-card > span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #795b80;
}

.plp-product-two-tier-card > strong {
  font-size: clamp(26px, 2.3vw, 34px);
  line-height: 1;
  color: #ff5100;
}

.plp-product-two-tier-card > small {
  font-size: 12px;
  font-weight: 700;
  color: #2b0934;
}

.plp-product-two-tier-card > em {
  font-style: normal;
  font-size: 13px;
  color: #70437b;
}

.plp-product-two-tier-card--contact > strong {
  color: #2b0934;
}

.plp-product-compact-overview {
  margin: 14px 0;
  padding: 16px 18px;
  border: 1px solid #eadfed;
  border-radius: 15px;
  background: #fff;
}

.plp-product-compact-overview h2 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.2;
  color: #2b0934;
}

.plp-product-compact-overview .plp-simple-product-description,
.plp-product-compact-overview .plp-simple-product-description p {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.65;
  color: #745c79;
}

.plp-product-overview-features {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
}

.plp-product-overview-features li {
  position: relative;
  padding-left: 14px;
  font-size: 12px;
  color: #2b0934;
}

.plp-product-overview-features li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #8f4ea0;
}

.plp-product-overview-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 16px;
  margin: 0;
}

.plp-product-overview-list > div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.plp-product-overview-list dt {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #806684;
}

.plp-product-overview-list dd {
  margin: 0;
  font-size: 12px;
  color: #2b0934;
  overflow-wrap: anywhere;
}

.plp-product-summary-payments {
  margin: 14px 0;
  padding: 8px 12px;
  border: 1px solid #eadfed;
  border-radius: 13px;
  background: #fff;
}

.plp-product-summary-payments .plp-payment-logo-row {
  justify-content: flex-start;
  gap: 12px;
  padding: 0;
  overflow: visible;
}

.plp-product-summary-payments .plp-payment-logo-item {
  min-width: 0;
}

.plp-product-summary-payments .plp-payment-brand-logo,
.plp-product-summary-payments .plp-payment-brand-logo--alipay,
.plp-product-summary-payments .plp-payment-brand-logo--wechat,
.plp-product-summary-payments .plp-payment-brand-logo--unionpay,
.plp-product-summary-payments .plp-payment-brand-logo--mastercard,
.plp-product-summary-payments .plp-payment-brand-logo--visa,
.plp-product-summary-payments .plp-payment-brand-logo--lianlian {
  width: auto;
  height: 22px;
  max-height: 22px;
  max-width: 88px;
}

.plp-product-contact-order-box {
  margin: 15px 0 12px;
  padding: 18px 20px;
  border-radius: 17px;
  background: #f3e7f5;
}

.plp-product-contact-order-box h2 {
  margin: 6px 0 7px;
  font-size: clamp(23px, 2.2vw, 30px);
  line-height: 1.16;
  color: #2b0934;
}

.plp-product-contact-order-box p {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
  color: #745c79;
}

.plp-product-contact-order-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
}

.plp-product-contact-order-actions .plp-button {
  min-height: 38px;
  padding: 0 16px;
  font-size: 12px;
}

.plp-product-policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 18px;
  margin: 12px 0 0;
}

.plp-product-policy-links a {
  font-size: 11px;
  font-weight: 750;
  color: #5d2769;
  text-decoration: none;
}

.plp-product-policy-links a:hover {
  text-decoration: underline;
}

.plp-product-home-policies {
  margin-top: clamp(48px, 6vw, 86px);
  padding: 0 0 clamp(55px, 7vw, 92px);
}

.plp-product-home-policies .plp-trust-block-heading {
  margin-bottom: 16px;
}

.plp-product-home-policies .plp-trust-block-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.14;
  color: #2b0934;
}

@media (max-width: 900px) {
  .plp-product-overview-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .plp-product-variant-section {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .plp-product-variant-label {
    padding-top: 0;
  }

  .plp-product-variant-option {
    font-size: 10px;
    padding: 6px 9px;
  }

  .plp-product-two-tier-pricing {
    grid-template-columns: 1fr;
  }

  .plp-product-two-tier-card + .plp-product-two-tier-card {
    border-left: 0;
    border-top: 1px solid #e5d9e7;
  }

  .plp-product-overview-list > div {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .plp-product-summary-payments .plp-payment-logo-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px 10px;
  }

  .plp-product-contact-order-actions .plp-button {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   v3.6.63 — product option accordion and unified summary typography
   -------------------------------------------------------------------------- */
.plp-product-summary--order-layout {
  --plp-product-body-size: 15px;
}

.plp-product-variant-section {
  display: block;
  margin: 14px 0 16px;
  overflow: hidden;
  border: 1px solid #dfcce3;
  border-radius: 14px;
  background: #fff;
}

.plp-product-variant-section > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 12px 16px;
  list-style: none;
  cursor: pointer;
  color: #2b0934;
  font-family: var(--plp-font-sans);
  font-size: var(--plp-product-body-size);
  line-height: 1.45;
}

.plp-product-variant-section > summary::-webkit-details-marker {
  display: none;
}

.plp-product-variant-section > summary > span,
.plp-product-variant-section > summary > strong {
  font-size: inherit;
  line-height: inherit;
}

.plp-product-variant-section > summary > span {
  font-weight: 800;
}

.plp-product-variant-section > summary > strong {
  min-width: 0;
  font-weight: 600;
  color: #745c79;
  overflow-wrap: anywhere;
}

.plp-product-variant-section > summary > i {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #f3e7f5;
  font-style: normal;
  font-size: 19px;
  line-height: 1;
  transition: transform .18s ease;
}

.plp-product-variant-section[open] > summary > i {
  transform: rotate(45deg);
}

.plp-product-variant-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 16px 16px;
}

.plp-product-variant-option {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #decce2;
  border-radius: 10px;
  background: #fff;
  color: #2b0934;
  font-family: var(--plp-font-sans);
  font-size: var(--plp-product-body-size);
  line-height: 1.42;
  text-align: left;
  overflow-wrap: anywhere;
}

.plp-product-two-tier-card > span,
.plp-product-two-tier-card > strong,
.plp-product-two-tier-card > small,
.plp-product-two-tier-card > em,
.plp-product-compact-overview h2,
.plp-product-compact-overview .plp-simple-product-description,
.plp-product-compact-overview .plp-simple-product-description p,
.plp-product-overview-features li,
.plp-product-overview-list dt,
.plp-product-overview-list dd,
.plp-product-contact-order-box .plp-eyebrow,
.plp-product-contact-order-box h2,
.plp-product-contact-order-box p,
.plp-product-contact-order-actions .plp-button,
.plp-product-policy-links a {
  font-family: var(--plp-font-sans);
  font-size: var(--plp-product-body-size) !important;
  line-height: 1.55;
  letter-spacing: 0;
}

.plp-product-two-tier-card > span,
.plp-product-overview-list dt,
.plp-product-contact-order-box .plp-eyebrow {
  text-transform: none;
}

.plp-product-two-tier-card > strong,
.plp-product-compact-overview h2,
.plp-product-contact-order-box h2 {
  font-weight: 800;
}

.plp-product-two-tier-card > small,
.plp-product-two-tier-card > em,
.plp-product-overview-list dt,
.plp-product-overview-list dd,
.plp-product-policy-links a {
  font-weight: 600;
}

.plp-product-two-tier-card {
  gap: 5px;
  padding: 16px 18px;
}

.plp-product-compact-overview h2 {
  margin: 0 0 10px;
}

.plp-product-overview-list > div {
  grid-template-columns: 120px minmax(0, 1fr);
}

.plp-product-contact-order-box h2 {
  margin: 7px 0;
}

.plp-product-contact-order-actions .plp-button {
  min-height: 42px;
  padding: 0 18px;
}

@media (max-width: 700px) {
  .plp-product-variant-section > summary {
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 11px 13px;
  }

  .plp-product-variant-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 0 13px 13px;
  }

  .plp-product-variant-option {
    min-height: 44px;
    padding: 8px 9px;
  }

  .plp-product-overview-list > div {
    grid-template-columns: 105px minmax(0, 1fr);
  }
}


/* --------------------------------------------------------------------------
   v3.6.64 — compact two-row pricing and unified product-summary typography
   -------------------------------------------------------------------------- */
.plp-product-summary--order-layout {
  --plp-product-body-size: 16px;
}

/* Every summary label, description, option and action uses the same body size.
   The product name (h1) is intentionally excluded. */
.plp-product-summary--order-layout > .plp-eyebrow,
.plp-product-summary--order-layout .plp-showcase-product-subtitle,
.plp-product-summary--order-layout .plp-product-variant-section > summary span,
.plp-product-summary--order-layout .plp-product-variant-section > summary strong,
.plp-product-summary--order-layout .plp-product-variant-section > summary i,
.plp-product-summary--order-layout .plp-product-variant-option,
.plp-product-summary--order-layout .plp-product-two-tier-card > span,
.plp-product-summary--order-layout .plp-product-two-tier-card > strong,
.plp-product-summary--order-layout .plp-simple-product-description,
.plp-product-summary--order-layout .plp-simple-product-description p,
.plp-product-summary--order-layout .plp-product-overview-features li,
.plp-product-summary--order-layout .plp-product-overview-list dt,
.plp-product-summary--order-layout .plp-product-overview-list dd,
.plp-product-summary--order-layout .plp-product-contact-order-box .plp-eyebrow,
.plp-product-summary--order-layout .plp-product-contact-order-box h2,
.plp-product-summary--order-layout .plp-product-contact-order-box p,
.plp-product-summary--order-layout .plp-product-contact-order-actions .plp-button,
.plp-product-summary--order-layout .plp-product-policy-links a {
  font-family: var(--plp-font-sans);
  font-size: var(--plp-product-body-size) !important;
  line-height: 1.5;
  letter-spacing: 0;
}

/* Each tier is exactly one line: quantity on the left and price on the right. */
.plp-product-two-tier-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 58px;
  padding: 14px 18px;
}

.plp-product-two-tier-card > span,
.plp-product-two-tier-card > strong {
  margin: 0;
  color: #2b0934;
  font-weight: 700;
  white-space: nowrap;
}

.plp-product-two-tier-card:first-child > strong {
  color: #ff4f00;
}

/* Product overview is now plain body copy: no heading and no quotation line. */
.plp-product-compact-overview {
  padding: 16px 18px;
}

.plp-product-compact-overview .plp-simple-product-description,
.plp-product-compact-overview .plp-simple-product-description p {
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0;
  background: transparent !important;
}

@media (max-width: 700px) {
  .plp-product-summary--order-layout {
    --plp-product-body-size: 14px;
  }

  .plp-product-two-tier-card {
    min-height: 52px;
    padding: 12px 13px;
    gap: 10px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.65 — smaller variant labels and compact inline contact action
   -------------------------------------------------------------------------- */

/* Combined child-variant text is intentionally a little smaller than body copy
   so two half-width options remain compact and readable. */
.plp-product-summary--order-layout .plp-product-variant-option {
  font-size: 13px !important;
  line-height: 1.35;
}

/* The contact box now has one body-sized heading and an inline Contact Us link. */
.plp-product-summary--order-layout .plp-product-contact-order-box h2,
.plp-product-summary--order-layout .plp-product-contact-order-box p,
.plp-product-summary--order-layout .plp-product-contact-inline-link {
  font-family: var(--plp-font-sans);
  font-size: var(--plp-product-body-size) !important;
  line-height: 1.55;
  letter-spacing: 0;
}

.plp-product-contact-order-box h2 {
  margin: 0 0 6px;
  font-weight: 700;
}

.plp-product-contact-order-box p {
  margin: 0;
}

.plp-product-contact-inline-link {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  color: #4a0756;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.plp-product-contact-inline-link:hover,
.plp-product-contact-inline-link:focus {
  text-decoration: underline;
}

@media (max-width: 700px) {
  .plp-product-summary--order-layout .plp-product-variant-option {
    font-size: 12px !important;
  }

  .plp-product-contact-inline-link {
    margin-left: 5px;
  }
}

/* =========================================================
   v3.6.67 — About Us numbered sections and CTA company details
   ========================================================= */
.plp-about-v2-section-intro {
  max-width: 860px;
  margin: 18px 0 0;
  color: var(--plp-ink-soft);
  font-size: 16px;
  line-height: 1.75;
}

.plp-about-v2-contact-icon svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
}

.plp-about-v2-company-details {
  display: grid;
  gap: 10px;
  padding: 15px 18px;
  border: 1px solid rgba(60, 10, 73, .16);
  border-radius: 17px;
  background: rgba(255,255,255,.52);
}

.plp-about-v2-company-details > div {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.plp-about-v2-company-details span {
  color: var(--plp-ink-soft);
  font-size: 13px;
  font-weight: 700;
}

.plp-about-v2-company-details strong {
  color: var(--plp-ink);
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

@media (max-width: 680px) {
  .plp-about-v2-section-intro {
    font-size: 15px;
    line-height: 1.7;
  }

  .plp-about-v2-company-details > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}


/* =========================================================
   v3.6.68 — About Us mobile typography balance
   ========================================================= */
@media (max-width: 680px) {
  .plp-about-v2-hero,
  .plp-about-v2-story,
  .plp-about-v2-advantages,
  .plp-about-v2-categories,
  .plp-about-v2-trust,
  .plp-about-v2-team,
  .plp-about-v2-cta {
    overflow-wrap: anywhere;
  }

  .plp-about-v2-hero {
    padding: 18px 0 38px;
  }

  .plp-about-v2-hero .plp-page-breadcrumb {
    margin-bottom: 20px;
    font-size: 11px !important;
    line-height: 1.4;
  }

  .plp-about-v2-hero .plp-eyebrow,
  .plp-about-v2-story .plp-kicker,
  .plp-about-v2-advantages .plp-kicker,
  .plp-about-v2-categories .plp-kicker,
  .plp-about-v2-trust .plp-kicker,
  .plp-about-v2-team .plp-kicker,
  .plp-about-v2-cta .plp-kicker {
    font-size: 11px !important;
    line-height: 1.35;
    letter-spacing: .1em;
  }

  .plp-about-v2-hero-copy--wide h1,
  .plp-about-v2-hero-copy h1 {
    margin-top: 9px;
    font-size: 30px !important;
    line-height: 1.16;
    letter-spacing: -.025em;
  }

  .plp-about-v2-story,
  .plp-about-v2-advantages,
  .plp-about-v2-categories,
  .plp-about-v2-trust,
  .plp-about-v2-team,
  .plp-about-v2-cta {
    padding: 44px 0;
  }

  .plp-about-v2-section-heading h2,
  .plp-about-v2-story-main .plp-about-v2-section-heading h2,
  .plp-about-v2-trust h2,
  .plp-about-v2-team h2,
  .plp-about-v2-cta h2 {
    margin-top: 8px;
    font-size: 26px !important;
    line-height: 1.17;
    letter-spacing: -.022em;
  }

  .plp-about-v2-story-copy,
  .plp-about-v2-story-copy p,
  .plp-about-v2-trust .plp-about-v2-section-heading > p,
  .plp-about-v2-team p,
  .plp-about-v2-cta-copy > p {
    font-size: 15px !important;
    line-height: 1.68;
  }

  .plp-about-v2-story-copy {
    gap: 14px;
    margin-top: 22px;
  }

  .plp-about-v2-story-copy p:first-child::first-letter {
    font-size: 3.1em;
    line-height: .78;
  }

  .plp-about-v2-advantages-grid,
  .plp-about-v2-category-grid {
    margin-top: 24px;
    gap: 13px;
  }

  .plp-about-v2-advantage-card,
  .plp-about-v2-category-card {
    padding: 21px 19px;
    border-radius: 18px;
  }

  .plp-about-v2-card-number {
    margin-bottom: 18px;
    font-size: 15px !important;
  }

  .plp-about-v2-advantage-card h3,
  .plp-about-v2-category-card h3,
  .plp-about-v2-trust-cards h3 {
    margin-bottom: 8px;
    font-size: 18px !important;
    line-height: 1.22;
  }

  .plp-about-v2-advantage-card p,
  .plp-about-v2-category-card p,
  .plp-about-v2-trust-cards p,
  .plp-about-v2-section-intro {
    font-size: 14px !important;
    line-height: 1.62;
  }

  .plp-about-v2-section-intro {
    margin-top: 12px;
  }

  .plp-about-v2-category-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 17px;
    border-radius: 14px;
  }

  .plp-about-v2-category-icon svg {
    width: 27px;
    height: 27px;
  }

  .plp-about-v2-trust-grid {
    gap: 26px;
  }

  .plp-about-v2-trust-cards {
    gap: 10px;
  }

  .plp-about-v2-trust-cards article {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 13px;
    padding: 17px;
    border-radius: 17px;
  }

  .plp-about-v2-trust-cards article > span {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    font-size: 18px !important;
  }

  .plp-about-v2-team-inner {
    gap: 22px;
    padding: 22px 19px;
    border-radius: 22px;
  }

  .plp-about-v2-team-mark {
    width: 88px;
    font-size: 48px !important;
  }

  .plp-about-v2-team h2 {
    margin-bottom: 14px;
  }

  .plp-about-v2-cta-inner {
    gap: 25px;
  }

  .plp-about-v2-cta-copy > p {
    margin-top: 10px;
  }

  .plp-about-v2-contact-link {
    min-height: 52px;
    padding: 11px 13px;
    gap: 10px;
    border-radius: 14px;
    font-size: 14px !important;
  }

  .plp-about-v2-contact-link > span {
    width: 31px;
    height: 31px;
    border-radius: 9px;
    font-size: 15px !important;
  }

  .plp-about-v2-contact-link strong {
    font-size: 14px !important;
    line-height: 1.4;
  }

  .plp-about-v2-company-details {
    gap: 9px;
    padding: 13px 14px;
    border-radius: 14px;
  }

  .plp-about-v2-company-details span {
    font-size: 11px !important;
    line-height: 1.35;
  }

  .plp-about-v2-company-details strong {
    font-size: 13px !important;
    line-height: 1.52;
  }

  .plp-about-v2-cta-actions small {
    font-size: 12px !important;
    line-height: 1.45;
  }
}

@media (max-width: 420px) {
  .plp-about-v2-hero-copy--wide h1,
  .plp-about-v2-hero-copy h1 {
    font-size: 27px !important;
  }

  .plp-about-v2-section-heading h2,
  .plp-about-v2-story-main .plp-about-v2-section-heading h2,
  .plp-about-v2-trust h2,
  .plp-about-v2-team h2,
  .plp-about-v2-cta h2 {
    font-size: 24px !important;
  }

  .plp-about-v2-story-copy,
  .plp-about-v2-story-copy p,
  .plp-about-v2-trust .plp-about-v2-section-heading > p,
  .plp-about-v2-team p,
  .plp-about-v2-cta-copy > p {
    font-size: 14px !important;
  }

  .plp-about-v2-advantage-card h3,
  .plp-about-v2-category-card h3,
  .plp-about-v2-trust-cards h3 {
    font-size: 17px !important;
  }

  .plp-about-v2-advantage-card p,
  .plp-about-v2-category-card p,
  .plp-about-v2-trust-cards p,
  .plp-about-v2-section-intro {
    font-size: 13px !important;
  }
}

/* =========================================================
   v3.6.69 — unified mobile typography and centered navigation

   Mobile storefront uses exactly three text-size levels:
   1) H1 / primary title
   2) H2–H6 / secondary title
   3) body text / navigation / labels / product and category names
   ========================================================= */
@media (max-width: 720px) {
  body.plp-storefront {
    --plp-mobile-h1-size: 28px;
    --plp-mobile-h2-size: 22px;
    --plp-mobile-body-size: 14px;
    --plp-h1-size: var(--plp-mobile-h1-size);
    --plp-h2-size: var(--plp-mobile-h2-size);
    --plp-body-size: var(--plp-mobile-body-size);
    --plp-copy-size: var(--plp-mobile-body-size);
    --plp-copy-size-mobile: var(--plp-mobile-body-size);
    --plp-label-size: var(--plp-mobile-body-size);
    --plp-label-size-mobile: var(--plp-mobile-body-size);
  }

  /* Level 1: page and hero titles. */
  body.plp-storefront h1:not(.plp-typography-probe),
  body.plp-storefront .plp-policy-hero h1,
  body.plp-storefront .plp-about-v2-hero h1,
  body.plp-storefront .gsm-product-summary > h1 {
    font-size: var(--plp-mobile-h1-size) !important;
    line-height: 1.14 !important;
    letter-spacing: -.025em !important;
  }

  /* Level 2: every secondary/lower heading shares one size. */
  body.plp-storefront h2:not(.plp-typography-probe),
  body.plp-storefront h3:not(.plp-typography-probe),
  body.plp-storefront h4:not(.plp-typography-probe),
  body.plp-storefront h5:not(.plp-typography-probe),
  body.plp-storefront h6:not(.plp-typography-probe),
  body.plp-storefront .plp-section-heading h2,
  body.plp-storefront .plp-about-v2-section-heading h2,
  body.plp-storefront .plp-policy-card h2,
  body.plp-storefront .plp-trust-block-heading h3,
  body.plp-storefront .plp-home-trust-heading h2 {
    font-size: var(--plp-mobile-h2-size) !important;
    line-height: 1.2 !important;
    letter-spacing: -.018em !important;
  }

  /* Level 3: all reading, interface and helper text. */
  body.plp-storefront p,
  body.plp-storefront li,
  body.plp-storefront dt,
  body.plp-storefront dd,
  body.plp-storefront label,
  body.plp-storefront small,
  body.plp-storefront figcaption,
  body.plp-storefront blockquote,
  body.plp-storefront textarea,
  body.plp-storefront select,
  body.plp-storefront input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  body.plp-storefront button,
  body.plp-storefront td,
  body.plp-storefront th,
  body.plp-storefront .plp-kicker,
  body.plp-storefront .plp-eyebrow,
  body.plp-storefront .plp-button,
  body.plp-storefront .plp-inline-link,
  body.plp-storefront .plp-card-action,
  body.plp-storefront .plp-heading-more,
  body.plp-storefront .plp-language-switcher,
  body.plp-storefront .plp-page-breadcrumb,
  body.plp-storefront .plp-shop-breadcrumb,
  body.plp-storefront .plp-product-breadcrumb,
  body.plp-storefront .plp-product-price,
  body.plp-storefront .plp-section-intro,
  body.plp-storefront .plp-about-text-block,
  body.plp-storefront .plp-about-values span,
  body.plp-storefront .plp-footer,
  body.plp-storefront .plp-footer a:not(.plp-brand) {
    font-size: var(--plp-mobile-body-size) !important;
    line-height: 1.6 !important;
  }

  /* Product category names and product names intentionally use body size. */
  body.plp-storefront .plp-category-static-grid .plp-category-card strong,
  body.plp-storefront .plp-category-carousel .plp-category-card strong,
  body.plp-storefront .plp-product-title,
  body.plp-storefront .plp-product-card .plp-eyebrow,
  body.plp-storefront .woocommerce-loop-product__title,
  body.plp-storefront .plp-loop-product-category,
  body.plp-storefront .plp-showcase-card-copy,
  body.plp-storefront .plp-product-copy .plp-card-action {
    font-size: var(--plp-mobile-body-size) !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  body.plp-storefront .plp-category-static-grid .plp-category-card strong,
  body.plp-storefront .plp-category-carousel .plp-category-card strong {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere;
    text-align: center;
  }

  body.plp-storefront .plp-product-title,
  body.plp-storefront .woocommerce-loop-product__title {
    font-weight: 750;
  }

  /* Header controls are body text, but remain compact enough for phones. */
  body.plp-storefront .plp-search input,
  body.plp-storefront .plp-language-switcher,
  body.plp-storefront .plp-language-switcher a,
  body.plp-storefront .plp-language-switcher summary {
    font-size: var(--plp-mobile-body-size) !important;
  }

  /* Center the complete five-link mobile menu instead of left-aligning it. */
  body.plp-storefront .plp-main-nav {
    overflow: hidden !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-scroll {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 10px !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 430px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    gap: clamp(12px, 3.7vw, 20px) !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 13px 0 !important;
    font-size: var(--plp-mobile-body-size) !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
}

@media (max-width: 370px) {
  body.plp-storefront {
    --plp-mobile-h1-size: 26px;
    --plp-mobile-h2-size: 20px;
    --plp-mobile-body-size: 13px;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
    gap: 10px !important;
  }
}

/* v3.6.72 — drag-and-drop ordering of fixed page sections */
.gsvb-page-root,
.gsvb-product-sections-root {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.gsvb-fixed-section[hidden] {
  display: none !important;
}
.gsvb-custom-content-wrapper:empty {
  display: none !important;
}
.gsvb-page-root > .plp-about-page-extra {
  order: 900;
}
.gsvb-page-root > .plp-elementor-home {
  order: 1;
}
.gsvb-product-main-wrapper {
  width: 100%;
}


/* v3.6.74 — GILIPET Visual Builder v2 container integration. */
.gsvb-custom-content-wrapper.gsvb-v2-active { display: contents; }
.gsvb-page-root > .gsvb-v2-container,
.gsvb-product-sections-root > .gsvb-v2-container { width: 100%; }

/* --------------------------------------------------------------------------
   v3.6.76 — native 100% laptop rendering; remove simulated browser zoom
   -------------------------------------------------------------------------- */
/* Older cached JavaScript may briefly leave this class on <body>. Keep the
   layout at its native scale so 13–14 inch laptops remain centered at 100%. */
body.plp-storefront.plp-laptop-compact-scale {
  overflow-x: clip !important;
}

body.plp-storefront.plp-laptop-compact-scale .plp-header,
body.plp-storefront.plp-laptop-compact-scale .plp-main-content,
body.plp-storefront.plp-laptop-compact-scale .plp-footer {
  width: 100% !important;
  zoom: 1 !important;
}

body.plp-storefront.plp-laptop-compact-scale .plp-header .plp-container,
body.plp-storefront.plp-laptop-compact-scale .plp-main-content .plp-container,
body.plp-storefront.plp-laptop-compact-scale .plp-footer .plp-container {
  margin-left: auto !important;
  margin-right: auto !important;
}

body.plp-storefront.plp-laptop-compact-scale .plp-product-lightbox,
body.plp-storefront.plp-laptop-compact-scale .plp-modal,
body.plp-storefront.plp-laptop-compact-scale [role="dialog"][aria-modal="true"] {
  zoom: 1 !important;
}


/* --------------------------------------------------------------------------
   v3.6.77 — compact but native laptop density (no CSS zoom)
   --------------------------------------------------------------------------
/*
 * Give 13–14 inch laptops a calmer, slightly zoomed-out composition while
 * keeping every region in normal document flow. This deliberately avoids
 * `zoom`, transformed page wrappers and inverse widths, so the canvas remains
 * centered at browser 100% and Windows display scaling cannot push it sideways.
 */
@media (min-width: 1051px) and (max-width: 1599px) and (pointer: fine) {
  body.plp-storefront {
    --plp-container: 1220px;
    --plp-radius-lg: 24px;
    --plp-radius-md: 16px;
  }

  /* More breathing room at the two sides, without changing page coordinates. */
  body.plp-storefront .plp-container {
    width: min(1220px, calc(100% - clamp(96px, 9vw, 144px))) !important;
    max-width: min(1220px, calc(100% - clamp(96px, 9vw, 144px))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Header and navigation use a denser desktop rhythm. */
  body.plp-storefront .plp-header-main {
    min-height: 78px;
    grid-template-columns: minmax(176px, .86fr) minmax(280px, 1.42fr) auto;
    gap: 22px;
  }

  body.plp-storefront .plp-brand-logo-image {
    width: min(178px, 100%);
    max-width: 178px;
  }

  body.plp-storefront .plp-search input {
    padding: 10px 14px;
    font-size: 12px;
  }

  body.plp-storefront .plp-search button {
    width: 40px;
    font-size: 19px;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed {
    gap: clamp(28px, 3vw, 46px) !important;
  }

  body.plp-storefront .plp-nav-menu,
  body.plp-storefront .plp-nav-menu-managed,
  body.plp-storefront .plp-nav-item,
  body.plp-storefront .plp-nav-menu-managed > li {
    min-height: 42px;
  }

  body.plp-storefront .plp-main-nav .plp-nav-menu > li > a,
  body.plp-storefront .plp-main-nav .plp-nav-section-link,
  body.plp-storefront .plp-main-nav .plp-nav-menu-managed > li > a {
    padding: 12px 0 !important;
    font-size: 12px !important;
  }

  /* Homepage hero: a shorter, narrower card reveals more of the next section. */
  body.plp-storefront .plp-hero {
    padding: 24px 0 30px;
  }

  body.plp-storefront .plp-hero-carousel {
    max-width: 1040px;
  }

  body.plp-storefront .plp-hero-viewport {
    border-radius: 22px;
  }

  body.plp-storefront .plp-hero-slide-image {
    aspect-ratio: 2.72 / 1;
  }

  body.plp-storefront .plp-hero-caption {
    gap: 20px;
    padding: 18px 24px 20px;
  }

  body.plp-storefront .plp-hero-caption h1 {
    margin: 6px 0;
    font-size: clamp(27px, 2.55vw, 38px);
  }

  body.plp-storefront .plp-hero-caption p {
    font-size: 13px;
    line-height: 1.55;
  }

  body.plp-storefront .plp-button {
    min-height: 42px;
    padding: 10px 17px;
    font-size: 12px;
  }

  /* Reduce vertical density throughout ordinary desktop sections. */
  body.plp-storefront .plp-section {
    padding: 72px 0;
  }

  body.plp-storefront .plp-section-heading {
    gap: 24px;
    margin-bottom: 28px;
  }

  body.plp-storefront .plp-section-heading h2,
  body.plp-storefront .plp-custom-banner h2,
  body.plp-storefront .plp-b2b-panel h2,
  body.plp-storefront .plp-inner-hero h1 {
    font-size: clamp(28px, 3.15vw, 43px);
  }

  body.plp-storefront .plp-service-grid > div {
    min-height: 92px;
    gap: 12px;
    padding-top: 15px;
    padding-bottom: 15px;
  }

  body.plp-storefront .plp-service-grid span {
    font-size: 21px;
  }

  body.plp-storefront .plp-category-grid {
    gap: 13px;
  }

  body.plp-storefront .plp-category-card,
  body.plp-storefront .plp-category-carousel .plp-category-card {
    min-height: 202px;
    padding: 18px;
  }

  body.plp-storefront .plp-category-number {
    left: 18px;
    top: 15px;
  }

  body.plp-storefront .plp-category-card strong,
  body.plp-storefront .plp-category-carousel .plp-category-card strong {
    font-size: 17px;
  }

  body.plp-storefront .plp-product-grid {
    gap: 16px;
  }

  body.plp-storefront .plp-custom-banner-grid {
    min-height: 430px;
    gap: 50px;
  }

  body.plp-storefront .plp-custom-illustration {
    min-height: 360px;
    transform: scale(.88);
    transform-origin: center center;
  }

  body.plp-storefront .plp-inner-hero {
    padding: 84px 0 68px;
  }

  body.plp-storefront .plp-inner-hero p {
    margin: 18px 0 23px;
    font-size: 15px;
  }

  /* About and Contact retain their design, but no longer fill the whole screen. */
  body.plp-storefront .plp-about-v2-hero,
  body.plp-storefront .plp-about-page-hero {
    padding-top: 58px;
    padding-bottom: 64px;
  }

  body.plp-storefront .plp-about-v2-hero-copy h1,
  body.plp-storefront .plp-about-page-hero-copy h1 {
    font-size: clamp(38px, 4.25vw, 60px);
  }

  body.plp-storefront .plp-about-v2-section,
  body.plp-storefront .plp-about-page-story {
    padding-top: 76px;
    padding-bottom: 76px;
  }

  body.plp-storefront .plp-contact-hero {
    padding-top: 58px;
    padding-bottom: 48px;
  }

  body.plp-storefront .plp-contact-section {
    padding-top: 42px;
    padding-bottom: 76px;
  }

  body.plp-storefront .plp-contact-card {
    min-height: 128px;
    padding: 21px;
  }

  /* Product pages also use the same calm laptop density. */
  body.plp-storefront .plp-single-product {
    padding-top: 28px;
    padding-bottom: 66px;
  }

  body.plp-storefront .plp-single-product-grid {
    gap: clamp(34px, 4.2vw, 62px);
  }

  /* Footer is compact vertically while all payment marks remain untouched. */
  body.plp-storefront .plp-footer {
    padding-top: 48px;
  }

  body.plp-storefront .plp-footer-grid {
    gap: 28px;
  }

  body.plp-storefront .plp-footer-bottom {
    margin-top: 36px;
  }
}


/* --------------------------------------------------------------------------
   v3.6.80 — Compact policy accordion typography
   Keep the policy section readable without letting it dominate the page.
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-trust-block--policies .plp-trust-block-heading h3 {
  font-size: clamp(26px, 2.15vw, 34px) !important;
  line-height: 1.08;
}

body.plp-storefront .plp-trust-block--policies .plp-home-policy-details > summary strong {
  font-size: clamp(21px, 1.75vw, 27px) !important;
  line-height: 1.12;
}

body.plp-storefront .plp-trust-block--policies .plp-home-policy-details > summary small {
  font-size: clamp(12px, .95vw, 14px) !important;
  line-height: 1.45;
}

@media (max-width: 720px) {
  body.plp-storefront .plp-trust-block--policies .plp-trust-block-heading h3 {
    font-size: 26px !important;
  }

  body.plp-storefront .plp-trust-block--policies .plp-home-policy-details > summary strong {
    font-size: 21px !important;
  }

  body.plp-storefront .plp-trust-block--policies .plp-home-policy-details > summary small {
    font-size: 12px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.81 — laptop header-search centering + contained footer payment logos
   -------------------------------------------------------------------------- */
@media (min-width: 1051px) and (max-width: 1599px) and (pointer: fine) {
  body.plp-storefront .plp-header-main:not(.plp-header-main--without-search) {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 650px) minmax(0, 1fr);
    column-gap: clamp(18px, 2vw, 34px);
    row-gap: 0;
    align-items: center;
  }

  body.plp-storefront .plp-header-main:not(.plp-header-main--without-search) > .plp-brand {
    justify-self: start;
    min-width: 0;
  }

  body.plp-storefront .plp-header-main:not(.plp-header-main--without-search) > .plp-search {
    width: min(100%, 650px);
    justify-self: center;
  }

  body.plp-storefront .plp-header-main:not(.plp-header-main--without-search) > .plp-header-actions {
    justify-self: end;
    min-width: 0;
  }
}

body.plp-storefront .plp-footer-payment-wrap {
  max-width: 100%;
  overflow: hidden;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 10px 12px;
  max-width: 100%;
  overflow: hidden;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-item {
  flex: 0 0 auto;
  max-width: 100%;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
  height: 22px;
  max-height: 22px;
  max-width: 100%;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay { width: 92px; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay { width: 78px; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard { width: 40px; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa { width: 58px; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat { width: 78px; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian { width: 56px; }


/* --------------------------------------------------------------------------
   v3.6.82 — aligned product width, richer variant selector, and stacked pricing
   -------------------------------------------------------------------------- */
body.single-gili_product .plp-single-product > .plp-container,
body.single-gili_product .plp-single-product > .plp-container.gsvb-product-sections-root {
  width: min(var(--plp-container), calc(100% - 48px)) !important;
  max-width: min(var(--plp-container), calc(100% - 48px)) !important;
  margin-inline: auto;
}

@media (min-width: 901px) {
  body.single-gili_product .plp-single-product-grid {
    grid-template-columns: minmax(300px, 460px) minmax(0, 760px);
    gap: clamp(34px, 4vw, 72px);
    justify-content: space-between;
  }
}

body.single-gili_product .plp-product-summary--order-layout,
body.single-gili_product .plp-product-summary--order-layout > * {
  max-width: 100%;
}

body.single-gili_product .plp-product-variant-section {
  display: block;
  margin: 16px 0 18px;
}

body.single-gili_product .plp-product-variant-section > summary {
  align-items: start;
  gap: 12px;
}

body.single-gili_product .plp-product-variant-section > summary > span {
  white-space: nowrap;
}

body.single-gili_product .plp-product-variant-section > summary > strong {
  display: block;
  padding-top: 1px;
  line-height: 1.38;
}

body.single-gili_product .plp-product-variant-panel {
  padding: 0 16px 16px;
}

body.single-gili_product .plp-product-variant-categories {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0 0 12px;
  overflow-x: auto;
  border: 1px solid #d8c1de;
  border-radius: 8px;
  background: #fff;
}

body.single-gili_product .plp-product-variant-categories::-webkit-scrollbar {
  height: 6px;
}

body.single-gili_product .plp-product-variant-category {
  appearance: none;
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-right: 1px solid #d8c1de;
  background: #fff;
  color: #2b0934;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

body.single-gili_product .plp-product-variant-category:last-child {
  border-right: 0;
}

body.single-gili_product .plp-product-variant-category.is-active {
  background: #fff8f2;
  color: #ff4f00;
}

body.single-gili_product .plp-product-variant-group-panel[hidden] {
  display: none !important;
}

body.single-gili_product .plp-product-variant-list {
  padding: 0;
}

body.single-gili_product .plp-product-summary--order-layout .plp-product-variant-option {
  min-height: 58px;
  padding: 12px 14px;
  font-size: 14px !important;
  line-height: 1.42;
}

body.single-gili_product .plp-product-two-tier-pricing {
  margin: 16px 0;
}

body.single-gili_product .plp-product-two-tier-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  min-height: 92px;
  padding: 16px 18px;
}

body.single-gili_product .plp-product-two-tier-card > strong {
  order: 1;
  font-size: clamp(25px, 2vw, 34px) !important;
  line-height: 1.05;
  font-weight: 800;
  color: #111;
}

body.single-gili_product .plp-product-two-tier-card:first-child > strong {
  color: #ff4f00;
}

body.single-gili_product .plp-product-two-tier-card > span {
  order: 2;
  font-size: 13px !important;
  line-height: 1.35;
  font-weight: 600;
  color: #6f5a77;
}

body.single-gili_product .plp-product-summary-payments {
  display: inline-block;
  width: auto;
  max-width: 100%;
}

body.single-gili_product .plp-product-summary-payments .plp-payment-logo-row {
  flex-wrap: wrap;
  width: auto;
  max-width: 100%;
}

body.single-gili_product .plp-product-policy-links {
  display: inline-flex;
  width: auto;
  max-width: 100%;
}

@media (max-width: 900px) {
  body.single-gili_product .plp-product-variant-panel {
    padding: 0 13px 13px;
  }

  body.single-gili_product .plp-product-variant-category {
    min-height: 38px;
    padding: 0 14px;
    font-size: 14px;
  }

  body.single-gili_product .plp-product-summary--order-layout .plp-product-variant-option {
    min-height: 54px;
    padding: 10px 12px;
    font-size: 13px !important;
  }

  body.single-gili_product .plp-product-two-tier-card {
    min-height: 84px;
  }
}

@media (max-width: 700px) {
  body.single-gili_product .plp-single-product > .plp-container,
  body.single-gili_product .plp-single-product > .plp-container.gsvb-product-sections-root {
    width: min(var(--plp-container), calc(100% - 28px)) !important;
    max-width: min(var(--plp-container), calc(100% - 28px)) !important;
  }

  body.single-gili_product .plp-product-variant-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body.single-gili_product .plp-product-two-tier-pricing {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.single-gili_product .plp-product-two-tier-card + .plp-product-two-tier-card {
    border-top: 0;
    border-left: 1px solid #e5d9e7;
  }

  body.single-gili_product .plp-product-two-tier-card {
    min-height: 80px;
    padding: 12px 13px;
  }

  body.single-gili_product .plp-product-two-tier-card > strong {
    font-size: 22px !important;
  }

  body.single-gili_product .plp-product-two-tier-card > span {
    font-size: 12px !important;
  }

  body.single-gili_product .plp-product-summary-payments,
  body.single-gili_product .plp-product-policy-links {
    display: block;
    width: 100%;
  }
}


/* --------------------------------------------------------------------------
   v3.6.83 — footer typography reduced by four pixels
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer p,
body.plp-storefront .plp-footer a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-note,
body.plp-storefront .plp-footer .plp-footer-bottom,
body.plp-storefront .plp-footer .plp-footer-bottom span {
  font-size: max(9px, calc(var(--plp-body-size) - 4px)) !important;
}

body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a {
  font-size: max(10px, calc(var(--plp-h2-size) - 4px)) !important;
}

body.plp-storefront .plp-footer p,
body.plp-storefront .plp-footer a:not(.plp-brand) {
  line-height: 1.55 !important;
}

@media (max-width: 720px) {
  body.plp-storefront .plp-footer p,
  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-note,
  body.plp-storefront .plp-footer .plp-footer-bottom,
  body.plp-storefront .plp-footer .plp-footer-bottom span {
    font-size: max(9px, calc(var(--plp-mobile-body-size) - 4px)) !important;
  }

  body.plp-storefront .plp-footer h2,
  body.plp-storefront .plp-footer h2 a {
    font-size: max(10px, calc(var(--plp-mobile-h2-size) - 4px)) !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.84 — fixed compact footer typography
   Footer text no longer inherits page-level H2/body variables.
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a {
  font-size: 16px !important;
  line-height: 1.25 !important;
  margin-bottom: 12px !important;
}

body.plp-storefront .plp-footer p,
body.plp-storefront .plp-footer a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-note {
  font-size: 12px !important;
  line-height: 1.48 !important;
}

body.plp-storefront .plp-footer a:not(.plp-brand) {
  margin-top: 7px !important;
  margin-bottom: 7px !important;
}

body.plp-storefront .plp-footer .plp-footer-bottom,
body.plp-storefront .plp-footer .plp-footer-bottom span {
  font-size: 10px !important;
  line-height: 1.4 !important;
}

@media (min-width: 1051px) and (max-width: 1599px) and (pointer: fine) {
  body.plp-storefront .plp-footer h2,
  body.plp-storefront .plp-footer h2 a {
    font-size: 15px !important;
  }

  body.plp-storefront .plp-footer p,
  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-note {
    font-size: 11px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-bottom,
  body.plp-storefront .plp-footer .plp-footer-bottom span {
    font-size: 9px !important;
  }
}

@media (max-width: 720px) {
  body.plp-storefront .plp-footer h2,
  body.plp-storefront .plp-footer h2 a {
    font-size: 15px !important;
  }

  body.plp-storefront .plp-footer p,
  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-note {
    font-size: 11px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-bottom,
  body.plp-storefront .plp-footer .plp-footer-bottom span {
    font-size: 9px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.85 — footer column titles fixed at 11px
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a {
  font-size: 11px !important;
  line-height: 1.35 !important;
}

/* v2.1.2.22.63 — Footer typography truly compact: body 8px, column headings 11px.
   Added at the very end to override earlier footer size rules. */
.plp-footer p,
.plp-footer li,
.plp-footer a:not(.plp-brand),
.plp-footer .plp-footer-note,
.plp-footer .plp-footer-bottom,
.plp-footer .plp-footer-intro p,
.plp-footer .plp-footer-index-column a,
.plp-footer .plp-footer-contact-column a,
.plp-footer .plp-footer-contact-column,
.plp-footer .plp-footer-payment-wrap,
.plp-footer .plp-footer-payment-wrap span {
  font-family: var(--plp-font-sans) !important;
  font-size: 8px !important;
  line-height: 1.55 !important;
}

.plp-footer h2,
.plp-footer h2 a,
.plp-footer h2 a:not(.plp-brand) {
  font-family: var(--plp-font-sans) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

.plp-footer h2 {
  margin: 0 0 8px !important;
}

/* --------------------------------------------------------------------------
   v3.6.87 — compact footer columns, contact spacing and payment marks
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer .plp-footer-grid {
  grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr));
  column-gap: clamp(16px, 2vw, 26px) !important;
  row-gap: 18px !important;
}

body.plp-storefront .plp-footer .plp-footer-contact-column {
  min-width: 0;
}

body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) {
  display: block;
  margin: 0 0 4px !important;
  padding: 0 !important;
  font-size: 8px !important;
  line-height: 1.3 !important;
  overflow-wrap: anywhere;
}

body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) span {
  font-size: 8px !important;
  line-height: inherit !important;
}

body.plp-storefront .plp-footer-payment-wrap {
  margin-top: 9px !important;
  width: 100%;
  max-width: 100%;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-row {
  gap: 6px 8px !important;
  max-width: 100%;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa,
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
  width: auto !important;
  height: 16px !important;
  max-height: 16px !important;
  max-width: 72px !important;
  object-fit: contain;
}

body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay { width: 68px !important; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay { width: 60px !important; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard { width: 31px !important; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa { width: 45px !important; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat { width: 60px !important; }
body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian { width: 44px !important; }

@media (max-width: 920px) {
  body.plp-storefront .plp-footer .plp-footer-grid {
    grid-template-columns: 1fr 1fr;
    column-gap: 18px !important;
    row-gap: 20px !important;
  }
}

@media (max-width: 560px) {
  body.plp-storefront .plp-footer .plp-footer-grid {
    grid-template-columns: 1fr;
    gap: 18px !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px 8px !important;
    justify-items: start;
  }
}

/* --------------------------------------------------------------------------
   v3.6.88 — extra-compact footer for 13–14 inch laptop viewports
   This only targets desktop-class pointer devices between 1051px and 1599px.
   Larger desktop screens keep the v3.6.87 footer dimensions.
   -------------------------------------------------------------------------- */
@media (min-width: 1051px) and (max-width: 1599px) and (pointer: fine) {
  body.plp-storefront .plp-footer {
    padding-top: 28px !important;
    padding-bottom: 12px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-grid {
    grid-template-columns: 1.16fr .92fr .92fr 1.18fr !important;
    column-gap: clamp(12px, 1.4vw, 20px) !important;
    row-gap: 12px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-brand .plp-brand-logo-image {
    width: min(122px, 100%) !important;
    max-width: 122px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-intro > p {
    max-width: 275px !important;
    margin-top: 10px !important;
    font-size: 7px !important;
    line-height: 1.38 !important;
  }

  body.plp-storefront .plp-footer h2,
  body.plp-storefront .plp-footer h2 a,
  body.plp-storefront .plp-footer h2 a:not(.plp-brand) {
    margin: 0 0 5px !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
  }

  body.plp-storefront .plp-footer p,
  body.plp-storefront .plp-footer li,
  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-note,
  body.plp-storefront .plp-footer .plp-footer-index-column a,
  body.plp-storefront .plp-footer .plp-footer-contact-column,
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) span {
    font-size: 7px !important;
    line-height: 1.28 !important;
  }

  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-index-column > a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) {
    margin: 0 0 3px !important;
    padding: 0 !important;
  }

  body.plp-storefront .plp-footer-payment-wrap {
    margin-top: 6px !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-row {
    gap: 4px 6px !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
    height: 12px !important;
    max-height: 12px !important;
    max-width: 56px !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay { width: 52px !important; }
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay { width: 46px !important; }
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard { width: 25px !important; }
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa { width: 36px !important; }
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat { width: 46px !important; }
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian { width: 35px !important; }

  body.plp-storefront .plp-footer .plp-footer-bottom {
    margin-top: 16px !important;
    padding-top: 8px !important;
    gap: 8px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-bottom,
  body.plp-storefront .plp-footer .plp-footer-bottom span {
    font-size: 6px !important;
    line-height: 1.3 !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.89 — detect high-resolution 13–14 inch laptops and keep all payment
   brands fully visible. The previous laptop rule stopped at 1599px, while
   common 13.6-inch browser viewports can be around 1600–1799 CSS pixels.
   -------------------------------------------------------------------------- */
@media (min-width: 1051px) and (max-width: 1799px) and (max-height: 1100px) and (pointer: fine) {
  body.plp-storefront .plp-footer {
    padding-top: 22px !important;
    padding-bottom: 10px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-grid {
    grid-template-columns: 1.08fr .9fr .9fr 1.2fr !important;
    column-gap: clamp(10px, 1.15vw, 17px) !important;
    row-gap: 10px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-brand .plp-brand-logo-image {
    width: min(108px, 100%) !important;
    max-width: 108px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-intro > p,
  body.plp-storefront .plp-footer p,
  body.plp-storefront .plp-footer li,
  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-note,
  body.plp-storefront .plp-footer .plp-footer-index-column a,
  body.plp-storefront .plp-footer .plp-footer-contact-column,
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) span {
    font-size: 7px !important;
    line-height: 1.22 !important;
  }

  body.plp-storefront .plp-footer .plp-footer-intro > p {
    max-width: 245px !important;
    margin-top: 8px !important;
  }

  body.plp-storefront .plp-footer h2,
  body.plp-storefront .plp-footer h2 a,
  body.plp-storefront .plp-footer h2 a:not(.plp-brand) {
    margin: 0 0 4px !important;
    font-size: 9px !important;
    line-height: 1.15 !important;
  }

  body.plp-storefront .plp-footer a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-index-column > a:not(.plp-brand),
  body.plp-storefront .plp-footer .plp-footer-contact-column > a:not(.plp-brand) {
    margin: 0 0 2px !important;
    padding: 0 !important;
  }

  body.plp-storefront .plp-footer-payment-wrap {
    margin-top: 5px !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-row {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, auto)) !important;
    justify-content: start !important;
    align-items: center !important;
    gap: 3px 5px !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-logo-item {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--alipay,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--wechat,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--unionpay,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--mastercard,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--visa,
  body.plp-storefront .plp-footer-payment-wrap .plp-payment-brand-logo--lianlian {
    width: auto !important;
    height: 11px !important;
    max-width: 48px !important;
    max-height: 11px !important;
    object-fit: contain !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-footer .plp-footer-bottom {
    margin-top: 12px !important;
    padding-top: 7px !important;
    gap: 7px !important;
  }

  body.plp-storefront .plp-footer .plp-footer-bottom,
  body.plp-storefront .plp-footer .plp-footer-bottom span {
    font-size: 6px !important;
    line-height: 1.2 !important;
  }

  /* Trust-section payment brands: fit all six into one complete row and leave
     clearance for the floating contact dock at the right edge. */
  body.plp-storefront .plp-trust-block--payments .plp-payment-logo-row {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    align-items: center !important;
    justify-items: center !important;
    width: calc(100% - 76px) !important;
    max-width: calc(100% - 76px) !important;
    gap: clamp(12px, 1.6vw, 24px) !important;
    padding: 4px 0 10px !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-trust-block--payments .plp-payment-logo-item {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--alipay,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--wechat,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--unionpay,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--mastercard,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--visa,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--lianlian {
    display: block !important;
    width: auto !important;
    height: 38px !important;
    max-width: 100% !important;
    max-height: 38px !important;
    object-fit: contain !important;
    overflow: visible !important;
  }

  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--mastercard,
  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--visa {
    height: 34px !important;
    max-height: 34px !important;
  }

  body.plp-storefront .plp-trust-block--payments .plp-payment-brand-logo--lianlian {
    height: 30px !important;
    max-height: 30px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.90 — Global typography is disabled and isolated from the footer.
   -------------------------------------------------------------------------- */
:root {
  --plp-global-body-size: 15px !important;
  --plp-global-h1-size: 40px !important;
  --plp-global-h2-size: 25px !important;
}

/* Footer sizes are intentionally independent of global/page typography. */
body.plp-storefront .plp-footer {
  --plp-body-size: 7px !important;
  --plp-h1-size: 9px !important;
  --plp-h2-size: 9px !important;
  --plp-copy-size: 7px !important;
  --plp-label-size: 7px !important;
}

body.plp-storefront .plp-footer p,
body.plp-storefront .plp-footer li,
body.plp-storefront .plp-footer a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-note,
body.plp-storefront .plp-footer .plp-footer-index-column a,
body.plp-storefront .plp-footer .plp-footer-contact-column,
body.plp-storefront .plp-footer .plp-footer-contact-column span {
  font-size: 7px !important;
  line-height: 1.25 !important;
}

body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a,
body.plp-storefront .plp-footer h2 a:not(.plp-brand) {
  font-size: 9px !important;
  line-height: 1.2 !important;
}

body.plp-storefront .plp-footer .plp-footer-bottom,
body.plp-storefront .plp-footer .plp-footer-bottom span {
  font-size: 6px !important;
  line-height: 1.2 !important;
}


/* v3.6.91 — Fixed global heading scale requested by GILIPET. */
:root {
  --plp-global-h1-size: 40px !important;
  --plp-global-h2-size: 25px !important;
}


/* --------------------------------------------------------------------------
   v3.6.92 — Independent footer typography requested by GILIPET.
   -------------------------------------------------------------------------- */
body.plp-storefront .plp-footer {
  --plp-body-size: 12px !important;
  --plp-copy-size: 12px !important;
  --plp-label-size: 12px !important;
  --plp-h1-size: 13px !important;
  --plp-h2-size: 13px !important;
}

body.plp-storefront .plp-footer p,
body.plp-storefront .plp-footer li,
body.plp-storefront .plp-footer a:not(.plp-brand),
body.plp-storefront .plp-footer .plp-footer-note,
body.plp-storefront .plp-footer .plp-footer-intro p,
body.plp-storefront .plp-footer .plp-footer-index-column a,
body.plp-storefront .plp-footer .plp-footer-contact-column,
body.plp-storefront .plp-footer .plp-footer-contact-column a,
body.plp-storefront .plp-footer .plp-footer-contact-column span {
  font-size: 12px !important;
  line-height: 1.5 !important;
}

body.plp-storefront .plp-footer h2,
body.plp-storefront .plp-footer h2 a,
body.plp-storefront .plp-footer h2 a:not(.plp-brand) {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

body.plp-storefront .plp-footer .plp-footer-bottom,
body.plp-storefront .plp-footer .plp-footer-bottom span,
body.plp-storefront .plp-footer .plp-footer-bottom p,
body.plp-storefront .plp-footer .plp-footer-bottom a {
  font-size: 10px !important;
  line-height: 1.35 !important;
}


/* --------------------------------------------------------------------------
   v3.6.93 — simplified product-order CTA
   Payment marks and policy quick links were removed from the product summary.
   -------------------------------------------------------------------------- */
body.single-gili_product .plp-product-contact-order-box--compact {
  margin: 15px 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dfcce3;
  border-radius: 14px;
  background: #f3e7f5;
}

body.single-gili_product .plp-product-order-now-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 64px;
  padding: 15px 20px;
  color: #2b0934;
  text-decoration: none;
}

body.single-gili_product .plp-product-order-now-cta strong,
body.single-gili_product .plp-product-order-now-cta span {
  font-family: var(--plp-font-sans) !important;
  line-height: 1.35;
}

body.single-gili_product .plp-product-order-now-cta strong {
  font-size: 18px !important;
  font-weight: 800;
}

body.single-gili_product .plp-product-order-now-cta span {
  font-size: 14px !important;
  font-weight: 750;
  white-space: nowrap;
}

body.single-gili_product .plp-product-order-now-cta:hover,
body.single-gili_product .plp-product-order-now-cta:focus-visible {
  background: #ead8ee;
  color: #2b0934;
}

@media (max-width: 700px) {
  body.single-gili_product .plp-product-order-now-cta {
    min-height: 58px;
    padding: 13px 15px;
  }

  body.single-gili_product .plp-product-order-now-cta strong {
    font-size: 16px !important;
  }

  body.single-gili_product .plp-product-order-now-cta span {
    font-size: 13px !important;
  }
}

/* --------------------------------------------------------------------------
   v3.6.94 — force the product gradient-pricing table frame to remain visible
   -------------------------------------------------------------------------- */
body.single-gili_product .plp-product-two-tier-pricing,
body.single-product .plp-product-two-tier-pricing,
.plp-product-summary--order-layout .plp-product-two-tier-pricing {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 16px 0 !important;
  overflow: hidden !important;
  border: 2px solid #d8b9df !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 2px 10px rgba(43, 9, 52, .05) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.single-gili_product .plp-product-two-tier-card,
body.single-product .plp-product-two-tier-card,
.plp-product-summary--order-layout .plp-product-two-tier-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 92px !important;
  padding: 16px 18px !important;
  background: #fff !important;
}

body.single-gili_product .plp-product-two-tier-card + .plp-product-two-tier-card,
body.single-product .plp-product-two-tier-card + .plp-product-two-tier-card,
.plp-product-summary--order-layout .plp-product-two-tier-card + .plp-product-two-tier-card {
  border-left: 2px solid #e3d2e7 !important;
}

@media (max-width: 700px) {
  body.single-gili_product .plp-product-two-tier-pricing,
  body.single-product .plp-product-two-tier-pricing,
  .plp-product-summary--order-layout .plp-product-two-tier-pricing {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.single-gili_product .plp-product-two-tier-card,
  body.single-product .plp-product-two-tier-card,
  .plp-product-summary--order-layout .plp-product-two-tier-card {
    min-height: 80px !important;
    padding: 12px 13px !important;
  }
}


/* --------------------------------------------------------------------------
   v3.6.95 — transparent gradient-pricing layout with no table frame
   -------------------------------------------------------------------------- */
body.single-gili_product .plp-product-two-tier-pricing,
body.single-product .plp-product-two-tier-pricing,
.plp-product-summary--order-layout .plp-product-two-tier-pricing {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 16px 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-gili_product .plp-product-two-tier-card,
body.single-product .plp-product-two-tier-card,
.plp-product-summary--order-layout .plp-product-two-tier-card {
  min-width: 0 !important;
  min-height: auto !important;
  padding: 8px 18px 8px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-gili_product .plp-product-two-tier-card + .plp-product-two-tier-card,
body.single-product .plp-product-two-tier-card + .plp-product-two-tier-card,
.plp-product-summary--order-layout .plp-product-two-tier-card + .plp-product-two-tier-card {
  border: 0 !important;
  padding-left: 18px !important;
}

@media (max-width: 700px) {
  body.single-gili_product .plp-product-two-tier-card,
  body.single-product .plp-product-two-tier-card,
  .plp-product-summary--order-layout .plp-product-two-tier-card {
    padding: 7px 10px 7px 0 !important;
  }

  body.single-gili_product .plp-product-two-tier-card + .plp-product-two-tier-card,
  body.single-product .plp-product-two-tier-card + .plp-product-two-tier-card,
  .plp-product-summary--order-layout .plp-product-two-tier-card + .plp-product-two-tier-card {
    padding-left: 10px !important;
  }
}
