:root{--ink:#16130f;--muted:#908c88;--line:#e7e2da;--bg:#faf8f5;--accent:#b8662e;--header-accent:#15806a;--logo-h:64px}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 1rem}
.announcement{background:var(--ink);color:#fff;text-align:center;padding:.5rem 1rem;font-size:.8rem;letter-spacing:.02em}

/* ===== Header (mobile-first) ===== */
.site-header{background:#fff;border-bottom:1px solid var(--line);padding:.85rem 1rem 0}
.site-header.is-sticky{position:sticky;top:0;z-index:50}
.header-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.logo{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:700;font-size:2.1rem;line-height:1;letter-spacing:.01em;color:var(--ink);display:flex;align-items:center;white-space:nowrap;
/* height:var(--logo-h) */
}
.logo img{height:110px;width:auto;display:block}
/* Slogan as real text beneath the logo image (SEO) */
.logo{flex-direction:column;align-items:flex-start}
.logo-slogan{display:flex;align-items:center;gap:.6rem;align-self:stretch;color:#16130f;border-radius:6px;padding:.35em .3em;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-style:normal;font-weight:500;font-size:.78rem;letter-spacing:.11em;white-space:nowrap}
.logo-slogan::before,.logo-slogan::after{content:"";flex:1;height:1px;background:currentColor}
@media(max-width:759px){.logo-slogan{font-size:.6rem;padding:.3em .2em}}
/* Logo theme swap: light logo by default, dark-theme logo when .theme-dark is set */
.logo img.logo--dark{display:none}
html.theme-dark .logo img.logo--light{display:none}
html.theme-dark .logo img.logo--dark{display:block}
/* Logo size: 100% of the 64px .logo box on desktop; fixed 60px on mobile */
@media(max-width:759px){.logo{height:auto}.logo img,.logo--light,.logo--dark,.footer-logo{height:60px}}
.header-icons{display:flex;align-items:center;gap:1.1rem;position: relative;top: -10px;}
.header-icons a,.header-icons .icon-btn{color:var(--header-accent);color:#000000;display:inline-flex;position:relative;left: -10px;}
.header-icons .icon-btn{background:none;border:0;padding:0;cursor:pointer}
.header-icons svg{width:26px;height:26px;display:block}
.cart-count{position:absolute;top:-7px;right:-9px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}

/* search */
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.7rem;flex:1;min-width:0}
.header-search{display:flex;align-items:center;gap:.5rem;position:relative;width:auto;}
.header-search .search-ico{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--ink);pointer-events:none}
.header-search .search-ico svg{width:22px;height:22px;display:block}
.header-search input{flex:1;width:100%;border:1.5px solid var(--line);border-radius:30px;padding:.95rem 1rem .95rem 3rem;font-size:1.05rem;background:#fff;color:var(--ink)}
.header-search input:focus{outline:none;border-color:var(--header-accent)}
/* Mobile: icons stay top-right, search drops below the logo at full width */
@media(max-width:759px){
  .header-bar{flex-wrap:wrap}
  .header-right{display:contents}
  .header-search{flex-basis:100%;margin-top:.9rem;bottom: 0;}
  .header-icons {position: relative;top: 10px;}
  .footer-slogan {max-width: 200px !important}
  .site-header{padding:.85rem 1rem 1rem}

}
.filter-btn{flex:none;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;padding:.4rem}
.filter-btn svg{width:30px;height:30px;display:block}

/* main nav: hidden on mobile, shown on larger screens */
.main-nav{display:none}
@media(min-width:768px){
  .main-nav{display:flex;gap:1.5rem;justify-content:center;margin-top:1rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.04em;overflow:hidden;max-height:4rem;transition:max-height .3s ease, opacity .25s ease, margin-top .3s ease}
  .main-nav a{color:var(--muted)}
  .main-nav a:hover{color:var(--ink)}
}

/* ===== Home headline (above the hero) ===== */
.home-headline{font-weight:700;text-align:center;max-width:22ch;margin:0 auto .25rem;font-size:32px;background:linear-gradient(180deg,#F6EA99,#C08C2E,#975E16);-webkit-background-clip:text;background-clip:text;color:#C08C2E;-webkit-text-fill-color:transparent}
@media(min-width:760px){.home-headline{max-width:26ch;margin:0 auto .5rem;font-size:42px}}
/* Kicker accent bar above the home headline */
.home-kicker{margin:1.5rem auto .7rem}
@media(min-width:760px){.home-kicker{margin-top:0}}

/* ===== Two-line hero (diagonal split on every screen size, incl. mobile) ===== */
.line-hero{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#fff;max-width:1180px;margin:20px 0;width:100%}
.line-tile{position:absolute;inset:0;width:100%;height:100%;}
/* .tile-traditional{background:linear-gradient(135deg,#5a3d24,#2c1c10)} */
.tile-modern{clip-path:polygon(0 0, 56% 0, 49% 100%, 0 100%);transition:clip-path .5s ease}
.tile-modern:hover{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);z-index:2}
.tile-traditional{clip-path:polygon(54% 0, 100% 0, 100% 100%, 47% 100%);transition:clip-path .5s ease}
.tile-traditional:hover{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);z-index:2}
.tile-traditional img.line-bg-traditional:hover, .tile-modern img.line-bg-modern:hover{transform: scale(1.04);}
.line-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-fit: contain;}
/* Per-tile framing — tweak the object-position % to taste */
.line-bg-modern{object-position:0% 100%}
.line-bg-traditional{object-position:100% 0%}
/* Bounded on BOTH sides, each label to its own half of the diagonal. With only
   a `left` anchor and a nowrap pill, a longer translation pushed the arrow out
   past the tile edge — "Mode traditionnelle" is far wider than "Traditional
   wear". The pill now wraps to stay inside; the arrow never shrinks. */
.line-label{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:center;gap:.40rem}
.tile-modern .line-label{right:48%}
.tile-traditional .line-label{left:52%;right:0}
/* em padding + fluid font so the pill fits the dark half on small screens */
.line-pill{background:#16130f;color:#fff;padding:.52em .9em;border-radius:999px;font-size:clamp(.72rem,2.8vw,1.3rem);line-height:1.15;border:1.5px solid rgba(255,255,255,.5);min-width:0;overflow-wrap:break-word}
/* Shown on mobile at a smaller size so it fits the tight diagonal; larger from 760px up */
.line-arrow{display:inline-flex;flex:none;align-items:center;justify-content:center;width:30px;height:30px;background:#16130f;border:2px solid #fff;border-radius:50%;color:#fff}
.line-arrow svg{width:16px;height:16px}

/* Larger screens: wider proportions, roomier insets, arrow shown */
@media(min-width:760px){
  .line-hero{aspect-ratio:1200/470;border-radius:18px}
  .line-label{bottom:2rem;gap:.7rem}
  .tile-modern .line-label{left:2.2rem;right:46%}
  .tile-traditional .line-label{left:55%;right:2.2rem}
  .line-pill{font-size:clamp(1.05rem,1.9vw,1.7rem)}
  .line-arrow{display:inline-flex;width:44px;height:44px}
  .line-arrow svg{width:24px;height:24px}
}

/* Mobile: shrink the traditional image so the whole subject fits its narrow
   diagonal tile (contained + centered instead of cropped to the top-right) */
@media(max-width:759px){
  .line-bg-traditional{object-position: 200% 0%;}
  .line-bg-modern{object-position: -100% 0%;}
}

/* ===== Quick menu (off-canvas) ===== */
.qm-overlay{position:fixed;inset:0;background:rgba(20,16,12,.45);backdrop-filter:blur(2px);opacity:0;transition:opacity .25s;z-index:90}
.qm-overlay.is-visible{opacity:1}
.quickmenu{position:fixed;top:0;left:0;height:100%;width:86%;max-width:360px;background:#fff;z-index:100;transform:translateX(-100%);transition:transform .28s ease;display:flex;flex-direction:column;box-shadow:0 0 40px rgba(0,0,0,.2);border-radius:0 24px 24px 0}
.quickmenu.is-open{transform:translateX(0)}
.qm-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line)}
.qm-title{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem}
.qm-title::before{content:"";display:block;width:28px;height:3px;background:var(--accent);margin-bottom:.4rem}
.qm-close{background:#f1ece5;border:0;cursor:pointer;color:var(--ink);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}
.qm-close:hover{transform:rotate(90deg)}
.qm-close svg{width:18px;height:18px;display:block}
.qm-body{overflow-y:auto;padding:1rem 1.5rem 2rem;flex:1}
.qm-group{padding:1.1rem 0;border-bottom:1px solid var(--line)}
.qm-group:last-child{border-bottom:0}
.qm-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 .6rem}
.qm-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .65rem;margin:0 -.65rem;border-radius:12px;font-size:1.1rem;color:var(--ink);transition:background .15s,color .15s,padding .15s}
.qm-link::after{content:"→";opacity:0;transform:translateX(-4px);transition:opacity .15s,transform .15s;font-weight:700}
.qm-link:hover{background:var(--bg);color:var(--accent)}
.qm-link:hover::after{opacity:1;transform:translateX(0)}
.qm-link.is-accent{color:var(--accent);font-weight:600}
.qm-link.is-bold{display:inline-flex;background:var(--ink);color:#fff;font-weight:700;font-size:.95rem;border-radius:999px;padding:.6rem 1.25rem;margin:.6rem 0 0}
.qm-link.is-bold::after{content:"→";opacity:1;transform:none}
.qm-link.is-bold:hover{background:var(--accent);color:#fff}
.qm-toggle{margin-top:.85rem;width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:999px;padding:.65rem 1.1rem;cursor:pointer;font-size:.95rem;font-weight:600;display:inline-flex;justify-content:center;gap:.5rem;color:var(--ink);transition:border-color .15s}
.qm-toggle:hover{border-color:var(--ink)}
.qm-toggle [data-theme-on="dark"]{display:none;color:var(--muted)}
.qm-toggle [data-theme-on="light"]{font-weight:600}
.qm-auth{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem .75rem;margin:0 0 .65rem}
.qm-auth form{margin-left:auto}
.qm-auth .qm-logout{margin-top:0}
.qm-auth .qm-user{display:flex;align-items:center;gap:.5rem;font-weight:700;margin:0}
.qm-auth .qm-user-ico{width:28px;height:28px;border-radius:50%;background:#f1ece5;color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none}
.qm-login{display:inline-flex;align-items:center;gap:.9rem;background:var(--ink);color:#fff;border-radius:999px;padding:.45rem .55rem .45rem 1.4rem;margin-bottom:.35rem;transition:background .15s,transform .15s}
.qm-login:hover{background:var(--accent);transform:translateY(-1px)}
.qm-login-label{font-weight:700;font-size:1rem}
.qm-login-ico{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.qm-user-role{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:#fff;border-radius:999px;padding:.15rem .55rem;margin-left:.3rem}
.qm-auth .qm-register{font-size:.95rem;color:var(--muted)}
.qm-auth .qm-register:hover{color:var(--accent)}
.qm-logout{margin-top:.6rem;background:none;border:1.5px solid var(--line);border-radius:999px;padding:.45rem 1.1rem;font:inherit;font-size:.875rem;font-weight:600;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}
.qm-logout:hover{color:#bb1533;border-color:#bb1533}
html.theme-dark .qm-auth .qm-user-ico{background:#241e18}
.qm-lang{display:flex;gap:1rem;margin-top:.85rem;font-size:.95rem}
.qm-lang a{color:var(--muted)}
.qm-lang a.is-active{color:var(--ink);font-weight:600}
@media(min-width:768px){.quickmenu{width:400px;max-width:400px}}

/* ===== Dark theme (basic) ===== */
html.theme-dark{--ink:#f3efe9;--muted:#a89e92;--line:#3a352e;--bg:#15120e}
html.theme-dark body{background:var(--bg);color:var(--ink)}
html.theme-dark .site-header,html.theme-dark .quickmenu,html.theme-dark .header-search input{background:#1d1813}
/* header icons are hard-coded black for light mode → flip them white on dark */
html.theme-dark .header-icons a,html.theme-dark .header-icons .icon-btn{color:#fff}
html.theme-dark .qm-toggle{background:#1d1813}
html.theme-dark .qm-toggle [data-theme-on="light"]{display:none}
html.theme-dark .qm-toggle [data-theme-on="dark"]{display:inline;font-weight:600}
.simple-page{max-width:680px;margin:0 auto;text-align:center;padding:2rem 0}
.simple-page .btn{margin-top:1rem}
/* ===== Account page ===== */
.s-account{max-width:760px;margin:0 auto;padding:2.5rem 1.25rem 5rem}
.s-account__title{font-size:1.7rem;margin:0;font-weight:800;letter-spacing:-.01em}
.s-account__intro{color:var(--muted);margin:.25rem 0 2rem;max-width:480px}
.s-account__grid{display:grid;grid-template-columns:1fr;gap:1rem;    margin-bottom: 1.25rem;}
@media(min-width:640px){.s-account__grid{grid-template-columns:1fr 1fr}}
.s-account__card{display:flex;align-items:center;gap:1.1rem;padding:1.25rem;background:#fff;border:1.5px solid var(--line);border-radius:18px;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.s-account__card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 10px 28px rgba(22,19,15,.08)}
.s-account__ico{position:relative;flex:none;width:52px;height:52px;border-radius:50%;background:#f1ece5;color:var(--ink);display:flex;align-items:center;justify-content:center}
.s-account__badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.s-account__card-body{flex:1;display:flex;flex-direction:column;gap:.2rem}
.s-account__card-title{font-weight:700;font-size:1.05rem}
.s-account__card-text{font-size:.85rem;color:var(--muted);line-height:1.4}
.s-account__arrow{flex:none;color:var(--muted);transition:transform .15s,color .15s}
.s-account__card:hover .s-account__arrow{transform:translateX(3px);color:var(--ink)}
.s-account__help{margin-top:2rem;font-size:.9rem;color:var(--muted)}
.s-account__help a{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.s-account__notice{margin-bottom:1.5rem}
.s-account__notice-link{font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:2px}
.notice--ok{background:#e8f5ec;border-color:#9fd4af}
.s-account__panel{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:1.5rem;margin-bottom:1.25rem}
.s-account__auth{margin-bottom:2rem}
.s-account__auth .s-account__panel{margin-bottom:0;scroll-margin-top:100px}
.s-account__auth #register{display:none}
.s-account__auth:has(#register:target) #login{display:none}
.s-account__auth:has(#register:target) #register{display:block}
/* password field with show/hide eye */
.pw-field{position:relative;display:flex;flex:1;min-width:0}
.pw-field input{width:100%;padding-right:2.7rem !important}
.pw-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;color:var(--muted);padding:.35rem;display:flex;border-radius:8px;transition:color .15s}
.pw-toggle:hover{color:var(--ink)}
.pw-toggle .ico-off{display:none}
.pw-toggle.is-visible .ico-on{display:none}
.pw-toggle.is-visible .ico-off{display:block}
.s-account__switch{margin:1rem 0 0;font-size:.875rem;color:var(--muted)}
.s-account__switch a{font-weight:700;color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.s-account__panel-title{font-size:1.05rem;font-weight:700;margin:0 0 1.1rem}
.s-account__form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem;margin-bottom:1rem}
.s-account__form-grid label{font-size:.82rem;font-weight:600;color:var(--muted);display:flex;flex-direction:column;gap:.3rem}
.s-account__form-grid input{font:inherit;font-weight:400;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:.6rem .75rem}
.s-account__form-grid input:focus{outline:none;border-color:var(--ink)}
.s-account__form-grid input:disabled{background:var(--bg);color:var(--muted)}
.s-account__wide{grid-column:1/-1}
.s-account__save{background:var(--ink);color:#fff;border:none;border-radius:999px;padding:.65rem 1.5rem;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:opacity .15s}
.s-account__save:hover{opacity:.85}
.s-account__orders{display:flex;flex-direction:column}
.s-account__order{display:flex;align-items:center;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.s-account__order:last-child{border-bottom:0}
.s-account__order-title{flex:1;font-weight:600;min-width:120px}
.s-account__order-title:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.s-account__order-status{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .6rem;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.s-account__order-status--paid,.s-account__order-status--completed,.s-account__order-status--shipped{background:#e8f5ec;border-color:#9fd4af;color:#1c8a4c}
.s-account__order-status--cancelled,.s-account__order-status--refunded{background:#fbeaea;border-color:#e7b3b3;color:#bb1533}
.s-account__order-total{font-weight:700;white-space:nowrap}
.s-account__order-received{margin:0;display:inline-flex;align-items:center;gap:.5rem}
.s-account__received-btn{background:none;border:1.5px solid var(--line);border-radius:999px;padding:.32rem .8rem;font:inherit;font-size:.76rem;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .15s}
.s-account__received-btn:hover{border-color:var(--ink)}
.s-account__received-on{font-size:.78rem;font-weight:700;color:#1c8a4c;white-space:nowrap}
.s-account__received-undo{background:none;border:0;padding:0;color:var(--muted);font-size:.72rem;text-decoration:underline;cursor:pointer}
.s-account__received-undo:hover{color:var(--ink)}
/* Order detail page (customer-facing) */
.s-order__meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 0 1.5rem}
.s-order__date{color:var(--muted);font-size:.9rem}
.s-order__received{display:flex;align-items:center;gap:.6rem;margin:0 0 1.5rem}
.s-order__items{border-top:1px solid var(--line)}
.s-order__item{display:grid;grid-template-columns:48px 1fr auto auto;gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--line)}
.s-order__item-thumb{width:48px;height:60px;border-radius:8px;overflow:hidden;background:#f1efec;display:flex;align-items:center;justify-content:center;flex:none}
.s-order__item-thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.s-order__item-name{font-weight:600}
a.s-order__item-name:hover{color:var(--accent)}
.s-order__item-qty{color:var(--muted)}
.s-order__item-price{font-weight:700;white-space:nowrap;min-width:96px;text-align:right}
.s-order__total{display:flex;justify-content:space-between;align-items:baseline;margin:1.25rem 0 0;font-size:1.05rem}
.s-order__total strong{font-size:1.3rem}
.s-order__details{list-style:none;padding:1rem 0 0;margin:1.5rem 0 0;color:var(--muted);font-size:.9rem;border-top:1px solid var(--line)}
.s-order__details li{margin:.35rem 0}
.s-order__details span{display:inline-block;min-width:96px;color:var(--ink)}

/* ===== Customers feedback gallery (centre-stage scattered stack) ===== */
.cfg{margin:3.5rem 0}
.cfg-intro{max-width:48ch;margin:.4rem auto 0;color:var(--muted)}
.cfg-gallery{max-width:1100px;margin:1.5rem auto 0;padding:0 1rem}
.cfg-stage{position:relative;height:clamp(340px,46vw,520px);overflow:hidden}
.cfg-slide{position:absolute;left:50%;top:50%;width:min(56vw,500px);height:clamp(260px,38vw,430px);margin:0;transform:translate(-50%,-50%);transform-origin:center;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .6s;will-change:transform,opacity;border-radius:14px;overflow:hidden;background:#f1efec;
  /* box-shadow:0 16px 44px rgba(22,19,15,.22) */
}
.cfg-slide img{width:100%;height:100%;object-fit:cover;display:block}
/* Active (centre) slide: reveal the whole photo, uncropped — box hugs the image */
.cfg-slide.is-active{width:auto;max-width:min(82vw,560px)}
.cfg-slide.is-active img{width:auto;max-width:100%;margin-inline:auto;height:100%;}
.cfg-slide:not(.is-active){cursor:pointer}
/* Mobile: stack the gallery — active photo on top (uncropped), the rest as thumbnails below */
@media(max-width:759px){
  .cfg-stage{height:auto;overflow:visible;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
  .cfg-slide{position:static!important;transform:none!important;opacity:1!important;pointer-events:auto!important;width:auto;height:auto;margin:0}
  .cfg-slide.is-active{order:-1;flex:0 0 100%;width:100%;max-width:none}
  .cfg-slide.is-active img{width:100%;height:auto;object-fit:contain}
  .cfg-slide:not(.is-active){flex:0 0 auto;width:64px;height:80px;border-radius:8px}
  .cfg-slide:not(.is-active) img{width:100%;height:100%;object-fit:cover}
  /* limit the strip to the 4 thumbnails nearest the active photo */
  .cfg-slide:not(.is-active):not(.cfg-near){display:none}
}
.cfg-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:min(56vw,500px);margin:1.25rem auto 0}
.cfg-meta{margin:0;display:flex;align-items:center;gap:.6rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);min-width:0}
.cfg-counter{font-weight:700;color:var(--ink);white-space:nowrap}
.cfg-caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cfg-arrows{display:flex;gap:.5rem;flex:none}
.cfg-prev,.cfg-next{width:30px;height:30px;border:0;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s}
.cfg-prev:hover,.cfg-next:hover{color:var(--ink)}
.s-account__empty{color:var(--muted);margin:0}
.s-account__empty a{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.s-account__row{display:flex;align-items:center;gap:1.25rem;margin-top:.5rem}
.s-account__minilink{font-size:.9rem;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.s-account__logout{background:none;border:1.5px solid var(--line);border-radius:999px;padding:.5rem 1.2rem;font:inherit;font-size:.875rem;font-weight:600;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}
.s-account__logout:hover{color:#bb1533;border-color:#bb1533}
@media(max-width:560px){.s-account__form-grid{grid-template-columns:1fr}}
html.theme-dark .s-account__card{background:#1d1813}
html.theme-dark .s-account__ico{background:#241e18}
html.theme-dark .s-account__panel{background:#1d1813}
html.theme-dark .s-account__form-grid input{background:#1d1813}
.wishlist-empty{color:var(--muted);text-align:center;padding:2.5rem 0}

/* ===== "Popular right now" section ===== */
.popular{margin:2.75rem 0}
/* Full-width coloured background variant; inner content stays container-width.
   When followed by an accent Accessories band they butt together into one block. */
.popular--accent{width:100vw;margin-left:calc(50% - 50vw);margin-bottom:0;background:linear-gradient(to bottom,#fff,var(--popular-accent,#E89C4B));padding:2.75rem 0 1.5rem}
/* Match .container exactly (max-width 1100 + 1rem side padding, border-box) so
   the products inside the coloured band line up with the rest of the page. */
.popular--accent .popular-inner{max-width:1100px;margin:0 auto;padding:0 1rem}
/* doubled class beats the later `.accessories{margin:2.75rem 0}` on specificity,
   so the top margin really is removed and the band joins the Popular one */
.accessories.accessories--accent{width:100vw;margin-top:0;margin-left:calc(50% - 50vw);background:var(--popular-accent,#E89C4B);padding:.5rem 1rem 2.75rem}
.accessories.accessories--accent .accessories-inner{max-width:1100px;margin:0 auto}
.section-head{margin-bottom:1rem}
.section-kicker{display:block;width:42px;height:3px;background:var(--ink);margin-bottom:.6rem}
.section-kicker.home-kicker {margin-top:.6rem;background: #975E16;}
.section-head h2{font-size:1.7rem;margin:0;font-weight:800;letter-spacing:-.01em}
.line-tag{display:inline-block;background:var(--ink);color:#fff;font-weight:700;padding:.5rem 1.1rem;border-radius:999px;font-size:1rem;margin-bottom:1.25rem}
.pcards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;padding: 0 0 20px;}
@media(min-width:640px){.pcards{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.pcards{grid-template-columns:repeat(4,1fr)}}
.pcard{display:flex;flex-direction:column;height:100%}
.pcard form,.pcard>.pcard-add{margin-top:auto}
.pcard form .pcard-add{width:100%}
.pcard-media{position:relative;display:block;background:#f1efec;border-radius:18px;overflow:hidden;aspect-ratio:1/1}
.pcard-media img{width:100%;height:100%;object-fit:contain;display:block;mix-blend-mode:multiply}
.pcard-imglink{display:block;width:100%;height:100%}
.pcard-top{position:absolute;top:.6rem;right:.7rem;display:flex;align-items:center;gap:.5rem}
.pcard-rating{display:flex;align-items:center;gap:.3rem;font-weight:700;font-size:.95rem;color:var(--ink)}
.wish-btn{background:none;border:0;padding:0;cursor:pointer;color:var(--ink);display:flex;line-height:0}
.wish-btn svg{transition:fill .15s,stroke .15s}
.wish-btn.is-saved svg{fill:var(--accent);stroke:var(--accent)}
.pcard-soldout{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.65);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink)}
.pcard-row{display:flex;justify-content:space-between;align-items:baseline;gap:.31rem;margin:.7rem 0 .6rem}
/* Mobile: the title gets the full card width and the price drops beneath it.
   Side by side, a long name like "Cameroon Toghu Bomber Puffer Jacket" is
   squeezed into a narrow column by the nowrap price. */
@media(max-width:759px){
  .pcard-row{flex-direction:column;align-items:stretch;gap:.25rem}
  .pcard-title{width:100%}
}
/* Fluid sizes so the title + price fit on narrow mobile cards (capped at the desktop size) */
.pcard-title{font-size:clamp(.8rem,2.5vw,1rem);color:var(--ink);text-align: left;}
.pcard-price{font-weight:600;font-size:clamp(.82rem,2.6vw,1.05rem);white-space:nowrap;color:#bb1533;text-align:left}
.pcard-add{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:#fff;color:var(--ink);border:1.5px solid var(--line);border-radius:999px;padding:10px 8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.pcard-add:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.pcard-add:disabled{opacity:.5;cursor:not-allowed}
/* min-height keeps the slot occupying a full line even when empty (nothing sold
   yet), so the Add To Cart buttons stay on one baseline across the whole grid */
.pcard-sold{text-align:center;color:var(--muted);font-size:.8rem;margin-top:.5rem;min-height:1.5em}

/* ===== Accessories grid (belongs to a line) ===== */
/* .accessories{margin:2.75rem 0} */
/* shared inset for both the classic and traditional accessories grids */
.accessories .accessories-inner, .cat-section .accessories-inner{padding:0 clamp(1rem,8vw,100px);margin-bottom: 50px;}
.section-head--center{text-align:center;margin-bottom:1.5rem}
.section-head--center .section-kicker{margin-left:auto;margin-right:auto}
/* Match the product card grid so tiles render at the same size as .pcard-media */
.acc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
@media(min-width:640px){.acc-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.acc-grid{grid-template-columns:repeat(4,1fr)}}
.acc-tile{position:relative;display:block;border-radius:18px;overflow:hidden;aspect-ratio:1/1;background:linear-gradient(135deg,#e6e0d7,#cfc6b8)}
.acc-tile img{width:100%;height:100%;object-fit:cover;display:block}
/* Fluid size + em padding so long labels fit inside small mobile tiles;
   capped to the tile width with an ellipsis fallback on the tightest screens */
.acc-label{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);max-width:calc(100% - .8rem);background:#fff;color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(.6rem,2.2vw,.9rem);padding:.5em .85em;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;box-shadow:0 3px 12px rgba(0,0,0,.14)}
.active-filter{font-size:.9rem;color:var(--muted);margin:0 0 1rem}
.active-filter a{color:var(--accent);margin-left:.5rem}

/* ===== Collection (line) page hero ===== */
.collection-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);min-height:280px;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:2rem;background:linear-gradient(135deg,#cdbfae,#8a7c6a)}
.collection-hero.is-traditional{background:linear-gradient(135deg,#5a3d24,#2c1c10)}
.collection-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.collection-hero.is-traditional .collection-hero-bg{object-position:center}
.collection-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,0) 60%)}
.collection-hero-inner{position:relative;z-index:1;max-width:1100px;width:100%;margin:0 auto;padding:2rem 1.25rem;color:#fff}
.collection-hero-inner h1{font-size:2.2rem;margin:0;line-height:1.1}
.collection-hero-inner p{margin:.5rem 0 0;font-size:1.05rem;max-width:42ch;opacity:.95}
@media(min-width:768px){
  .collection-hero{min-height:440px}
  .collection-hero-inner{padding:2.5rem 1.25rem}
  .collection-hero-inner h1{font-size:3rem}
}
/* ===== Footer — dark branded band ===== */
.site-footer{background:var(--ink);color:rgba(255,255,255,.62);font-size:.9rem;padding:3.5rem 0 2rem}
.footer-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:2.5rem}
.footer-about{max-width:33ch}
.footer-about strong{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:700;font-size:1.9rem;color:#fff;display:block;line-height:1}
.footer-about p{margin:.9rem 0 0;line-height:1.6;color:rgba(255,255,255,.55)}
.footer-socials{display:flex;gap:.5rem;margin-top:1.15rem}
.footer-social{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:rgba(255,255,255,.65);transition:color .15s,border-color .15s,background .15s}
.footer-social:hover{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.06)}
.footer-logo{display:block;height:100px;width:auto}
@media(max-width:759px){.footer-logo{height:60px}}
.footer-slogan{color:#fff;max-width:260px;font-weight: 200;}
.footer-col h4{margin:0 0 .9rem;color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin:.5rem 0}
.footer-col a{color:rgba(255,255,255,.62);transition:color .15s}
.footer-col a:hover{color:var(--accent)}
.footer-payments{max-width:1100px;margin:2.5rem auto 0;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.pay-badge{display:inline-flex;align-items:center;justify-content:center;height:26px;min-width:42px;padding:0 8px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:5px;box-shadow:0 1px 2px rgba(0,0,0,.18)}
.pay-badge svg{height:15px;width:auto;display:block}
.footer-bottom{max-width:1100px;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-copy{margin:0;color:rgba(255,255,255,.5);font-size:.82rem}
.footer-legal{display:flex;gap:1.3rem;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.6);font-size:.82rem;transition:color .15s}
.footer-legal a:hover{color:#fff}
.footer-legal a.is-highlight{color:var(--accent)}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;gap:1.75rem}.footer-bottom{flex-direction:column;align-items:flex-start}}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.7rem 1.4rem;border:0;border-radius:6px;cursor:pointer;font-size:1rem}
.btn:disabled{opacity:.4;cursor:not-allowed}
.hero{text-align:center;padding:3rem 0}
.hero h1{font-size:2.4rem;margin:0 0 .5rem}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 2rem}
.subfilters{margin-top:-1rem;font-size:.8rem}
.subfilters a{padding:.25rem .65rem}
.filters a{padding:.35rem .8rem;border:1px solid var(--line);border-radius:999px;font-size:.85rem;background:#fff}
.filters a.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}
/* ===== Product detail ===== */
.breadcrumb{font-size:.78rem;color:var(--muted);margin-bottom:.6rem}
.breadcrumb a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.breadcrumb a:hover{color:var(--ink)}
.product{display:grid;grid-template-columns:1fr;gap:1.4rem}
.product-stage{position:relative}
.product-main{width:100%;aspect-ratio:4/5;max-height:58vh;object-fit:contain;padding:3%;border-radius:12px;background:#fff;display:block}
.product-noimg{background:linear-gradient(135deg,#e7e0d6,#cbc0b2)}
/* prev / next arrows over the main image */
.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.gallery-nav:hover{background:#fff}
.gallery-prev{left:.75rem}
.gallery-next{right:.75rem}
/* mobile relies on swipe instead of arrows */
@media(max-width:759px){.gallery-nav{display:none}}
.product-thumbs{display:flex;gap:.4rem;margin-top:.4rem;flex-wrap:wrap}
.product-thumb{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;line-height:0}
.product-thumb.is-active{border-color:var(--ink)}
.product-thumb img{width:46px;height:58px;object-fit:contain;background:#fff;display:block}
.product-eyebrow{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.25rem}
a.product-eyebrow{text-decoration:underline;text-underline-offset:2px}
a.product-eyebrow:hover,a.product-eyebrow:focus-visible{color:var(--ink)}
.product-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.product-title-row h1{flex:1}
.wish-btn--lg{flex:none;width:42px;height:42px;border:1.5px solid var(--line);border-radius:50%;align-items:center;justify-content:center;color:var(--ink);background:#fff}
.wish-btn--lg:hover{border-color:var(--ink)}
.product-info h1{font-size:1.5rem;margin:0 0 .4rem;line-height:1.15}
.product-info .price{font-size:1.2rem;font-weight:600;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;color:#bb1533}
.product-info .price s{color:var(--muted);font-weight:400}
.sale-badge{background:var(--accent);color:#fff;font-size:.8rem;font-weight:700;padding:.15rem .5rem;border-radius:5px}
.stock-indicator{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;margin:.5rem 0 0}
.stock-dot{width:9px;height:9px;border-radius:50%;background:currentColor;display:inline-block}
.stock-in{color:#2e7d52}
.stock-low{color:#b8862e}
.stock-out{color:#b03636}
.product-desc{margin:.8rem 0 0;color:#4a443c;font-size:.92rem;line-height:1.5}
.add-to-cart{display:contents}
.picker-row{margin-top:1.5rem}
.size-picker,.color-picker{border:0;padding:0;margin:0 0 .8rem}
.size-picker legend,.color-picker legend{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.35rem;padding:0}
.size-chip{display:inline-block;margin:0 .35rem .35rem 0}
.size-chip input{position:absolute;opacity:0;width:0;height:0}
.size-chip span{display:inline-block;min-width:40px;text-align:center;padding:.4rem .6rem;border:1.5px solid var(--line);border-radius:8px;cursor:pointer;font-size:.9rem}
.size-chip input:checked + span{border-color:var(--ink);background:var(--ink);color:#fff}
.qty-input{width:72px;padding:.7rem;border:1.5px solid var(--line);border-radius:8px;font-size:1rem;text-align:center;color:var(--ink);-moz-appearance:textfield;appearance:textfield}
.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* − / + quantity stepper */
.qty-stepper{display:inline-flex;align-items:center;gap:.3rem;margin:0 0 .7rem}
.qty-btn{width:36px;height:36px;border:0;background:var(--ink);color:#fff;border-radius:9px;font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.qty-btn:active{transform:scale(.95)}
.qty-stepper .qty-input{width:52px;border:0;background:none;padding:.4rem;font-weight:700}
/* keep Add to Cart + Buy Now + wishlist on one line; buttons shrink to fit */
.buy-row{display:flex;gap:.6rem;align-items:center;flex-wrap:nowrap;position:sticky;bottom:0;z-index:5;background:var(--bg);padding:.6rem 0}
.buy-row .btn{flex:1 1 0;min-width:0;max-width:280px;white-space:nowrap;padding:.7rem 1rem}
.btn-outline{background:#fff;color:var(--ink);border:1.5px solid var(--line);border-radius:999px;padding:.9rem 1rem;font-weight:600;white-space:nowrap;transition:border-color .15s}
.btn-outline:hover{border-color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:.9rem 1rem;font-weight:600;white-space:nowrap;transition:opacity .15s}
.btn-dark:hover{opacity:.9}
.product-meta{list-style:none;padding:0;margin:1rem 0 0;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.7rem}
.product-meta li{margin:.25rem 0}
.product-meta span{display:inline-block;min-width:80px;color:var(--ink)}
/* Delivery options panel */
.delivery{margin:1rem 0 0;border:1px solid var(--line);border-radius:14px;padding:.75rem 1rem;background:#fff}
.delivery-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:1rem;cursor:pointer;list-style:none}
.delivery-head::-webkit-details-marker{display:none}
.delivery-chevron{transition:transform .2s;transform:rotate(180deg)}
.delivery[open] .delivery-chevron{transform:rotate(0)}
.delivery-grid{display:grid;grid-template-columns:1fr;gap:.7rem 1.5rem;margin-top:.75rem}
.delivery-item{display:flex;align-items:center;gap:.75rem}
.delivery-ico{flex:none;width:36px;height:36px;border-radius:50%;background:#f1ece5;color:var(--ink);display:flex;align-items:center;justify-content:center}
.delivery-text{display:flex;flex-direction:column;line-height:1.3}
.delivery-label{font-size:.78rem;color:var(--muted)}
.delivery-value{font-weight:600;color:var(--ink)}
@media(min-width:520px){.delivery-grid{grid-template-columns:1fr 1fr}}
.related{margin:3.5rem 0}
.related .pcards{padding-bottom:0}
.related-shop-link{text-align:center;margin:1.75rem 0 0}
@media(min-width:760px){
  .product{grid-template-columns:1.1fr 1fr;gap:2rem;align-items:start}
  .product-info h1{font-size:1.85rem}
  /* Pin the gallery while the (taller) info column scrolls; releases once info is fully scrolled. */
  .product-gallery{position:sticky;top:90px;align-self:start}
}
.notice{background:#fff4e6;border:1px solid #f0c98a;border-radius:8px;padding:.8rem 1rem;font-size:.9rem}
.cart-list{margin:1.5rem 0;border-top:1px solid var(--line)}
.cart-row{display:grid;grid-template-columns:64px 1fr auto auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.cart-thumb img{width:64px;height:80px;object-fit:cover;border-radius:6px;background:#fff}
.cart-info{display:flex;flex-direction:column;gap:.15rem}
.cart-title{font-weight:600}
.cart-size,.cart-unit{font-size:.85rem;color:var(--muted)}
.cart-qty input{width:60px;padding:.4rem;border:1px solid var(--line);border-radius:6px;font-size:1rem;text-align:center}
.cart-sub{font-weight:600;min-width:90px;text-align:right}
.cart-remove button{background:none;border:0;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer}
.cart-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem}
.cart-total{font-size:1.3rem}
.cart-note{color:var(--muted);font-size:.85rem;margin-top:.75rem}
@media(max-width:600px){
  .btn {font-size: 14px;}
  .cart-row{grid-template-columns:56px 1fr auto;grid-template-areas:"thumb info sub" "thumb qty remove";row-gap:.5rem}
  .cart-thumb{grid-area:thumb}.cart-info{grid-area:info}.cart-sub{grid-area:sub}.cart-qty{grid-area:qty}.cart-remove{grid-area:remove;justify-self:end}
}
/* flexible layout builder */
.layout-row.has-bg{background:#f1ece5}
.layout-row.is-full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:1.25rem;padding-right:1.25rem}
.pt-none{padding-top:0}.pt-small{padding-top:2rem}.pt-large{padding-top:4rem}
.pb-none{padding-bottom:0}.pb-small{padding-bottom:2rem}.pb-large{padding-bottom:4rem}
.layout-cols{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;max-width:1100px;margin:0 auto}
.layout-col{grid-column:span var(--span,12)}
.layout-col img{max-width:100%;height:auto;
  /* width:45%; clip-path:polygon(0 0,90% 0,30% 100%,0 100%) */
}
@media(max-width:720px){.layout-col{grid-column:span 12}}

/* ===== Features banner block (full-bleed) ===== */
.features{width:100vw;margin-left:calc(50% - 50vw);padding:3rem 1.25rem}
.features--tint{background:#f7ece4;}
.features--cream{background:var(--bg)}
.features--dark{background:var(--ink);color:#fff}
.features-inner{margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.5rem;text-align:center}
.feature-ico{display:inline-flex;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;background:#fff;color:var(--accent);margin-bottom:1rem;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.features--dark .feature-ico{background:rgba(255,255,255,.1)}
.feature-title{font-size:1.35rem;margin:0 0 .4rem;font-weight:600}
.feature-text{margin:0 auto;max-width:30ch;color:var(--muted)}
.features--dark .feature-text{color:rgba(255,255,255,.72)}
@media(min-width:760px){
  .features{padding:4rem 1.25rem}
  .features-inner{grid-template-columns:repeat(4,1fr);
  /* gap:2rem */
  }
}

/* ===== Category tiles block ===== */
.cat-section{margin:2.5rem 0}
/* Each band is a flex row of two independent cards */
.cat-bands{display:flex;flex-direction:column;gap:1rem}
.cat-hero{display:flex;gap:1rem}
/* Each tile is its own card — white bg shows where the image isn't */
.cat-tile{flex:1;position:relative;aspect-ratio:5/3;border-radius:16px;overflow:hidden;background:#fff;display:block}
/* Lone trailing tile spans full width */
.cat-hero.is-single .cat-tile--a{flex:0 0 100%}
.cat-bg{position:absolute;max-width:100%;height:auto;width:60%;transition:clip-path .5s ease,transform .5s ease}
.cat-tile--a .cat-bg{left:20%;clip-path:polygon(0 0,120% 0,50% 100%,0 100%)}
.cat-tile--b .cat-bg{left:20%;right:0;clip-path: polygon(0 0, 100% 0, 30% 145%, 0 100%);}
.cat-tile:hover .cat-bg{clip-path:none;transform:translateX(-10%) scale(1.04)}
/* Gradient overlay clipped to the same image area */
.cat-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.48),rgba(0,0,0,0) 52%);background: linear-gradient(to right, rgba(0, 0, 0, 0.48), rgba(0, 0, 0, 0) 100%);pointer-events:none}
/* .cat-tile--a::after{clip-path:polygon(0 0,62% 0,53% 100%,0 100%)} */
.cat-hero.is-single .cat-tile--a::after{clip-path:none}
.cat-hero.is-single .cat-tile--a .cat-bg{clip-path:none;width:100%;height:100%;top:0;transform:none;object-fit:cover}
.cat-label{position:absolute;left:1rem;bottom:1rem;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}
.cat-tile--b .cat-label{left:1.8rem}
.cat-line{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.85);padding-left:.1rem;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.cat-pill{background:#16130f;color:#fff;padding:.5em .9em;border-radius:999px;font-weight:700;font-size:clamp(.85rem,2.8vw,1.05rem);line-height:1;white-space:nowrap;border:1.5px solid rgba(255,255,255,.5)}

/* Mobile: tiles stack vertically within each band */
@media(max-width:759px){
  .cat-hero{flex-direction:column}
}

/* Desktop: wider tiles, roomier labels */
@media(min-width:760px){
  .cat-tile{aspect-ratio:5/3.2}
  .cat-label{bottom:1.8rem}
  .cat-tile--a .cat-label{left:1.8rem}
  .cat-pill{font-size:clamp(.9rem,1.5vw,1.1rem)}
}

/* ===== Collection text-only hero (no image) ===== */
.coll-text-hero{padding:2.5rem 0 0}
.coll-text-hero--modern{width:100vw;margin-left:calc(50% - 50vw);background:linear-gradient(to right,#FFCCD5,#fff);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}
.coll-text-hero--traditional{width:100vw;margin-left:calc(50% - 50vw);background:linear-gradient(to right,#E89C4B,#fff);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}
.coll-text-hero--shop{width:100vw;margin-left:calc(50% - 50vw);background:linear-gradient(to right,#FFCCD5,#fff);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%); height: 170px;}

/* Add-to-cart animation (global) */
@keyframes spin{to{transform:rotate(360deg)}}
.pcard-spinner{animation:spin .7s linear infinite;display:block}
.pcard-add--added{background:var(--ink);color:#fff;border-color:var(--ink);gap:.4rem}
.coll-text-hero__title{font-size:1.7rem;font-weight:800;margin:0 0 1rem;line-height:1.1}
html.theme-dark .coll-text-hero__title{color:#000}
html.theme-dark .section-kicker{background:#000}
.coll-text-hero .line-tag{font-size:1rem}
@media(min-width:760px){.coll-text-hero .line-tag{font-size:1.5rem}}

/* ===== Collection 2-column layout ===== */
.coll-layout{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start;padding-top:1.5rem}
@media(min-width:900px){.coll-layout{grid-template-columns:220px 1fr}}

/* Sidebar */
.coll-sidebar{display:flex;flex-direction:column}

/* Category chips row in main column */
/* Audience is the top-level cut, so it reads heavier than the garment-type
   chips below it and is separated by a rule */
.cf-chips--audience{margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.cf-chips--audience .cf-chip{font-weight:600;padding:.42rem .95rem;font-size:.85rem}
.cf-chips--category{margin-bottom:.75rem}

/* Filter sections */
.cf-section{padding:0 0 1.1rem;border-bottom:1px solid var(--line)}
.cf-section:last-of-type{border-bottom:0}
.cf-heading{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .7rem}

/* Chips (type / size / colour) */
.cf-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.cf-chip{display:inline-block;padding:.34rem .7rem;border:1.5px solid var(--line);border-radius:999px;font-size:.8rem;color:var(--ink);background:#fff;white-space:nowrap;transition:border-color .15s,background .15s,color .15s;cursor:pointer;font-family:inherit;line-height:inherit}
.cf-chip:hover{border-color:var(--ink)}
.cf-chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.cf-chips--size .cf-chip{min-width:40px;text-align:center;font-size:.75rem;font-weight:700}

/* Price slider */
.cf-price{display:flex;flex-direction:column;gap:.65rem}
.cf-range-wrap{position:relative;height:20px;display:flex;align-items:center}
.cf-range-track{position:absolute;left:0;right:0;height:4px;background:var(--line);border-radius:2px}
.cf-range-fill{position:absolute;left:0;top:0;height:100%;background:var(--ink);border-radius:2px;pointer-events:none}
.cf-range-input{position:absolute;left:0;right:0;width:100%;height:4px;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0}
.cf-range-input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--ink);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer;margin-top:-7px}
.cf-range-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ink);border:2px solid #fff;cursor:pointer}
.cf-price-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}
.cf-price-labels strong{color:var(--ink);font-weight:700}
.cf-price-actions{display:flex;justify-content:space-between;align-items:center}
.cf-price-apply{background:var(--ink);color:#fff;border:0;border-radius:6px;padding:.42rem .95rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .15s}
.cf-price-apply:hover{opacity:.85}
.cf-price-clear{font-size:.78rem;color:var(--muted);text-decoration:underline}
.u-hidden{visibility:hidden;pointer-events:none}

/* Main column */
.coll-main{min-width:0;padding-bottom: 50px;text-align: center;}
.coll-main-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.coll-count{font-size:.82rem;color:var(--muted);margin:0}
.coll-clear-all{font-size:.82rem;color:var(--accent)}
.coll-empty{color:var(--muted);padding:2rem 0}

/* On mobile, sidebar sits above the grid */
@media(max-width:899px){
  .coll-sidebar{order:-1}
}

/* ===== Content pages (impressum, privacy, shipping & returns, contact) ===== */
.page{max-width:760px;margin:0 auto;padding:3rem 1.5rem 4rem}
.page h1{font-weight:800;font-size:2.2rem;line-height:1.1;letter-spacing:-.01em;margin:0 0 1.25rem}
.page h1::before{content:"";display:block;width:42px;height:3px;background:var(--ink);margin:0 0 .9rem}
.page h2{font-size:1.3rem;font-weight:700;letter-spacing:-.005em;margin:2.2rem 0 .6rem}
.page h3{font-size:1rem;font-weight:700;margin:1.6rem 0 .5rem}
.page p,.page li{line-height:1.7}
.page a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.page a:hover{color:var(--ink)}
.page ul{padding-left:1.2rem;margin:.6rem 0}
.page li{margin:.35rem 0}
.page-intro{font-size:1.1rem;line-height:1.6;color:var(--muted);margin:0 0 2rem;max-width:62ch}

/* Contact */
.page--contact{max-width:960px}
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:2.5rem;align-items:start;margin-top:1.5rem}
.contact-details h2,.contact-form-wrap h2{margin:0 0 1rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.contact-list{list-style:none;margin:0;padding:0}
.contact-list li{display:flex;flex-direction:column;gap:.15rem;margin:0 0 1.1rem}
.contact-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.contact-list a{color:var(--ink);text-decoration:none;font-size:1.05rem}
.contact-list a:hover{color:var(--accent)}
.contact-details address{font-style:normal;line-height:1.6}

.contact-form{display:flex;flex-direction:column;gap:1rem}
.cform-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cform-field{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;letter-spacing:.01em}
.cform-opt{font-weight:400;color:var(--muted);text-transform:none}
.contact-form input,.contact-form textarea{font:inherit;font-weight:400;padding:.7rem .8rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box}
.contact-form textarea{resize:vertical;min-height:140px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--ink)}
.contact-form .btn{align-self:flex-start;margin-top:.25rem}
.cform-hp{display:none!important}

.form-note{padding:.8rem 1rem;border-radius:8px;font-size:.9rem;margin:0 0 1.2rem}
.form-note--ok{background:#eaf5ef;color:#1c5e44;border:1px solid #bfe3d1}
.form-note--err{background:#fbece9;color:#9a3526;border:1px solid #f1c9c0}
.form-note a{color:inherit}

/* FAQ accordion */
.faq{margin-top:3.5rem}
.faq h2{font-size:1.7rem;font-weight:800;letter-spacing:-.01em;margin:0 0 1.25rem}
.faq h2::before{content:"";display:block;width:42px;height:3px;background:var(--ink);margin:0 0 .6rem}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;padding:1.05rem 2rem 1.05rem 0;position:relative;font-weight:600;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);font-size:1.3rem;font-weight:400;color:var(--accent);line-height:1}
.faq-item[open] summary::after{content:"\2212"}
.faq-answer{padding:0 0 1.15rem;line-height:1.7;max-width:64ch}
.faq-answer p{margin:.2rem 0 .6rem}

@media(max-width:759px){
  .contact-grid{grid-template-columns:1fr;gap:2rem}
  .cform-row{grid-template-columns:1fr}
  .page h1{font-size:1.7rem}
}

html.theme-dark .contact-form input,html.theme-dark .contact-form textarea{background:#1d1813}

/* ===== Dark theme — contrast fixes ===== */
/* The base dark theme only flips the colour variables. Many components hardcode
   #fff backgrounds or use var(--ink) as a fill, which invert badly in dark mode.
   These rules restore legible contrast. Surfaces: #1d1813 (card), #241e18 (inset);
   #16130f = dark text for the now-light filled buttons. */

/* Dark theme: reverse the announcement bar (light band, dark text) */
html.theme-dark .announcement{background:var(--ink);color:#16130f}

/* Footer bg is var(--ink) → flips light; keep dark so the white text reads */
html.theme-dark .site-footer{background:#1d1813}

/* Payment badges are white chips; in the dark cart summary their text inherits
   light ink and disappears — force dark text (footer badges are SVGs, unaffected) */
html.theme-dark .pay-badge{color:#16130f}

/* Quick-menu close (X) — accent colour in dark mode */
html.theme-dark .qm-close{color:var(--accent)}

/* Full-bleed bands that hardcode light backgrounds → dark surface */
html.theme-dark .features--cream,
html.theme-dark .features--dark,
html.theme-dark .layout-row.has-bg{background:#1d1813}
html.theme-dark .features--tint{background:#2e2620}
html.theme-dark .feature-ico,
html.theme-dark .delivery-ico{background:#241e18}

/* Collection heroes + accent bands use light gradients → darken, text stays light */
html.theme-dark .coll-text-hero--modern{background:linear-gradient(to right,#3a2630,var(--bg))}
html.theme-dark .coll-text-hero--traditional{background:linear-gradient(to right,#3d2c18,var(--bg))}
html.theme-dark .popular--accent{background:linear-gradient(to bottom,var(--bg),#2a2018)}
html.theme-dark .accessories.accessories--accent{background:#2a2018}

/* White "outline" surfaces (white bg + ink text) → dark surface; light text reads */
html.theme-dark .cf-chip,
html.theme-dark .pcard-add,
html.theme-dark .btn-outline,
html.theme-dark .wish-btn--lg,
html.theme-dark .delivery,
html.theme-dark .filters a{background:#1d1813}

/* Filled pills/buttons (var(--ink) bg + #fff text): bg flips light, so darken text */
html.theme-dark .line-tag,
html.theme-dark .qm-link.is-bold,
html.theme-dark .qm-login,
html.theme-dark .btn-dark,
html.theme-dark .qty-btn,
html.theme-dark .s-account__save,
html.theme-dark .cf-price-apply,
html.theme-dark .filters a.is-active,
html.theme-dark .size-chip input:checked + span{color:#16130f}

/* Active filter chip keeps the light "selected" fill, with dark text */
html.theme-dark .cf-chip.is-active{background:var(--ink);color:#16130f}

/* Hover / added states that set #fff on a now-light fill */
html.theme-dark .pcard-add:hover:not(:disabled),
html.theme-dark .pcard-add--added{background:var(--ink);color:#16130f}

/* Pills/overlays that keep a light background → force dark text */
html.theme-dark .acc-label,
html.theme-dark .pcard-soldout,
html.theme-dark .gallery-nav{color:#16130f}

/* Hardcoded dark text that would vanish on the dark page */
html.theme-dark .product-desc{color:#c9bfb2}

/* Light status notices → readable dark text on their light backgrounds */
html.theme-dark .notice{color:#5a4a30}
html.theme-dark .notice--ok{color:#1c5e44}

/* ===== "Coming soon" placeholder (e.g. Elegant wear not yet launched) ===== */
.coming-soon{max-width:680px;margin:1.5rem auto 3rem;padding:2.5rem 1.5rem;text-align:center}
.coming-soon .section-kicker{margin-left:auto;margin-right:auto}
.coming-soon__title{font-size:1.9rem;font-weight:800;letter-spacing:-.01em;margin:0 0 .6rem}
.coming-soon__text{max-width:46ch;margin:0 auto 1.5rem;color:var(--muted);font-size:1.05rem;line-height:1.6}
.coming-soon .btn{margin:0 auto}
/* Inline variant inside the home "Popular" shelf */
.coming-soon--inline{margin:1rem 0 0;padding:2.75rem 1rem;border:1.5px dashed var(--line);border-radius:18px}
.coming-soon--inline .coming-soon__title{font-size:1.5rem}
/* Shop page: hide the filter sidebar (and go full width) while a line is "coming soon" */
.coll-layout.coll-layout--soon{grid-template-columns:1fr}
.coll-layout--soon .coll-sidebar{display:none}

/* quickmenu language switcher (top group) */
.qm-group--lang .qm-lang{margin-top:0}
.qm-lang a{display:inline-flex;align-items:center;gap:.45rem}
.qm-flag{flex:0 0 auto;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.qm-lang a:not(.is-active) .qm-flag{opacity:.65;filter:saturate(.75)}
.qm-lang a:hover .qm-flag{opacity:1;filter:none}

/* Dark theme: white slogan on all pages */
html.theme-dark .logo-slogan{color:#fff}
/* Home page only, dark theme: white kickers */
html.theme-dark .template-home .section-kicker,
html.theme-dark .template-home .section-kicker.home-kicker{background:#fff}

/* ── Back-in-stock request modal ─────────────────────────────── */
.req-overlay{position:fixed;inset:0;z-index:120;background:rgba(18,15,12,.55);opacity:0;transition:opacity .25s ease}
.req-overlay.is-visible{opacity:1}
.req-modal{position:fixed;inset:0;z-index:121;display:flex;align-items:center;justify-content:center;padding:1.25rem;opacity:0;pointer-events:none;transition:opacity .2s ease}
.req-modal.is-open{opacity:1;pointer-events:auto}
.req-dialog{position:relative;width:100%;max-width:460px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:1.25rem 1.75rem 1.5rem;box-shadow:0 24px 60px rgba(0,0,0,.28);transform:translateY(12px) scale(.98);transition:transform .2s ease;max-height:90vh;overflow:auto}
.req-modal.is-open .req-dialog{transform:none}
.req-close{position:absolute;top:.85rem;right:.85rem;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.55;transition:opacity .15s,background .15s}
.req-close:hover{opacity:1;background:rgba(0,0,0,.06)}
.req-title{margin:0 0 .25rem;font-size:1.15rem}
.req-intro{margin:0 0 .8rem;color:var(--muted);font-size:.85rem;line-height:1.45}
.req-form{display:flex;flex-direction:column;gap:.55rem}
.req-field{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;font-weight:600;letter-spacing:.01em}
.req-field input,.req-field select{font:inherit;font-weight:400;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box}
.req-field input:focus,.req-field select:focus{outline:none;border-color:var(--ink)}
.req-toggle{margin:.15rem 0 .1rem}
.req-switch{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.85rem;font-weight:600}
.req-switch input{position:absolute;opacity:0;width:0;height:0}
.req-switch-track{position:relative;flex:0 0 auto;width:42px;height:24px;border-radius:999px;background:var(--line);transition:background .2s ease}
.req-switch-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s ease}
.req-switch input:checked + .req-switch-track{background:var(--accent)}
.req-switch input:checked + .req-switch-track .req-switch-thumb{transform:translateX(18px)}
.req-switch input:focus-visible + .req-switch-track{box-shadow:0 0 0 3px rgba(184,102,46,.35)}
.req-hint{margin:.3rem 0 0 3.2rem;font-size:.78rem;color:var(--muted)}
.req-actions{display:flex;gap:.6rem;margin-top:.3rem}
.req-actions .btn{flex:1;text-align:center;padding:.6rem 1rem;font-size:.95rem}
.req-hp{display:none}
html.theme-dark .req-field input,html.theme-dark .req-field select{background:#1d1813}
html.theme-dark .req-switch-thumb{background:#f3efe9}
html.theme-dark .req-close:hover{background:rgba(255,255,255,.08)}

/* Sold-out cards: Request button (replaces the disabled "Sold out" button) */
.pcard-add.pcard-request{border-color:var(--accent);color:var(--accent)}
.pcard-add.pcard-request:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
html.theme-dark .pcard-add.pcard-request{background:#1d1813;border-color:var(--accent);color:var(--accent)}
html.theme-dark .pcard-add.pcard-request:hover{background:var(--accent);color:#16130f}
.req-product{margin:-.05rem 0 .65rem;font-weight:600;font-size:.9rem;color:var(--accent)}

/* ── Request modal: extra fields, success panel, requested state ─────────── */
.req-row{display:flex;gap:.9rem}
.req-row .req-field{flex:1;margin:0}
.req-field textarea{font:inherit;font-weight:400;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box;resize:vertical;min-height:44px}
.req-field textarea:focus{outline:none;border-color:var(--ink)}
html.theme-dark .req-field textarea{background:#1d1813}
.req-note{margin:-.1rem 0 .05rem;font-size:.8rem;color:var(--muted)}
.req-note strong{color:var(--ink)}
.req-opt{font-weight:400;color:var(--muted);font-size:.8rem}
.req-error{margin:0}
.req-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.55rem;padding:1.25rem 0 .5rem}
.req-success-ico{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:rgba(184,102,46,.14);color:var(--accent)}
.req-success-title{margin:.15rem 0 0;font-size:1.3rem}
.req-success-text{margin:0 0 .7rem;color:var(--muted);max-width:36ch;line-height:1.5}
.req-success .btn{min-width:150px}
/* "Requested" button state (shown after a successful request) */
.pcard-add.is-requested{background:transparent;border-color:var(--line);color:var(--muted);cursor:pointer;opacity:1}
.pcard-add.is-requested:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.is-requested{background:var(--line);border-color:var(--line);color:var(--muted);cursor:pointer;opacity:1}
.btn.is-requested:hover{color:var(--ink)}
.pcard-add.is-requested::before,.btn.is-requested::before{content:"✓ "}
.pcard-add.is-requested:hover::before,.btn.is-requested:hover::before{content:none}

/* Ensure the hidden attribute actually hides flex/block modal parts
   (success panel, form, size & phone fields) — author display rules above
   otherwise beat the UA [hidden] rule on specificity ties. */
.req-modal [hidden]{display:none!important}

/* "Can't find your size?" — opens the request modal from the PDP size picker */
.size-request{display:block;margin:.1rem 0 0;padding:0;background:none;border:0;cursor:pointer;font-family:inherit;font-size:.82rem;color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.size-request:hover{color:var(--ink)}
/* "Can't find your size?" + made-to-measure link share one row; tailored floats right */
.size-actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}
.size-actions .size-request{margin:0}
.size-actions .tailored-link{margin-left:auto}
/* Made-to-measure link on the product page (traditional wear only) */
.tailored-link{display:inline-flex;align-items:center;gap:.4rem;padding:0;background:none;border:0;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.tailored-link:hover{color:var(--ink)}

/* ── Sticky header condenses on scroll ──────────────────────────────── */
html,body{overflow-anchor:none}   /* stop scroll-anchoring from fighting the header resize (flicker) */
.site-header{transition:padding .28s ease, box-shadow .28s ease}
.site-header.is-sticky.is-scrolled{box-shadow:0 4px 16px rgba(0,0,0,.05)}
.logo img{transition:height .28s ease}
.logo img.logo--mobile{display:none}
.logo-slogan{overflow:hidden;transition:opacity .22s ease, max-height .3s ease, margin .28s ease, padding .28s ease}
.header-search input{transition:padding .28s ease, font-size .28s ease}

.site-header.is-scrolled{padding:.4rem 1rem}
.site-header.is-scrolled .header-bar{flex-wrap:nowrap;gap:.75rem}
/* collapse the slogan */
.site-header.is-scrolled .logo-slogan{opacity:0;max-height:0;margin:0;padding:0}
/* swap to the (smaller) mobile logo when one is set, else shrink the main logo */
.site-header.is-scrolled.has-mobile-logo .logo img.logo--light,
.site-header.is-scrolled.has-mobile-logo .logo img.logo--dark{display:none}
.site-header.is-scrolled.has-mobile-logo .logo img.logo--mobile{display:block;height:46px}
.site-header.is-scrolled:not(.has-mobile-logo) .logo img.logo--light,
.site-header.is-scrolled:not(.has-mobile-logo) .logo img.logo--dark{height:46px}
/* one line: logo · search · icons */
.site-header.is-scrolled .header-right{flex-direction:row;align-items:center;gap:1rem;flex:1}
.site-header.is-scrolled .header-search{order:1;flex:1;bottom:0;margin:0;width:auto}
.site-header.is-scrolled .header-search input{padding:.55rem 1rem .55rem 2.6rem;font-size:.95rem}
.site-header.is-scrolled .header-search .search-ico{left:.9rem}
.site-header.is-scrolled .header-search .search-ico svg{width:18px;height:18px}
.site-header.is-scrolled .header-icons{order:2;position:static;bottom:auto}
.site-header.is-scrolled .header-icons a,.site-header.is-scrolled .header-icons .icon-btn{left:0}
.site-header.is-scrolled .header-icons svg{width:22px;height:22px}
.site-header.is-scrolled .main-nav{max-height:0;opacity:0;margin-top:0}

/* Hide the slogan in header + footer (both use .logo-slogan) */
.logo-slogan{display:none}

/* Smooth the header height on desktop while the logo swaps to the compact mark */
@media (min-width:768px){
  .site-header.is-sticky .logo{overflow:hidden;height:130px;transition:height .3s ease}
  .site-header.is-sticky.is-scrolled .logo{height:46px}
}

/* Click the search → it animates out to full width. */
.header-bar{position:relative}
.header-search input{transition:box-shadow .2s ease}
.header-search:has(input:focus) input{box-shadow:0 3px 16px rgba(0,0,0,.08)}

/* Small screens: the full-width search covers the logo + header icons. */
@media (max-width:759px){
  .header-search:has(input:focus){
    position:absolute;
    top:0; left:0; right:0; bottom:0;
    z-index:40;
    margin:0;
    padding:.4rem 1rem;
    background:var(--bg);
    align-items:center;
    
    animation:search-takeover .3s ease;
  }
  .header-search:has(input:focus) input{width:100%;flex:1}
  html.theme-dark .header-search:has(input:focus){background:#1d1813}
  .header-search:has(input:focus) .search-ico{left:1.9rem}
}
@keyframes search-takeover{
  from{clip-path:inset(0 0 0 78%);opacity:.35}
  to{clip-path:inset(0 0 0 0);opacity:1}
}

/* Desktop: click the search → it grows to fill the width beside the logo. */
@media (min-width:760px){
  .site-header:not(.is-scrolled) .header-search{
    /* width:clamp(200px,22vw,300px); */
    transition:width .32s ease;}
  .site-header:not(.is-scrolled) .header-search:has(input:focus){width:100%}
}

/* Small screens: when the search takes over, hide the header icons so none peek out. */
@media (max-width:759px){
  .header-icons{transition:opacity .18s ease}
  .header-bar:has(.header-search input:focus) .header-icons{opacity:0;pointer-events:none}
}

/* ════════════════════════════════════════════════════════════════════════
   FIX — mobile: tapping the search while the header is condensed dragged the
   whole header off-screen to the left.

   Cause: `.site-header.is-scrolled .header-bar` is flex-wrap:nowrap, and on
   mobile `.header-right{display:contents}` hoists its children, so logo +
   search + icons all sit on one line. Flex items default to min-width:auto,
   so the row cannot shrink below its min-content — logo 120px + search ~221px
   (an <input> has ~20 characters of intrinsic width) + icons ~101px + gaps
   ≈ 466px against 358px of usable width at a 390px viewport. The excess spills
   out of the header and makes the *document* horizontally scrollable.
   Tapping the input then makes iOS scroll the field into view horizontally,
   and because position:sticky only sticks vertically the header pans away
   with the rest of the page.
   ════════════════════════════════════════════════════════════════════════ */

@media (max-width:759px){
  /* 1. let the condensed row actually shrink instead of overflowing */
  .site-header.is-scrolled .header-bar{gap:.5rem}
  .site-header.is-scrolled .logo,
  .site-header.is-scrolled .header-search,
  .site-header.is-scrolled .header-icons{min-width:0}

  /* the logo yields first when space is tight; object-fit keeps it undistorted
     while height stays pinned at 46px */
  .site-header.is-scrolled .logo{flex:0 1 auto;overflow:hidden}
  .site-header.is-scrolled.has-mobile-logo .logo img.logo--mobile{max-width:100%;object-fit:contain;object-position:left center}

  /* without min-width:0 the input keeps its ~20ch intrinsic width */
  .site-header.is-scrolled .header-search input{min-width:0}

  /* reclaim a little more room in the condensed bar */
  .site-header.is-scrolled .header-icons{gap:.8rem}
  .site-header.is-scrolled .filter-btn{padding:.3rem}
  .site-header.is-scrolled .filter-btn svg{width:22px;height:22px}

  /* the condensed input is too narrow for the placeholder — it just clips
     mid-word next to the magnifier. Hide it until the search is focused and
     takes over the bar. The aria-label on the input keeps it accessible. */
  .site-header.is-scrolled .header-search input::placeholder{opacity:0}
  .site-header.is-scrolled .header-search:has(input:focus) input::placeholder{opacity:1}

  /* The magnifier sat at 1.9rem in the condensed bar because an old patch
     (`.site-header.is-sticky.has-mobile-logo.is-scrolled.is-min .search-ico`)
     applied the focused-overlay offset to the unfocused state too. Removed —
     it now uses the .9rem that pairs with the input's 2.6rem left padding.
     The overlay offset is re-applied here at (0,4,0) so it still beats
     `.site-header.is-scrolled .header-search .search-ico`. */
  .site-header.is-scrolled .header-search:has(input:focus) .search-ico{left:1.9rem}
}

/* 2. Safety net: never let the page scroll sideways.
   `clip`, not `hidden` — overflow-x:hidden on <html> would turn it into a
   scroll container and break position:sticky on the header. */
html{overflow-x:clip}

/* 3. iOS Safari zooms the page whenever a focused input computes to under
   16px. The condensed header dropped the search to .95rem (15.2px), which is
   why this only ever happened after scrolling. */
@media (max-width:759px){
  .site-header.is-scrolled .header-search input{font-size:16px}
}

/* 4. The takeover overlay lost the cascade: the old `.header-search:focus-within`
   was (0,2,0) while `.site-header.is-scrolled .header-search` is (0,3,0), so the
   condensed rule was overriding width/margin/bottom on the focused form.
   Re-declared here with the header prefix to outrank it.

   Note the trigger is `:has(input:focus)`, not `:focus-within` — the filter
   button is an <a> inside the same form, so focusing it satisfied
   :focus-within and expanded the search on every filter click. `:has()`
   contributes the specificity of its argument, so these now compute one
   element higher than the figures quoted above. */
@media (max-width:759px){
  .site-header .header-search:has(input:focus){
    position:absolute;
    top:0; left:0; right:0; bottom:0;
    width:auto;
    margin:0;
    z-index:40;
  }
}

/* ===== Tailored for you — block ===== */
/* .tailored-block{width:100%}
.tailored-block__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.25rem,4vw,3rem);align-items:center;background:#f6f1ea;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.tailored-block__inner--noimg{grid-template-columns:1fr}
.tailored-block__body{padding:clamp(1.5rem,4vw,3rem)}
.tailored-block__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.6rem}
.tailored-block__heading{margin:0 0 .6rem;font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:1.1;color:var(--ink)}
.tailored-block__text{margin:0 0 1.4rem;color:var(--muted);font-size:1rem;line-height:1.6;max-width:46ch}
.tailored-block__cta{display:inline-flex;align-items:center;gap:.5rem}
.tailored-block__media{position:relative;align-self:stretch;min-height:240px;background:#efe7db}
.tailored-block__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:760px){
  .tailored-block__inner{grid-template-columns:1fr}
  .tailored-block__media{order:-1;min-height:200px;aspect-ratio:16/10}
}
html.theme-dark .tailored-block__inner{background:#1d1813}
html.theme-dark .tailored-block__media{background:#241d16} */

.tailored-block{width:100%}
.tailored-block__inner{position:relative;height:clamp(320px,30vw,480px);overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#f6f1ea}
.tailored-block__media{position:absolute;inset:0}
.tailored-block__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
.tailored-block__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.28) 48%,rgba(0,0,0,.03) 78%)}
.tailored-block__body{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;height:100%;width:min(52%,680px);padding:clamp(1.5rem,4vw,3rem)}
.tailored-block__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.6rem}
.tailored-block__heading{margin:0 0 .6rem;font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:1.1;color:#fff}
.tailored-block__text{margin:0 0 1.4rem;color:rgba(255,255,255,.88);font-size:1rem;line-height:1.6;max-width:46ch}
.tailored-block__cta{display:inline-flex;align-items:center;gap:.5rem;max-width: max-content;}
@media(max-width:760px){.tailored-block__inner{height:420px}.tailored-block__body{width:100%;justify-content:flex-end}.tailored-block__media img{object-position:right}.tailored-block__media::after{background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,.08))}}


/* ===== Tailored for you — popup ===== */
.tlr-overlay{position:fixed;inset:0;z-index:120;background:rgba(18,15,12,.55);opacity:0;transition:opacity .25s ease}
.tlr-overlay.is-visible{opacity:1}
.tlr-modal{position:fixed;inset:0;z-index:121;display:flex;align-items:center;justify-content:center;padding:1.25rem;opacity:0;pointer-events:none;transition:opacity .2s ease}
.tlr-modal.is-open{opacity:1;pointer-events:auto}
.tlr-dialog{position:relative;width:100%;max-width:760px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:1.5rem 1.75rem 1.75rem;box-shadow:0 24px 60px rgba(0,0,0,.28);transform:translateY(12px) scale(.98);transition:transform .2s ease;max-height:90vh;overflow:auto}
.tlr-modal.is-open .tlr-dialog{transform:none}
.tlr-close{position:absolute;top:.85rem;right:.85rem;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.55;transition:opacity .15s,background .15s;z-index:2}
.tlr-close:hover{opacity:1;background:rgba(0,0,0,.06)}
html.theme-dark .tlr-close:hover{background:rgba(255,255,255,.08)}
.tlr-title{margin:0 0 .25rem;font-size:1.25rem;padding-right:2rem}
.tlr-intro{margin:0 0 1rem;color:var(--muted);font-size:.9rem;line-height:1.5}

/* search */
.tlr-search{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:999px;padding:.5rem .9rem;margin-bottom:1rem;background:#fff;color:var(--muted)}
.tlr-search input{flex:1;border:0;outline:none;font:inherit;background:transparent;color:var(--ink)}
html.theme-dark .tlr-search{background:#1d1813}

/* product grid */
.tlr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}
@media(min-width:560px){.tlr-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:760px){.tlr-grid{grid-template-columns:repeat(4,1fr)}}
.tlr-pcard{display:flex;flex-direction:column;text-align:left;gap:.15rem;padding:0;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .1s}
.tlr-pcard:hover{border-color:var(--ink);box-shadow:0 8px 20px rgba(0,0,0,.1)}
.tlr-pcard:active{transform:scale(.98)}
.tlr-pcard__media{display:block;aspect-ratio:1/1;background:#f1efec;overflow:hidden}
.tlr-pcard__media img{width:100%;height:100%;object-fit:contain;display:block;mix-blend-mode:multiply}
.tlr-pcard__title{padding:.5rem .6rem 0;font-size:.82rem;font-weight:600;line-height:1.25;color:var(--ink)}
.tlr-pcard__price{padding:0 .6rem .6rem;font-size:.8rem;font-weight:600;color:#bb1533}
html.theme-dark .tlr-pcard{background:#1d1813}
html.theme-dark .tlr-pcard__media{background:#241d16}
.tlr-empty{color:var(--muted);text-align:center;padding:2rem 0}

/* form step */
.tlr-back{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;padding:0;margin:0 0 .9rem;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}
.tlr-back:hover{color:var(--ink)}
.tlr-chosen{display:flex;align-items:center;gap:.8rem;padding:.6rem;border:1px solid var(--line);border-radius:12px;margin-bottom:1rem;background:#fff}
html.theme-dark .tlr-chosen{background:#1d1813}
.tlr-chosen__media{flex:0 0 auto;width:52px;height:52px;border-radius:8px;overflow:hidden;background:#f1efec;display:grid;place-items:center}
.tlr-chosen__media img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.tlr-chosen__meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.tlr-chosen__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.tlr-chosen__title{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tlr-form{display:flex;flex-direction:column;gap:.6rem}
.tlr-measures{border:1px solid var(--line);border-radius:12px;padding:.9rem;margin:.2rem 0 .3rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
@media(min-width:560px){.tlr-measures{grid-template-columns:repeat(3,1fr)}}
.tlr-measures legend{grid-column:1/-1;padding:0 .35rem;font-size:.82rem;font-weight:700;color:var(--ink)}
.tlr-measures .req-field{margin:0}

/* the form uses .req-field / .req-row / .req-actions from the request modal */
[data-tailored-form]{display:flex;flex-direction:column;gap:.6rem}
.tlr-modal [hidden]{display:none!important}
[data-tailored-overlay][hidden]{display:none!important}

/* offset anchor jump so the #tailored section clears the sticky header */
#tailored{scroll-margin-top:90px}
