/*
Theme Name: DYH Hair Prelaunch
Theme URI: https://dyhhair.com/
Author: DYH Hair
Description: DYH Hair storefront theme.
Version: 1.4.38
Text Domain: dyh-hair-prelaunch
*/

/* The Preview CSS files loaded before this stylesheet are the visual source
   of truth.  This file contains only real WooCommerce wiring, forms and the
   narrowly scoped mobile/hero behaviour that Preview does not provide. */
[hidden] { display:none !important; }

.dyh-honeypot { 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; white-space:nowrap !important; border:0 !important; }
.dyh-form-status { margin:0 !important; padding:10px 12px; font-size:11px !important; }
.dyh-form-status.is-success { border-left:3px solid #718264; background:#eef1e9; color:#31422d; }
.dyh-form-status.is-error { border-left:3px solid #a75343; background:#f7ece8; color:#7c3528; }
.dyh-contact-style { margin:0 !important; padding:9px 11px; background:#f3e8de; color:#614733 !important; font-size:11px !important; }

/* Normal Bag wording and count, independent from the temporary Checkout gate. */
.dyh-launch-bag-link { display:inline-flex; align-items:center; gap:6px; color:#211c1a; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.dyh-launch-bag-link b { display:grid; width:19px; height:19px; place-items:center; border-radius:50%; background:#211c1a; color:#fff; font-size:9px; letter-spacing:0; }
.dyh-mobile-menu { display:none; }
.dyh-mobile-bag { display:none; }
.dyh-launch-bag-link.is-updated b, .dyh-mobile-bag.is-updated b { animation:dyhBagPulse .46s ease both; }
@keyframes dyhBagPulse { 0% { transform:scale(1); } 42% { transform:scale(1.34); background:#bf7650; } 100% { transform:scale(1); } }
.dyh-action-feedback { position:fixed; z-index:1000; left:50%; bottom:24px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; width:min(500px,calc(100vw - 36px)); padding:13px 14px 13px 17px; border:1px solid #2b241f; background:#211c1a; color:#fffdfa; box-shadow:0 18px 35px rgba(33,28,26,.28); font:600 12px/1.4 "DM Sans",Arial,sans-serif; opacity:0; pointer-events:none; transform:translate(-50%,16px); transition:opacity .18s ease,transform .18s ease; }
.dyh-action-feedback[data-tone="error"] { border-color:#8f3f32; background:#7c3528; }
.dyh-action-feedback.is-visible { opacity:1; pointer-events:auto; transform:translate(-50%,0); }
.dyh-action-feedback__action { min-height:34px; padding:9px 12px; border:1px solid #f2c49e; background:#f2c49e; color:#211c1a; font-size:10px; font-weight:700; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; white-space:nowrap; }
[data-dyh-add-launch-bag].is-confirmed { border-color:#718264 !important; background:#718264 !important; color:#fff !important; transform:translateY(-1px); }
[data-dyh-add-launch-bag].is-adding, [data-dyh-add-launch-bag].dyh-ui-bag-pending { position:relative; cursor:progress; }
[data-dyh-add-launch-bag].is-adding::after, [data-dyh-add-launch-bag].dyh-ui-bag-pending::after { display:inline-block; width:10px; height:10px; margin-left:8px; border:1px solid currentColor; border-top-color:transparent; border-radius:50%; content:""; animation:dyhBagSpin .7s linear infinite; }
@keyframes dyhBagSpin { to { transform:rotate(360deg); } }

/* The only temporary launch message: it is removable without touching the
   surrounding Preview sections. */
.dyh-countdown { display:flex; flex-wrap:wrap; gap:0; margin-top:22px; border-top:1px solid #ded7d1; border-bottom:1px solid #ded7d1; }
.dyh-countdown span { display:grid; gap:3px; min-width:67px; padding:10px 13px 10px 0; color:#756b66; font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.dyh-countdown b { color:#211c1a; font:500 24px/1 "Playfair Display",Georgia,serif; letter-spacing:0; }
.dyh-launch-panel { display:grid; grid-template-columns:.55fr 1.1fr .7fr; gap:clamp(22px,4vw,60px); align-items:end; padding:clamp(38px,5vw,70px) clamp(22px,6vw,96px); border-top:1px solid #ded7d1; border-bottom:1px solid #ded7d1; background:#f5eee8; }
.dyh-launch-panel .eyebrow { align-self:start; margin-top:8px; }
.dyh-launch-panel h2 { font-size:clamp(34px,3.4vw,54px); }
.dyh-launch-panel h2 em { color:#c48555; }
.dyh-launch-panel p:not(.eyebrow) { max-width:470px; margin:17px 0 0; color:#756b66; }
.dyh-launch-panel-actions { display:grid; gap:9px; align-self:center; }
.button.light { background:transparent; color:#211c1a; }
.button.light:hover { border-color:#c48555; background:#c48555; color:#fff; }

/* Shop all keeps Preview's 4-column desktop / 2-column mobile contract, with
   the additional breathing room requested for real product photography. */
.catalog { padding-right:clamp(28px,7vw,120px); padding-left:clamp(28px,7vw,120px); }
.catalogStorefront { gap:clamp(34px,4vw,62px); }
.catalogGrid { gap:clamp(20px,2.1vw,34px); }
.catalogGrid[aria-busy="true"] { opacity:.62; transition:opacity .16s ease; }
.dyh-card-action-mobile { display:none; }
.homeCollectionPreview { margin-top:30px; }
.homeCollectionPreviewHead { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 18px; color:#756b66; font-size:12px; }
.homeCollectionPreviewHead p { margin:0; }
.homeCollectionGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(20px,2.1vw,34px); }
.homeCollectionButton { display:table; min-width:210px; margin:32px auto 0; text-align:center; }

/* Figure-three treatment: only the selected product image on Hero's right
   receives the elevated display.  The Preview copy, pins and section layout
   retain their original positions. */
@media (min-width:781px) {
  .hero { position:relative; display:grid; height:clamp(480px,37vw,540px); min-height:480px; grid-template-columns:minmax(360px,.96fr) 1.04fr; background:#f7f3ec; }
  .heroCopy { position:relative; z-index:1; width:auto; height:auto; padding:clamp(30px,4vw,50px) clamp(28px,4.5vw,62px); }
  .heroImage { position:relative; inset:auto; display:flex; min-height:0; align-items:center; justify-content:center; padding:22px clamp(24px,5vw,82px) 22px 24px; overflow:visible; background:#f7f3ec; }
  .heroGlass { position:relative; width:min(100%,530px); height:auto; min-height:0; aspect-ratio:1; isolation:isolate; overflow:hidden; border:1px solid rgba(105,78,61,.16); border-radius:30px 9px 30px 9px; background:#fff; box-shadow:0 26px 45px rgba(51,36,29,.20),14px 16px 0 rgba(211,184,160,.36); transform:none; transform-origin:right center; }
  [data-dyh-hero-frame].dyh-hero-enhanced .heroGlass { transform:perspective(1200px) rotateY(-3.5deg) rotateX(1deg) translateZ(16px); }
  .heroGlass::before { position:absolute; z-index:1; inset:0; pointer-events:none; content:""; border:1px solid rgba(255,255,255,.82); border-radius:inherit; background:linear-gradient(125deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.08) 21%,transparent 42%,rgba(255,255,255,.14) 100%); }
  .heroGlass > img { width:100%; height:100%; min-height:0; display:block; object-fit:contain; object-position:center top; border:0; border-radius:inherit; background:#fff; box-shadow:none; }
  .hero .points { margin-top:18px; }
  .heroChoices { z-index:2; right:auto; bottom:18px; left:clamp(28px,4.5vw,62px); width:min(530px,43vw); grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .heroChoices button { min-height:0; padding:6px; border:1px solid #d4c7bc; background:rgba(252,250,247,.92); color:#211c1a; box-shadow:0 8px 18px rgba(52,35,24,.06); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease; }
  .heroChoices button.active { border-color:#7d5c49; background:#fff; box-shadow:0 12px 22px rgba(52,35,24,.12); transform:translateY(-2px); }
  .heroChoices img { width:34px; height:38px; object-position:top; }
  .heroChoices span { color:#211c1a; font-size:9px; line-height:1.16; }
  .heroChoices b { color:#a96d48; }
}

/* Every homepage selection uses the same exact-SKU image composition:
   a complete main image at left and two real gallery details at right. */
.dyh-media-stage { min-width:0; padding:0; background:transparent; color:#211c1a; }
.dyh-product-media-frame { display:grid; grid-template-columns:minmax(0,1.13fr) minmax(156px,.62fr); gap:10px; min-height:430px; padding:0; border:0; background:transparent; isolation:isolate; }
.dyh-media-main, .dyh-media-detail-stack figure { position:relative; min-width:0; margin:0; overflow:hidden; border:1px solid rgba(105,78,61,.15); background:#f5eee8; box-shadow:0 18px 38px rgba(52,35,24,.12); }
.dyh-media-main { min-height:430px; }
.dyh-media-detail-stack { display:grid; grid-template-rows:repeat(2,minmax(0,1fr)); gap:10px; min-height:430px; }
.dyh-media-main > img, .dyh-media-detail-stack img { display:block; width:100%; height:100%; min-height:0; object-fit:cover; object-position:center top; background:#f5eee8; transition:opacity .18s ease,transform .22s ease; }
.dyh-media-main > img { position:absolute; inset:0; }
.dyh-media-detail-stack figure:hover img { transform:scale(1.025); }
.dyh-media-details-link { position:absolute; z-index:2; bottom:14px; left:14px; display:inline-flex; min-height:34px; align-items:center; padding:0 11px; border:1px solid rgba(255,255,255,.7); background:rgba(33,28,26,.8); color:#fffdfa; font:700 10px/1 "DM Sans",Arial,sans-serif; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; }
.dyh-media-details-link:hover, .dyh-media-details-link:focus-visible { background:#fffdfa; color:#211c1a; }

/* Real related-product blocks supplied by WooCommerce records. */
.dyh-recommendations { display:grid; grid-template-columns:minmax(220px,.34fr) 1fr; gap:clamp(34px,6vw,96px); padding:clamp(68px,10vw,132px) clamp(28px,7vw,120px); background:linear-gradient(120deg,#f1e5db 0%,#fbf8f4 48%,#f5eee8 100%); }
.dyh-recommendations h2 { margin:8px 0 14px; font-size:clamp(40px,4.5vw,66px); line-height:.94; }
.dyh-recommendations > div > p:not(.eyebrow) { max-width:285px; color:#756b66; }
.dyh-recommendation-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,1.7vw,28px); align-items:start; }
.dyh-recommendation-grid article { min-width:0; padding:9px; border:1px solid rgba(126,99,81,.16); background:rgba(255,253,250,.9); box-shadow:0 14px 30px rgba(73,52,40,.07); transition:transform .2s ease,box-shadow .2s ease; }
.dyh-recommendation-grid article:hover { box-shadow:0 20px 38px rgba(73,52,40,.15); transform:translateY(-5px); }
.dyh-recommendation-grid a { color:inherit; }
.dyh-recommendation-grid img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top; background:#eee8e2; }
.dyh-recommendation-grid h3 { min-height:42px; margin:11px 0 0; font-size:13px; line-height:1.28; }
.dyh-recommendation-grid article > div { display:flex; justify-content:space-between; gap:8px; align-items:center; margin-top:10px; font-size:13px; }
.dyh-recommendation-grid button { padding:8px 10px; border:1px solid #211c1a; background:#211c1a; color:#fffdfa; font:700 10px/1 "DM Sans",Arial,sans-serif; cursor:pointer; }
.cartRecommendations { display:grid; grid-template-columns:minmax(220px,.44fr) 1fr; gap:clamp(28px,5vw,70px); padding:clamp(52px,8vw,110px); background:#f5eee8; }
.cartRecommendations h2 { margin:8px 0 14px; font-size:clamp(36px,4.2vw,62px); line-height:.95; }
.cartRecommendations > div > p:not(.eyebrow) { max-width:290px; color:#756b66; }
.cartRecommendationGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.cartRecommendationGrid article { display:grid; gap:10px; min-width:0; }
.cartRecommendationGrid a { color:inherit; }
.cartRecommendationGrid img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top; background:#e7ddd6; }
.cartRecommendationGrid h3 { margin:8px 0 0; font-size:14px; line-height:1.2; }
.cartRecommendationGrid article > div { display:flex; justify-content:space-between; gap:8px; align-items:center; font-size:12px; }
.cartRecommendationGrid button { padding:7px 9px; border:1px solid #211c1a; background:transparent; font:inherit; font-weight:700; cursor:pointer; }

/* Product detail follows the retail decision order used by mature South
   African storefronts: gallery, title/price/bag, then practical details.
   The factual Woo content remains intact below the purchase panel. */
.productDetail { grid-template-columns:minmax(0,1.18fr) minmax(350px,.72fr); gap:clamp(34px,5vw,78px); align-items:start; }
.detailGallery { display:grid; grid-template-columns:76px minmax(0,560px); gap:13px; align-items:start; min-width:0; }
.detailGallery .dyh-product-thumbnails { display:grid; grid-auto-flow:row; gap:9px; max-height:690px; margin:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.detailGallery .dyh-product-thumbnails button { display:block; width:76px; height:94px; padding:0; overflow:hidden; border:1px solid #ded7d1; background:#f0e8e2; cursor:pointer; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.detailGallery .dyh-product-thumbnails button:hover, .detailGallery .dyh-product-thumbnails button:focus-visible { border-color:#7d5c49; transform:translateY(-2px); }
.detailGallery .dyh-product-thumbnails button.active { border-color:#211c1a; box-shadow:0 0 0 2px #211c1a; }
.detailGallery .dyh-product-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; }
.detailGallery .galleryVideoThumb { display:grid !important; place-items:center; gap:5px; background:#211c1a !important; color:#fffdfa; }
.detailGallery .galleryVideoThumb span { display:grid; width:25px; height:25px; place-items:center; border:1px solid #f4d3b9; border-radius:50%; color:#f4d3b9; font-size:10px; }
.detailGallery .galleryVideoThumb small { font-size:8px; font-weight:700; letter-spacing:.12em; }
.detailMainImage { position:relative; min-height:0; aspect-ratio:1; background:#f7f3ef; box-shadow:0 18px 38px rgba(61,43,32,.09); overflow:hidden; }
.detailMainImage img, .detailMainImage video { width:100%; height:100%; display:block; object-fit:contain; object-position:center; background:#f7f3ef; }
.detailMainImage img { transition:opacity .18s ease,transform .18s ease; }
.detailMainImage img.is-switching { opacity:.18; transform:scale(.985); }
.detailGalleryArrow { position:absolute; z-index:2; top:50%; display:grid; width:44px; height:44px; padding:0; place-items:center; border:1px solid rgba(33,28,26,.78); border-radius:50%; background:rgba(255,253,250,.92); color:#211c1a; box-shadow:0 7px 20px rgba(33,28,26,.12); font:500 23px/1 Arial,sans-serif; cursor:pointer; transform:translateY(-50%); transition:background-color .16s ease,color .16s ease,transform .16s ease; }
.detailGalleryArrow:hover, .detailGalleryArrow:focus-visible { background:#211c1a; color:#fffdfa; transform:translateY(-50%) scale(1.05); }
.detailGalleryArrow--previous { left:13px; }
.detailGalleryArrow--next { right:13px; }
.detailMainImage video { background:#211c1a; }
.detailBuyBox { position:sticky; top:18px; padding:8px 0 20px; }
.detailBuyBox h1 { max-width:570px; margin:8px 0 11px; font-size:clamp(34px,3.2vw,54px); line-height:.98; }
.detailBuyBox .detailSku { margin:0; color:#756b66; font-size:11px; }
.detailBuyBox .detailPrice { margin:20px 0 22px; font-size:31px; }
.detailPurchaseActions { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; margin:0; }
.detailPurchaseActions .button { width:100%; min-height:54px; margin:0; }
.detailCheckout { min-height:45px; border:1px solid #211c1a; background:transparent; color:#211c1a; font:700 11px/1 "DM Sans",Arial,sans-serif; letter-spacing:.04em; cursor:pointer; transition:background-color .16s ease,color .16s ease; }
.detailCheckout:hover, .detailCheckout:focus-visible { background:#211c1a; color:#fffdfa; }
.detailCartNote { margin:10px 0 21px; color:#756b66; font-size:11px; }
.detailAssurance { margin:0; border-top:1px solid #ded7d1; border-bottom:1px solid #ded7d1; }
.detailAssurance p { display:grid; grid-template-columns:86px minmax(0,1fr); gap:13px; margin:0; padding:12px 0; border-bottom:1px solid #ded7d1; color:#756b66; font-size:11px; line-height:1.45; }
.detailAssurance p:last-child { border-bottom:0; }
.detailAssurance b { color:#211c1a; }
.productSpecs { margin:0; }
.productSpecs div { display:grid; grid-template-columns:1fr 1.35fr; gap:10px; padding:7px 0; border-top:1px solid #eee7e1; }
.productSpecs dt { color:#756b66; }
.productSpecs dd { margin:0; color:#211c1a; text-align:right; }
.productSpecs--visible { margin-top:16px; border-bottom:1px solid #ded7d1; font-size:11px; line-height:1.45; }
.detailServiceNotes { border-bottom:1px solid #ded7d1; }
.detailServiceNotes p { display:grid; grid-template-columns:86px minmax(0,1fr); gap:13px; margin:0; padding:12px 0; border-bottom:1px solid #ded7d1; color:#756b66; font-size:11px; line-height:1.48; }
.detailServiceNotes p:last-child { border-bottom:0; }
.detailServiceNotes b { color:#211c1a; }
.detailServiceNotes a { color:#211c1a; text-decoration:underline; text-underline-offset:3px; }
.dyh-product-description { display:grid; grid-template-columns:minmax(220px,.42fr) minmax(0,1fr); gap:clamp(30px,7vw,112px); padding:clamp(54px,8vw,110px) clamp(22px,6vw,96px) clamp(75px,10vw,130px); border-top:1px solid #ded7d1; background:#fffdfa; }
.dyh-product-description-intro h2 { margin:8px 0 14px; font-size:clamp(35px,4vw,59px); line-height:.98; }
.dyh-product-description-intro h2 em { color:#a66b4c; }
.dyh-product-description-intro > p:not(.eyebrow) { max-width:280px; color:#756b66; }
.dyh-product-description-inner { max-width:780px; color:#5d5049; line-height:1.65; }
.dyh-product-description-inner > :first-child { margin-top:0; }
.dyh-product-description-inner h2, .dyh-product-description-inner h3 { margin-top:34px; padding-top:18px; border-top:1px solid #ded7d1; color:#211c1a; font-size:clamp(19px,1.7vw,25px); }
.dyh-product-description-inner ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:22px 0; padding:0; list-style:none; }
.dyh-product-description-inner li { min-height:54px; padding:12px; border:1px solid #e4dad2; background:#faf7f3; font-size:13px; line-height:1.4; }
.dyh-product-media-frame.is-switching img { opacity:.24; }

/* Customer-contact forms and the permanent checkout documentation promise. */
.dyh-site-footer { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:28px clamp(22px,6vw,96px); border-top:1px solid #ded7d1; background:#fcfaf7; color:#756b66; font-size:11px; }
.dyh-site-footer p { margin:0; }
.dyh-site-footer .brandWithMark strong { font-size:17px; }
.footerLinks { display:flex; flex-wrap:wrap; gap:16px; }
.footerLinks a { text-decoration:underline; text-underline-offset:4px; }
.dyh-contact-dialog { width:min(510px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:28px; border:1px solid #cfc0b2; background:#fffdfa; color:#211c1a; box-shadow:0 24px 60px rgba(33,28,26,.25); }
.dyh-contact-dialog::backdrop { background:rgba(33,28,26,.42); }
.dyh-contact-dialog h2 { margin:8px 0 12px; font-size:clamp(36px,5vw,55px); }
.dyh-contact-dialog > p { color:#756b66; }
.dyh-contact-dialog .close { position:absolute; top:13px; right:13px; border:0; background:transparent; text-decoration:underline; text-underline-offset:3px; }
.dyh-contact-dialog form { display:grid; gap:12px; margin-top:20px; }
.dyh-contact-dialog label { display:grid; gap:6px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.dyh-contact-dialog input, .dyh-contact-dialog select, .dyh-contact-dialog textarea { width:100%; min-height:42px; padding:10px; border:1px solid #cfc0b2; border-radius:0; background:#fff; color:#211c1a; font:inherit; font-size:13px; text-transform:none; }
.dyh-contact-dialog textarea { min-height:95px; resize:vertical; }
.dyh-contact-dialog small { color:#756b66; font-size:11px; line-height:1.45; }
.dyh-checkout-documentation { display:grid; grid-template-columns:minmax(240px,.84fr) minmax(0,1.5fr); gap:clamp(24px,4vw,58px); margin:0 0 clamp(32px,5vw,64px); padding:clamp(25px,4vw,48px); border:1px solid #ded7d1; background:#f4ede7; }
.checkoutPage > .dyh-checkout-documentation { margin:0; border-width:1px 0; }
.dyh-checkout-documentation-copy h2 { margin:.2em 0 .38em; font:500 clamp(31px,3.1vw,47px)/.98 "Playfair Display",Georgia,serif; letter-spacing:-.04em; }
.dyh-checkout-documentation-copy h2 em { color:#a66b4c; }
.dyh-checkout-documentation-copy > p:not(.eyebrow) { max-width:430px; color:#665d58; }
.dyh-checkout-documentation-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; align-self:start; }
.dyh-checkout-documentation-cards figure { position:relative; min-height:240px; margin:0; overflow:hidden; background:#443936; }
.dyh-checkout-documentation-cards img { display:block; width:100%; height:100%; object-fit:cover; }
.dyh-checkout-documentation-cards figcaption { position:absolute; inset:auto 0 0; display:grid; gap:5px; min-height:108px; padding:29px 12px 12px; background:linear-gradient(transparent,rgba(25,20,18,.92)); color:#fffaf5; }
.dyh-checkout-documentation-cards figcaption b { color:#f2c49e; font-size:10px; letter-spacing:.11em; }
.dyh-checkout-documentation-cards figcaption strong { font-size:13px; line-height:1.15; }
.dyh-checkout-documentation-cards figcaption span { color:#eadfd8; font-size:10px; line-height:1.35; }
.dyh-checkout-documentation-note { grid-column:1/-1; margin:0; color:#756b66; font-size:11px; }
.dyh-checkout-documentation-note a { color:#211c1a; text-decoration:underline; text-underline-offset:3px; }

/* Cookie consent is shown on first visit; accepted consent never leaves a
   permanent floating button over the shopping interface. */
.cky-btn-revisit-wrapper, .cky-revisit-bottom-left, .cky-revisit-bottom-right, #cookie-law-info-again { display:none !important; }

@media (max-width:780px) {
  .header, .productHeader, .tradeHeader { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px; min-height:64px; padding:0 16px; }
  .header > nav, .productHeader > nav, .tradeHeader > nav, .headerActions { display:none !important; }
  .header .brandWithMark strong, .productHeader .brandWithMark strong, .tradeHeader .brandWithMark strong { font-size:18px; }
  .header .brandWithMark img, .productHeader .brandWithMark img, .tradeHeader .brandWithMark img { width:23px; height:23px; }
  .dyh-mobile-menu { display:block; position:relative; justify-self:end; }
  .dyh-mobile-menu summary { list-style:none; min-height:38px; padding:12px 2px; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; cursor:pointer; }
  .dyh-mobile-menu summary::-webkit-details-marker { display:none; }
  .dyh-mobile-menu nav { position:absolute; right:0; top:38px; z-index:50; display:grid !important; width:220px; gap:0; padding:8px; border:1px solid #ded7d1; background:#fffdfa; box-shadow:0 15px 36px rgba(33,28,26,.14); }
  .dyh-mobile-menu nav a, .dyh-mobile-menu nav button { display:block; min-height:44px; padding:11px 10px; border:0; background:transparent; color:#211c1a; font-size:11px; font-weight:700; letter-spacing:.07em; text-align:left; text-transform:uppercase; }
  .dyh-mobile-menu.is-open summary { color:#a66b4c; }
  .dyh-mobile-bag { display:inline-flex; align-items:center; justify-content:flex-end; gap:6px; min-height:38px; color:#211c1a; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
  .dyh-mobile-bag b { display:grid; width:19px; height:19px; place-items:center; border-radius:50%; background:#211c1a; color:#fff; font-size:9px; letter-spacing:0; }
  .hero { display:flex; flex-direction:column; min-height:0; background:#f7f3ec; }
  .heroCopy { order:1; padding:52px 24px 28px; }
  .heroImage { order:2; min-height:0; height:min(78vw,450px); padding:0; overflow:hidden; background:#f7f3ec; }
  .heroGlass { width:100%; height:100%; aspect-ratio:auto; border:0; border-radius:0; box-shadow:none; transform:none; }
  .heroGlass::before { display:none; }
  .heroGlass > img { width:100%; height:100%; min-height:0; object-fit:contain; object-position:center top; border:0; border-radius:0; box-shadow:none; }
  .heroChoices { z-index:2; right:12px; bottom:12px; left:12px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .heroChoices button { grid-template-columns:1fr; min-height:0; padding:4px; border-color:#d4c7bc; background:rgba(252,250,247,.92); color:#211c1a; }
  .heroChoices button.active { border-color:#7d5c49; background:#fff; }
  .heroChoices img { width:100%; height:54px; }
  .heroChoices span { display:none; }
  .photoProofGrid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .photoProofGrid button { min-height:112px; }
  .hotProof { padding:54px 16px 62px; }
  .hotProofHeading { gap:10px; margin-bottom:22px; }
  .hotProofHeading > p:not(.eyebrow) { max-width:330px; font-size:12px; line-height:1.5; }
  .hotProofGrid { gap:14px; }
  .photoProof { padding:12px; }
  .proofLabel { align-items:flex-start; gap:9px; }
  .proofLabel small { line-height:1.35; }
  .dyh-product-media-frame { grid-template-columns:minmax(0,1.16fr) minmax(108px,.64fr); min-height:330px; gap:7px; }
  .dyh-media-main, .dyh-media-detail-stack { min-height:330px; }
  .dyh-media-detail-stack { gap:7px; }
  .dyh-media-details-link { bottom:9px; left:9px; min-height:29px; padding:0 8px; font-size:8px; }
  /* Phone-specific proof presentation: retain all supplied trust imagery,
     but make it swipeable or tiled instead of a long desktop stack. */
  .deliveryProofBanner { padding:52px 14px 22px; }
  .deliveryProofIntro { gap:12px; margin-bottom:20px; }
  .deliveryProofIntro > p { font-size:13px; line-height:1.5; }
  .deliveryProofCards { grid-auto-columns:minmax(278px,78vw); grid-auto-flow:column; grid-template-columns:none; gap:10px; margin-right:-14px; margin-left:-14px; padding:0 14px 8px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .deliveryProofCards::-webkit-scrollbar { display:none; }
  .deliveryProofCards figure { min-height:350px; scroll-snap-align:start; }
  .deliveryProofCards figcaption { padding:44px 16px 16px; }
  .deliveryProofCards strong { font-size:22px; }
  .deliveryProofFoot { margin-top:10px; font-size:10px; }
  .factoryProof { gap:28px; padding:58px 14px; }
  .factoryIntro { max-width:100%; }
  .factoryIntro > p:not(.eyebrow) { max-width:355px; font-size:13px; }
  .factoryTrust { gap:6px; margin-top:16px; }
  .factoryTrust span { padding:7px 8px; font-size:9px; }
  .factoryMedia { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .factoryFeature { min-height:190px; }
  .factoryFeature.factoryWide { grid-column:1 / -1; min-height:255px; }
  .factoryFeature figcaption { padding:34px 12px 12px; }
  .factoryFeature figcaption strong { font-size:18px; }
  .factoryPhotos { grid-column:1 / -1; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .factoryPhotos figure { min-height:116px; }
  .factoryPhotos img { height:92px; }
  .factoryPhotos figcaption { min-height:33px; padding:7px 6px; font-size:8px; line-height:1.2; }
  .capProof { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:30px; }
  .capProofIntro { grid-column:1 / -1; padding-bottom:4px; }
  .capProofIntro h3 { font-size:27px; }
  .capProofIntro > p:last-child { max-width:360px; }
  .capProof figure { min-height:240px; }
  .capProof figcaption { padding:32px 10px 9px; }
  .capProof figcaption strong { font-size:10px; }
  .capProof figcaption small { display:none; }
  .catalog { padding-right:14px; padding-left:14px; }
  .homeCollectionPreviewHead { align-items:flex-start; flex-direction:column; gap:8px; }
  .homeCollectionGrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .catalogStorefront { display:grid; gap:14px; }
  .catalogSidebar { position:sticky; top:64px; z-index:4; padding:9px 0 11px; background:#fcfaf7; }
  .catalogSidebar .catalogToolbar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:10px 0 0; }
  .catalogSidebar .catalogToolbar button { min-height:38px; padding:7px 5px; font-size:9px; text-align:center; }
  .catalogSidebar .catalogHelp { display:none; }
  .catalogGrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 11px; }
  .catalogCard { border-color:#e3d9d2; box-shadow:0 5px 14px rgba(53,36,27,.035); }
  .catalogCard > div { display:grid; gap:0; padding:10px 9px 11px; }
  .catalogCard > div > span { display:none; }
  .catalogCard h3 { min-height:35px; margin:0 0 3px; font-size:12px; line-height:1.25; }
  .catalogCard .dyh-card-sku { display:none; }
  .catalogCard b { margin:5px 0 3px; font-size:14px; }
  .catalogCardActions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:7px; }
  .catalogCardActions button, .catalogCardActions a { min-height:31px; padding:5px 4px; font-size:8px; line-height:1.1; }
  .catalogCardActions .dyh-card-action-desktop { display:none; }
  .catalogCardActions .dyh-card-action-mobile { display:inline; }
  .catalogCard > div > [data-dyh-add-launch-bag] { min-height:37px; margin-top:7px; padding:8px; border-color:#211c1a; background:#211c1a; color:#fffdfa; font-size:10px; }
  .catalogCard > div > [data-dyh-add-launch-bag]:active { transform:scale(.985); }
  .loadMore { min-height:46px; margin-top:24px; }
  .productDetail { grid-template-columns:1fr; gap:22px; padding:10px 16px 58px; }
  .detailGallery { grid-template-columns:1fr; gap:10px; }
  .detailGallery .dyh-product-thumbnails { grid-row:2; grid-auto-flow:column; grid-auto-columns:58px; grid-template-rows:1fr; max-height:none; margin-right:-16px; padding-right:16px; overflow-x:auto; overflow-y:hidden; }
  .detailGallery .dyh-product-thumbnails button { width:58px; height:72px; }
  .detailMainImage { min-height:0; aspect-ratio:1; box-shadow:none; }
  .detailGalleryArrow { width:40px; height:40px; }
  .detailGalleryArrow--previous { left:9px; }
  .detailGalleryArrow--next { right:9px; }
  .detailBuyBox { position:static; padding-top:4px; }
  .detailBuyBox h1 { font-size:34px; }
  .detailAssurance p { grid-template-columns:78px minmax(0,1fr); gap:10px; }
  .detailServiceNotes p { grid-template-columns:78px minmax(0,1fr); gap:10px; }
  .dyh-product-description { grid-template-columns:1fr; gap:20px; padding:52px 24px 74px; }
  .dyh-product-description-intro > p:not(.eyebrow) { max-width:360px; }
  .detailPurchaseActions { align-items:stretch; }
  .detailPurchaseActions .button { width:100%; }
  .dyh-recommendations, .cartRecommendations { grid-template-columns:1fr; gap:30px; padding:58px 24px; }
  .dyh-recommendation-grid, .cartRecommendationGrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .dyh-recommendation-grid article { padding:6px; }
  .dyh-recommendation-grid h3 { min-height:36px; margin-top:8px; font-size:12px; }
  .dyh-recommendation-grid article > div { display:grid; gap:8px; }
  .dyh-recommendation-grid button { width:100%; }
  .dyh-product-description-inner ul { grid-template-columns:1fr; }
  .dyh-site-footer { display:block; padding:26px 24px; }
  .dyh-site-footer p, .dyh-site-footer .footerLinks { margin-top:15px; }
  .dyh-launch-panel { grid-template-columns:1fr; gap:20px; padding:42px 24px; }
  .dyh-launch-panel .eyebrow { margin:0; }
  .dyh-launch-panel h2 { font-size:43px; }
  .dyh-launch-panel-actions { width:100%; }
  .dyh-checkout-documentation { grid-template-columns:1fr; gap:24px; padding:34px 24px; }
  .dyh-checkout-documentation-cards { gap:7px; }
  .dyh-checkout-documentation-cards figure { min-height:165px; }
  .dyh-checkout-documentation-cards figcaption { min-height:102px; padding:26px 8px 9px; }
  .dyh-checkout-documentation-cards figcaption strong { font-size:11px; }
  .dyh-checkout-documentation-cards figcaption span { font-size:9px; }
  .dyh-action-feedback { bottom:12px; width:calc(100vw - 24px); gap:9px; padding:12px; }
  .dyh-action-feedback__action { min-height:32px; padding:8px 9px; font-size:9px; }
}

/* Final storefront polish: stable mobile filtering, fully deliberate title
   truncation, and a retail-first reading order for long factual product copy. */
.policyActions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.policyActions .button { min-height:44px; padding:0 16px; cursor:pointer; }

.dyh-product-description-inner { max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.dyh-product-detail-section { display:grid; align-content:start; gap:12px; min-width:0; padding:21px 22px 23px; border:1px solid #e4dad2; background:#fff; color:#5d5049; }
.dyh-product-detail-section.is-overview, .dyh-product-detail-section.is-questions, .dyh-product-detail-section.is-policy { grid-column:1 / -1; }
.dyh-product-detail-section h2, .dyh-product-detail-section h3 { margin:0; padding:0; border:0; color:#211c1a; font:500 clamp(21px,2vw,30px)/1.08 "Playfair Display",Georgia,serif; }
.dyh-product-detail-section p { max-width:72ch; margin:0; font-size:14px; line-height:1.65; }
.dyh-product-detail-section ul { margin:0; }
.dyh-product-detail-section.is-specs ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dyh-product-detail-section.is-questions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.dyh-product-detail-section.is-questions h2 { grid-column:1 / -1; margin-bottom:2px; }
.dyh-product-detail-question { min-height:100%; padding:15px; border:1px solid #e9dfd8; background:#faf7f3; }
.dyh-product-detail-question strong { display:block; margin-bottom:7px; color:#211c1a; font-size:12px; letter-spacing:.01em; }
.dyh-product-detail-section.is-policy { border-color:#d8c3b2; background:#f7f0ea; }
.dyh-product-detail-section.is-policy a { color:#211c1a; font-weight:700; text-underline-offset:3px; }

@media (max-width:780px) {
  /* Preview's original desktop positioning is absolute.  Reset it on small
     screens so the headline remains the first deliberate shopping cue and
     the portrait follows immediately below it. */
  .heroCopy { position:relative; inset:auto; z-index:1; display:block; width:auto; height:auto; }
  .catalogSidebar { position:sticky; top:64px; z-index:12; margin:0 -14px; padding:10px 14px 12px; border-top:1px solid #ded7d1; border-bottom:1px solid #ded7d1; background:#fcfaf7; box-shadow:0 10px 18px rgba(53,36,27,.09); }
  .catalogSidebar .eyebrow { margin:0; }
  .catalogSidebar .catalogToolbar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:10px 0 0; }
  .catalogSidebar .catalogToolbar button { min-height:38px; padding:7px 5px; border:1px solid #ded7d1; background:#fffdfa; color:#5d5049; font-size:9px; line-height:1.15; text-align:center; }
  .catalogSidebar .catalogToolbar button.active { border-color:#211c1a; background:#211c1a; color:#fffdfa; }
  .catalogCard h3 { height:2.6em; min-height:0; margin:0 0 3px; overflow:hidden; font-size:12px; line-height:1.3; }
  .catalogCard h3 a { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; text-overflow:ellipsis; }
  .heroChoices { position:relative; z-index:2; order:3; right:auto; bottom:auto; left:auto; width:auto; margin:10px 14px 22px; padding:8px; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; border:1px solid #ded7d1; background:#fffdfa; }
  .heroChoices button { grid-template-columns:1fr; min-height:0; padding:4px; border-color:#d4c7bc; background:#f7f3ef; color:#211c1a; }
  .heroChoices button.active { border-color:#7d5c49; background:#fff; }
  .heroChoices img { width:100%; height:66px; object-fit:cover; object-position:top; }
  .dyh-product-description-inner { grid-template-columns:1fr; gap:10px; }
  .dyh-product-detail-section, .dyh-product-detail-section.is-overview, .dyh-product-detail-section.is-questions, .dyh-product-detail-section.is-policy { grid-column:auto; padding:18px; }
  .dyh-product-detail-section.is-specs ul, .dyh-product-detail-section.is-questions { grid-template-columns:1fr; }
  .dyh-product-detail-section p { font-size:13px; }
  .policyActions { display:grid; grid-template-columns:1fr; margin-top:20px; }
  .policyActions .button { width:100%; }
}

/* Shop All: compact mobile navigation, scoped to the product archive only. */
@media (max-width: 760px) {
	body:has(.homePage) .productHeader {
		    position: sticky; top: 0; z-index: 80;
		    min-height: 0; padding: 8px 14px !important;
		    background: rgba(255, 252, 247, .92) !important;
		    border-bottom: 1px solid rgba(94, 71, 57, .13);
		    box-shadow: 0 8px 22px rgba(67, 45, 33, .06);
		    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
	}
	body:has(.homePage) .productHeader .brandWordmark { min-width: 0; }
	body:has(.homePage) .productHeader .brandWordmark img { width: 21px; height: 21px; }
	body:has(.homePage) .productHeader .brandWordmark strong { font-size: 14px; letter-spacing: .08em; }
	body:has(.homePage) .productHeader .mainNavigation {
		    gap: 12px; margin: 0; padding: 0; min-width: 0;
		    overflow-x: auto; overscroll-behavior-x: contain; white-space: nowrap;
		    -webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	body:has(.homePage) .productHeader .mainNavigation::-webkit-scrollbar { display: none; }
	body:has(.homePage) .productHeader .mainNavigation a {
		    flex: 0 0 auto; padding: 6px 0; font-size: 11px; letter-spacing: .02em;
	}
	body:has(.homePage) .productHeader .bagLink { font-size: 11px; white-space: nowrap; }
}

	}
	}
	}
}
