
/* ══════════════════════════════════ TOKENS */
:root {
  --cream:      #F5EFE2;
  --cream-2:    #EDE5D2;
  --cream-3:    #DDD0B8;
  --cream-4:    #C8B898;

  --sage:       #4DAF70;
  --sage-card:  #C8EDD0;
  --sage-hover: #7ED498;
  --sage-deep:  #3A5A40;

  --mauve:      #E8857A;
  --mauve-card: #F7D6D0;
  --mauve-hover:#F0A898;
  --mauve-deep: #7A5A68;

  --blue:       #5AAAD4;
  --blue-card:  #C8E4F4;
  --blue-hover: #7EC8E8;
  --blue-deep:  #3A5870;
  --blue-accent:#2E5FA3;
  --blue-nav:   #2D5F9E;

  --gold:       #B8902A;
  --gold-lt:    #D4B060;
  --gold-glow:  rgba(184,144,42,0.6);

  --charcoal:   #2A2218;
  --navy:       #1A2840;
  --ink:        #302820;
  --ink-2:      #504030;
  --ink-3:      #6E5F4A;
  --ink-4:      #756247;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; }

/* ══ BODY + PATTERN */
body {
  font-family:'Jost', sans-serif;
  font-weight:300;
  background-color:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}

/* Tonal nature-geometry pattern */
body::before {
  content:'';
  position:fixed; inset:0;
  pointer-events:none; z-index:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cdefs%3E%3Cstyle%3E.n%7Bfill:none;stroke:%23956A20;stroke-linecap:round;stroke-linejoin:round%7D.t%7Bfill:none;stroke:%23956A20;stroke-linecap:round%7D%3C/style%3E%3C/defs%3E%3C!-- MOUNTAIN RANGE --%3E%3Cpolyline class='n' stroke-width='0.7' stroke-opacity='0.5' points='0,200 35,130 65,168 100,95 135,148 170,108 210,155 250,115 300,140'/%3E%3C!-- LEAF CLUSTER top-left --%3E%3Cellipse class='n' stroke-width='0.75' stroke-opacity='0.6' cx='28' cy='38' rx='14' ry='5.5' transform='rotate(-40 28 38)'/%3E%3Cellipse class='n' stroke-width='0.7' stroke-opacity='0.5' cx='18' cy='28' rx='11' ry='4.5' transform='rotate(-10 18 28)'/%3E%3Cellipse class='n' stroke-width='0.65' stroke-opacity='0.45' cx='38' cy='22' rx='10' ry='4' transform='rotate(-65 38 22)'/%3E%3Cline class='n' stroke-width='0.7' stroke-opacity='0.55' x1='28' y1='38' x2='30' y2='58'/%3E%3Cline class='n' stroke-width='0.5' stroke-opacity='0.4' x1='24' y1='48' x2='18' y2='54'/%3E%3Cline class='n' stroke-width='0.5' stroke-opacity='0.4' x1='26' y1='52' x2='34' y2='58'/%3E%3C!-- LEAF CLUSTER bottom-right --%3E%3Cellipse class='n' stroke-width='0.75' stroke-opacity='0.6' cx='262' cy='258' rx='14' ry='5.5' transform='rotate(55 262 258)'/%3E%3Cellipse class='n' stroke-width='0.7' stroke-opacity='0.5' cx='276' cy='268' rx='11' ry='4.5' transform='rotate(15 276 268)'/%3E%3Cellipse class='n' stroke-width='0.65' stroke-opacity='0.45' cx='252' cy='272' rx='10' ry='4' transform='rotate(80 252 272)'/%3E%3Cline class='n' stroke-width='0.7' stroke-opacity='0.55' x1='262' y1='258' x2='264' y2='278'/%3E%3C!-- LEAF CLUSTER top-right --%3E%3Cellipse class='n' stroke-width='0.7' stroke-opacity='0.5' cx='275' cy='42' rx='12' ry='4.5' transform='rotate(40 275 42)'/%3E%3Cellipse class='n' stroke-width='0.65' stroke-opacity='0.45' cx='288' cy='30' rx='10' ry='4' transform='rotate(-15 288 30)'/%3E%3Cline class='n' stroke-width='0.65' stroke-opacity='0.5' x1='275' y1='42' x2='277' y2='60'/%3E%3C!-- LEAF CLUSTER bottom-left --%3E%3Cellipse class='n' stroke-width='0.7' stroke-opacity='0.5' cx='28' cy='268' rx='12' ry='4.5' transform='rotate(-55 28 268)'/%3E%3Cellipse class='n' stroke-width='0.65' stroke-opacity='0.45' cx='15' cy='278' rx='10' ry='4' transform='rotate(20 15 278)'/%3E%3Cline class='n' stroke-width='0.65' stroke-opacity='0.5' x1='28' y1='268' x2='30' y2='284'/%3E%3C!-- CENTER DIAMOND GRID --%3E%3Cpath class='n' stroke-width='0.65' stroke-opacity='0.45' d='M150 110 L174 134 L150 158 L126 134Z'/%3E%3Cline class='n' stroke-width='0.5' stroke-opacity='0.35' x1='126' y1='134' x2='174' y2='134'/%3E%3Cline class='n' stroke-width='0.5' stroke-opacity='0.35' x1='150' y1='110' x2='150' y2='158'/%3E%3C!-- Smaller diamonds --%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.35' d='M80 134 L92 146 L80 158 L68 146Z'/%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.35' d='M220 134 L232 146 L220 158 L208 146Z'/%3E%3C!-- FLOWING WAVE LINES --%3E%3Cpath class='t' stroke-width='0.6' stroke-opacity='0.4' d='M0 240 Q37 232 75 240 Q112 248 150 240 Q187 232 225 240 Q262 248 300 240'/%3E%3Cpath class='t' stroke-width='0.5' stroke-opacity='0.3' d='M0 252 Q37 246 75 252 Q112 258 150 252 Q187 246 225 252 Q262 258 300 252'/%3E%3C!-- DELICATE ARC TOP --%3E%3Cpath class='t' stroke-width='0.65' stroke-opacity='0.42' d='M75 8 Q150 0 225 8'/%3E%3Cpath class='t' stroke-width='0.5' stroke-opacity='0.3' d='M95 16 Q150 10 205 16'/%3E%3C!-- DOT ACCENTS --%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='8' cy='150' r='1.8'/%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='14' cy='144' r='1.2'/%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='292' cy='150' r='1.8'/%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='286' cy='156' r='1.2'/%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='150' cy='8' r='1.8'/%3E%3Ccircle class='n' stroke-width='0.8' stroke-opacity='0.45' cx='150' cy='292' r='1.8'/%3E%3C!-- SMALL BOTANICAL SPRIGS --%3E%3Cpath class='t' stroke-width='0.6' stroke-opacity='0.4' d='M140 68 Q148 58 156 68'/%3E%3Cpath class='t' stroke-width='0.6' stroke-opacity='0.4' d='M143 72 Q150 60 157 72'/%3E%3Cline class='t' stroke-width='0.6' stroke-opacity='0.4' x1='150' y1='58' x2='150' y2='78'/%3E%3Cpath class='t' stroke-width='0.6' stroke-opacity='0.4' d='M140 228 Q148 218 156 228'/%3E%3Cline class='t' stroke-width='0.6' stroke-opacity='0.4' x1='150' y1='218' x2='150' y2='236'/%3E%3C!-- CORNER GEOMETRIC --%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.38' d='M0 0 L16 0 L16 16'/%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.38' d='M300 0 L284 0 L284 16'/%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.38' d='M0 300 L16 300 L16 284'/%3E%3Cpath class='n' stroke-width='0.55' stroke-opacity='0.38' d='M300 300 L284 300 L284 284'/%3E%3C/svg%3E");
  background-size:300px 300px;
  opacity:0.55;
}

#nav, .page, #mob { position:relative; z-index:1; }

/* ══ PAGES */
.page { display:none; }
.page.active { display:block; }

/* ══ SCROLLBAR */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--cream-2); }
::-webkit-scrollbar-thumb { background:var(--cream-4); border-radius:2px; }

/* ══════════════════════════════════ NAV */
#nav {
  position:fixed; top:0; left:0; right:0; z-index:900;
  height:64px;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 2.5rem;
  background:rgba(245,239,226,0.96);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--cream-3);
  transition:box-shadow .3s;
}
#nav.raised { box-shadow:0 2px 24px rgba(42,34,24,.1); }

.nav-brand {
  display:flex; align-items:center; gap:.7rem;
  cursor:pointer; flex-shrink:0;
}
.nav-emblem {
  width:auto; height:52px;
  border-radius:0;
  border:none;
  object-fit:contain;
  object-position:center center;
  background:transparent;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.12));
}
.nav-wordmark {
  font-family:'Cormorant Garamond',serif;
  font-size:1.05rem; font-weight:500;
  letter-spacing:.05em; color:var(--navy);
  white-space:nowrap;
}

.nav-links {
  display:flex; align-items:center; gap:2rem;
  list-style:none;
}
.nav-links a {
  font-size:.65rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-3); cursor:pointer; text-decoration:none;
  transition:color .25s; padding-bottom:2px;
  border-bottom:1.5px solid transparent;
}
.nav-links a:hover { color:var(--navy); }
.nav-links a.active { color:var(--navy); border-bottom-color:var(--blue-accent); }

.nav-cta {
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  background:var(--blue-nav); color:white;
  padding:.55rem 1.4rem; border:none; cursor:pointer;
  border-radius:6px;
  transition:background .28s, transform .2s;
  white-space:nowrap;
}
.nav-cta:hover { background:var(--blue-deep); transform:translateY(-1px); }

.burger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:4px;
}
.burger span { display:block; width:22px; height:1.5px; background:var(--ink); }

/* ══ MOBILE MENU */
#mob {
  display:none; position:fixed; inset:0; z-index:950;
  background:var(--cream);
  flex-direction:column; align-items:center; justify-content:center; gap:2rem;
}
#mob.open { display:flex; }
.mob-x {
  position:absolute; top:1.5rem; right:2rem;
  font-family:'Cormorant Garamond',serif;
  font-size:2rem; color:var(--ink-3); cursor:pointer; line-height:1;
}
#mob a {
  font-family:'Cormorant Garamond',serif;
  font-size:2rem; font-style:italic; color:var(--navy);
  cursor:pointer; text-decoration:none; transition:color .25s;
}
#mob a:hover { color:var(--blue-accent); }

/* ══════════════════════════════════ HERO */
.hero {
  min-height:100vh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:flex-start;
  padding:6.5rem 2rem 0;
  position:relative; overflow:hidden;
}

.hero-bg {
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 60% 50% at 8% 80%,rgba(107,140,114,.14) 0%,transparent 60%),
    radial-gradient(ellipse 50% 42% at 92% 15%,rgba(112,144,168,.12) 0%,transparent 55%),
    radial-gradient(ellipse 45% 38% at 50% 45%,rgba(184,158,168,.08) 0%,transparent 60%);
  animation:bgDrift 18s ease-in-out infinite alternate;
}
@keyframes bgDrift {
  0%   { transform:scale(1)    translateY(0); }
  100% { transform:scale(1.04) translateY(-12px); }
}

.hero-pill {
  position:relative; z-index:2;
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.58rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--blue-accent);
  background:rgba(46,95,163,.08);
  padding:.36rem 1.1rem; border-radius:999px;
  border:1px solid rgba(46,95,163,.2);
  margin-bottom:1.6rem;
  animation:fadeUp .85s ease both;
}

@keyframes fadeUp { from{opacity:0;transform:translateY(16px);} to{opacity:1;transform:translateY(0);} }

.hero-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.8rem,5.5vw,5rem);
  font-weight:500; line-height:1.08; text-align:center;
  color:var(--charcoal); max-width:840px;
  position:relative; z-index:2;
  animation:fadeUp .85s .1s ease both;
}
.hero-h1 em { font-style:italic; color:var(--navy); }

.hero-sub {
  font-size:.9rem; line-height:2.1; color:var(--ink-2);
  text-align:center; max-width:520px;
  position:relative; z-index:2; margin-top:1.3rem;
  animation:fadeUp .85s .2s ease both;
}

.hero-rule {
  width:1px; height:44px;
  background:linear-gradient(to bottom,transparent,var(--cream-3),transparent);
  margin:1.8rem auto;
  position:relative; z-index:2;
  animation:fadeUp .85s .3s ease both;
}

/* ══════════════════════════════════ THREE PATH COLUMNS */
.paths {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:0;
  width:100%; max-width:1080px;
  position:relative; z-index:2;
  animation:fadeUp .85s .38s ease both;
  border:1.5px solid var(--cream-3);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 4px 32px rgba(42,34,24,.1), 0 1px 6px rgba(42,34,24,.06);
  margin-bottom:0;
}

.path {
  display:flex; flex-direction:column; align-items:center;
  padding:2.8rem 1.8rem 2.5rem;
  cursor:pointer;
  position:relative;
  transition:background-color .4s ease;
  border-right:1px solid rgba(255,255,255,.5);
}
.path:last-child { border-right:none; }

.path-mauve { background-color:var(--mauve-card); }
.path-blue  { background-color:var(--blue-card);  }
.path-sage  { background-color:var(--sage-card);  }

.path-mauve:hover { background-color:var(--mauve-hover); }
.path-blue:hover  { background-color:var(--blue-hover);  }
.path-sage:hover  { background-color:var(--sage-hover);  }

/* Icon circle */
.path-circle {
  width:90px; height:90px; border-radius:50%;
  border:2.5px solid var(--charcoal);
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.55);
  margin-bottom:1.4rem;
  position:relative; overflow:hidden;
  transition:
    border-color .4s ease,
    box-shadow .4s ease;
}
.path:hover .path-circle {
  border-color:var(--gold);
  box-shadow:
    0 0 0 3px rgba(184,144,42,.15),
    0 0 18px var(--gold-glow),
    0 0 36px rgba(184,144,42,.25);
}

.path-icon {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  filter:invert(0%) brightness(0%);
  transition:filter .4s ease;
  border-radius:50%;
}
/* Heritage — make icon sage-tinted on hover */
.path-mauve:hover .path-icon {
  filter:invert(30%) sepia(15%) saturate(300%) hue-rotate(280deg) brightness(.8);
}
.path-blue:hover .path-icon {
  filter:invert(28%) sepia(35%) saturate(500%) hue-rotate(195deg) brightness(.78);
}
.path-sage:hover .path-icon {
  filter:invert(30%) sepia(22%) saturate(500%) hue-rotate(100deg) brightness(.78);
}

.path-num {
  font-size:.52rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--ink-4); margin-bottom:.3rem;
}
.path-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.9rem; font-weight:500; color:var(--charcoal);
  margin-bottom:.6rem;
}
.path-desc {
  font-size:.8rem; line-height:1.88; color:var(--ink-2);
  text-align:center; max-width:180px; margin-bottom:1.2rem;
}
.path-link {
  font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); font-weight:400;
  border-bottom:1px solid var(--ink-4);
  padding-bottom:1px; cursor:pointer;
  transition:color .3s, border-color .3s;
}
.path:hover .path-link { color:var(--navy); border-color:var(--navy); }

/* ══════════════════════════════════ WORKSHOP */
.workshop {
  width:100%; max-width:1080px;
  padding:4.5rem 0 5rem;
  margin:0 auto;
  position:relative; z-index:2;
}
.workshop-header {
  display:flex; align-items:flex-end; justify-content:space-between;
  padding:0 0 2rem;
  border-bottom:1px solid var(--cream-3);
  margin-bottom:2.5rem;
}
.workshop-eyebrow {
  font-size:.58rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--ink-4); margin-bottom:.4rem;
}
.workshop-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:2.2rem; font-weight:500; color:var(--charcoal);
  line-height:1.15;
}
.workshop-h2 em { font-style:italic; }
.workshop-showall {
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:white; background:var(--blue-nav);
  padding:.55rem 1.4rem; border:none; cursor:pointer;
  border-radius:6px; white-space:nowrap;
  transition:background .28s;
  flex-shrink:0;
}
.workshop-showall:hover { background:var(--blue-deep); }

/* Carousel */
.carousel-wrap {
  position:relative;
  overflow:hidden;
}
.carousel {
  display:flex; gap:1.4rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:1rem;
  scrollbar-width:none;
}
.carousel::-webkit-scrollbar { display:none; }

.product-card {
  flex-shrink:0;
  width:240px;
  scroll-snap-align:start;
  background:white;
  border:1px solid var(--cream-3);
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 2px 12px rgba(42,34,24,.07);
  transition:transform .35s ease, box-shadow .35s ease;
}
.product-card:hover {
  transform:translateY(-5px);
  box-shadow:0 10px 32px rgba(42,34,24,.13);
}
.product-img {
  width:100%; aspect-ratio:4/3;
  object-fit:cover;
  background:var(--cream-2);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.product-img img { width:100%; height:100%; object-fit:cover; }
/* placeholder if no image */
.product-img-placeholder {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:.65rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-4);
  background:linear-gradient(145deg, var(--cream-2), var(--cream-3));
}
.product-body { padding:1.2rem 1.2rem 1.4rem; }
.product-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.05rem; font-weight:500; color:var(--charcoal);
  margin-bottom:.25rem; line-height:1.3;
}
.product-price {
  font-size:.78rem; color:var(--ink-3);
  margin-bottom:.9rem; letter-spacing:.04em;
}
.product-atc {
  width:100%;
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.6rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--navy); background:transparent;
  padding:.55rem 1rem; cursor:pointer;
  border:1.5px solid var(--navy); border-radius:3px;
  transition:background .25s, color .25s;
}
.product-atc:hover { background:var(--navy); color:white; }

/* Carousel nav arrows */
.carousel-btn {
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%;
  background:white; border:1px solid var(--cream-3);
  box-shadow:0 2px 10px rgba(42,34,24,.1);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  font-size:1rem; color:var(--navy);
  transition:box-shadow .25s, transform .25s;
  z-index:5;
}
.carousel-btn:hover { box-shadow:0 4px 18px rgba(42,34,24,.16); transform:translateY(-52%); }
.carousel-prev { left:-16px; }
.carousel-next { right:-16px; }

/* ══════════════════════════════════ INNER PAGE HERO */
.ihero {
  min-height:52vh; display:flex; align-items:flex-end;
  padding:7rem 5rem 4.5rem;
  position:relative; overflow:hidden;
}
.ihero-bg {
  position:absolute; inset:0;
  animation:bgDrift 12s ease-in-out infinite alternate;
}
.ihero-mauve { background:radial-gradient(ellipse 70% 60% at 10% 90%,rgba(184,158,168,.3) 0%,transparent 55%), radial-gradient(ellipse 50% 40% at 88% 10%,rgba(184,158,168,.14) 0%,transparent 55%), var(--cream); }
.ihero-blue  { background:radial-gradient(ellipse 70% 60% at 10% 90%,rgba(112,144,168,.28) 0%,transparent 55%), radial-gradient(ellipse 50% 40% at 88% 10%,rgba(112,144,168,.14) 0%,transparent 55%), var(--cream); }
.ihero-sage  { background:radial-gradient(ellipse 70% 60% at 10% 90%,rgba(107,140,114,.28) 0%,transparent 55%), radial-gradient(ellipse 50% 40% at 88% 10%,rgba(107,140,114,.14) 0%,transparent 55%), var(--cream); }
.ihero-cream { background:radial-gradient(ellipse 70% 60% at 10% 90%,rgba(200,185,160,.32) 0%,transparent 55%), radial-gradient(ellipse 50% 40% at 88% 10%,rgba(46,95,163,.08) 0%,transparent 55%), var(--cream); }
.ihero-orb {
  position:absolute; width:320px; height:320px; border-radius:50%;
  right:4rem; bottom:-40px; opacity:.22; pointer-events:none;
  animation:bgDrift 9s ease-in-out infinite alternate;
}
.orb-mauve { background:radial-gradient(circle,var(--mauve) 0%,transparent 70%); }
.orb-blue  { background:radial-gradient(circle,var(--blue)  0%,transparent 70%); }
.orb-sage  { background:radial-gradient(circle,var(--sage)  0%,transparent 70%); }

.ihero-inner { position:relative; z-index:2; max-width:640px; }
.bc {
  display:flex; align-items:center; gap:.55rem;
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-4); margin-bottom:1rem;
}
.bc a { cursor:pointer; transition:color .25s; text-decoration:none; color:inherit; }
.bc a:hover { color:var(--blue-accent); }
.bc-sep { font-size:.5rem; opacity:.4; }

.itag {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.56rem; letter-spacing:.24em; text-transform:uppercase;
  padding:.3rem .9rem; border-radius:999px; margin-bottom:1rem; border:1px solid;
}
.itag::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--blue-accent); }
.itag-mauve { color:var(--mauve-deep); background:var(--mauve-card); border-color:var(--mauve); }
.itag-blue  { color:var(--blue-deep);  background:var(--blue-card);  border-color:var(--blue-hover); }
.itag-sage  { color:var(--sage-deep);  background:var(--sage-card);  border-color:var(--sage); }
.itag-n     { color:var(--ink-2);      background:var(--cream-2);    border-color:var(--cream-3); }

.ihero-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem,4vw,3.5rem); font-weight:500; line-height:1.1;
  color:var(--charcoal); margin-bottom:1.2rem;
}
.ihero-h1 em { font-style:italic; }
.em-mauve { color:var(--mauve-deep); }
.em-blue  { color:var(--blue-deep); }
.em-sage  { color:var(--sage-deep); }
.ihero-p { font-size:.87rem; line-height:2; color:var(--ink-2); max-width:420px; }
.ihero-rule {
  width:40px; height:1px; margin-top:1.6rem;
  background:linear-gradient(to right,var(--blue-accent),transparent); opacity:.5;
}

/* ══ ACCENT BAR */
.accent-bar {
  height:3px;
  background:linear-gradient(to right,var(--navy),var(--blue-accent),var(--blue),transparent);
}

/* ══ STORY */
.story {
  display:grid; grid-template-columns:1fr 1fr;
  gap:5rem; align-items:center;
  max-width:1080px; margin:0 auto;
  padding:5.5rem 5rem;
}
.story-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:1.95rem; font-weight:500; line-height:1.25;
  color:var(--charcoal); margin-bottom:1.2rem;
}
.story-h2 em { font-style:italic; color:var(--blue-accent); }
.story-p { font-size:.86rem; line-height:2.05; color:var(--ink-2); margin-bottom:1rem; }
.story-p strong { font-weight:500; color:var(--ink); }
.story-vis {
  position:relative; height:400px;
  display:flex; align-items:center; justify-content:center;
}
.vis-blob {
  position:absolute; width:300px; height:300px;
  border-radius:50% 40% 60% 30%/40% 60% 30% 50%;
  animation:blob 10s ease-in-out infinite; opacity:.7;
}
@keyframes blob {
  0%,100%{border-radius:50% 40% 60% 30%/40% 60% 30% 50%;}
  33%{border-radius:62% 32% 44% 56%/32% 56% 60% 40%;}
  66%{border-radius:35% 62% 50% 42%/60% 38% 50% 46%;}
}
.blob-mauve { background:linear-gradient(145deg,var(--mauve-card),var(--mauve)); }
.blob-blue  { background:linear-gradient(145deg,var(--blue-card),var(--blue)); }
.blob-sage  { background:linear-gradient(145deg,var(--sage-card),var(--sage)); }

.story-icon {
  position:relative; z-index:2;
  width:240px; height:240px;
  object-fit:cover;
  object-position:center;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.1));
  border-radius:50%;
}
.icon-mauve { filter:drop-shadow(0 4px 14px rgba(122,90,104,.25)); }
.icon-blue  { filter:drop-shadow(0 4px 14px rgba(58,88,112,.25)); }
.icon-sage  { filter:drop-shadow(0 4px 14px rgba(58,90,64,.25)); }

/* ══ BUTTONS */
.btn-blue {
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.64rem; letter-spacing:.2em; text-transform:uppercase;
  color:white; background:var(--blue-accent);
  padding:.88rem 1.9rem; border:none; cursor:pointer;
  border-radius:6px; transition:background .28s;
}
.btn-blue:hover { background:var(--blue-deep); }

.btn-outline {
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:'Jost',sans-serif; font-weight:400;
  font-size:.64rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--charcoal); background:transparent;
  padding:.84rem 1.8rem; border:1.5px solid var(--cream-3);
  cursor:pointer; border-radius:6px; transition:all .28s;
}
.btn-outline:hover { border-color:var(--blue-accent); color:var(--blue-accent); background:rgba(46,95,163,.06); }

/* ══ KEEPSAKES */
.keepsakes { padding:5rem 5rem 6rem; }
.sec-ey { font-size:.56rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-4); margin-bottom:.4rem; }
.sec-h2 { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:500; color:var(--charcoal); }
.sec-h2 em { font-style:italic; color:var(--blue-accent); }
.sec-rule { width:44px; height:2px; margin:1rem 0 2.8rem; background:linear-gradient(to right,var(--blue-accent),var(--blue)); border-radius:2px; }

.kgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; max-width:980px; }
.kcard {
  position:relative; overflow:hidden; cursor:pointer;
  border:1px solid var(--cream-3); border-radius:4px;
  box-shadow:0 2px 10px rgba(42,34,24,.06);
  transition:transform .38s ease, box-shadow .38s;
}
.kcard:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(42,34,24,.13); }
.kcard::before {
  content:''; position:absolute; top:0; left:0; right:0;
  height:3px; z-index:3; transform:scaleX(0); transform-origin:left;
  transition:transform .38s ease; background:var(--blue-accent);
}
.kcard:hover::before { transform:scaleX(1); }
.kcard-img { width:100%; aspect-ratio:3/4; display:flex; align-items:flex-end; overflow:hidden; }
.kcard-grad { position:absolute; inset:0; background:linear-gradient(to top,rgba(20,14,8,.62) 0%,transparent 48%); }
.kcard-badge {
  position:absolute; top:.9rem; right:.9rem; z-index:4;
  font-size:.52rem; letter-spacing:.13em; text-transform:uppercase;
  background:rgba(46,95,163,.8); color:white;
  padding:.22rem .55rem; border-radius:999px; backdrop-filter:blur(4px);
}
.kcard-info { position:relative; z-index:2; padding:1.4rem 1.2rem 1.2rem; width:100%; }
.kcard-name { font-family:'Cormorant Garamond',serif; font-size:1.05rem; color:white; margin-bottom:.15rem; }
.kcard-sub { font-size:.62rem; letter-spacing:.1em; color:rgba(255,255,255,.68); text-transform:uppercase; }
/* Keepsake card fills */
.mauve-k1 { background:linear-gradient(165deg,#d8c0cc 0%,#b090a0 50%,#7a5868 100%); }
.mauve-k2 { background:linear-gradient(165deg,#c8b0bc 0%,#a07888 50%,#6a4858 100%); }
.mauve-k3 { background:linear-gradient(165deg,#e0c8d4 0%,#b89aaa 50%,#88607a 100%); }
.blue-k1  { background:linear-gradient(165deg,#ccdcea 0%,#5588c0 45%,#1e4070 100%); }
.blue-k2  { background:linear-gradient(165deg,#b8cee0 0%,#3a70a8 50%,#163858 100%); }
.blue-k3  { background:linear-gradient(165deg,#d2e2f0 0%,#6898c8 48%,#244870 100%); }
.sage-k1  { background:linear-gradient(165deg,#c8dcd0 0%,#6a9878 48%,#3a5840 100%); }
.sage-k2  { background:linear-gradient(165deg,#b8ccbc 0%,#587860 50%,#304838 100%); }
.sage-k3  { background:linear-gradient(165deg,#d8eadc 0%,#7aac88 48%,#486050 100%); }
.kcard-weave { position:absolute; inset:0; opacity:.1; pointer-events:none; }

/* ══ QUOTE */
.quote-band {
  padding:4rem 5rem; text-align:center;
  border-top:1px solid var(--cream-3); border-bottom:1px solid var(--cream-3);
  position:relative;
}
.quote-band::before,.quote-band::after {
  content:''; position:absolute; width:16px; height:16px;
  border-color:var(--blue-accent); border-style:solid;
}
.quote-band::before { top:1.2rem; left:2.5rem; border-width:1px 0 0 1px; }
.quote-band::after  { bottom:1.2rem; right:2.5rem; border-width:0 1px 1px 0; }
.quote-q {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.15rem,2vw,1.6rem); font-style:italic; font-weight:400;
  color:var(--ink-2); line-height:1.7; max-width:680px; margin:0 auto;
}
.quote-attr { margin-top:1rem; font-size:.58rem; letter-spacing:.28em; text-transform:uppercase; color:var(--ink-4); }

/* ══ PARALLAX PHOTO */
.photo-parallax {
  position:relative; height:480px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.photo-parallax-img {
  position:absolute; top:-20%; left:0; right:0; bottom:-20%;
  background-size:cover; background-position:center 30%; will-change:transform;
}
.photo-parallax-scrim {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom,rgba(26,20,14,.5) 0%,rgba(26,20,14,.18) 40%,rgba(26,20,14,.18) 60%,rgba(26,20,14,.5) 100%);
}
.photo-parallax-text { position:relative; z-index:2; text-align:center; padding:0 2rem; }
.ppt-ey {
  font-size:.58rem; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(245,239,226,.65); margin-bottom:.8rem;
  display:flex; align-items:center; justify-content:center; gap:.6rem;
}
.ppt-ey::before,.ppt-ey::after { content:''; display:block; width:24px; height:1px; background:rgba(245,239,226,.3); }
.ppt-q {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.4rem,3vw,2.2rem); font-style:italic;
  color:white; line-height:1.5; max-width:600px;
  text-shadow:0 2px 24px rgba(0,0,0,.45);
}

/* CINEMATIC */
.cin { position:relative; overflow:hidden; height:0; transition:height .9s cubic-bezier(.22,1,.36,1); }
.cin.open { height:540px; }
.cin-img { position:absolute; inset:0; background-size:cover; background-position:center; transform:translateY(40px); transition:transform 1.1s cubic-bezier(.22,1,.36,1); }
.cin.open .cin-img { transform:translateY(0); }
.cin-scrim { position:absolute; inset:0; z-index:1; background:linear-gradient(to right,rgba(26,20,14,.68) 0%,rgba(26,20,14,.12) 45%,transparent 70%); }
.cin-content { position:absolute; inset:0; z-index:2; display:flex; align-items:center; padding:0 5rem; }
.cin-inner { max-width:360px; opacity:0; transform:translateX(-20px); transition:opacity .8s .45s,transform .8s .45s; }
.cin.open .cin-inner { opacity:1; transform:translateX(0); }
.cin-lbl { font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; color:var(--blue); margin-bottom:.65rem; }
.cin-h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(1.5rem,3vw,2.2rem); font-style:italic; color:white; line-height:1.28; margin-bottom:.9rem; }
.cin-p { font-size:.83rem; line-height:1.9; color:rgba(245,239,226,.75); margin-bottom:1.4rem; }

/* ══ CUSTOM OPTIONS */
.options { padding:5.5rem 5rem; max-width:1080px; margin:0 auto; }
.opt-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2.8rem; }
.opt-card {
  padding:2.6rem; position:relative; overflow:hidden;
  border:1px solid var(--cream-3); border-radius:4px;
  cursor:pointer; background:white;
  transition:transform .38s ease, box-shadow .38s;
}
.opt-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(to right,var(--blue-accent),var(--blue)); }
.opt-card::after { content:''; position:absolute; inset:0; opacity:0; transition:opacity .38s; }
.opt-submit::after  { background:linear-gradient(135deg,rgba(107,140,114,.08),transparent 60%); }
.opt-curated::after { background:linear-gradient(135deg,rgba(184,158,168,.08),transparent 60%); }
.opt-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(42,34,24,.1); }
.opt-card:hover::after { opacity:1; }
.opt-num { font-family:'Cormorant Garamond',serif; font-size:3.2rem; font-weight:400; line-height:1; color:var(--cream-3); margin-bottom:1rem; position:relative; z-index:1; }
.opt-title { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:500; color:var(--charcoal); margin-bottom:.8rem; position:relative; z-index:1; }
.opt-desc { font-size:.82rem; line-height:1.95; color:var(--ink-2); margin-bottom:1.5rem; position:relative; z-index:1; }
.opt-list { list-style:none; margin-bottom:1.7rem; position:relative; z-index:1; }
.opt-list li { font-size:.76rem; color:var(--ink-2); padding:.48rem 0; border-bottom:1px solid rgba(220,208,184,.55); display:flex; align-items:flex-start; gap:.65rem; line-height:1.55; }
.opt-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; margin-top:.32rem; background:var(--blue-accent); }

/* ══ FABRICS */
.fabrics-wrap { padding:4rem 5rem 5rem; background:rgba(255,255,255,.45); }
.fab-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:.8rem; margin-top:2.5rem; }
.swatch { aspect-ratio:1; cursor:pointer; position:relative; overflow:hidden; border-radius:3px; transition:transform .28s,box-shadow .28s; }
.swatch:hover { transform:scale(1.08); z-index:2; box-shadow:0 6px 20px rgba(42,34,24,.16); }
.swatch::after { content:''; position:absolute; inset:0; border:2px solid var(--blue-accent); opacity:0; transition:opacity .22s; }
.swatch:hover::after { opacity:1; }
.sw-inner { width:100%; height:100%; display:flex; align-items:flex-end; }
.sw-lbl { width:100%; padding:.4rem; font-size:.54rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.9); background:linear-gradient(transparent,rgba(26,20,14,.42)); text-align:center; }

/* ══ MEMORIAL */
.memorial { text-align:center; padding:3.5rem 2rem 0; display:flex; flex-direction:column; align-items:center; gap:.6rem; }
.mem-hr { width:50px; height:1px; background:linear-gradient(to right,transparent,rgba(46,95,163,.4),transparent); }
.mem-text { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-style:italic; color:var(--ink-3); letter-spacing:.03em; }
.mem-name { color:var(--navy); font-weight:600; font-style:normal; }

/* ══ CONTACT / FOOTER */
.contact-wrap { background:var(--charcoal); padding:5.5rem 5rem 6rem; }
.contact-inner { max-width:680px; margin:0 auto; }
.c-ey { font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; color:var(--blue); margin-bottom:.6rem; }
.c-h2 { font-family:'Cormorant Garamond',serif; font-size:2.5rem; font-weight:400; line-height:1.18; color:white; margin-bottom:.6rem; }
.c-h2 em { font-style:italic; color:var(--blue); }
.c-rule { width:42px; height:2px; background:linear-gradient(to right,var(--blue-accent),var(--blue)); margin:.9rem 0 1.8rem; border-radius:2px; }
.c-sub { font-size:.83rem; line-height:1.95; color:rgba(245,239,226,.5); margin-bottom:2.6rem; }
.fgrid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.frow { display:flex; flex-direction:column; gap:.32rem; }
.frow.full { grid-column:1/-1; }
.frow label { font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,239,226,.35); }
.frow input,.frow select,.frow textarea {
  background:rgba(255,255,255,.055); border:1px solid rgba(112,144,168,.22);
  color:white; padding:.8rem 1rem;
  font-family:'Jost',sans-serif; font-size:.83rem; font-weight:300;
  outline:none; transition:border-color .28s; resize:none; appearance:none; border-radius:3px;
}
.frow input::placeholder,.frow textarea::placeholder { color:rgba(245,239,226,.18); }
.frow input:focus,.frow select:focus,.frow textarea:focus { border-color:var(--blue); }
.frow select option { background:var(--charcoal); }
.form-foot { display:flex; align-items:center; gap:1.4rem; margin-top:.5rem; }
.form-note { font-size:.68rem; line-height:1.7; color:rgba(245,239,226,.28); }
.ok-msg { display:none; margin-top:1rem; padding:.9rem 1.2rem; border-left:3px solid var(--blue); background:rgba(46,95,163,.12); color:var(--blue); font-size:.78rem; letter-spacing:.04em; }

/* ══ FOOTER BAR */
footer {
  background:var(--charcoal); border-top:1px solid rgba(245,239,226,.07);
  padding:1.8rem 3.5rem;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
}
.foot-logo { font-family:'Cormorant Garamond',serif; font-size:.9rem; color:rgba(245,239,226,.35); letter-spacing:.05em; }
.foot-links { display:flex; gap:1.8rem; flex-wrap:wrap; }
.foot-links a { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,239,226,.28); cursor:pointer; text-decoration:none; transition:color .25s; }
.foot-links a:hover { color:var(--blue); }
.foot-copy { font-size:.58rem; color:rgba(245,239,226,.2); }

/* ══ SCROLL REVEAL */
.rv { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s ease; }
.rv.in { opacity:1; transform:translateY(0); }
.d1{transition-delay:.07s;} .d2{transition-delay:.14s;} .d3{transition-delay:.21s;}
.d4{transition-delay:.28s;} .d5{transition-delay:.35s;} .d6{transition-delay:.42s;}

/* ══ RESPONSIVE */
@media(max-width:1000px){
  #nav { padding:0 1.4rem; }
  .nav-links,.nav-cta { display:none; }
  .burger { display:flex; }
  .hero { padding:6rem 1.4rem 0; }
  .paths { grid-template-columns:1fr; }
  .path { border-right:none; border-bottom:1px solid rgba(255,255,255,.4); }
  .path:last-child { border-bottom:none; }
  .workshop { padding:3.5rem 1.4rem 4rem; }
  .workshop-header { flex-direction:column; align-items:flex-start; gap:1rem; }
  .ihero { padding:7rem 1.4rem 3.5rem; min-height:auto; }
  .ihero-orb { display:none; }
  .story { grid-template-columns:1fr; gap:2.5rem; padding:4rem 1.4rem; }
  .story-vis { height:250px; order:2; }
  .keepsakes { padding:4rem 1.4rem; }
  .kgrid { grid-template-columns:1fr 1fr; gap:1rem; max-width:100%; }
  .quote-band { padding:3rem 2rem; }
  .quote-band::before,.quote-band::after { display:none; }
  .options { padding:4rem 1.4rem; }
  .opt-grid { grid-template-columns:1fr; }
  .fabrics-wrap { padding:3rem 1.4rem; }
  .fab-grid { grid-template-columns:repeat(3,1fr); }
  .contact-wrap { padding:4rem 1.4rem; }
  .fgrid { grid-template-columns:1fr; }
  footer { padding:1.4rem; flex-direction:column; text-align:center; }
  .foot-links { justify-content:center; }
  .photo-parallax { height:300px; }
  .cin.open { height:400px; }
  .cin-content { padding:0 1.4rem; }
  .cin-inner { max-width:270px; }
}
@media(max-width:520px){
  .kgrid { grid-template-columns:1fr; }
  .fab-grid { grid-template-columns:repeat(2,1fr); }
  .form-foot { flex-direction:column; align-items:flex-start; }
}

/* ══ MOBILE REFINEMENTS (2026-06-19) */
@media(max-width:600px){
  .path { padding:2rem 1.4rem 1.8rem; }
  .opt-card { padding:1.8rem 1.4rem; }
  .heritage-item { padding:1.6rem 1.4rem 1.6rem; }
  .story-vis { overflow:hidden; }
}
@media(max-width:400px){
  .sp-step-label { display:none; }
  .sp-step-line { width:12px; }
}

/* ══════════════════ WORKSHOP PAGE */
.wp-page {
  background: #FFFFFF;
  min-height: 100vh;
}
.wp-hero {
  background: #FFFFFF;
  padding: 7.5rem 4rem 3rem;
  border-bottom: 1px solid #F0F0F0;
  position: relative;
  overflow: hidden;
}
.wp-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 95% 50%, rgba(76,175,112,.06) 0%, transparent 60%),
    radial-gradient(ellipse 50% 60% at 5% 50%,  rgba(90,170,212,.05) 0%, transparent 55%);
  pointer-events: none;
}
.wp-hero-inner {
  max-width: 1080px; margin: 0 auto;
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 1.5rem;
  position: relative; z-index: 1;
}
.wp-eyebrow {
  font-family: 'Jost', sans-serif;
  font-size: .6rem; letter-spacing: .3em; text-transform: uppercase;
  color: #AAAAAA; margin-bottom: .5rem;
}
.wp-h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 4.5vw, 3.8rem);
  font-weight: 600; line-height: 1.08;
  color: #1A1A1A; letter-spacing: -.01em;
}
.wp-h1 em { font-style: italic; color: #4CAF70; }
.wp-sub {
  font-family: 'Jost', sans-serif;
  font-size: .88rem; line-height: 1.8;
  color: #777; font-weight: 300;
  max-width: 420px; margin-top: .6rem;
}
.wp-hero-right {
  display: flex; flex-direction: column; align-items: flex-end; gap: .6rem;
}
.wp-count {
  font-family: 'Jost', sans-serif;
  font-size: .72rem; color: #AAAAAA; letter-spacing: .06em;
}

/* Filter bar */
.wp-filters {
  background: #FFFFFF;
  border-bottom: 1px solid #F0F0F0;
  padding: 0 4rem;
  position: sticky; top: 64px; z-index: 50;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.wp-filters-inner {
  max-width: 1080px; margin: 0 auto;
  display: flex; align-items: center;
  gap: 0; overflow-x: auto;
  scrollbar-width: none;
}
.wp-filters-inner::-webkit-scrollbar { display: none; }
.wp-filter-btn {
  font-family: 'Jost', sans-serif;
  font-size: .66rem; font-weight: 400;
  letter-spacing: .14em; text-transform: uppercase;
  color: #999; background: none; border: none;
  padding: 1.1rem 1.4rem;
  cursor: pointer; white-space: nowrap;
  position: relative;
  transition: color .25s;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.wp-filter-btn:hover { color: #333; }
.wp-filter-btn.active {
  color: #1A1A1A; font-weight: 500;
  border-bottom-color: #4CAF70;
}
.wp-filter-sep {
  width: 1px; height: 16px;
  background: #EEEEEE;
  flex-shrink: 0; margin: 0 .2rem;
}

/* Sort dropdown */
.wp-sort-wrap {
  margin-left: auto; flex-shrink: 0;
  display: flex; align-items: center; gap: .5rem;
  padding: .8rem 0 .8rem 1.4rem;
  border-left: 1px solid #F0F0F0;
}
.wp-sort-label {
  font-family: 'Jost', sans-serif;
  font-size: .62rem; letter-spacing: .12em;
  text-transform: uppercase; color: #AAAAAA;
  white-space: nowrap;
}
.wp-sort {
  font-family: 'Jost', sans-serif; font-size: .72rem;
  border: 1px solid #EEEEEE; color: #333;
  background: #FAFAFA; padding: .3rem .6rem;
  border-radius: 4px; cursor: pointer; outline: none;
  appearance: none;
}

/* Product grid */
.wp-grid-wrap {
  background: #FFFFFF;
  padding: 3rem 4rem 5rem;
}
.wp-grid-inner { max-width: 1080px; margin: 0 auto; }
.wp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.8rem;
}
.wp-card {
  background: #FFFFFF;
  border: 1px solid #F0F0F0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  transition: transform .3s cubic-bezier(.2,1,.3,1), box-shadow .3s;
  cursor: pointer;
  position: relative;
}
.wp-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.11);
}
.wp-card.hidden { display: none; }
.wp-card-img {
  width: 100%; aspect-ratio: 1;
  background: #F7F7F7;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.wp-card-img-placeholder {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .6rem;
}
.wp-pip-icon { width: 40px; height: 40px; opacity: .15; }
.wp-pip-lbl {
  font-family: 'Jost', sans-serif;
  font-size: .58rem; letter-spacing: .18em;
  text-transform: uppercase; color: #BBBBBB;
}
.wp-card-badge {
  position: absolute; top: .8rem; left: .8rem;
  font-family: 'Jost', sans-serif;
  font-size: .54rem; letter-spacing: .14em; text-transform: uppercase;
  padding: .22rem .6rem; border-radius: 999px;
  font-weight: 500;
}
.badge-heritage { background: rgba(247,214,208,.7); color: #A04040; }
.badge-horizon  { background: rgba(200,228,244,.7); color: #2A6A90; }
.badge-hearth   { background: rgba(200,237,208,.7); color: #2A7A44; }
.badge-all      { background: rgba(230,230,230,.7); color: #555555; }
.wp-card-body { padding: 1rem 1.1rem 1.3rem; }
.wp-card-tag {
  font-family: 'Jost', sans-serif;
  font-size: .55rem; letter-spacing: .2em; text-transform: uppercase;
  color: #BBBBBB; margin-bottom: .25rem;
}
.wp-card-name {
  font-family: 'Jost', sans-serif;
  font-size: .94rem; font-weight: 500;
  color: #1A1A1A; line-height: 1.3; margin-bottom: .25rem;
}
.wp-card-desc {
  font-family: 'Jost', sans-serif;
  font-size: .76rem; color: #999; font-weight: 300;
  line-height: 1.55; margin-bottom: .7rem;
}
.wp-price-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem;
}
.wp-card-price {
  font-family: 'Jost', sans-serif;
  font-size: .88rem; font-weight: 500; color: #333;
}
.wp-card-atc {
  font-family: 'Jost', sans-serif; font-weight: 500;
  font-size: .58rem; letter-spacing: .14em; text-transform: uppercase;
  color: white;
  background: linear-gradient(135deg, #4CAF70, #3A9A5C);
  padding: .48rem .9rem; border: none; cursor: pointer;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(76,175,112,.25);
  transition: opacity .22s, transform .2s;
  white-space: nowrap;
}
.wp-card-atc:hover { opacity: .88; transform: translateY(-1px); }

/* Empty state */
.wp-empty {
  grid-column: 1/-1;
  text-align: center; padding: 4rem 2rem;
  font-family: 'Jost', sans-serif; color: #BBBBBB;
  font-size: .9rem; letter-spacing: .06em;
}

@media(max-width:960px) {
  .wp-hero { padding: 7rem 1.5rem 2.5rem; }
  .wp-filters { padding: 0 1.5rem; }
  .wp-grid-wrap { padding: 2.5rem 1.5rem 4rem; }
  .wp-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .wp-hero-right { align-items: flex-start; }
}
@media(max-width:480px) {
  .wp-grid { grid-template-columns: 1fr; }
}


/* ══════════════════ STORY INTAKE PAGE */
.story-page { background:#FAFAF8; min-height:100vh; }

.sp-hero {
  background: linear-gradient(135deg, #F7F3EC 0%, #EFF4EF 50%, #EAF1F6 100%);
  padding: 7.5rem 4rem 4rem;
  border-bottom: 1px solid #EEE8DC;
}
.sp-hero-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.sp-eyebrow {
  font-family:'Jost',sans-serif; font-size:.6rem;
  letter-spacing:.3em; text-transform:uppercase;
  color: var(--blue-accent); margin-bottom:.8rem;
}
.sp-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,4vw,3.4rem); font-weight:600;
  line-height:1.1; color:#1A1A1A; margin-bottom:.9rem;
}
.sp-h1 em { font-style:italic; color:var(--sage-deep); }
.sp-sub {
  font-family:'Jost',sans-serif; font-size:.9rem;
  line-height:1.85; color:#666; font-weight:300;
  max-width:520px; margin:0 auto;
}

/* Progress steps */
.sp-steps {
  display:flex; align-items:center; justify-content:center;
  gap:0; margin-top:2.5rem; flex-wrap:wrap;
}
.sp-step {
  display:flex; align-items:center; gap:.5rem;
  font-family:'Jost',sans-serif; font-size:.62rem;
  letter-spacing:.12em; text-transform:uppercase;
  color:#BBBBBB; font-weight:400;
  transition:color .3s;
}
.sp-step.active { color:#1A1A1A; font-weight:500; }
.sp-step.done   { color: var(--blue-accent); }
.sp-step-num {
  width:22px; height:22px; border-radius:50%;
  border:1.5px solid #DDD;
  display:flex; align-items:center; justify-content:center;
  font-size:.6rem; font-weight:500; color:#CCC;
  transition:all .3s; flex-shrink:0;
}
.sp-step.active .sp-step-num {
  background:#1A1A1A; border-color:#1A1A1A; color:white;
}
.sp-step.done .sp-step-num {
  background:var(--blue-accent); border-color:var(--blue-accent); color:white;
}
.sp-step-line {
  width:40px; height:1px; background:#DDD; flex-shrink:0;
}

/* Form body */
.sp-body {
  max-width:760px; margin:0 auto;
  padding:3.5rem 4rem 6rem;
}

/* Form sections — shown/hidden */
.sp-section { display:none; }
.sp-section.active { display:block; }

.sp-section-title {
  font-family:'Cormorant Garamond',serif;
  font-size:1.7rem; font-weight:500;
  color:#1A1A1A; margin-bottom:.4rem;
}
.sp-section-sub {
  font-family:'Jost',sans-serif; font-size:.84rem;
  color:#888; font-weight:300; line-height:1.7;
  margin-bottom:2rem;
}

/* Path cards (step 1) */
.sp-path-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.2rem; margin-bottom:2.5rem;
}
.sp-path-card {
  border:2px solid #E8E2D8;
  border-radius:10px; padding:1.8rem 1.2rem 1.5rem;
  cursor:pointer; text-align:center;
  background:white;
  transition:all .3s cubic-bezier(.2,1,.3,1);
  position:relative;
}
.sp-path-card:hover { transform:translateY(-3px); box-shadow:0 8px 28px rgba(0,0,0,.09); }
.sp-path-card.selected {
  border-color:var(--blue-accent);
  box-shadow:0 0 0 3px rgba(46,95,163,.12), 0 8px 28px rgba(46,95,163,.1);
  background:#F5F8FE;
}
.sp-path-card.selected::after {
  content:'✓';
  position:absolute; top:.7rem; right:.8rem;
  width:20px; height:20px; border-radius:50%;
  background:var(--blue-accent); color:white;
  font-size:.65rem; display:flex; align-items:center; justify-content:center;
  font-weight:700;
}
.sp-path-icon {
  width:52px; height:52px; border-radius:50%;
  margin:0 auto .9rem;
  display:flex; align-items:center; justify-content:center;
}
.spi-mauve { background:var(--mauve-card); }
.spi-blue  { background:var(--blue-card); }
.spi-sage  { background:var(--sage-card); }
.sp-path-icon img {
  width:36px; height:36px;
  object-fit:contain; object-position:center;
  filter:brightness(0);
}
.sp-path-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem; font-weight:500; color:#1A1A1A;
  margin-bottom:.3rem;
}
.sp-path-desc {
  font-family:'Jost',sans-serif; font-size:.74rem;
  color:#999; font-weight:300; line-height:1.55;
}

/* Item grid (step 2) */
.sp-item-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1rem; margin-bottom:2.5rem;
}
.sp-item-card {
  border:2px solid #E8E2D8; border-radius:8px;
  padding:1.3rem 1rem; cursor:pointer;
  background:white; text-align:center;
  transition:all .28s ease;
  position:relative;
}
.sp-item-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08); }
.sp-item-card.selected {
  border-color:var(--blue-accent); background:#F5F8FE;
  box-shadow:0 0 0 3px rgba(46,95,163,.1);
}
.sp-item-card.selected::after {
  content:'✓'; position:absolute; top:.5rem; right:.6rem;
  width:18px; height:18px; border-radius:50%;
  background:var(--blue-accent); color:white;
  font-size:.58rem; display:flex; align-items:center; justify-content:center; font-weight:700;
}
.sp-item-emoji { font-size:1.6rem; margin-bottom:.4rem; line-height:1; }
.sp-item-name {
  font-family:'Jost',sans-serif; font-size:.8rem;
  font-weight:500; color:#1A1A1A; margin-bottom:.15rem;
}
.sp-item-price {
  font-family:'Jost',sans-serif; font-size:.7rem;
  color:#AAAAAA; font-weight:300;
}

/* Additions (step 3) — checkboxes */
.sp-additions-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:.8rem; margin-bottom:2.5rem;
}
.sp-add-item {
  display:flex; align-items:center; gap:.9rem;
  border:2px solid #E8E2D8; border-radius:8px;
  padding:1rem 1.2rem; cursor:pointer;
  background:white; transition:all .28s;
}
.sp-add-item:hover { border-color:#CCC; background:#FAFAFA; }
.sp-add-item.selected { border-color:var(--blue-accent); background:#F5F8FE; }
.sp-add-check {
  width:18px; height:18px; border-radius:4px;
  border:2px solid #CCC; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  transition:all .25s;
}
.sp-add-item.selected .sp-add-check {
  background:var(--blue-accent); border-color:var(--blue-accent); color:white;
  font-size:.7rem; font-weight:700;
}
.sp-add-label {
  font-family:'Jost',sans-serif; font-size:.8rem;
  font-weight:400; color:#333; line-height:1.4;
}
.sp-add-sub {
  font-family:'Jost',sans-serif; font-size:.7rem;
  color:#AAAAAA; font-weight:300;
}

/* Design notes (step 4) */
.sp-design-note {
  background:#FFF8F0; border:1px solid #EEE0CC;
  border-radius:8px; padding:1.2rem 1.4rem;
  margin-bottom:1.5rem;
}
.sp-design-note p {
  font-family:'Jost',sans-serif; font-size:.82rem;
  color:#8A6840; line-height:1.7; font-weight:300;
}
.sp-design-note strong { font-weight:500; color:#6A4820; }

/* Form fields */
.sp-field { margin-bottom:1.2rem; }
.sp-field label {
  display:block; font-family:'Jost',sans-serif;
  font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
  color:#999; margin-bottom:.4rem;
}
.sp-field input,
.sp-field textarea,
.sp-field select {
  width:100%; font-family:'Jost',sans-serif;
  font-size:.88rem; font-weight:300; color:#1A1A1A;
  background:white; border:1.5px solid #E0D8CC;
  border-radius:6px; padding:.8rem 1rem;
  outline:none; transition:border-color .25s; resize:none;
  appearance:none;
}
.sp-field input:focus,
.sp-field textarea:focus,
.sp-field select:focus { border-color:var(--blue-accent); }
.sp-field input::placeholder,
.sp-field textarea::placeholder { color:#CCC; }
.sp-field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* Nav buttons */
.sp-nav {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:2.5rem; padding-top:1.8rem;
  border-top:1px solid #EEE8DC;
}
.sp-btn-back {
  font-family:'Jost',sans-serif; font-size:.66rem;
  letter-spacing:.18em; text-transform:uppercase;
  color:#999; background:none; border:none; cursor:pointer;
  transition:color .25s; display:flex; align-items:center; gap:.4rem;
}
.sp-btn-back:hover { color:#333; }
.sp-btn-next {
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:white; background:var(--blue-accent);
  padding:.88rem 2rem; border:none; cursor:pointer;
  border-radius:6px; transition:background .25s, transform .2s;
  display:flex; align-items:center; gap:.5rem;
}
.sp-btn-next:hover { background:var(--blue-deep); transform:translateY(-1px); }
.sp-btn-submit {
  font-family:'Jost',sans-serif; font-weight:500;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:white; background: linear-gradient(135deg,#4CAF70,#3A9A5C);
  padding:.88rem 2rem; border:none; cursor:pointer;
  border-radius:6px; transition:opacity .25s, transform .2s;
  box-shadow:0 3px 12px rgba(76,175,112,.3);
  display:flex; align-items:center; gap:.5rem;
}
.sp-btn-submit:hover { opacity:.88; transform:translateY(-1px); }

/* Success screen */
.sp-success {
  display:none; text-align:center; padding:4rem 2rem;
}
.sp-success-icon { font-size:3rem; margin-bottom:1rem; }
.sp-success-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:2rem; font-weight:500; color:#1A1A1A; margin-bottom:.8rem;
}
.sp-success-p {
  font-family:'Jost',sans-serif; font-size:.88rem;
  color:#888; line-height:1.85; max-width:420px; margin:0 auto 2rem;
}

@media(max-width:960px){
  .sp-hero { padding:7rem 1.5rem 3rem; }
  .sp-body { padding:2.5rem 1.5rem 4rem; }
  .sp-path-grid { grid-template-columns:1fr; }
  .sp-item-grid { grid-template-columns:1fr 1fr; }
  .sp-additions-grid { grid-template-columns:1fr; }
  .sp-field-row { grid-template-columns:1fr; }
  .sp-steps { gap:.3rem; }
  .sp-step-line { width:20px; }
}
@media(max-width:520px){
  .sp-item-grid { grid-template-columns:1fr; }
}


/* ══ HERITAGE FOCAL QUOTE */
.heritage-quote-band {
  padding: 4.5rem 2rem 1.5rem;
  text-align: center;
  background: transparent;
}
.heritage-focal-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-style: italic;
  font-weight: 400;
  color: var(--charcoal);
  line-height: 1.55;
  max-width: 680px;
  margin: 0 auto;
}
.heritage-focal-quote::before { content: '\201C'; }
.heritage-focal-quote::after  { content: '\201D'; }

.heritage-cta-wrap {
  text-align: center;
  padding: 2rem 2rem 3rem;
}
.btn-heritage {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: 'Jost', sans-serif; font-weight: 500;
  font-size: .68rem; letter-spacing: .18em; text-transform: uppercase;
  color: white;
  background: linear-gradient(135deg, var(--mauve), var(--mauve-deep));
  padding: .9rem 2.2rem; border: none; cursor: pointer;
  border-radius: 999px;
  box-shadow: 0 4px 18px rgba(184,158,168,.35);
  transition: transform .28s, box-shadow .28s, opacity .28s;
}
.btn-heritage:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(184,158,168,.45);
  opacity: .92;
}

/* ══ HERITAGE PRODUCT GRID */
.heritage-grid-section {
  padding: 0 5rem 5rem;
  max-width: 1080px;
  margin: 0 auto;
}
.heritage-grid-header {
  margin-bottom: 2rem;
}
.heritage-grid-eyebrow {
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--ink-4); margin-bottom: .5rem;
}
.heritage-grid-h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.9rem; font-weight: 500;
  color: var(--charcoal); line-height: 1.2;
}
.heritage-grid-h2 em { font-style: italic; color: var(--mauve-deep); }

.heritage-items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
.heritage-item {
  border: 1.5px solid var(--mauve-card);
  border-radius: 10px;
  padding: 2rem 1.8rem 2rem;
  background: white;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: transform .35s cubic-bezier(.2,1,.3,1), box-shadow .35s, border-color .35s;
}
.heritage-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 40px rgba(184,158,168,.18);
  border-color: var(--mauve);
}
.heritage-item::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(to right, var(--mauve-deep), var(--mauve), var(--mauve-card));
  border-radius: 10px 10px 0 0;
}
.heritage-item-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.8rem; font-weight: 400; line-height: 1;
  color: var(--mauve-card); margin-bottom: .8rem;
}
.heritage-item-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem; font-weight: 500;
  color: var(--charcoal); margin-bottom: .7rem; line-height: 1.2;
}
.heritage-item-desc {
  font-family: 'Jost', sans-serif;
  font-size: .82rem; font-weight: 300;
  color: var(--ink-2); line-height: 1.85;
  margin-bottom: .6rem;
}
.heritage-item-note {
  font-family: 'Jost', sans-serif;
  font-size: .72rem; font-weight: 300;
  font-style: italic;
  color: var(--ink-3); line-height: 1.7;
}
.heritage-item-cta {
  display: inline-flex; align-items: center; gap: .4rem;
  margin-top: 1.3rem;
  font-family: 'Jost', sans-serif;
  font-size: .62rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--mauve-deep); font-weight: 500;
  border-bottom: 1.5px solid var(--mauve);
  padding-bottom: 2px; cursor: pointer;
  transition: gap .3s, color .25s;
}
.heritage-item:hover .heritage-item-cta { gap: .65rem; color: var(--charcoal); }
.heritage-item-cta::after { content: '→'; transition: transform .3s; }
.heritage-item:hover .heritage-item-cta::after { transform: translateX(3px); }

@media(max-width:960px) {
  .heritage-grid-section { padding: 0 1.5rem 4rem; }
  .heritage-items { grid-template-columns: 1fr; gap: 1.2rem; }
}


/* ══════════════════════════════════ ABOUT US (home) */
.about {
  background:var(--cream-2);
  border-top:1px solid var(--cream-3);
  border-bottom:1px solid var(--cream-3);
  padding:5.5rem 1.5rem;
  display:flex; justify-content:center;
}
.about-inner { max-width:760px; width:100%; text-align:center; }
.about-eyebrow {
  font-family:'Jost',sans-serif; font-size:.72rem; font-weight:500;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.1rem;
}
.about-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.9rem,3.6vw,2.9rem);
  font-weight:500; line-height:1.16; color:var(--charcoal);
}
.about-h2 em { font-style:italic; color:var(--navy); }
.about-rule {
  width:54px; height:2px; background:var(--gold-lt);
  margin:1.6rem auto 2.2rem;
}
.about-body { text-align:left; }
.about-body p {
  font-size:1rem; line-height:1.85; color:var(--ink-2);
  margin-bottom:1.2rem;
}
.about-body .about-lead,
.about-body .about-close {
  font-family:'Cormorant Garamond',serif;
  font-size:1.35rem; font-style:italic;
  text-align:center; color:var(--navy);
  margin:1.8rem 0;
}
@media(max-width:600px) {
  .about { padding:4rem 1.25rem; }
  .about-body p { font-size:.95rem; }
}

/* selectable example cards (path pages) start an inquiry on click */
.kcard-select { cursor:pointer; }
.kcard-select .kcard-img { transition:transform .35s ease, box-shadow .35s ease; }
.kcard-select:hover .kcard-img { transform:translateY(-4px); box-shadow:0 14px 30px rgba(42,34,24,.16); }
