/* ===== PYONTSÜ — style.css ===== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --cream: #F6F1E7;
  --cream-2: #EFE7D8;
  --ink: #2A211B;
  --ink-soft: #5B4E44;
  --rust: #8A4A2B;
  --rust-dark: #6E3A20;
  --gold: #B08D57;
  --line: #DCD0BC;
  --white: #FFFFFF;
  --radius: 2px;
  --max: 1280px;
  --header-h: 150px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}

.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--rust);
  font-weight:500;
}
h1,h2,h3,.serif{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  letter-spacing:.01em;
  margin:0;
}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}

:focus-visible{outline:2px solid var(--rust);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

/* ---------- Announcement bar ---------- */
.announce{
  background:var(--ink);
  color:var(--cream);
  text-align:center;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:9px 12px;
}

/* ---------- Header ---------- */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(246,241,231,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 22px;
  height:var(--header-h);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}
.header-side{display:flex;align-items:center;gap:22px;}
.header-side.right{justify-content:flex-end;}
.logo-link{display:flex;flex-direction:column;align-items:center;justify-self:center;}
.logo-link img{height:88px;width:auto;}
.icon-btn{
  background:none;border:0;padding:10px;color:var(--ink);
  display:flex;align-items:center;justify-content:center;position:relative;
}
.icon-btn svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.4;}
.badge{
  position:absolute; top:-2px; right:-4px;
  background:var(--rust); color:#fff;
  font-size:9px; font-weight:600;
  width:15px;height:15px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.nav-desktop{display:none;gap:28px;}
.nav-desktop a{
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-soft); position:relative; padding:4px 0;
}
.nav-desktop a:hover{color:var(--rust);}
.hamburger{display:flex;}
.desktop-only{display:none;}

.nav-divider{display:none;}

@media (min-width: 900px){
  /* Desktop: logo gets its own centered top position; navigation sits on a
     separate lower line so every item stays horizontal and visually clear. */
  header.site-header{--header-h:170px;}
  .header-inner{
    position:relative;
    display:block;
    height:var(--header-h);
    padding:0 22px;
  }
  .logo-link{
    position:absolute;
    top:5px;
    left:50%;
    transform:translateX(-50%);
    width:max-content;
    margin:0;
    z-index:2;
  }
  .logo-link img{height:116px; width:auto;}

  .header-side.left{
    display:block;
    position:absolute;
    left:22px;
    right:22px;
    bottom:13px;
    z-index:1;
  }
  .header-side.right{
    display:flex;
    position:absolute;
    top:22px;
    right:22px;
    align-items:center;
    justify-content:flex-end;
    gap:22px;
    padding:0;
    z-index:3;
  }
  .nav-desktop{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:26px;
    width:100%;
    overflow:visible;
  }
  .nav-desktop a{
    flex:0 0 auto;
    font-size:11.5px;
    letter-spacing:.13em;
    padding:3px 0;
    white-space:nowrap;
  }
  .nav-divider{
    flex:0 0 1px;
    display:inline-block;
    width:1px;
    height:14px;
    background:var(--line);
  }
  .nav-desktop a.nav-sub{
    font-size:11px;
    letter-spacing:.1em;
    color:var(--ink-soft);
    opacity:.85;
  }
  .nav-desktop a.nav-sub:hover{color:var(--rust); opacity:1;}
  .hamburger{display:none;}
  .desktop-only{display:flex;}
}

/* Mobile drawer */
.drawer-overlay{
  position:fixed; inset:0; background:rgba(20,15,10,.45);
  opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:199;
}
.drawer-overlay.open{opacity:1;pointer-events:auto;}
.drawer{
  position:fixed; top:0; left:0; bottom:0; width:78%; max-width:320px;
  background:var(--cream); z-index:200;
  transform:translateX(-105%); transition:transform .3s ease;
  padding:26px 24px; overflow-y:auto;
}
.drawer.open{transform:translateX(0);}
.drawer-close{background:none;border:0;font-size:22px;color:var(--ink);margin-bottom:20px;}
.drawer nav a{
  display:block; font-family:'Cormorant Garamond',serif; font-size:24px;
  padding:12px 0; border-bottom:1px solid var(--line);
}
.drawer .contact{margin-top:28px;font-size:13px;color:var(--ink-soft);line-height:1.7;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 30px;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  border:1px solid var(--ink); background:var(--ink); color:var(--cream);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn:hover{background:var(--rust);border-color:var(--rust);}
.btn.outline{background:transparent;color:var(--ink);}
.btn.outline:hover{background:var(--ink);color:var(--cream);}
.btn.light{background:var(--cream);color:var(--ink);border-color:var(--cream);}
.btn.light:hover{background:var(--white);}
.btn.small{padding:10px 18px;font-size:10.5px;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn:disabled:hover{background:var(--ink);border-color:var(--ink);}

/* ---------- Hero carousel ---------- */
.hero{position:relative; width:100%; overflow:hidden; background:var(--cream-2);}
.hero-track{display:flex; transition:transform .6s cubic-bezier(.65,0,.35,1);}
.hero-slide{
  position:relative; min-width:100%;
  aspect-ratio:3/4;
}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.hero-copy{
  position:absolute; left:6%; right:6%; bottom:9%;
  padding:20px 22px;
  border-radius:3px;
}
.hero-copy .eyebrow{color:var(--rust);}
.hero-copy h2{font-size:clamp(30px,7vw,44px); line-height:1.05; margin:6px 0 10px;}
.hero-copy p{font-size:14px; color:var(--ink-soft); max-width:340px; margin:0 0 18px; line-height:1.5;}
.hero-arrows{display:none;}
.hero-dots{
  position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
  display:flex; gap:8px; z-index:5;
}
.hero-dots button{
  width:20px;height:3px;background:rgba(42,33,27,.28);border:0;padding:0;
}
.hero-dots button.active{background:var(--rust);}

@media (min-width:900px){
  .hero-slide{aspect-ratio:16/9; max-height:82vh;}
  .hero-slide img{object-position:top center;}
  .hero-copy{left:9%; right:auto; bottom:auto; top:50%; transform:translateY(-50%); max-width:460px; padding:0;}
  .hero-copy p{max-width:380px;}
  .hero-arrows{
    display:flex; position:absolute; top:50%; transform:translateY(-50%);
    width:100%; justify-content:space-between; padding:0 22px; z-index:5; pointer-events:none;
  }
  .hero-arrows button{
    pointer-events:auto; width:42px;height:42px;border-radius:50%;
    background:rgba(246,241,231,.85); border:1px solid rgba(42,33,27,.15);
    display:flex;align-items:center;justify-content:center;
  }
  .hero-arrows svg{width:16px;height:16px;stroke:var(--ink);fill:none;stroke-width:1.6;}

  /* Desktop-only hero images have their own light, plain-toned backdrop with
     built-in negative space, so drop the dark mobile scrim and switch the
     copy to dark ink text for clean, readable placement on the left. */
  .hero-copy{background:none !important;}
  .hero-copy .eyebrow{color:var(--rust) !important;}
  .hero-copy h2{color:var(--ink) !important;}
  .hero-copy p{color:var(--ink-soft) !important;}
}

/* subtle text scrim helper applied per-slide via inline style */

/* ---------- Section headers ---------- */
.section{padding:64px 0;}
.section-head{text-align:center; margin-bottom:34px;}
.section-head h2{font-size:clamp(26px,4vw,36px); margin-top:8px;}
.section-head p{color:var(--ink-soft); font-size:14px; margin-top:8px;}
.section-head.left{text-align:left;}

/* ---------- Category tiles ---------- */
/* Styled independently from product cards: soft rounded collection cards
   with large editorial titles and a clear Explore Collection CTA. */
.cat-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
}
.cat-tile{
  position:relative; aspect-ratio:3/4; overflow:hidden; display:block;
  border-radius:12px; background:var(--cream-2);
  isolation:isolate;
}
.cat-tile img{
  width:100%;height:100%;object-fit:cover; transition:transform .5s ease;
}
.cat-tile:hover img{transform:scale(1.04);}
.cat-tile .cat-label{
  position:absolute; left:0; right:0; bottom:0; padding:46px 18px 18px;
  background:linear-gradient(0deg, rgba(20,15,10,.68) 0%, rgba(20,15,10,.30) 38%, rgba(20,15,10,0) 78%);
  color:#fff; z-index:1;
}
.cat-tile .cat-label span{
  display:block; font-family:'Jost',sans-serif; font-size:clamp(20px,2.2vw,28px);
  line-height:1.05; letter-spacing:.12em; text-transform:uppercase; font-weight:400;
}
.cat-tile .cat-label small{
  display:block; margin-top:9px; font-family:'Jost',sans-serif; font-size:10px;
  line-height:1.2; letter-spacing:.15em; text-transform:uppercase; font-weight:500;
}
.cat-tile .cat-label i{
  display:block; width:68px; height:1px; margin-top:9px; background:rgba(255,255,255,.9);
}
@media (min-width:700px){
  .cat-grid{grid-template-columns:repeat(4,1fr); gap:16px;}
  .cat-tile{border-radius:12px;}
  .cat-tile .cat-label{padding:58px 20px 20px;}
  .cat-tile .cat-label small{font-size:10.5px; margin-top:10px;}
  .cat-tile .cat-label i{width:76px; margin-top:10px;}
}

/* ---------- Product grid / cards ---------- */
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px 14px;}
@media (min-width:640px){ .grid{grid-template-columns:repeat(3,1fr); gap:26px 20px;} }
@media (min-width:1080px){ .grid{grid-template-columns:repeat(4,1fr);} }

.card{position:relative; display:block;}
.card-media{
  position:relative; width:100%; aspect-ratio:3/4; overflow:hidden; background:var(--cream-2);
}
.card-media img{width:100%;height:100%;object-fit:cover; transition:opacity .4s ease;}
.card-tag{
  position:absolute; top:10px; left:10px; background:var(--rust); color:#fff;
  font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; padding:5px 9px;
}
.wish-btn{
  position:absolute; top:8px; right:8px; width:32px;height:32px;
  background:rgba(246,241,231,.85); border:0; border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.wish-btn svg{width:15px;height:15px;stroke:var(--ink);fill:none;stroke-width:1.5;}
.wish-btn.active svg{fill:var(--rust); stroke:var(--rust);}
.card-info{padding:12px 2px 0;}
.card-info .name{font-size:13.5px; line-height:1.35; margin-bottom:4px; min-height:2.6em;}
.card-info .meta{font-size:11px; color:var(--ink-soft); letter-spacing:.04em;}
.card-info .price{font-size:13.5px; margin-top:6px; font-weight:500;}
.card-quickadd{
  margin-top:8px; width:100%; padding:9px; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  background:transparent; border:1px solid var(--ink); color:var(--ink);
}
.card-quickadd:hover{background:var(--ink); color:var(--cream);}

/* filter pills */
.filters{display:flex; flex-wrap:wrap; gap:9px; justify-content:center; margin-bottom:30px;}
.filter-pill{
  padding:9px 18px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  border:1px solid var(--line); background:var(--white); color:var(--ink-soft);
}
.filter-pill.active{background:var(--ink); color:var(--cream); border-color:var(--ink);}

/* ---------- Explore / feature banner ---------- */
.explore{position:relative; width:100%; overflow:hidden;}
.explore-inner{position:relative;}
.explore img{width:100%; height:auto; display:block;}
.explore-copy{
  position:absolute; left:6%; top:8%; max-width:280px;
}
.explore-copy h2{font-size:clamp(28px,6vw,42px); line-height:1.05;}
.explore-copy p{font-size:13px; color:var(--ink-soft); margin:10px 0 16px;}
@media (min-width:900px){
  .explore-copy{left:8%; top:50%; transform:translateY(-50%); max-width:380px;}
}

/* Alterations CTA banner — text overlay is desktop-only; mobile shows the image plain */
.alt-cta{display:block;}
.alt-cta .explore-inner{display:block;}
.alt-cta .alt-cta-copy{display:none;}
@media (min-width:900px){
  .alt-cta .alt-cta-copy{
    display:block; left:9%; top:50%; transform:translateY(-50%); max-width:420px;
  }
  .alt-cta .alt-cta-copy .eyebrow{
    color:var(--gold); font-size:12px; letter-spacing:.32em;
  }
  .alt-cta .alt-cta-copy h2{
    font-family:'Cormorant Garamond', serif; font-weight:500; color:var(--ink);
    font-size:clamp(34px,4.2vw,52px); line-height:1.12; margin:16px 0 18px;
  }
  .alt-cta .alt-cta-copy h2 em{
    font-style:italic; color:var(--rust);
  }
  .alt-cta .alt-cta-copy p{
    font-family:'Cormorant Garamond', serif; font-size:16px; font-style:italic;
    color:var(--ink-soft); line-height:1.6; max-width:340px; margin:0;
  }
}

/* ---------- Value strip ---------- */
.strip{
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px 14px;
  padding:36px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
@media (min-width:700px){ .strip{grid-template-columns:repeat(3,1fr);} }
.strip-item{text-align:center;}
.strip-item svg{width:26px;height:26px;stroke:var(--rust);fill:none;stroke-width:1.3;margin-bottom:8px;}
.strip-item .t{font-size:12.5px; letter-spacing:.06em; font-weight:500;}
.strip-item .d{font-size:11.5px; color:var(--ink-soft); margin-top:3px;}

/* ---------- About ---------- */
.about{background:var(--cream-2);}
.about-inner{max-width:720px; margin:0 auto; text-align:center;}
.about p{font-size:15px; line-height:1.85; color:var(--ink-soft); margin-top:16px;}
.about .tagline{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; color:var(--rust); margin-top:22px;}

/* ---------- Visit PYONTSÜ ---------- */
.visit-panel{
  display:grid; grid-template-columns:1fr; gap:2px;
  background:var(--line);
  border:1px solid var(--line);
}
.visit-media{position:relative; min-height:280px; overflow:hidden; background:var(--ink);}
.visit-media img{width:100%; height:100%; object-fit:cover; display:block; min-height:280px;}
.visit-info{background:var(--white); padding:38px 30px;}
.visit-info h3{font-size:26px; margin-top:6px;}
.visit-address{font-size:14px; color:var(--ink-soft); line-height:1.75; margin:14px 0 22px;}
.visit-details{margin:0 0 26px; display:flex; flex-direction:column; gap:10px;}
.visit-details li{font-size:13px; color:var(--ink); display:flex; gap:10px; align-items:baseline;}
.visit-details li span{
  font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--rust);
  font-weight:500; min-width:44px;
}
.visit-map{position:relative; min-height:260px; background:var(--cream-2);}
.visit-map iframe{width:100%; height:100%; min-height:260px; border:0; display:block; filter:grayscale(12%) contrast(1.02);}

@media (min-width:960px){
  .visit-panel{
    grid-template-columns:0.9fr 1fr 1fr;
    min-height:520px;
  }
  .visit-media, .visit-map{min-height:520px;}
  .visit-media img{min-height:520px;}
  .visit-map iframe{min-height:520px;}
  .visit-info{padding:52px 44px;}
}

.visit-gallery-head{text-align:center; margin:56px 0 26px;}
.visit-gallery-head h3{font-size:26px; margin-top:6px;}
.visit-gallery{
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
}
.visit-gallery img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; display:block;
  transition:transform .5s ease;
}
.visit-gallery img:hover{transform:scale(1.03);}
@media (min-width:700px){
  .visit-gallery{grid-template-columns:repeat(4,1fr); gap:14px;}
}

/* ---------- Auth / Checkout modals ---------- */
.pv-overlay{
  position:fixed; inset:0; background:rgba(42,33,27,.55); z-index:200;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.pv-modal{
  background:var(--cream); border:1px solid var(--line); max-width:400px; width:100%;
  padding:34px 28px; position:relative; max-height:88vh; overflow-y:auto;
}
.pv-close{
  position:absolute; top:14px; right:14px; background:none; border:0;
  font-size:16px; color:var(--ink-soft); padding:6px;
}
.pv-sub{font-size:13px; color:var(--ink-soft); margin:6px 0 20px;}
.pv-label{display:block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin:14px 0 6px;}
.pv-input{
  width:100%; padding:11px 12px; border:1px solid var(--line); background:var(--white);
  color:var(--ink); font-family:'Jost',sans-serif; font-size:14px;
}
.pv-input:focus{outline:none; border-color:var(--rust);}
.pv-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.pv-msg{font-size:12.5px; margin-top:12px; display:none;}
.pv-switch{font-size:12.5px; color:var(--ink-soft); text-align:center; margin-top:22px;}
.pv-switch a{color:var(--rust); text-decoration:underline;}
.pv-banner{
  border:1px solid var(--line); background:var(--white); padding:18px 20px;
  font-size:13.5px; color:var(--ink-soft); margin-bottom:24px; text-align:center;
}
.pv-banner a{color:var(--rust); text-decoration:underline;}
.pv-modal-sm{max-width:380px;}
.pv-modal-actions{display:flex; gap:12px; margin-top:26px;}

/* ---------- Account ---------- */
.account-shell{display:grid; grid-template-columns:1fr; gap:30px;}
@media (min-width:860px){ .account-shell{grid-template-columns:230px 1fr; gap:44px; align-items:start;} }

.account-side{
  display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch;
}
.account-side::-webkit-scrollbar{display:none;}
@media (min-width:860px){
  .account-side{
    display:flex; flex-direction:column; gap:2px; position:sticky; top:calc(var(--header-h) + 24px);
    overflow:visible;
  }
}
.account-tab{
  flex:0 0 auto; white-space:nowrap;
  padding:12px 16px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); border:1px solid var(--line); background:var(--white);
  text-align:left; display:flex; align-items:center; gap:10px;
}
.account-tab svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;flex:none;}
.account-tab.active{background:var(--ink); color:var(--cream); border-color:var(--ink);}
.account-tab.danger{color:var(--rust-dark);}
@media (min-width:860px){ .account-tab{border-width:0 0 1px;padding:14px 4px;} .account-tab.active{background:none; color:var(--rust); border-color:var(--line);} }

.account-card{background:var(--white); border:1px solid var(--line); padding:26px 22px;}
@media (min-width:640px){ .account-card{padding:36px 40px;} }
.account-card h3{font-size:22px; margin-bottom:6px;}
.account-card .sub{font-size:13px; color:var(--ink-soft); margin-bottom:26px;}
.account-panel{display:none;}
.account-panel.active{display:block;}
.account-grid{display:grid; grid-template-columns:1fr; gap:16px;}
@media (min-width:560px){ .account-grid.two{grid-template-columns:1fr 1fr;} }
.account-field label{display:block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px;}
.account-field input{
  width:100%; padding:11px 12px; border:1px solid var(--line); background:var(--cream);
  color:var(--ink); font-family:'Jost',sans-serif; font-size:14px;
}
.account-field input:disabled{color:var(--ink-soft); background:var(--cream-2); cursor:not-allowed;}
.account-field input:focus{outline:none; border-color:var(--rust);}
.account-actions{display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;}
.account-msg{font-size:12.5px; margin-top:14px; display:none; color:var(--ink-soft);}
.account-summary{
  display:flex; align-items:center; gap:16px; margin-bottom:30px; padding-bottom:26px; border-bottom:1px solid var(--line);
}
.account-avatar{
  width:56px;height:56px;border-radius:50%; background:var(--ink); color:var(--cream);
  display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:24px; flex:none;
}
.account-summary .name{font-size:19px;}
.account-summary .email{font-size:12.5px; color:var(--ink-soft); margin-top:2px;}
.account-empty{text-align:center; padding:36px 16px; color:var(--ink-soft); font-size:13.5px; line-height:1.7;}
.account-orders-note{
  border:1px solid var(--line); background:var(--cream); padding:20px; font-size:13px; color:var(--ink-soft); line-height:1.75;
}
.security-row{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--line);
}
.security-row:last-child{border-bottom:0;}
.security-row .t{font-size:14px;}
.security-row .d{font-size:12px; color:var(--ink-soft); margin-top:3px;}

/* ---------- Story / Visit pages ---------- */
.story-hero{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--cream-2);}
.story-hero img{width:100%;height:100%;object-fit:cover;}
@media (min-width:900px){ .story-hero{aspect-ratio:21/9;} }
.story-body{max-width:740px; margin:0 auto; padding:56px 0;}
.story-body p{font-size:15.5px; line-height:1.9; color:var(--ink-soft); margin-top:18px;}
.story-body .lede{font-family:'Cormorant Garamond',serif; font-size:24px; font-style:italic; color:var(--ink); line-height:1.5;}
.story-pillars{display:grid; grid-template-columns:1fr; gap:26px; margin-top:44px; padding-top:44px; border-top:1px solid var(--line);}
@media (min-width:700px){ .story-pillars{grid-template-columns:repeat(3,1fr);} }
.story-pillars .p-num{font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--rust); font-size:26px;}
.story-pillars h4{margin-top:8px; font-size:17px;}
.story-pillars p{font-size:13.5px; margin-top:8px;}
.preview-cta{display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:12px; text-align:center; margin-top:30px;}
.preview-cta .btn{margin-left:0 !important; flex:0 1 auto; white-space:nowrap;}
@media (max-width:699px){ .preview-cta{gap:10px;} .preview-cta .btn{padding:11px 15px; font-size:9.5px; letter-spacing:.09em;} }
.story-cta{
  display:flex; flex-wrap:nowrap; justify-content:center; align-items:center;
  gap:10px;
}
.story-cta .btn{
  flex:1 1 0; padding-left:10px; padding-right:10px; white-space:nowrap;
  font-size:10px; letter-spacing:.09em;
}
@media (min-width:480px){
  .story-cta{gap:14px;}
  .story-cta .btn{flex:0 0 auto; padding-left:30px; padding-right:30px;}
}

/* ---------- Alterations & Tailoring ---------- */
.alt-hero{position:relative; width:100%; overflow:hidden; background:var(--cream-2); aspect-ratio:2/3;}
.alt-hero img{width:100%;height:100%;object-fit:cover;}
@media (min-width:900px){ .alt-hero{height:clamp(360px,34vw,520px); aspect-ratio:auto; max-height:none;} }

.svc-note{
  max-width:640px; margin:0 auto 40px; text-align:center; font-size:12.5px; color:var(--ink-soft);
  font-style:italic; line-height:1.7;
}
.svc-grid{display:grid; grid-template-columns:1fr; gap:12px;}
@media (min-width:700px){ .svc-grid{grid-template-columns:repeat(3,1fr); gap:18px; align-items:start;} }

.svc-card{border:1px solid var(--line); background:var(--white); overflow:hidden; transition:border-color .2s ease;}
.svc-card.open{border-color:var(--rust);}

/* Mobile: full-width horizontal accordion rows */
.svc-head{
  width:100%; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:14px;
  padding:18px 18px; background:none; border:0; text-align:left;
}
.svc-head .svc-head-left{display:flex; align-items:center; gap:14px;}
.svc-head .svc-icon{
  width:40px;height:40px; flex:none; display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--cream-2); color:var(--rust);
}
.svc-head .svc-icon svg{width:20px;height:20px; stroke:currentColor; fill:none; stroke-width:1.4;}
.svc-head .svc-name{font-family:'Cormorant Garamond',serif; font-size:17px;}
.svc-head .svc-chev{font-size:16px; color:var(--ink-soft); flex:none; transition:transform .25s ease;}
.svc-card.open .svc-head .svc-chev{transform:rotate(45deg); color:var(--rust);}
.svc-card.open .svc-head .svc-icon{background:var(--rust); color:#fff;}

.svc-body{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.svc-card.open .svc-body{max-height:900px;}
.svc-body-inner{padding:0 18px 22px; border-top:1px solid var(--line); padding-top:16px; margin:0 18px;}
.svc-row{display:flex; justify-content:space-between; gap:10px; font-size:13px; padding:9px 0; border-bottom:1px dashed var(--line);}
.svc-row:last-child{border-bottom:0;}
.svc-row .n{color:var(--ink); flex:1;}
.svc-row .p{color:var(--rust); font-weight:500; white-space:nowrap;}

/* Desktop: static grid tiles, no in-grid expansion — click opens a detail panel instead */
@media (min-width:700px){
  .svc-head{flex-direction:column; align-items:center; gap:12px; padding:32px 16px; text-align:center;}
  .svc-head .svc-head-left{flex-direction:column; gap:12px;}
  .svc-head .svc-icon{width:46px;height:46px;}
  .svc-head .svc-chev{display:none;}
  .svc-card{cursor:pointer; height:100%;}
  .svc-card:hover{border-color:var(--rust);}
  .svc-body, .svc-card.open .svc-body{display:none;}
}

/* Desktop service detail panel */
.svc-detail{display:none;}
.svc-detail.open{display:block; max-width:640px; margin:0 auto;}
.svc-detail-back{
  display:inline-flex; align-items:center; gap:8px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-soft); background:none; border:0; padding:0; margin-bottom:26px; cursor:pointer;
}
.svc-detail-back:hover{color:var(--rust);}
.svc-detail-head{display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; margin-bottom:30px;}
.svc-detail-head .svc-icon{width:56px;height:56px;}
.svc-detail-head .svc-icon svg{width:26px;height:26px;}
.svc-detail-head h3{font-size:26px;}
.svc-detail-list{border:1px solid var(--line); background:var(--white); padding:8px 26px;}
.svc-detail-list .svc-row{font-size:14.5px; padding:14px 0;}

/* ---------- Footer ---------- */
footer{background:var(--ink); color:var(--cream); padding:56px 0 24px;}
.footer-grid{
  display:grid; gap:30px 18px;
  grid-template-columns:1fr 1fr;
  grid-template-areas:
    "about about"
    "shop brand"
    "touch touch";
}
.footer-grid > div:nth-child(1){grid-area:about;}
.footer-grid > div:nth-child(2){grid-area:shop;}
.footer-grid > div:nth-child(3){grid-area:brand;}
.footer-grid > div:nth-child(4){grid-area:touch;}
@media (min-width:800px){
  .footer-grid{
    grid-template-columns:1.3fr 1fr 1fr 1fr;
    grid-template-areas:"about shop brand touch";
    gap:34px;
  }
}
.footer-grid h4{font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; font-weight:500;}
.footer-grid ul li{margin-bottom:10px; font-size:13.5px; color:#D9CFC2;}
.footer-grid ul li a:hover{color:#fff;}
.footer-logo img{height:30px; margin-bottom:14px;}
.footer-grid .about-blurb{font-size:13px; color:#C9BFAF; line-height:1.7; max-width:320px;}
.footer-bottom{
  max-width:var(--max); margin:40px auto 0; padding:20px 28px 0; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:11.5px; color:#B7AB98;
}
.social-row{display:flex; gap:14px; margin-top:6px;}
.social-row a{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#D9CFC2;}
.social-row svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;}

/* ---------- Breadcrumb ---------- */
.crumb{font-size:11.5px; color:var(--ink-soft); padding:18px 0; letter-spacing:.04em;}
.crumb a:hover{color:var(--rust);}

/* ---------- Product detail ---------- */
.pd{display:grid; gap:34px; grid-template-columns:1fr;}
@media (min-width:900px){ .pd{grid-template-columns:1.15fr 1fr; gap:56px;} }
.pd-gallery-main{position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--cream-2);}
.pd-gallery-main img{width:100%;height:100%;object-fit:cover;}
.pd-gallery-arrows{position:absolute; top:50%; transform:translateY(-50%); width:100%; display:flex; justify-content:space-between; padding:0 10px;}
.pd-gallery-arrows button{width:36px;height:36px;border-radius:50%; background:rgba(246,241,231,.85); border:0; display:flex;align-items:center;justify-content:center;}
.pd-gallery-arrows svg{width:14px;height:14px;stroke:var(--ink);fill:none;stroke-width:1.6;}
.pd-thumbs{display:flex; gap:9px; margin-top:10px; overflow-x:auto; padding-bottom:2px;}
.pd-thumbs img{width:64px;height:80px; object-fit:cover; opacity:.55; border:1px solid transparent; cursor:pointer;}
.pd-thumbs img.active{opacity:1; border-color:var(--rust);}

.pd-info .eyebrow{margin-bottom:10px; display:block;}
.pd-info h1{font-size:clamp(26px,3.6vw,34px); line-height:1.15; margin-bottom:10px;}
.pd-price{font-size:19px; margin-bottom:16px; font-weight:500;}
.pd-desc{font-size:14px; color:var(--ink-soft); line-height:1.75; margin-bottom:22px;}
.pd-row{margin-bottom:18px;}
.pd-row label{display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:9px;}
.size-pills{display:flex; flex-wrap:wrap; gap:8px;}
.size-pill{
  min-width:44px; padding:9px 12px; text-align:center;
  border:1px solid var(--line); font-size:12.5px; background:var(--white);
}
.size-pill.active{border-color:var(--ink); background:var(--ink); color:var(--cream);}
.qty-row{display:flex; align-items:center; gap:14px;}
.qty-ctrl{display:flex; align-items:center; border:1px solid var(--line);}
.qty-ctrl button{width:34px;height:36px;background:none;border:0;font-size:15px;}
.qty-ctrl span{width:32px;text-align:center;font-size:13px;}
.pd-actions{display:flex; gap:12px; margin-top:22px;}
.pd-actions .btn{flex:1;}
.pd-actions .wish-btn{
  position:static; width:48px;height:48px; border:1px solid var(--ink); border-radius:0; background:transparent;
}
.pd-meta-list{margin-top:26px; border-top:1px solid var(--line); padding-top:20px;}
.pd-meta-list dl{display:grid; grid-template-columns:110px 1fr; gap:8px 12px; font-size:13px;}
.pd-meta-list dt{color:var(--ink-soft);}
.pd-meta-list dd{margin:0;}
.pd-details{margin-top:20px;}
.pd-details summary{cursor:pointer; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; padding:12px 0; border-top:1px solid var(--line);}
.pd-details ul{margin-top:10px;}
.pd-details li{font-size:13.5px; color:var(--ink-soft); line-height:1.8; padding-left:14px; position:relative;}
.pd-details li::before{content:"—"; position:absolute; left:0; color:var(--rust);}
.pd-note{font-size:11.5px; color:var(--ink-soft); margin-top:18px; font-style:italic;}

/* ---------- Cart / Wishlist pages ---------- */
.line-item{
  display:grid; grid-template-columns:88px 1fr auto; gap:16px; padding:20px 0;
  border-bottom:1px solid var(--line); align-items:center;
}
.line-item img{width:88px;height:110px;object-fit:cover;}
.line-item .li-name{font-size:14.5px; margin-bottom:4px;}
.line-item .li-meta{font-size:12px; color:var(--ink-soft);}
.line-item .li-remove{font-size:11px; text-decoration:underline; color:var(--ink-soft); margin-top:6px; background:none; border:0; padding:0;}
.line-item .li-price{font-size:14px; text-align:right; white-space:nowrap;}
.summary-row{display:flex; justify-content:space-between; font-size:13.5px; padding:8px 0;}
.summary-total{display:flex; justify-content:space-between; font-size:17px; font-weight:500; padding-top:14px; margin-top:6px; border-top:1px solid var(--line);}
.empty-state{text-align:center; padding:70px 20px; color:var(--ink-soft);}
.empty-state h3{margin-bottom:10px;}

/* ---------- Related ---------- */
.related{background:var(--cream-2);}

/* ---------- Toast ---------- */
.toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:var(--cream); padding:13px 22px; font-size:12.5px;
  letter-spacing:.05em; z-index:400; opacity:0; pointer-events:none; transition:all .25s ease;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* utility */
.mt-0{margin-top:0;}
.center{text-align:center;}

/* ---------- V1 sale pricing / badges ---------- */
.card-media .sale-tag{top:10px;left:10px;right:auto;background:var(--rust);font-weight:600;z-index:2;}
.card-media .sale-tag.sale-below-new{top:47px;}
.sale-price{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.sale-current{font-weight:600;color:var(--rust);}
.sale-original{text-decoration:line-through;color:var(--ink-soft);font-size:12px;font-weight:400;}
.sale-percent{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);font-weight:600;}
