/* ============================================================
   GREAT VALUE: components, modules, overlays, responsive
   ============================================================ */

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);
  transition:opacity 1s var(--ease),transform 1.1s var(--ease-out-expo);will-change:transform,opacity;}
.reveal.is-in{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.09s;}
.reveal[data-delay="2"]{transition-delay:.18s;}
.reveal[data-delay="3"]{transition-delay:.27s;}
.reveal[data-delay="4"]{transition-delay:.36s;}
.reveal[data-delay="5"]{transition-delay:.45s;}
.reveal-clip{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease-out-expo);}
.reveal-clip.is-in{clip-path:inset(0 0 0 0);}
.reveal-line{position:relative;overflow:hidden;display:block;padding-bottom:.14em;margin-bottom:-.1em;}
.reveal-line > span{display:block;transform:translateY(105%);transition:transform 1.05s var(--ease-out-expo);}
.reveal-line.is-in > span{transform:translateY(0);}
.reveal-scale img,.reveal-scale .frame__art{transform:scale(1.16);transition:transform 1.5s var(--ease-out-expo);}
.reveal-scale.is-in img,.reveal-scale.is-in .frame__art{transform:scale(1);}

/* ---------- garment frame (generated artwork) ---------- */
.frame{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:var(--tone,#E8E4DA);aspect-ratio:4/5;isolation:isolate;
}
.frame__art{position:absolute;inset:0;width:100%;height:100%;display:block;}
.frame__glow{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(60% 55% at 50% 26%,rgba(255,255,255,.5),transparent 70%);opacity:.75;}
.frame::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(14,31,20,.14));}

/* ---------- category tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,22px);}
.tile{position:relative;display:block;overflow:hidden;border-radius:var(--radius);background:var(--tone,#E5E1D6);}
.tile .frame{aspect-ratio:3/4;}
.tile__art{transition:transform 1.2s var(--ease-out-expo);}
.tile:hover .tile__art{transform:scale(1.07);}
.tile__body{
  position:absolute;left:0;right:0;bottom:0;z-index:3;padding:clamp(18px,2vw,30px);
  display:flex;justify-content:space-between;align-items:flex-end;gap:14px;color:var(--bone);
  background:linear-gradient(to top,rgba(11,26,16,.72),rgba(11,26,16,.1) 55%,transparent);
}
.tile__title{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,2rem);line-height:1.1;}
.tile__count{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;opacity:.78;}
.tile__go{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(244,241,234,.5);
  display:grid;place-items:center;flex:none;
  transform:translateY(8px) scale(.9);opacity:0;
  transition:transform .6s var(--ease-out-expo),opacity .4s,background .4s,color .4s;
}
.tile:hover .tile__go{transform:none;opacity:1;background:var(--bone);color:var(--forest);}
.tile--wide{grid-column:span 2;}
.tile--wide .frame{aspect-ratio:16/10;}

/* ---------- product grid & cards ---------- */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,34px) clamp(12px,1.6vw,26px);}
.product-grid--3{grid-template-columns:repeat(3,1fr);}
.card{position:relative;display:flex;flex-direction:column;gap:16px;}
.card__media{position:relative;overflow:hidden;border-radius:var(--radius);}
.card__art{transition:transform 1.1s var(--ease-out-expo),opacity .6s var(--ease);}
.card:hover .card__art{transform:scale(1.06);}
.card__alt{position:absolute;inset:0;z-index:2;opacity:0;transition:opacity .7s var(--ease);}
.card:hover .card__alt{opacity:1;}
.card__flag{
  position:absolute;top:14px;left:14px;z-index:4;padding:7px 12px;border-radius:99px;
  background:rgba(248,245,238,.95);color:var(--forest);
  font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;
}
.card__flag--dark{background:var(--forest);color:var(--bone);}
.card__quick{
  position:absolute;left:12px;right:12px;bottom:12px;z-index:5;
  transform:translateY(14px);opacity:0;transition:transform .6s var(--ease-out-expo),opacity .4s var(--ease);
}
.card:hover .card__quick,.card:focus-within .card__quick{transform:none;opacity:1;}
.card__quick .btn{width:100%;backdrop-filter:blur(6px);}
.card__body{display:flex;justify-content:space-between;gap:18px;align-items:baseline;}
.card__name{font-family:var(--serif);font-size:1.22rem;line-height:1.2;}
.card__cat{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:5px;display:block;}
.card__price{font-size:.92rem;white-space:nowrap;}
.card__price s{color:var(--muted);opacity:.7;margin-right:8px;font-size:.85em;}
.card__swatches{display:flex;gap:6px;margin-top:2px;}
.card__swatches i{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:block;}
.card a.card__link::after{content:"";position:absolute;inset:0;z-index:3;}

/* ---------- split editorial ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,90px);align-items:center;}
.split--reverse .split__media{order:2;}
.split__media .frame{aspect-ratio:5/6;}
.split__body{max-width:52ch;}
.split__body h2{margin-bottom:24px;}
.stat-row{display:flex;gap:clamp(24px,4vw,56px);margin:36px 0 34px;flex-wrap:wrap;}
.stat__num{font-family:var(--serif);font-size:clamp(2.2rem,3.6vw,3.4rem);line-height:1;}
.stat__label{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:8px;}

/* ---------- dark band ---------- */
.band-dark{position:relative;background:var(--forest);color:var(--bone);overflow:hidden;}
.band-dark .eyebrow,.band-dark .muted,.band-dark .lead{color:var(--sage-soft);}
.band-dark::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(60% 70% at 20% 20%,rgba(143,163,145,.20),transparent 60%),
             radial-gradient(50% 60% at 85% 80%,rgba(176,141,79,.16),transparent 62%);
}
.band-dark > *{position:relative;z-index:2;}

/* ---------- quote ---------- */
.quote{max-width:22ch;margin-inline:auto;font-family:var(--serif);
  font-size:clamp(2rem,5.2vw,4.2rem);line-height:1.14;text-align:center;}
.quote em{font-style:italic;color:var(--sage-soft);}
.quote__by{display:block;margin-top:32px;font-family:var(--sans);font-size:.66rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--sage);}

/* ---------- lookbook rail ---------- */
.rail{display:flex;gap:clamp(12px,1.6vw,26px);overflow-x:auto;padding-bottom:14px;
  scroll-snap-type:x mandatory;scrollbar-width:thin;}
.rail::-webkit-scrollbar{height:2px;}
.rail::-webkit-scrollbar-thumb{background:var(--line);}
.rail__item{flex:0 0 clamp(240px,26vw,380px);scroll-snap-align:start;}
.rail__item .frame{aspect-ratio:3/4;}
.rail__cap{display:flex;justify-content:space-between;gap:14px;margin-top:14px;
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}

/* ---------- feature list ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,52px);}
.feature{border-top:1px solid var(--line);padding-top:24px;}
.feature__num{font-family:var(--serif);font-size:.9rem;color:var(--muted);letter-spacing:.1em;}
.feature h3{font-size:1.35rem;margin:14px 0 12px;}
.feature p{font-size:.94rem;color:var(--muted);}
.band-dark .feature{border-color:rgba(244,241,234,.2);}
.band-dark .feature p,.band-dark .feature__num{color:var(--sage-soft);}

/* ---------- newsletter ---------- */
.newsletter{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;}
.field-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}
.field{
  flex:1 1 240px;position:relative;
}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);
  padding:15px 2px;font-size:.95rem;font-weight:300;transition:border-color .4s var(--ease);
}
.band-dark .field input,.band-dark .field textarea,.band-dark .field select{
  border-color:rgba(244,241,234,.28);color:var(--bone);}
.band-dark .field input::placeholder,.band-dark .field textarea::placeholder{color:rgba(244,241,234,.5);}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:currentColor;}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);}
.form-note{font-size:.72rem;color:var(--muted);margin-top:16px;letter-spacing:.02em;}
.band-dark .form-note{color:var(--sage);}

/* ---------- footer ---------- */
.site-footer{background:var(--forest-deep);color:var(--bone);padding:clamp(60px,7vw,110px) 0 34px;position:relative;overflow:hidden;}
.footer-top{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:clamp(26px,4vw,60px);}
.footer-brand__mark{width:44px;color:var(--bone);margin-bottom:22px;}
.footer-brand p{color:rgba(244,241,234,.62);max-width:34ch;font-size:.94rem;}
.footer-col h4{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-family:var(--sans);
  color:var(--sage);margin-bottom:20px;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.footer-col a{font-size:.92rem;color:rgba(244,241,234,.8);position:relative;transition:color .3s,padding-left .4s var(--ease-out-expo);}
.footer-col a:hover{color:var(--bone);padding-left:10px;}
.footer-col a::before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:currentColor;
  opacity:0;transition:opacity .3s;}
.footer-col a:hover::before{opacity:1;}
.footer-word{
  font-family:var(--serif);font-size:clamp(3.4rem,17vw,15rem);line-height:.85;letter-spacing:-.02em;
  color:rgba(244,241,234,.07);margin:clamp(40px,6vw,80px) 0 0;text-align:center;user-select:none;white-space:nowrap;
}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  border-top:1px solid rgba(244,241,234,.14);margin-top:26px;padding-top:24px;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,241,234,.55);}
.footer-bottom a:hover{color:var(--bone);}
.footer-bottom__links{display:flex;gap:22px;flex-wrap:wrap;}

/* ---------- cart drawer ---------- */
.backdrop{
  position:fixed;inset:0;z-index:700;background:rgba(11,26,16,.5);backdrop-filter:blur(5px);
  opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s;
}
.backdrop.is-open{opacity:1;visibility:visible;transition:opacity .5s var(--ease),visibility 0s;}
.drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:710;width:min(468px,100%);
  background:var(--bone);display:flex;flex-direction:column;
  transform:translateX(101%);transition:transform .72s var(--ease-out-expo);
  box-shadow:-30px 0 60px rgba(11,26,16,.14);
}
.drawer.is-open{transform:none;}
.drawer__head{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:26px var(--gutter);border-bottom:1px solid var(--line-soft);}
.drawer__head h3{font-size:1.5rem;}
.drawer__close{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:9px;}
.drawer__close:hover{opacity:.6;}
.drawer__body{flex:1;overflow-y:auto;padding:8px var(--gutter) 20px;}
.drawer__foot{border-top:1px solid var(--line-soft);padding:22px var(--gutter) 26px;display:grid;gap:14px;}
.drawer__totals{display:flex;justify-content:space-between;align-items:baseline;font-size:.98rem;}
.drawer__totals strong{font-family:var(--serif);font-size:1.5rem;font-weight:400;}
.drawer__note{font-size:.7rem;color:var(--muted);letter-spacing:.04em;}

.line-item{display:grid;grid-template-columns:78px 1fr auto;gap:16px;padding:20px 0;
  border-bottom:1px solid var(--line-soft);animation:itemIn .55s var(--ease-out-expo) both;}
@keyframes itemIn{from{opacity:0;transform:translateX(22px);}to{opacity:1;transform:none;}}
.line-item.is-removing{animation:itemOut .4s var(--ease) forwards;}
@keyframes itemOut{to{opacity:0;transform:translateX(30px);height:0;padding:0;margin:0;}}
.line-item .frame{aspect-ratio:4/5;}
.line-item__name{font-family:var(--serif);font-size:1.06rem;line-height:1.25;}
.line-item__meta{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
.line-item__right{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px;}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:99px;}
.qty button{width:30px;height:30px;display:grid;place-items:center;font-size:.95rem;line-height:1;transition:background .3s;}
.qty button:hover{background:rgba(22,48,30,.07);}
.qty span{min-width:26px;text-align:center;font-size:.85rem;}
.remove{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .3s;}
.remove:hover{color:var(--forest);}
.empty-state{text-align:center;padding:70px 10px;}
.empty-state h4{font-family:var(--serif);font-size:1.6rem;margin-bottom:10px;font-weight:400;}
.empty-state p{color:var(--muted);font-size:.92rem;margin-bottom:24px;}

/* ---------- toast ---------- */
.toast-stack{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:820;
  display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none;width:min(420px,92vw);}
.toast{
  width:100%;background:var(--forest);color:var(--bone);border-radius:var(--radius);
  padding:15px 20px;display:flex;align-items:center;gap:13px;font-size:.82rem;letter-spacing:.04em;
  box-shadow:0 18px 40px rgba(11,26,16,.28);
  animation:toastIn .6s var(--ease-out-expo) both;
}
.toast.is-out{animation:toastOut .45s var(--ease) forwards;}
.toast i{width:7px;height:7px;border-radius:50%;background:var(--sage-soft);flex:none;}
@keyframes toastIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}
@keyframes toastOut{to{opacity:0;transform:translateY(14px) scale(.98);}}

/* ---------- cookie banner ---------- */
.cookie{
  position:fixed;left:var(--gutter);right:var(--gutter);bottom:var(--gutter);z-index:800;
  max-width:660px;background:var(--bone);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(22px,2.4vw,32px);box-shadow:0 30px 70px rgba(11,26,16,.20);
  transform:translateY(140%);opacity:0;visibility:hidden;
  transition:transform .85s var(--ease-out-expo),opacity .5s var(--ease),visibility 0s .85s;
}
.cookie.is-open{transform:none;opacity:1;visibility:visible;transition:transform .85s var(--ease-out-expo),opacity .5s var(--ease),visibility 0s;}
.cookie__head{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.cookie__mark{width:24px;color:var(--forest);flex:none;}
.cookie h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;}
.cookie p{font-size:.88rem;color:var(--muted);max-width:60ch;}
.cookie__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;align-items:center;}
.cookie__actions .btn{flex:0 0 auto;}
.text-btn{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:underline;
  text-underline-offset:5px;color:var(--muted);transition:color .3s;}
.text-btn:hover{color:var(--forest);}

/* ---------- cookie preferences modal ---------- */
.modal{
  position:fixed;inset:0;z-index:830;display:grid;place-items:center;padding:var(--gutter);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s;
}
.modal.is-open{opacity:1;visibility:visible;transition:opacity .45s var(--ease),visibility 0s;}
.modal__scrim{position:absolute;inset:0;background:rgba(11,26,16,.55);backdrop-filter:blur(6px);}
.modal__panel{
  position:relative;z-index:2;width:min(640px,100%);max-height:86vh;overflow-y:auto;
  background:var(--bone);border-radius:var(--radius);padding:clamp(26px,3vw,44px);
  transform:translateY(28px) scale(.98);transition:transform .6s var(--ease-out-expo);
  box-shadow:0 40px 90px rgba(11,26,16,.3);
}
.modal.is-open .modal__panel{transform:none;}
.modal__panel h3{margin-bottom:12px;}
.pref{border-top:1px solid var(--line-soft);padding:22px 0;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;}
.pref:last-of-type{border-bottom:1px solid var(--line-soft);margin-bottom:26px;}
.pref h5{font-family:var(--sans);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 8px;font-weight:400;}
.pref p{font-size:.86rem;color:var(--muted);margin:0;}
.switch{position:relative;width:50px;height:28px;flex:none;}
.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2;}
.switch i{position:absolute;inset:0;border-radius:99px;background:rgba(22,48,30,.18);transition:background .4s var(--ease);}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;
  background:var(--bone);box-shadow:0 2px 6px rgba(11,26,16,.2);transition:transform .45s var(--ease-out-expo);}
.switch input:checked + i{background:var(--forest);}
.switch input:checked + i::after{transform:translateX(22px);}
.switch input:disabled{cursor:not-allowed;}
.switch input:disabled + i{background:var(--moss);opacity:.55;}
.modal__actions{display:flex;gap:12px;flex-wrap:wrap;}

/* ---------- shop toolbar ---------- */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding-bottom:22px;border-bottom:1px solid var(--line-soft);margin-bottom:clamp(28px,3vw,48px);}
.chips{display:flex;gap:9px;flex-wrap:wrap;}
.chip{
  padding:11px 20px;border:1px solid var(--line);border-radius:99px;
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  transition:color .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease);
}
.chip:hover{color:var(--forest);border-color:var(--forest);}
.chip.is-active{background:var(--forest);border-color:var(--forest);color:var(--bone);}
.sortbar{display:flex;align-items:center;gap:12px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.sortbar select{border:0;border-bottom:1px solid var(--line);padding:8px 22px 8px 4px;
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;background:transparent;cursor:pointer;
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236A776C'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;}
.result-count{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.card.is-filtered{display:none;}
.grid-enter{animation:gridIn .7s var(--ease-out-expo) both;}
@keyframes gridIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}

/* ---------- product detail ---------- */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4.5vw,80px);align-items:start;}
.pdp__gallery{display:grid;grid-template-columns:72px 1fr;gap:14px;position:sticky;top:calc(var(--header-h) + 20px);}
.pdp__thumbs{display:flex;flex-direction:column;gap:10px;}
.pdp__thumb{border:1px solid transparent;border-radius:var(--radius);overflow:hidden;transition:border-color .4s,opacity .4s;opacity:.65;}
.pdp__thumb.is-active{border-color:var(--forest);opacity:1;}
.pdp__thumb:hover{opacity:1;}
.pdp__main .frame{aspect-ratio:4/5;}
.pdp__stage{position:relative;}
.pdp__stage .frame__art{animation:fadeArt .7s var(--ease) both;}
@keyframes fadeArt{from{opacity:0;transform:scale(1.04);}to{opacity:1;transform:none;}}
.pdp__title{font-size:clamp(2.2rem,4vw,3.4rem);margin:14px 0 12px;}
.pdp__price{font-size:1.3rem;margin-bottom:24px;}
.pdp__price s{color:var(--muted);margin-right:10px;font-size:.86em;}
.pdp__desc{color:var(--muted);max-width:52ch;}
.opt{margin:30px 0;}
.opt__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.sizes{display:flex;gap:8px;flex-wrap:wrap;}
.size{
  min-width:56px;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius);
  font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  transition:border-color .35s,background .35s,color .35s,transform .35s var(--ease-out-expo);
}
.size:hover{border-color:var(--forest);transform:translateY(-2px);}
.size.is-active{background:var(--forest);border-color:var(--forest);color:var(--bone);}
.size.is-oos{opacity:.35;pointer-events:none;text-decoration:line-through;}
.swatches{display:flex;gap:10px;}
.swatch{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);padding:3px;transition:transform .35s var(--ease-out-expo),border-color .35s;}
.swatch i{display:block;width:100%;height:100%;border-radius:50%;}
.swatch:hover{transform:scale(1.08);}
.swatch.is-active{border-color:var(--forest);}
.pdp__buy{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;}
.pdp__buy .btn{flex:1 1 220px;}
.accordion{margin-top:38px;border-top:1px solid var(--line-soft);}
.acc__item{border-bottom:1px solid var(--line-soft);}
.acc__head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:20px 0;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;text-align:left;}
.acc__icon{position:relative;width:12px;height:12px;flex:none;}
.acc__icon::before,.acc__icon::after{content:"";position:absolute;background:currentColor;transition:transform .45s var(--ease-out-expo);}
.acc__icon::before{top:5.5px;left:0;width:12px;height:1px;}
.acc__icon::after{left:5.5px;top:0;width:1px;height:12px;}
.acc__item.is-open .acc__icon::after{transform:scaleY(0);}
.acc__panel{overflow:hidden;height:0;transition:height .55s var(--ease-out-expo);}
.acc__panel p,.acc__panel ul{font-size:.92rem;color:var(--muted);padding-bottom:22px;margin:0;}
.acc__panel ul{padding-left:18px;display:grid;gap:8px;}
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px;
  border-top:1px solid var(--line-soft);padding-top:26px;}
.trust div{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);line-height:1.6;}
.trust strong{display:block;color:var(--fg);font-weight:400;margin-bottom:5px;}

/* ---------- cart page ---------- */
.cart-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:clamp(28px,4vw,70px);align-items:start;}
.summary{background:var(--bone);border-radius:var(--radius);padding:clamp(24px,2.6vw,36px);
  position:sticky;top:calc(var(--header-h) + 20px);}
.summary h3{font-size:1.5rem;margin-bottom:22px;}
.summary__row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;font-size:.94rem;color:var(--muted);}
.summary__row--total{border-top:1px solid var(--line);margin-top:12px;padding-top:20px;color:var(--fg);font-size:1.05rem;}
.summary__row--total strong{font-family:var(--serif);font-size:1.7rem;font-weight:400;}
.cart-row{display:grid;grid-template-columns:110px 1fr auto;gap:22px;padding:26px 0;border-bottom:1px solid var(--line-soft);}
.cart-row .frame{aspect-ratio:4/5;}

/* chapter block (the story so far) */
.chapter{display:grid;grid-template-columns:clamp(90px,12vw,180px) 1fr;gap:clamp(20px,4vw,60px);
  align-items:start;border-top:1px solid var(--line);padding-top:clamp(26px,3vw,44px);}
.chapter__num{font-family:var(--serif);font-size:clamp(3.4rem,9vw,7rem);line-height:.9;color:var(--line);}
.chapter__body{max-width:60ch;}
@media (max-width:720px){
  .chapter{grid-template-columns:1fr;gap:10px;}
  .chapter__num{font-size:3rem;}
}

/* ---------- about / contact ---------- */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,40px);}
.timeline{display:grid;gap:0;}
.tl__item{display:grid;grid-template-columns:140px 1fr;gap:clamp(18px,3vw,50px);
  padding:30px 0;border-top:1px solid var(--line);}
.tl__year{font-family:var(--serif);font-size:1.6rem;color:var(--muted);}
.tl__body h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;margin-bottom:8px;}
.tl__body p{color:var(--muted);max-width:62ch;font-size:.94rem;}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,80px);align-items:start;}
.info-list{display:grid;gap:26px;margin-top:34px;}
.info-list h4{font-family:var(--sans);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;font-weight:400;}
.info-list p{font-size:1rem;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px;}
.form-grid .field--full{grid-column:1/-1;}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.82rem;color:var(--muted);}
.check input{margin-top:4px;accent-color:var(--forest);}
.legal-body{max-width:74ch;}
.legal-body h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:48px 0 16px;}
.legal-body h3{font-size:1.2rem;margin:30px 0 10px;}
.legal-body p,.legal-body li{color:var(--muted);font-size:.96rem;}
.legal-body ul{padding-left:20px;display:grid;gap:10px;}
.table-wrap{overflow-x:auto;margin:22px 0;}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:.9rem;}
th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line-soft);vertical-align:top;}
th{font-family:var(--sans);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:400;}
td{color:var(--muted);}
td:first-child{color:var(--fg);}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .footer-top{grid-template-columns:1fr 1fr;gap:40px;}
  .values{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:1000px){
  :root{--header-h:74px;}
  .primary-nav{display:none;}
  .nav-toggle{display:inline-flex;}
  .header-inner{grid-template-columns:1fr auto 1fr;}
  .hero__inner{grid-template-columns:1fr;align-items:start;gap:34px;}
  .hero__badge{display:none;}
  .split,.newsletter,.contact-grid,.cart-layout{grid-template-columns:1fr;}
  .split--reverse .split__media{order:0;}
  .pdp{grid-template-columns:1fr;}
  .pdp__gallery{position:static;}
  .summary{position:static;}
  .feature-grid{grid-template-columns:1fr;}
  .tiles{grid-template-columns:1fr 1fr;}
  .tile--wide{grid-column:span 2;}
}
@media (max-width:720px){
  .product-grid,.product-grid--3{grid-template-columns:repeat(2,1fr);gap:26px 14px;}
  .tiles{grid-template-columns:1fr;}
  .tile--wide{grid-column:span 1;}
  .brand__name{font-size:.82rem;letter-spacing:.3em;}
  .icon-btn span.label{display:none;}
  .footer-top{grid-template-columns:1fr;gap:34px;}
  .footer-word{font-size:22vw;}
  .stat-row{gap:26px;}
  .trust{grid-template-columns:1fr;gap:14px;}
  .form-grid{grid-template-columns:1fr;}
  .tl__item{grid-template-columns:1fr;gap:10px;}
  .cart-row{grid-template-columns:84px 1fr;}
  .cart-row .cart-row__right{grid-column:2;}
  .cookie{left:12px;right:12px;bottom:12px;}
  .toast-stack{bottom:16px;}
  .card__quick{opacity:1;transform:none;}
  .pdp__gallery{grid-template-columns:1fr;}
  .pdp__thumbs{flex-direction:row;order:2;}
  .pdp__thumb{flex:1;}
}

/* ============================================================
   REFINEMENTS: softer geometry, depth, value cues
   (kept last so these win over the base rules above)
   ============================================================ */

/* rounded, lifted surfaces */
.btn,.chip{border-radius:999px;}
.frame,.card__media,.tile,.pdp__thumb,.summary,.modal__panel,.cookie,.toast,.size,.field-pill{border-radius:14px;}
.line-item .frame,.cart-row .frame,.pdp__thumb{border-radius:10px;}

.card__media{box-shadow:var(--shadow-sm);transition:box-shadow .6s var(--ease),transform .6s var(--ease-out-expo);}
.card:hover .card__media{box-shadow:var(--shadow-md);transform:translateY(-6px);}
.card__name{transition:color .35s var(--ease);}
.card:hover .card__name{color:var(--moss);}
.tile{box-shadow:var(--shadow-sm);transition:box-shadow .6s var(--ease),transform .6s var(--ease-out-expo);}
.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-5px);}
.site-header.is-stuck::before{box-shadow:var(--shadow-sm);}
.summary{box-shadow:var(--shadow-sm);}
.cookie{box-shadow:var(--shadow-lg);}

/* price + saving cues */
.card__price{display:flex;flex-direction:column;align-items:flex-end;gap:5px;font-size:1rem;}
.card__saving{
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  color:var(--gold);background:var(--gold-soft);padding:4px 9px;border-radius:999px;
}
.band-dark .card__saving{background:rgba(176,141,79,.2);color:var(--gold-soft);}
.card__flag--gold{background:var(--gold);color:#fff;}
.card__flag{box-shadow:var(--shadow-sm);}

/* the strip of promises under the hero */
.value-strip{
  background:var(--forest-deep);color:var(--bone);border-top:1px solid rgba(242,238,228,.12);
}
.value-strip__inner{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
}
.value-strip__item{
  display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;
  padding:22px 16px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(242,238,228,.82);transition:background .5s var(--ease),color .5s var(--ease);
}
.value-strip__item:hover{background:rgba(242,238,228,.06);color:var(--bone);}
.value-strip__item b{font-weight:400;color:var(--gold-soft);}

/* price transparency: the cost breakdown bar */
.cost{border:1px solid var(--line);border-radius:16px;padding:clamp(20px,2.4vw,30px);margin-top:34px;background:var(--bone);}
.cost__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;}
.cost__head h4{font-family:var(--sans);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:400;margin:0;}
.cost__bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:rgba(22,48,30,.08);}
.cost__seg{height:100%;transform:scaleX(0);transform-origin:left;
  transition:transform 1.1s var(--ease-out-expo);}
.cost.is-in .cost__seg{transform:scaleX(1);}
.cost.is-in .cost__seg:nth-child(2){transition-delay:.1s;}
.cost.is-in .cost__seg:nth-child(3){transition-delay:.2s;}
.cost.is-in .cost__seg:nth-child(4){transition-delay:.3s;}
.cost__legend{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px;}
.cost__item{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.7;}
.cost__item i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:baseline;}
.cost__item b{display:block;font-family:var(--serif);font-size:1.25rem;letter-spacing:0;
  text-transform:none;color:var(--fg);font-weight:400;}
.cost__foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-top:1px solid var(--line);margin-top:20px;padding-top:16px;font-size:.82rem;color:var(--muted);}
.cost__foot strong{color:var(--fg);font-weight:400;}

/* retail comparison bars */
.compare{display:grid;gap:22px;}
.compare__row{display:grid;grid-template-columns:clamp(120px,14vw,190px) 1fr auto;gap:clamp(14px,2vw,26px);align-items:center;}
.compare__label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:1.5;}
.band-dark .compare__label{color:var(--sage-soft);}
.compare__track{height:46px;border-radius:10px;background:rgba(22,48,30,.07);overflow:hidden;}
.band-dark .compare__track{background:rgba(242,238,228,.10);}
.compare__fill{height:100%;border-radius:10px;transform:scaleX(0);transform-origin:left;
  transition:transform 1.3s var(--ease-out-expo);}
.reveal.is-in .compare__fill,.compare.is-in .compare__fill{transform:scaleX(1);}
.compare__fill--retail{background:linear-gradient(90deg,#8A9A8C,#B6B0A0);}
.compare__fill--ours{background:linear-gradient(90deg,var(--moss),var(--gold));}
.compare__price{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);white-space:nowrap;}

/* dark-band form + text contrast tidy-ups */
.band-dark .link-underline{color:var(--bone);}
.band-dark .quote__by{color:var(--sage-soft);}

/* nicer size buttons + swatch feedback */
.size{background:var(--bone);border-color:transparent;}
.size:hover{background:transparent;border-color:var(--forest);}
.size.is-active{background:var(--forest);border-color:var(--forest);}
.swatch.is-active{box-shadow:0 0 0 1px var(--forest);}

@media (max-width:900px){
  .value-strip__inner{grid-template-columns:1fr 1fr;}
  .cost__legend{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .value-strip__inner{grid-template-columns:1fr;}
  .value-strip__item{padding:15px 12px;}
  .compare__row{grid-template-columns:1fr auto;}
  .compare__track{grid-column:1/-1;order:3;}
}

/* ============================================================
   ACCOUNTS: sign in, create account, dashboard
   ============================================================ */
.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(30px,5vw,84px);align-items:start;}

.auth-card{
  background:var(--bone);border:1px solid var(--line-soft);border-radius:18px;
  padding:clamp(24px,3vw,40px);box-shadow:var(--shadow-sm);
}
.auth-card[hidden]{display:none;}

/* tabs */
.auth-tabs{position:relative;display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:26px;}
.auth-tab{
  position:relative;padding:12px 4px 16px;margin-right:22px;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  transition:color .35s var(--ease);
}
.auth-tab.is-active{color:var(--fg);}
.auth-tabs__ink{
  position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--forest);
  transition:transform .55s var(--ease-out-expo),width .55s var(--ease-out-expo);
}

/* google */
.auth-google{display:grid;justify-items:stretch;min-height:48px;}
.google-btn{background:#fff;border-color:var(--line);color:var(--fg);}
.google-btn span{display:inline-flex;align-items:center;gap:12px;text-transform:none;letter-spacing:.02em;font-size:.9rem;}
.google-btn__icon{width:18px;height:18px;flex:none;}
.google-btn::after{background:var(--forest);}
.google-btn:hover{color:var(--bone);}

/* google setup helper (only until a client ID is configured) */
.gsetup{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--cream);
  padding:14px 18px;font-size:.86rem;}
.gsetup[hidden]{display:none;}
.gsetup summary{cursor:pointer;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);list-style:none;padding:2px 0;transition:color .3s;}
.gsetup summary::-webkit-details-marker{display:none;}
.gsetup summary::before{content:"+ ";font-family:var(--sans);}
.gsetup[open] summary::before{content:"– ";}
.gsetup summary:hover{color:var(--fg);}
.gsetup__steps{margin:16px 0 6px;padding-left:20px;display:grid;gap:12px;color:var(--muted);line-height:1.65;}
.gsetup__steps strong{color:var(--fg);font-weight:400;}
.gsetup__steps a{text-decoration:underline;text-underline-offset:3px;}
.gsetup code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;
  background:var(--bone);padding:3px 7px;border-radius:5px;color:var(--fg);}
.gsetup__origin{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 2px;}
.gsetup__alert{
  margin:14px 0 4px;padding:14px 16px;border-radius:10px;
  background:var(--gold-soft);color:#5F4A20;line-height:1.65;font-size:.85rem;
}
.gsetup__alert[hidden]{display:none;}
.gsetup__alert strong{color:#433414;font-weight:400;}
.gsetup__alert code{background:rgba(255,255,255,.6);color:#433414;}
.gsetup__cmd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}

.auth-divider{display:flex;align-items:center;gap:16px;margin:24px 0 6px;
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line);}

/* forms */
.auth-form{display:none;}
.auth-form.is-active{display:block;animation:authIn .5s var(--ease-out-expo) both;}
@keyframes authIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.auth-field{display:block;margin-top:20px;}
.auth-label{display:block;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:2px;}
.auth-field input{background:transparent;}
.auth-password{position:relative;display:block;}
.auth-password input{padding-right:64px;width:100%;}
.auth-peek{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:6px;
  transition:color .3s;
}
.auth-peek:hover{color:var(--fg);}
.auth-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px;}
.auth-remember{font-size:.78rem;margin:0;}
.auth-remember input{margin-top:2px;}
.auth-row .text-btn{font-size:.64rem;}
#signinSubmit,#signupSubmit{margin-top:22px;}

.auth-error{
  margin:16px 0 0;font-size:.82rem;color:#8C3A2E;
  max-height:0;opacity:0;overflow:hidden;transition:max-height .4s var(--ease),opacity .3s,margin .3s;
}
.auth-error.is-shown{max-height:80px;opacity:1;}

/* strength meter */
.strength{display:flex;align-items:center;gap:12px;margin-top:14px;}
.strength__bar{flex:1;height:4px;border-radius:999px;background:rgba(22,48,30,.12);overflow:hidden;}
.strength__bar i{display:block;height:100%;width:0;border-radius:999px;background:#B4573F;
  transition:width .45s var(--ease),background .45s var(--ease);}
.strength__bar i[data-score="2"]{background:var(--gold);}
.strength__bar i[data-score="3"]{background:#7E9A6E;}
.strength__bar i[data-score="4"]{background:var(--moss);}
.strength__label{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);min-width:74px;text-align:right;}

.auth-warning{
  margin:26px 0 0;padding:16px 18px;border-radius:12px;
  background:var(--gold-soft);color:#5F4A20;font-size:.8rem;line-height:1.6;
}
.auth-warning strong{font-weight:400;color:#433414;}

/* dashboard */
.dash-head{display:flex;align-items:center;gap:18px;margin-bottom:28px;}
.dash-avatar{
  width:60px;height:60px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--forest);color:var(--bone);font-family:var(--serif);font-size:1.3rem;letter-spacing:.04em;
}
.dash-name{font-size:1.9rem;line-height:1.1;}
.dash-email{font-size:.9rem;margin:4px 0 0;}
.dash-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 30px;
  border-top:1px solid var(--line);padding-top:24px;}
.dash-meta dt{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.dash-meta dd{margin:0;font-size:1rem;}
.dash-actions{display:flex;gap:12px;flex-wrap:wrap;}

/* aside */
.auth-aside{padding-top:6px;}
.perks{display:grid;gap:4px;margin-top:34px;}
.perk{border-top:1px solid var(--line);padding:22px 0;}
.perk__num{font-family:var(--serif);font-size:.88rem;color:var(--muted);}
.perk h4{font-family:var(--serif);font-size:1.3rem;font-weight:400;margin:8px 0 8px;}
.perk p{font-size:.92rem;color:var(--muted);margin:0;}

/* signed-in marker in the header */
.icon-btn.is-authed .label{position:relative;}
.icon-btn.is-authed .label::after{
  content:"";position:absolute;right:-11px;top:50%;transform:translateY(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--gold);
}

@media (max-width:1000px){
  .auth-layout{grid-template-columns:1fr;}
  .auth-aside{order:2;}
}
@media (max-width:600px){
  .dash-meta{grid-template-columns:1fr;}
  .auth-row{align-items:flex-start;}
}

/* ============================================================
   ADMIN (admin.html)
   ============================================================ */
.admin-panel{background:var(--bone);border:1px solid var(--line-soft);border-radius:18px;
  padding:clamp(24px,3vw,44px);box-shadow:var(--shadow-sm);max-width:820px;}
.admin-panel[hidden],#ownerPanel[hidden],.admin-form[hidden]{display:none;}
.setup-steps{margin:26px 0;padding-left:22px;display:grid;gap:14px;color:var(--muted);line-height:1.7;}
.setup-steps strong{color:var(--fg);font-weight:400;}
.setup-steps a{text-decoration:underline;text-underline-offset:3px;}
.code-block{
  background:var(--forest);color:var(--sage-soft);border-radius:12px;padding:20px 22px;overflow-x:auto;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.6;margin:0 0 16px;
}

.admin-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  background:var(--bone);border-radius:16px;padding:20px 24px;margin-bottom:30px;box-shadow:var(--shadow-sm);}
.admin-bar__actions{display:flex;gap:10px;flex-wrap:wrap;}
.admin-grid{display:grid;grid-template-columns:1fr minmax(0,440px);gap:clamp(24px,3vw,44px);align-items:start;}
.admin-h3{font-size:1.5rem;margin-bottom:18px;}

.admin-list{display:grid;gap:12px;}
.admin-item{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;
  background:var(--bone);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow-sm);}
.admin-item__art{width:64px;aspect-ratio:4/5;border-radius:8px;overflow:hidden;}
.admin-item__body{display:flex;flex-direction:column;gap:5px;min-width:0;}
.admin-item__body strong{font-family:var(--serif);font-size:1.15rem;font-weight:400;}
.admin-item__meta{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}

.admin-form{background:var(--bone);border-radius:18px;padding:clamp(20px,2.4vw,30px);
  box-shadow:var(--shadow-sm);position:sticky;top:calc(var(--header-h) + 20px);max-height:80vh;overflow-y:auto;}
.admin-form__head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;}
.admin-form__actions{display:grid;gap:10px;margin-top:26px;}
.admin-preview{width:120px;margin-bottom:18px;}
.admin-preview .frame{aspect-ratio:4/5;border-radius:10px;}
.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.admin-sub{margin-top:22px;}
.admin-color{display:flex;align-items:center;gap:10px;}
.admin-color input[type="color"]{width:44px;height:38px;padding:2px;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer;}
.admin-color input[type="text"]{flex:1;}

.admin-colorrow{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;margin-top:10px;}
.admin-colorrow input[type="color"]{width:44px;height:38px;padding:2px;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer;}
.admin-colorrow input[type="text"]{border:0;border-bottom:1px solid var(--line);background:none;padding:9px 2px;}

.admin-sizes{display:grid;gap:8px;margin-top:10px;}
.admin-size{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;
  border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:.9rem;
  transition:border-color .3s,background .3s;cursor:pointer;}
.admin-size.is-on{border-color:var(--forest);background:rgba(22,48,30,.04);}
.admin-size em{font-style:normal;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.admin-size input{accent-color:var(--forest);}

@media (max-width:1000px){
  .admin-grid{grid-template-columns:1fr;}
  .admin-form{position:static;max-height:none;}
}
@media (max-width:600px){
  .admin-row{grid-template-columns:1fr;}
  .admin-item{grid-template-columns:52px 1fr;}
  .admin-item__actions{grid-column:2;justify-self:start;}
}

/* ============================================================
   MOBILE: legibility, tap targets, touch behaviour
   ============================================================ */

/* header icons: shown instead of text labels on small screens */
.icon-btn__icon{
  display:none;width:22px;height:22px;flex:none;
  fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}

/* a tap must never leave a card stuck in its hover state */
@media (hover:none){
  .card:hover .card__media{transform:none;box-shadow:var(--shadow-sm);}
  .card:hover .card__art{transform:none;}
  .card:hover .card__alt{opacity:0;}
  .card:hover .card__name{color:inherit;}
  .tile:hover{transform:none;box-shadow:var(--shadow-sm);}
  .tile:hover .tile__art{transform:none;}
  .tile__go{opacity:1;transform:none;}
  .btn:hover::after{transform:translate3d(0,101%,0);}
  .btn:active::after{transform:translate3d(0,0,0);}
  .btn:active{transform:scale(.985);}
  .footer-col a:hover{padding-left:0;}
  .size:hover{transform:none;}
}
@media (pointer:coarse){
  *{-webkit-tap-highlight-color:rgba(22,48,30,.07);}
}

@media (max-width:900px){
  /* iOS zooms the page in when a focused field is under 16px */
  input,select,textarea,
  .field input,.field textarea,.field select{font-size:16px;}
}

@media (max-width:720px){
  :root{
    --gutter:20px;
  }

  /* ---- readable body copy ---- */
  body{font-size:16px;line-height:1.72;}
  .lead{font-size:1.05rem;line-height:1.66;}
  p{margin-bottom:1.15em;}
  .feature p,.perk p,.tl__body p,.split__body p,.chapter__body p{font-size:1rem;}
  .eyebrow{font-size:.74rem;letter-spacing:.2em;gap:10px;}
  .eyebrow::before,.center .eyebrow::after{width:24px;}
  .form-note{font-size:.82rem;line-height:1.6;}
  .muted{color:var(--muted);}
  .crumbs{font-size:.72rem;letter-spacing:.12em;}
  .legal-body p,.legal-body li{font-size:1rem;}
  .gsetup,.gsetup__steps{font-size:.92rem;}
  .gsetup code{overflow-wrap:anywhere;}
  .auth-warning,.gsetup__alert{font-size:.88rem;}

  /* ---- header: icons, real tap targets ---- */
  .icon-btn__icon{display:block;}
  .icon-btn{min-width:46px;min-height:46px;padding:8px;justify-content:center;}
  .icon-btn .label{display:none;}
  .icon-btn.is-authed::after{
    content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;
    border-radius:50%;background:var(--gold);border:1.5px solid var(--cream);
  }
  .site-header.on-dark:not(.is-stuck) .icon-btn.is-authed::after{border-color:var(--forest);}
  .cart-count{position:absolute;top:3px;right:2px;min-width:17px;height:17px;font-size:.58rem;}
  .header-actions{gap:2px;}
  .nav-toggle{min-height:46px;padding:6px 4px;}
  .nav-toggle__label{font-size:.74rem;letter-spacing:.14em;}
  .brand__name{font-size:.8rem;letter-spacing:.26em;}
  .brand__mark{width:26px;height:31px;}

  /* ---- controls sized for thumbs ---- */
  .btn{padding:16px 26px;font-size:.78rem;letter-spacing:.16em;min-height:52px;}
  .btn--sm{padding:13px 20px;min-height:44px;}
  .chip{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;font-size:.72rem;letter-spacing:.12em;}
  .size{min-height:50px;min-width:66px;display:inline-flex;align-items:center;justify-content:center;font-size:.86rem;letter-spacing:.06em;}
  .swatch{width:42px;height:42px;}
  .qty button{width:42px;height:42px;font-size:1.1rem;}
  .qty span{min-width:34px;font-size:.95rem;}
  .remove,.text-btn{font-size:.76rem;letter-spacing:.12em;padding:12px 0;display:inline-block;}
  /* keep the underline against the text while the tap area grows around it */
  .link-underline{font-size:.78rem;letter-spacing:.14em;padding:12px 0 9px;}
  .link-underline::after,.link-underline::before{bottom:9px;}
  .footer-col a{font-size:1rem;padding:10px 0;display:inline-block;}
  .footer-bottom{align-items:center;}
  .footer-bottom a{padding:8px 0;display:inline-block;}
  .footer-bottom__links{gap:18px;}
  .brand{min-height:46px;align-items:center;}
  .crumbs a{padding:6px 0;display:inline-block;}
  .footer-col ul{gap:2px;}
  .acc__head{font-size:.82rem;letter-spacing:.14em;padding:20px 0;}
  .check{font-size:.94rem;line-height:1.6;gap:14px;}
  .check input{width:20px;height:20px;flex:none;}
  .acc__panel p,.acc__panel ul{font-size:1rem;}
  .sortbar select{min-height:44px;font-size:.72rem;}
  .auth-tab{padding:14px 4px 18px;font-size:.78rem;letter-spacing:.14em;}

  /* ---- hero ---- */
  .hero{min-height:92svh;padding-bottom:52px;}
  .hero__title{font-size:clamp(2.9rem,13.5vw,4.6rem);}
  .hero__copy{font-size:1.05rem;}
  .hero__actions{width:100%;gap:10px;}
  .hero__actions .btn{flex:1 1 100%;}
  .hero__scroll{display:none;}
  .page-hero h1{font-size:clamp(2.3rem,10.5vw,3.4rem);}

  /* ---- spacing ---- */
  .section{padding:clamp(54px,13vw,84px) 0;}
  .section-head{margin-bottom:26px;gap:16px;}

  /* ---- product cards: stack name over price ---- */
  .card__body{flex-direction:column;align-items:flex-start;gap:9px;}
  .card__price{flex-direction:row;align-items:center;flex-wrap:wrap;gap:9px;font-size:1.05rem;}
  .card__name{font-size:1.1rem;line-height:1.3;}
  .card__cat{font-size:.76rem;letter-spacing:.1em;}
  .card__saving{font-size:.72rem;letter-spacing:.08em;padding:5px 10px;}
  .card__flag{font-size:.72rem;letter-spacing:.1em;padding:7px 12px;}
  .card__quick .btn{min-height:46px;}
  .brand__name{font-size:.78rem;}
  .drawer__close{padding:12px 0 12px 12px;font-size:.76rem;}
  .footer-bottom a,.footer-bottom > span{padding:10px 0;}

  /* ---- category tiles: shorter, easier to scan ---- */
  .tile .frame,.tile--wide .frame{aspect-ratio:16/11;}
  .tile__body{padding:16px;}
  .tile__title{font-size:1.45rem;}
  .tile__count{font-size:.7rem;letter-spacing:.12em;}
  .rail__cap{font-size:.74rem;letter-spacing:.1em;}
  .stat__label{font-size:.72rem;letter-spacing:.12em;}
  .quote__by{font-size:.74rem;letter-spacing:.18em;}
  .feature__num,.perk__num{font-size:1rem;}
  .tile__go{width:38px;height:38px;}

  /* ---- promise strip: 2x2 ---- */
  .value-strip__inner{grid-template-columns:1fr 1fr;}
  .value-strip__item{
    flex-direction:column;gap:5px;text-align:center;padding:16px 10px;
    font-size:.66rem;letter-spacing:.12em;line-height:1.5;
  }

  /* ---- bag rows ---- */
  .cart-row{grid-template-columns:96px 1fr;gap:16px;padding:22px 0;}
  /* .cart-row .cart-row__right earlier in this file pins it to column 2 */
  .cart-row .cart-row__right{
    grid-column:1/-1;display:flex;flex-direction:row;align-items:center;
    justify-content:space-between;gap:14px;text-align:left;
    border-top:1px solid var(--line-soft);padding-top:14px;margin-top:4px;
  }
  .line-item{grid-template-columns:66px 1fr;gap:14px;}
  .line-item__right{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;}
  .summary{padding:24px 20px;}
  .drawer__foot{padding-bottom:calc(26px + env(safe-area-inset-bottom));}

  /* ---- product page: keep "add to bag" within thumb reach ---- */
  .pdp__buy{
    position:sticky;bottom:0;z-index:40;margin-top:8px;
    padding:14px 0 calc(14px + env(safe-area-inset-bottom));
    background:linear-gradient(to top,var(--cream) 66%,rgba(239,233,220,0));
  }
  .pdp__buy .btn{flex:1 1 auto;}
  .pdp__buy #wishBtn{flex:0 0 auto;min-width:104px;}
  .pdp__title{font-size:clamp(1.9rem,8vw,2.6rem);}
  .pdp__desc{font-size:1rem;}
  .opt__label{font-size:.72rem;letter-spacing:.14em;}
  .trust div{font-size:.76rem;letter-spacing:.08em;}
  .cost__item{font-size:.72rem;letter-spacing:.06em;}
  .cost__foot{font-size:.88rem;}

  /* ---- overlays clear of notches and home bars ---- */
  .toast-stack{bottom:calc(16px + env(safe-area-inset-bottom));}
  .toast{font-size:.88rem;padding:16px 20px;}
  .cookie{bottom:calc(12px + env(safe-area-inset-bottom));padding:22px 20px;}
  .cookie p{font-size:.92rem;}
  .cookie__actions{gap:10px;}
  .cookie__actions .btn{flex:1 1 100%;}
  .modal__panel{padding:26px 20px;}
  .pref{grid-template-columns:1fr auto;gap:14px;padding:20px 0;}
  .pref p{font-size:.9rem;}

  /* ---- menu ---- */
  .mobile-menu{
    overflow-y:auto;
    padding-bottom:calc(40px + env(safe-area-inset-bottom));
  }
  .mobile-menu__links a{padding:7px 0;}
  .mobile-menu__foot{font-size:.72rem;letter-spacing:.12em;gap:8px;flex-direction:column;}

  /* ---- footer ---- */
  .footer-bottom{font-size:.74rem;letter-spacing:.08em;gap:14px;}
  .footer-brand p{font-size:1rem;}
  .footer-col h4{font-size:.74rem;letter-spacing:.18em;}
}

/* very small handsets */
@media (max-width:400px){
  /* the menu label goes, so the wordmark can stay readable */
  .brand__name{font-size:.76rem;letter-spacing:.17em;}
  .nav-toggle__label{display:none;}
  .product-grid,.product-grid--3{gap:22px 12px;}
  .value-strip__item{font-size:.62rem;}
}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .reveal,.reveal-line > span,.hero__title .line > span,.hero__fade{opacity:1 !important;transform:none !important;}
  .reveal-clip{clip-path:none !important;}
  .curtain{display:none;}
}
