/* ================================================================
   TASTE OF INDIA INTERNATIONAL — v8 Editorial Neutral
   Fraunces (display) + Inter (UI). Neutral cream + ink.
   Orange used only for primary CTAs / one hero highlight (<10%).
   Fonts loaded via <link> in root; no CSS URL @import.
   ================================================================ */

/* ── Tokens ── */
:root {
  /* Accent — single hue, used sparingly */
  --o:      #E85D2F;
  --odk:    #C24A22;
  --olt:    #FBEFE9;

  /* Neutrals */
  --white:  #FFFFFF;
  --bg:     #F3EFE4;   /* page cream */
  --bg2:    #EDE7D7;   /* slight cream shade */
  --warm:   #EFEBDF;
  --warm2:  #E7E1D2;

  --dark:   #0E0E0E;
  --dark2:  #1A1A1A;
  --ink:    #111111;
  --ink2:   #4B4B4B;
  --ink3:   #6E6E6E;

  --border:    #E2DDD0;
  --border-lt: #ECE7DA;

  /* WhatsApp stays green (recognition), used only on WA CTAs */
  --green:  #25D366;
  --green2: #1DAA55;

  --r:    12px;
  --r-lg: 20px;
  --r-xl: 28px;

  --sh-xs: 0 1px 2px rgba(0,0,0,.04);
  --sh:    0 2px 10px rgba(0,0,0,.05);
  --sh-md: 0 8px 24px rgba(0,0,0,.08);
  --sh-lg: 0 20px 48px rgba(0,0,0,.12);

  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.34,1.56,.64,1);
  --t: .22s;

  --ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--o);
}

/* ── Reset ── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  font-size:16px; line-height:1.6;
  background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  font-feature-settings:'ss01','cv11';
}
img { display:block; max-width:100%; }
a  { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }
input,select,textarea { font-family:inherit; }

/* Focus */
:where(a,button,input,select,textarea,[role="button"]):focus-visible {
  outline:none; box-shadow:var(--ring); border-radius:8px;
}

/* ── Layout ── */
.container { max-width:1200px; margin:0 auto; padding:0 24px; }
.section    { padding:96px 0; }
.section-sm { padding:56px 0; }

/* ── Typography ── */
h1,h2,h3,h4 {
  font-family:'Fraunces','Iowan Old Style','Georgia',serif;
  color:var(--ink); line-height:1.08; letter-spacing:-.02em;
  font-weight:400; font-variation-settings:'opsz' 96,'SOFT' 30;
}
h1 { font-size:clamp(2.6rem,6vw,4.8rem); }
h2 { font-size:clamp(1.9rem,3.8vw,3rem); }
h3 { font-size:clamp(1.15rem,2vw,1.4rem); font-variation-settings:'opsz' 24; }
h4 { font-size:1rem; font-variation-settings:'opsz' 14; letter-spacing:-.01em; }

.display-hero {
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(3rem,7.5vw,6rem);
  line-height:1.02; letter-spacing:-.035em;
  font-variation-settings:'opsz' 144,'SOFT' 30;
}
.display-hero em, h2 em, h1 em, .hero-headline em, .bento-note em, .stcard.filled em {
  font-style:italic; color:var(--o); font-variation-settings:'opsz' 144;
}
.hiw-step h3 em { font-style:italic; color:var(--o); }

.eyebrow {
  font-family:'Inter',sans-serif;
  font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink3);
}
p  { color:var(--ink2); line-height:1.68; }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; border-radius:999px;
  font-family:'Inter',sans-serif; font-weight:600; font-size:.92rem;
  padding:13px 24px; cursor:pointer; border:1.5px solid transparent;
  white-space:nowrap; text-decoration:none; line-height:1;
  transition:transform var(--t) var(--spring),
             background var(--t) var(--ease),
             border-color var(--t) var(--ease),
             color var(--t) var(--ease);
  min-height:48px;
}
.btn:hover { transform:translateY(-1px); }

/* PRIMARY orange (used sparingly — main CTA only) */
.btn-orange, .btn-primary { background:var(--o); color:#fff; }
.btn-orange:hover, .btn-primary:hover { background:var(--odk); }

/* WhatsApp keeps recognition green */
.btn-wa { background:var(--green); color:#fff; }
.btn-wa:hover { background:var(--green2); }

.btn-dark    { background:var(--dark); color:#fff; }
.btn-dark:hover { background:#000; }
.btn-outline {
  background:transparent; color:var(--ink);
  border-color:var(--ink);
}
.btn-outline:hover { background:var(--ink); color:#fff; }
.btn-ghost-white {
  background:transparent; color:#fff;
  border-color:rgba(255,255,255,.4);
}
.btn-ghost-white:hover { background:#fff; color:var(--ink); }
.btn-lg  { padding:15px 30px; font-size:.98rem; min-height:52px; }
.btn-sm  { padding:9px 18px; font-size:.82rem; min-height:38px; }

/* ── Navigation ── */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:rgba(243,239,228,.85);
  backdrop-filter:blur(16px) saturate(1.2);
  border-bottom:1px solid transparent;
  transition:border-color var(--t), background var(--t);
}
.navbar.elevated { border-bottom-color:var(--border); background:rgba(243,239,228,.95); }
.nav-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:68px;
}
.nav-logo { display:flex; align-items:center; gap:10px; }
.nav-logo-mark {
  width:36px; height:36px; border-radius:9px;
  background:var(--ink); display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-style:italic; font-weight:500;
  font-size:.86rem; letter-spacing:-.02em; color:#fff;
  transition:transform var(--t) var(--spring); flex-shrink:0;
}
.nav-logo:hover .nav-logo-mark { transform:rotate(-4deg); }
.nav-logo-name { font-family:'Fraunces',serif; font-weight:500; font-size:.98rem; color:var(--ink); line-height:1.1; letter-spacing:-.01em; }
.nav-logo-sub  { font-size:.6rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--ink3); }
.nav-links { display:flex; align-items:center; gap:2px; }
.nav-links a {
  padding:8px 14px; border-radius:8px;
  font-size:.88rem; font-weight:500; color:var(--ink2);
  transition:color var(--t), background var(--t);
}
.nav-links a:hover, .nav-links a.active { color:var(--ink); background:rgba(0,0,0,.05); }
.nav-right { display:flex; align-items:center; gap:10px; }
.nav-login { font-size:.88rem; font-weight:600; color:var(--ink2); padding:8px 12px; transition:color var(--t); }
.nav-login:hover { color:var(--ink); }

/* Hamburger */
.hamburger {
  display:none; flex-direction:column; justify-content:center;
  align-items:center; gap:5px;
  width:44px; height:44px; border-radius:10px;
  background:transparent; border:1px solid var(--border);
  cursor:pointer; transition:background var(--t);
}
.hamburger:hover { background:rgba(0,0,0,.04); }
.hamburger span { display:block; width:20px; height:2px; background:var(--ink); border-radius:2px; transition:transform .22s var(--ease), opacity .22s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.nav-drawer {
  position:fixed; top:68px; left:0; right:0; z-index:999;
  background:var(--bg); border-bottom:1px solid var(--border);
  padding:12px 24px 24px;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .3s cubic-bezier(0,0,.2,1);
}
.nav-drawer.open { clip-path:inset(0 0 0% 0); }
.nav-drawer a {
  display:flex; align-items:center;
  padding:14px 0; font-size:1rem; font-weight:500;
  color:var(--ink); border-bottom:1px solid var(--border-lt);
}
.nav-drawer a:last-of-type { border-bottom:none; }
.nav-drawer .btn { width:100%; justify-content:center; margin-top:14px; }

/* ================================================================
   HOMEPAGE HERO — dark rounded panel on cream, editorial serif
   ================================================================ */
.hero-section { background:var(--bg); padding-top:88px; padding-bottom:24px; }
.hero-top { text-align:center; padding:56px 24px 40px; max-width:960px; margin:0 auto; }

.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; border:1px solid var(--border);
  border-radius:999px; padding:6px 14px 6px 10px; margin-bottom:24px;
}
.hero-badge-live {
  width:7px; height:7px; border-radius:50%;
  background:var(--green);
  animation:live-pulse 2s ease-in-out infinite; flex-shrink:0;
}
@keyframes live-pulse {
  0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.4)}
  50%    {box-shadow:0 0 0 6px rgba(37,211,102,0)}
}
.hero-badge span { font-size:.76rem; font-weight:600; color:var(--ink2); letter-spacing:.02em; }

.hero-headline {
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(2.8rem,7.2vw,5.6rem);
  color:var(--ink); line-height:1.02;
  letter-spacing:-.035em;
  max-width:860px; margin:0 auto 20px;
  font-variation-settings:'opsz' 144,'SOFT' 30;
}
.hero-sub {
  font-family:'Inter',sans-serif;
  font-size:1.05rem; line-height:1.65; color:var(--ink2);
  max-width:540px; margin:0 auto 32px;
}
.hero-ctas { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* Hero visual panels: dark rounded panel + side panel */
.hero-panels {
  display:grid; grid-template-columns:62fr 38fr; gap:14px;
  padding:0 24px 24px; max-width:1200px; margin:24px auto 0;
}
.hero-panel-main {
  border-radius:var(--r-xl); overflow:hidden;
  position:relative; aspect-ratio:16/10;
  background:var(--dark);
}
.hero-panel-main > img {
  width:100%; height:100%; object-fit:cover;
  opacity:.85; transition:transform .6s var(--ease);
}
.hero-panel-main::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(14,14,14,.1) 40%,rgba(14,14,14,.55) 100%);
}
.hero-float-chat {
  position:absolute; bottom:20px; left:20px; right:20px; z-index:2;
  display:flex; flex-direction:column; gap:8px;
}
.hfc-msg {
  background:rgba(255,255,255,.96); backdrop-filter:blur(12px);
  border-radius:12px; padding:11px 14px;
  display:flex; align-items:center; gap:10px;
  box-shadow:var(--sh-md); max-width:280px;
}
.hfc-msg.right { margin-left:auto; }
.hfc-msg-icon {
  width:30px; height:30px; border-radius:50%;
  background:var(--ink); display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.hfc-msg-icon.green { background:var(--green); }
.hfc-msg-icon svg { color:#fff; }
.hfc-msg-title { font-size:.76rem; font-weight:600; color:var(--ink); }
.hfc-msg-sub   { font-size:.7rem; color:var(--ink3); margin-top:1px; }

/* Side dark panel */
.hero-panel-side {
  border-radius:var(--r-xl); background:var(--dark);
  padding:32px 28px;
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative; overflow:hidden;
}
.hps-big {
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(2.8rem,4vw,4rem);
  color:#fff; line-height:1; letter-spacing:-.03em;
  font-variation-settings:'opsz' 144;
}
.hps-label { color:rgba(255,255,255,.6); font-size:.85rem; font-weight:500; margin-top:8px; line-height:1.5; max-width:220px; }
.hps-list { display:flex; flex-direction:column; gap:10px; margin-top:auto; padding-top:24px; }
.hps-item { display:flex; align-items:center; gap:10px; font-size:.85rem; font-weight:500; color:rgba(255,255,255,.75); }
.hps-item-dot { width:6px; height:6px; border-radius:50%; background:var(--o); flex-shrink:0; }
.hps-wa-btn {
  margin-top:24px;
  display:inline-flex; align-items:center; gap:9px;
  background:var(--o); color:#fff;
  border-radius:999px; padding:12px 22px;
  font-size:.9rem; font-weight:600;
  text-decoration:none; transition:background var(--t);
}
.hps-wa-btn:hover { background:var(--odk); }

/* ── Marquee ── */
.marquee { background:var(--dark); padding:14px 0; overflow:hidden; }
.marquee-track { display:flex; width:max-content; animation:mscroll 32s linear infinite; align-items:center; }
.marquee:hover .marquee-track { animation-play-state:paused; }
@keyframes mscroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.mi { display:inline-flex; align-items:center; gap:8px; padding:0 28px; white-space:nowrap; font-size:.75rem; font-weight:500; color:rgba(255,255,255,.45); letter-spacing:.02em; }
.mi-dot { width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.35); flex-shrink:0; }

/* ── Stats bar ── */
.stats-bar { background:var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:40px 0; }
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); max-width:1200px; margin:0 auto; padding:0 24px; }
.stat-cell { text-align:center; padding:16px; border-right:1px solid var(--border); }
.stat-cell:last-child { border-right:none; }
.stat-num {
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(2rem,3.4vw,2.8rem);
  color:var(--ink); line-height:1; margin-bottom:6px;
  letter-spacing:-.03em;
  font-variation-settings:'opsz' 96;
}
.stat-lbl { font-size:.78rem; color:var(--ink3); font-weight:500; letter-spacing:.02em; }

/* ── Section header ── */
.sh { margin-bottom:48px; }
.sh.center { text-align:center; }
.sh .eyebrow { margin-bottom:12px; display:block; }
.sh h2 { margin-bottom:14px; }
.sh p  { max-width:540px; font-size:1rem; line-height:1.68; color:var(--ink2); }
.sh.center p { margin:0 auto; }

/* ── Bento products grid — hairline cards, no tints ── */
.products-section { background:var(--bg); }
.bento-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.bcard {
  border-radius:var(--r-lg); overflow:hidden; position:relative;
  transition:transform var(--t) var(--spring), border-color var(--t);
  background:var(--white); border:1px solid var(--border);
}
.bcard:hover { transform:translateY(-2px); border-color:var(--ink3); }
.bcard-img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .55s var(--ease); filter:grayscale(.15); }
.bcard:hover .bcard-img { transform:scale(1.04); }
.bcard.col2 { grid-column:span 2; }
.bcard.col3 { grid-column:span 3; }
.bcard.row2 { grid-row:span 2; }
.bcard-label {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top,rgba(14,14,14,.75),transparent);
  padding:24px 18px 16px; display:flex; align-items:flex-end; justify-content:space-between;
}
.bcard-name { font-family:'Fraunces',serif; font-weight:400; font-size:1.05rem; color:#fff; line-height:1.2; }
.bcard-arrow {
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center;
  color:#fff; flex-shrink:0;
  transition:background var(--t), transform var(--t) var(--spring);
}
.bcard:hover .bcard-arrow { background:#fff; color:var(--ink); transform:rotate(45deg); }
.bcard-short .bcard-img { max-height:200px; }

/* Solid tiles (typographic) — neutralize any inline bg by overriding */
.bcard-solid {
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:22px; min-height:150px;
  background:var(--white) !important;
  border:1px solid var(--border);
}
.bcard-solid.warm-bg { background:var(--white) !important; }
.bcard-solid.dark-bg { background:var(--dark) !important; border-color:var(--dark); }
.bcard-solid.dark-bg h4 { color:#fff; }
.bcard-solid.dark-bg p  { color:rgba(255,255,255,.6) !important; }
.bcard-solid h4 { font-family:'Fraunces',serif; font-weight:500; font-size:1.05rem; margin-bottom:4px; letter-spacing:-.01em; }
.bcard-solid p  { font-size:.82rem; color:var(--ink3) !important; margin:0; }
/* Neutralize icon stroke colors used inline (--o) on solid tiles */
.bcard-solid svg { stroke:var(--ink2) !important; opacity:1 !important; }
.bcard-solid.dark-bg svg { stroke:rgba(255,255,255,.7) !important; }

.bento-note {
  margin-top:20px; text-align:center;
  font-family:'Fraunces',serif; font-style:italic; font-weight:400;
  font-size:1.15rem; color:var(--ink);
  padding:22px 24px; background:transparent;
  border-top:1px solid var(--border); border-radius:0;
}
.bento-note em { font-style:normal; color:var(--o); font-weight:500; }

/* ── How It Works — numbered ── */
.hiw-section { background:var(--bg); }
.hiw-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.hiw-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-xl); padding:28px 26px;
  transition:transform var(--t) var(--spring), border-color var(--t);
  position:relative; overflow:hidden;
}
.hiw-card:hover { transform:translateY(-2px); border-color:var(--ink3); }
.hiw-card.featured { background:var(--dark); border-color:var(--dark); }
.hiw-card.featured h3 { color:#fff; }
.hiw-card.featured p  { color:rgba(255,255,255,.65); }
.hiw-num {
  width:36px; height:36px; border-radius:50%;
  background:var(--ink); color:#fff;
  font-family:'Inter',sans-serif; font-weight:600;
  font-size:.88rem; display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
}
.hiw-card.featured .hiw-num { background:var(--o); }
.hiw-big-num {
  font-family:'Fraunces',serif; font-weight:400; font-style:italic;
  font-size:3.6rem; color:var(--ink); opacity:.06;
  line-height:1; position:absolute; top:16px; right:20px;
}
.hiw-card.featured .hiw-big-num { color:#fff; opacity:.12; }
.hiw-card h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.15rem; color:var(--ink); margin-bottom:10px; letter-spacing:-.01em; }
.hiw-card p  { font-size:.9rem; color:var(--ink2); line-height:1.65; margin:0; }

/* ── Trust section ── */
.trust-section { background:var(--bg); }
.trust-inner { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.trust-text h2 { margin-bottom:16px; }
.trust-text p  { font-size:1rem; color:var(--ink2); line-height:1.7; max-width:440px; margin-bottom:28px; }
.trust-list { display:flex; flex-direction:column; gap:14px; margin-bottom:32px; }
.trust-item { display:flex; align-items:flex-start; gap:12px; font-size:.92rem; color:var(--ink); font-weight:500; }
.trust-item-check {
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  background:var(--ink); display:flex; align-items:center; justify-content:center;
  margin-top:1px;
}
.trust-item-check svg { color:#fff; }
.trust-visual { position:relative; }
.trust-photo {
  border-radius:var(--r-xl); overflow:hidden;
  background:var(--warm); aspect-ratio:4/5;
}
.trust-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(.1); }
.trust-float {
  position:absolute; bottom:-18px; left:-20px;
  background:var(--white); border-radius:var(--r-lg);
  padding:18px 22px; border:1px solid var(--border);
  min-width:200px; box-shadow:var(--sh);
}
.trust-float-num { font-family:'Fraunces',serif; font-weight:500; font-size:2rem; color:var(--ink); line-height:1; }
.trust-float-label { font-size:.78rem; color:var(--ink3); font-weight:500; margin-top:4px; }

/* ── Stories ── */
.stories-section { background:var(--bg); }
.stories-wrap {
  background:var(--white); border-radius:var(--r-xl);
  padding:32px; border:1px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
.stories-left { display:flex; flex-direction:column; }
.stories-left-headline {
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(1.6rem,2.8vw,2.4rem);
  color:var(--ink); line-height:1.15; margin-bottom:20px; letter-spacing:-.02em;
}
.stories-left-img { flex:1; border-radius:var(--r-lg); overflow:hidden; position:relative; min-height:280px; background:var(--warm); }
.stories-left-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(.15); }
.stories-left-stat { position:absolute; bottom:20px; right:22px; font-family:'Fraunces',serif; font-weight:500; font-size:clamp(2rem,3.5vw,3rem); color:#fff; line-height:1; text-shadow:0 2px 12px rgba(0,0,0,.4); }
.stories-left-stat span { display:block; font-family:'Inter',sans-serif; font-size:.7rem; font-weight:600; opacity:.85; letter-spacing:.08em; text-transform:uppercase; }
.stories-right { display:flex; flex-direction:column; gap:10px; }
.stcard {
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:20px 22px;
  position:relative; flex:1;
}
.stcard.filled { background:var(--dark); border-color:var(--dark); }
.stcard.filled .stcard-quote { color:rgba(255,255,255,.8); }
.stcard.filled .stcard-name  { color:#fff; }
.stcard.filled .stcard-role  { color:rgba(255,255,255,.55); }
.stcard.filled .stcard-arrow { background:rgba(255,255,255,.14); color:#fff; }
.stcard-stars { display:flex; gap:2px; margin-bottom:10px; }
.stcard-stars svg { color:var(--ink); }
.stcard.filled .stcard-stars svg { color:#fff; }
.stcard-quote { font-size:.87rem; color:var(--ink2); line-height:1.65; margin-bottom:14px; }
.stcard-author { display:flex; align-items:center; gap:10px; }
.stcard-av { width:34px; height:34px; border-radius:50%; overflow:hidden; background:var(--warm2); flex-shrink:0; }
.stcard-av img { width:100%; height:100%; object-fit:cover; filter:grayscale(.15); }
.stcard-name { font-weight:600; font-size:.85rem; color:var(--ink); }
.stcard-role { font-size:.74rem; color:var(--ink3); margin-top:1px; }
.stcard-arrow { position:absolute; bottom:16px; right:16px; width:28px; height:28px; border-radius:50%; background:var(--warm); color:var(--ink3); display:flex; align-items:center; justify-content:center; transition:background var(--t); }
.stories-cta-strip { background:var(--ink); border-radius:var(--r-lg); padding:18px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.stories-cta-strip p { font-family:'Fraunces',serif; font-size:1.1rem; color:#fff; margin:0; }
.stories-cta-strip .btn { background:var(--o); color:#fff; padding:10px 20px; font-size:.85rem; min-height:40px; border-color:var(--o); }
.stories-cta-strip .btn:hover { background:var(--odk); border-color:var(--odk); }

/* ── Emotional final CTA — flat dark, no gradients ── */
.emotion-cta {
  position:relative; overflow:hidden; min-height:400px;
  display:flex; align-items:center;
  background:var(--dark);
}
.emotion-cta-bg { display:none; }
.emotion-cta-inner { position:relative; z-index:1; padding:88px 0; }
.emotion-cta h2 { font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:clamp(2.2rem,4.5vw,3.6rem); color:#fff; margin-bottom:14px; line-height:1.1; }
.emotion-cta p  { color:rgba(255,255,255,.6); max-width:420px; font-size:1rem; margin-bottom:32px; }

/* ── Other page hero ── */
.page-hero { background:var(--dark); padding:136px 0 72px; position:relative; overflow:hidden; }
.page-hero h1 { color:#fff; max-width:720px; margin-bottom:16px; }
.page-hero .lead { color:rgba(255,255,255,.65); max-width:520px; margin-bottom:28px; font-size:1.05rem; }
.page-hero .eyebrow { color:rgba(255,255,255,.5); display:block; margin-bottom:14px; }

/* ── FAQ ── */
.faq-cats { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px; }
.faq-cat-btn {
  padding:9px 18px; border-radius:999px; font-size:.82rem; font-weight:600; cursor:pointer;
  background:transparent; border:1px solid var(--border); color:var(--ink2);
  transition:all var(--t); min-height:40px; font-family:'Inter',sans-serif;
}
.faq-cat-btn:hover { border-color:var(--ink); color:var(--ink); }
.faq-cat-btn.active { background:var(--ink); border-color:var(--ink); color:#fff; }
.faq-cat-group { display:none; }
.faq-cat-group.active { display:block; }
.faq-item { background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); margin-bottom:8px; overflow:hidden; }
.faq-trigger {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px; gap:14px; cursor:pointer; text-align:left;
  font-size:.95rem; font-weight:500; color:var(--ink);
  background:none; border:none; font-family:'Inter',sans-serif;
  transition:color var(--t); min-height:56px;
}
.faq-chev { width:26px; height:26px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all var(--t) var(--spring); }
.faq-chev svg { color:var(--ink3); }
.faq-item.open .faq-trigger { font-weight:600; }
.faq-item.open .faq-chev { background:var(--ink); border-color:var(--ink); transform:rotate(180deg); }
.faq-item.open .faq-chev svg { color:#fff; }
.faq-body { max-height:0; overflow:hidden; transition:max-height .35s cubic-bezier(0,0,.2,1),padding .35s; }
.faq-item.open .faq-body { max-height:600px; padding:0 22px 20px; }
.faq-body p, .faq-body li { font-size:.92rem; color:var(--ink2); line-height:1.72; }
.faq-body ol, .faq-body ul { padding-left:20px; }

/* ── Services page ── */
.sol-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.sol-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-xl); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform var(--t) var(--spring), border-color var(--t);
}
.sol-card:hover { transform:translateY(-3px); border-color:var(--ink3); }
.sol-card-img { aspect-ratio:16/9; overflow:hidden; background:var(--warm); }
.sol-card-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(.15); transition:transform .55s var(--ease); }
.sol-card:hover .sol-card-img img { transform:scale(1.04); }
.sol-card-body { padding:26px 26px 22px; flex:1; display:flex; flex-direction:column; }
.sol-voice { display:inline-block; font-family:'Inter',sans-serif; font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink3); border:1px solid var(--border); border-radius:999px; padding:4px 11px; margin-bottom:12px; align-self:flex-start; background:transparent; }
.sol-card h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.2rem; color:var(--ink); margin-bottom:8px; letter-spacing:-.01em; }
.sol-card p { font-size:.9rem; color:var(--ink2); line-height:1.65; flex:1; margin:0; }
.sol-for { margin-top:14px; padding-top:14px; border-top:1px solid var(--border-lt); }
.sol-for-label { font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--ink3); margin-bottom:8px; }
.sol-for ul { display:flex; flex-direction:column; gap:6px; }
.sol-for li { display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--ink2); }
.sol-for li svg { color:var(--ink); flex-shrink:0; }
.sol-action { display:inline-flex; align-items:center; gap:6px; margin-top:18px; padding:10px 18px; background:var(--ink); color:#fff; border-radius:999px; font-size:.82rem; font-weight:600; border:none; cursor:pointer; font-family:'Inter',sans-serif; text-decoration:none; align-self:flex-start; transition:background var(--t); }
.sol-action:hover { background:var(--o); }

/* ── HIW page journey ── */
.hiw-step { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:64px 0; border-bottom:1px solid var(--border); }
.hiw-step:last-child { border-bottom:none; }
.hiw-step.flip .hiw-step-text { order:2; }
.hiw-step.flip .hiw-step-vis  { order:1; }
.hiw-step-num { font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:4rem; color:var(--ink); opacity:.1; line-height:1; margin-bottom:-4px; }
.hiw-step-label { display:inline-block; background:transparent; border:1px solid var(--border); color:var(--ink3); font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; border-radius:999px; padding:5px 12px; margin-bottom:14px; }
.hiw-step h3 { font-family:'Fraunces',serif; font-weight:500; font-size:clamp(1.6rem,2.6vw,2.2rem); color:var(--ink); margin-bottom:14px; line-height:1.15; letter-spacing:-.02em; }
.hiw-step p { font-size:.98rem; color:var(--ink2); line-height:1.7; max-width:440px; }
.hiw-step-img { border-radius:var(--r-xl); overflow:hidden; background:var(--warm); }
.hiw-step-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(.15); }

/* WA mockup */
.wa-mockup { background:#ECE5DD; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh); }
.wa-mockup-header { background:#075E54; padding:14px 16px; display:flex; align-items:center; gap:12px; }
.wa-mockup-avatar { width:36px; height:36px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-style:italic; font-size:.9rem; color:#fff; flex-shrink:0; }
.wa-mockup-name   { color:#fff; font-weight:600; font-size:.88rem; }
.wa-mockup-status { color:rgba(255,255,255,.55); font-size:.74rem; }
.wa-msgs { padding:14px 12px; display:flex; flex-direction:column; gap:8px; min-height:160px; }
.wa-msg { max-width:78%; padding:9px 12px 7px; border-radius:9px; font-size:.83rem; line-height:1.5; }
.wa-msg.recv { background:#fff; align-self:flex-start; border-bottom-left-radius:2px; color:#1a1a1a; }
.wa-msg.sent { background:#DCF8C6; align-self:flex-end; border-bottom-right-radius:2px; color:#1a1a1a; }
.wa-msg-time { font-size:.65rem; color:rgba(0,0,0,.4); text-align:right; margin-top:2px; }

.estimate-card { background:#fff; border-radius:var(--r-lg); border:1px solid var(--border); overflow:hidden; }
.estimate-header { background:var(--dark); padding:14px 18px; display:flex; align-items:center; justify-content:space-between; }
.estimate-store { color:#fff; font-weight:600; font-size:.88rem; }
.estimate-badge { background:var(--o); color:#fff; font-size:.65rem; font-weight:700; padding:3px 8px; border-radius:4px; letter-spacing:.05em; }
.estimate-body  { padding:14px 18px; }
.estimate-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--border-lt); font-size:.85rem; color:var(--ink2); }
.estimate-row:last-child { border-bottom:none; font-weight:700; color:var(--ink); }

.track-card { background:#fff; border-radius:var(--r-lg); border:1px solid var(--border); padding:22px; }

/* ── Contact page ── */
.contact-wa-big {
  display:flex; align-items:center; gap:20px;
  background:var(--green); border-radius:var(--r-xl);
  padding:26px 30px; text-decoration:none; margin-bottom:28px;
  transition:background var(--t), transform var(--t) var(--spring);
}
.contact-wa-big:hover { background:var(--green2); transform:translateY(-2px); }
.contact-wa-big-title { font-family:'Fraunces',serif; font-weight:500; font-size:1.3rem; color:#fff; margin-bottom:3px; }
.contact-wa-big-sub   { font-size:.88rem; color:rgba(255,255,255,.8); }
.contact-wa-big-arrow { margin-left:auto; flex-shrink:0; color:rgba(255,255,255,.8); }
.contact-info-chips { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:40px; }
.contact-chip { background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:20px; }
.contact-chip-lbl { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--ink3); margin-bottom:6px; }
.contact-chip-val { font-size:.9rem; font-weight:600; color:var(--ink); line-height:1.4; }
.contact-chip-val a { color:var(--ink); }
.contact-chip-val a:hover { color:var(--o); }
.contact-form-wrap { background:var(--white); border:1px solid var(--border); border-radius:var(--r-xl); padding:36px; }
.contact-form-wrap h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.5rem; color:var(--ink); margin-bottom:6px; letter-spacing:-.01em; }
.contact-form-wrap > p { color:var(--ink2); font-size:.9rem; margin-bottom:24px; }
.form-2col { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fg { display:flex; flex-direction:column; gap:6px; }
.fg.full { grid-column:1/-1; }
.flabel { font-size:.78rem; font-weight:600; color:var(--ink); }
.freq { color:var(--o); }
.finput,.fselect,.ftextarea {
  padding:12px 14px; border-radius:10px; border:1px solid var(--border);
  background:var(--bg); color:var(--ink); font-size:.94rem;
  font-family:'Inter',sans-serif; outline:none; width:100%; min-height:46px;
  transition:border-color var(--t),background var(--t),box-shadow var(--t);
}
.finput:focus,.fselect:focus,.ftextarea:focus { border-color:var(--ink); background:var(--white); box-shadow:0 0 0 3px rgba(0,0,0,.06); }
.ftextarea { resize:vertical; min-height:110px; }
.fselect { appearance:none; cursor:pointer; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%236E6E6E' d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; }

/* ── Footer ── */
.footer { background:var(--dark); padding:72px 0 32px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:44px; margin-bottom:48px; }
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-logo-mark { width:36px; height:36px; background:var(--o); border-radius:9px; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:.8rem; color:#fff; }
.footer-brand-name { font-family:'Fraunces',serif; font-weight:500; color:#fff; font-size:.98rem; letter-spacing:-.01em; }
.footer-brand-sub  { font-size:.6rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.5); }
.footer-desc { font-size:.85rem; color:rgba(255,255,255,.5); line-height:1.7; margin-bottom:16px; max-width:280px; }
.footer-chips { display:flex; gap:7px; flex-wrap:wrap; }
.footer-chip { display:inline-flex; align-items:center; gap:4px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:999px; padding:4px 10px; font-size:.7rem; font-weight:500; color:rgba(255,255,255,.65); }
.fcol-title { font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.5); margin-bottom:14px; }
.footer-links { display:flex; flex-direction:column; gap:10px; }
.footer-links a { font-size:.85rem; color:rgba(255,255,255,.55); transition:color var(--t); }
.footer-links a:hover { color:#fff; }
.footer-contacts { display:flex; flex-direction:column; gap:12px; }
.fc-row { display:flex; align-items:flex-start; gap:8px; }
.fc-row svg { color:rgba(255,255,255,.55); flex-shrink:0; margin-top:2px; }
.fc-row span,.fc-row a { font-size:.82rem; color:rgba(255,255,255,.55); line-height:1.5; }
.fc-row a:hover { color:#fff; }
.footer-bottom { padding-top:24px; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-copy { font-size:.78rem; color:rgba(255,255,255,.4); }
.footer-copy b { color:rgba(255,255,255,.6); font-weight:600; }

/* ── WA FAB ── */
.wa-fab { position:fixed; bottom:24px; right:24px; z-index:900; }
.wa-fab-inner { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.wa-fab-tip { background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:7px 13px; font-size:.78rem; font-weight:600; color:var(--ink); box-shadow:var(--sh); white-space:nowrap; opacity:0; transform:translateY(4px) scale(.96); transition:opacity .18s,transform .18s var(--spring); pointer-events:none; }
.wa-fab:hover .wa-fab-tip { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.wa-fab-btn { width:52px; height:52px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(37,211,102,.35); text-decoration:none; transition:transform var(--t) var(--spring); }
.wa-fab-btn:hover { transform:scale(1.06); }

/* ── Reveal ── */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .55s var(--ease),transform .55s var(--ease); }
.reveal.left  { transform:translateX(-16px); }
.reveal.right { transform:translateX(16px); }
.reveal.scale { transform:scale(.98); opacity:0; }
.reveal.in    { opacity:1!important; transform:none!important; }

/* ── Countries strip ── */
.countries-strip { padding:32px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--bg); }
.countries-strip-inner { display:flex; align-items:center; justify-content:center; gap:32px; flex-wrap:wrap; max-width:1200px; margin:0 auto; padding:0 24px; }
.countries-strip-lbl { font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink3); }
.countries-strip-list { display:flex; flex-wrap:wrap; gap:8px 24px; }
.countries-strip-list span { font-family:'Fraunces',serif; font-weight:400; font-size:1.1rem; color:var(--ink); letter-spacing:-.01em; }

/* ── Responsive ── */
@media(max-width:1100px){ .bento-grid { grid-template-columns:repeat(3,1fr); } .bcard.col3 { grid-column:span 2; } }
@media(max-width:1024px){
  .hero-panels { grid-template-columns:1fr; }
  .hero-panel-side { min-height:220px; }
  .stats-row { grid-template-columns:repeat(2,1fr); }
  .stat-cell:nth-child(2) { border-right:none; }
  .stat-cell:nth-child(1), .stat-cell:nth-child(2) { border-bottom:1px solid var(--border); }
  .trust-inner { grid-template-columns:1fr; gap:40px; }
  .stories-wrap { grid-template-columns:1fr; }
  .hiw-step { grid-template-columns:1fr; gap:32px; padding:48px 0; }
  .hiw-step.flip .hiw-step-text, .hiw-step.flip .hiw-step-vis { order:initial; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
}
@media(max-width:780px){
  .nav-links, .nav-right .btn-wa { display:none; }
  .hamburger { display:flex; }
  .section { padding:64px 0; }
  .hero-top { padding:40px 20px 32px; }
  .hero-panels { padding:0 16px 16px; }
  .bento-grid { grid-template-columns:repeat(2,1fr); }
  .bcard.col2, .bcard.col3 { grid-column:span 2; }
  .hiw-cards, .sol-grid { grid-template-columns:1fr; }
  .contact-info-chips { grid-template-columns:1fr; }
  .form-2col { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .stories-cta-strip { flex-direction:column; align-items:stretch; text-align:center; }
  .container { padding:0 20px; }
}
@media(max-width:480px){
  .stats-row { grid-template-columns:1fr; }
  .stat-cell { border-right:none; border-bottom:1px solid var(--border); }
  .stat-cell:last-child { border-bottom:none; }
}

/* A11y: reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}

/* ================================================================
   Page-specific components (services / how-it-works / contact / faq)
   All neutral, hairline-based, matching the editorial system.
   ================================================================ */

/* Services hero */
.svc-hero-wrap { background:var(--dark); padding:120px 0 72px; position:relative; overflow:hidden; }
.svc-hero-bg { display:none; }
.svc-hero-content { display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:center; }
.svc-hero-content .eyebrow { color:rgba(255,255,255,.5); display:block; margin-bottom:14px; }
.svc-hero-content h1 { color:#fff; margin-bottom:16px; }
.svc-hero-content h1 em { color:#fff; font-style:italic; opacity:.6; }
.svc-hero-content > div:first-child > p { color:rgba(255,255,255,.65); font-size:1.05rem; max-width:520px; margin-bottom:28px; }
.svc-hero-stats { display:flex; flex-direction:column; gap:14px; }
.svc-hero-stat { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--r-lg); padding:20px 24px; }
.svc-hero-stat-num { font-family:'Fraunces',serif; font-weight:500; font-size:2rem; color:#fff; line-height:1; letter-spacing:-.02em; }
.svc-hero-stat-label { font-size:.78rem; color:rgba(255,255,255,.55); font-weight:500; margin-top:6px; letter-spacing:.02em; }

/* Services bento */
.svc-bento { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.scard { background:var(--white); border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column; transition:transform var(--t) var(--spring), border-color var(--t); }
.scard:hover { transform:translateY(-3px); border-color:var(--ink3); }
.scard.wide { grid-column:span 2; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.scard.wide .scard-img { aspect-ratio:auto; height:100%; min-height:260px; }
.scard.wide .scard-body { padding:32px; }
.scard.featured { background:var(--dark); border-color:var(--dark); }
.scard.featured h3 { color:#fff; }
.scard.featured p, .scard.featured .scard-feature { color:rgba(255,255,255,.75); }
.scard.featured .scard-voice { color:rgba(255,255,255,.5); border-color:rgba(255,255,255,.15); }
.scard.featured .scard-action { background:var(--o); color:#fff; }
.scard-img { aspect-ratio:16/10; overflow:hidden; background:var(--warm); }
.scard-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(.15); }
.scard-body { padding:26px; display:flex; flex-direction:column; flex:1; }
.scard-voice { display:inline-flex; align-self:flex-start; font-family:'Inter',sans-serif; font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink3); border:1px solid var(--border); background:transparent; border-radius:999px; padding:4px 11px; margin-bottom:12px; }
.scard h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.2rem; color:var(--ink); margin-bottom:10px; letter-spacing:-.01em; }
.scard p { font-size:.92rem; color:var(--ink2); line-height:1.65; flex:1; margin:0 0 14px; }
.scard-features { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.scard-feature { display:flex; align-items:flex-start; gap:8px; font-size:.85rem; color:var(--ink2); line-height:1.5; }
.scard-feature svg { color:var(--ink); flex-shrink:0; margin-top:4px; }
.scard.featured .scard-feature svg { color:#fff; }
.scard-action { display:inline-flex; align-items:center; gap:6px; align-self:flex-start; padding:10px 18px; background:var(--ink); color:#fff; border-radius:999px; font-size:.82rem; font-weight:600; text-decoration:none; transition:background var(--t); }
.scard-action:hover { background:var(--o); }

/* HIW page hero + stats */
.hiw-page-hero { background:var(--dark); padding:120px 0 64px; position:relative; overflow:hidden; }
.hiw-page-hero .eyebrow { color:rgba(255,255,255,.5); display:block; margin-bottom:14px; }
.hiw-page-hero h1 { color:#fff; max-width:720px; }
.hiw-page-hero p  { color:rgba(255,255,255,.65); max-width:560px; margin-top:12px; font-size:1.05rem; }
.hiw-stats { background:var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:36px 0; }
.hiw-stats-row { display:grid; grid-template-columns:repeat(4,1fr); }
.hiw-stat { text-align:center; padding:16px; border-right:1px solid var(--border); }
.hiw-stat:last-child { border-right:none; }
.hiw-stat-num { font-family:'Fraunces',serif; font-weight:500; font-size:clamp(1.8rem,3vw,2.4rem); color:var(--ink); line-height:1; letter-spacing:-.02em; }
.hiw-stat-lbl { font-size:.78rem; color:var(--ink3); font-weight:500; margin-top:6px; letter-spacing:.02em; }

/* HIW step sections (used on how-it-works page) */
.step-section { padding:96px 0; border-bottom:1px solid var(--border); background:var(--bg); }
.step-section.alt { background:var(--white); }
.step-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.step-section.alt .step-grid { direction:rtl; }
.step-section.alt .step-text, .step-section.alt .step-visual { direction:ltr; }
.step-text { max-width:520px; }
.step-tag { display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border:1px solid var(--border); border-radius:999px; font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink3); background:transparent; margin-bottom:16px; }
.step-tag-dot { width:6px; height:6px; border-radius:50%; background:var(--o); }
.step-num-big { font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:5rem; color:var(--ink); opacity:.08; line-height:1; margin-bottom:8px; }
.step-h { font-family:'Fraunces',serif; font-weight:500; font-size:clamp(1.8rem,3vw,2.4rem); color:var(--ink); margin-bottom:14px; letter-spacing:-.02em; line-height:1.15; }
.step-h em { font-style:italic; color:var(--o); }
.step-p { font-size:1rem; color:var(--ink2); line-height:1.7; margin-bottom:18px; }
.step-note { font-size:.85rem; color:var(--ink3); border-left:2px solid var(--border); padding-left:14px; margin-top:16px; }
.step-visual { border-radius:var(--r-xl); overflow:hidden; background:var(--warm); }
.step-visual img { width:100%; height:auto; display:block; filter:grayscale(.15); }
.step-img { border-radius:var(--r-xl); overflow:hidden; background:var(--warm); }
.step-img img { width:100%; height:auto; display:block; filter:grayscale(.15); }

/* FAQ page hero + featured */
.faq-page-hero { background:var(--dark); padding:120px 0 64px; }
.faq-page-hero .eyebrow { color:rgba(255,255,255,.5); display:block; margin-bottom:14px; }
.faq-page-hero h1 { color:#fff; }
.faq-page-hero p  { color:rgba(255,255,255,.65); max-width:520px; margin-top:12px; font-size:1.05rem; }
.faq-featured { display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-xl); padding:28px 32px; margin-bottom:32px; }
.faq-featured h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.3rem; color:var(--ink); margin-bottom:8px; letter-spacing:-.01em; }
.faq-featured p  { color:var(--ink2); font-size:.95rem; line-height:1.65; margin:0; }
.faq-featured-icon { width:56px; height:56px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* Prohibited goods */
.prohibited-section { padding:80px 0; background:var(--bg); border-top:1px solid var(--border); }
.prohibited-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:32px; }
.prohibited-card { background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:22px; }
.prohibited-card-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.prohibited-card-icon { width:36px; height:36px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.prohibited-card-head h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.05rem; color:var(--ink); letter-spacing:-.01em; margin:0; }
.prohibited-list { display:flex; flex-direction:column; gap:6px; padding-left:0; }
.prohibited-list li { font-size:.9rem; color:var(--ink2); line-height:1.5; padding-left:18px; position:relative; }
.prohibited-list li::before { content:''; position:absolute; left:0; top:9px; width:8px; height:1px; background:var(--ink3); }
.prohibited-note { margin-top:24px; padding:20px 24px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); font-size:.9rem; color:var(--ink2); line-height:1.6; }
.prohibited-note strong { color:var(--ink); font-weight:600; }

/* Pricing */
.pricing-split { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }
.pricing-card-v2 { background:var(--white); border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; }
.pricing-card-v2.featured { background:var(--dark); border-color:var(--dark); color:#fff; }
.pricing-card-v2-top { padding:24px 26px 16px; border-bottom:1px solid var(--border); }
.pricing-card-v2.featured .pricing-card-v2-top { border-bottom-color:rgba(255,255,255,.1); }
.pricing-card-v2-top h3 { font-family:'Fraunces',serif; font-weight:500; font-size:1.2rem; margin-bottom:6px; letter-spacing:-.01em; }
.pricing-card-v2.featured h3, .pricing-card-v2.featured p { color:#fff; }
.pricing-card-v2.featured p { opacity:.7; }
.pricing-card-v2-amount { font-family:'Fraunces',serif; font-weight:500; font-size:2rem; color:var(--ink); margin-top:8px; letter-spacing:-.02em; }
.pricing-card-v2.featured .pricing-card-v2-amount { color:#fff; }
.pricing-card-v2-body { padding:20px 26px 26px; }
.pricing-rows { display:flex; flex-direction:column; }
.pricing-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--border-lt); font-size:.9rem; color:var(--ink2); }
.pricing-card-v2.featured .pricing-row { border-bottom-color:rgba(255,255,255,.08); color:rgba(255,255,255,.75); }
.pricing-row:last-child { border-bottom:none; }
.pricing-note { padding:16px 20px; background:var(--white); border:1px dashed var(--border); border-radius:var(--r-lg); font-size:.88rem; color:var(--ink2); line-height:1.55; }

/* Contact page */
.contact-page-wrap { padding:120px 0 64px; }
.contact-split { display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:start; }
.contact-left-top { margin-bottom:28px; }
.contact-left-top .eyebrow { display:block; margin-bottom:14px; }
.contact-left-top h1 { margin-bottom:14px; }
.contact-left-sub { color:var(--ink2); font-size:1.05rem; line-height:1.65; max-width:440px; }
.contact-hours-badge { display:inline-flex; align-items:center; gap:8px; margin-top:20px; padding:8px 14px; border-radius:999px; background:transparent; border:1px solid var(--border); font-size:.82rem; font-weight:500; color:var(--ink2); }
.contact-hours-dot { width:7px; height:7px; border-radius:50%; background:var(--green); animation:live-pulse 2s ease-in-out infinite; }
.contact-wa-tile { display:flex; align-items:center; gap:18px; background:var(--green); border-radius:var(--r-xl); padding:24px 28px; text-decoration:none; margin-bottom:20px; transition:background var(--t), transform var(--t) var(--spring); }
.contact-wa-tile:hover { background:var(--green2); transform:translateY(-2px); }
.contact-wa-tile-icon { width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; }
.contact-wa-tile-title { font-family:'Fraunces',serif; font-weight:500; font-size:1.2rem; color:#fff; margin-bottom:2px; letter-spacing:-.01em; }
.contact-wa-tile-sub { font-size:.85rem; color:rgba(255,255,255,.85); }
.contact-wa-tile-arrow { margin-left:auto; color:rgba(255,255,255,.85); }
.contact-info-tiles { display:flex; flex-direction:column; gap:10px; }
.contact-info-tile { display:flex; align-items:center; gap:14px; padding:18px 22px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); }
.contact-info-tile-icon { width:38px; height:38px; border-radius:50%; background:var(--bg); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--ink); flex-shrink:0; }
.contact-info-tile-cap { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--ink3); }
.contact-info-tile-val { font-size:.95rem; font-weight:600; color:var(--ink); margin-top:2px; }
.contact-info-tile-val a { color:var(--ink); }
.contact-info-tile-val a:hover { color:var(--o); }

/* Founder */
.founder-section { padding:96px 0; background:var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.founder-card { display:grid; grid-template-columns:auto 1fr; gap:32px; max-width:900px; margin:0 auto; background:var(--white); border:1px solid var(--border); border-radius:var(--r-xl); padding:40px; align-items:start; }
.founder-top { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.founder-avatar { width:96px; height:96px; border-radius:50%; overflow:hidden; background:var(--warm2); flex-shrink:0; border:1px solid var(--border); }
.founder-avatar img { width:100%; height:100%; object-fit:cover; filter:grayscale(.1); }
.founder-meta-eyebrow { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.16em; color:var(--ink3); margin-bottom:6px; }
.founder-name { font-family:'Fraunces',serif; font-weight:500; font-size:1.4rem; color:var(--ink); letter-spacing:-.01em; }
.founder-body { }
.founder-quote { font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:1.15rem; line-height:1.55; color:var(--ink); margin-bottom:16px; }
.founder-quote p { color:var(--ink); font-family:inherit; font-style:inherit; font-size:inherit; margin-bottom:12px; }
.founder-sign { font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--ink2); margin-top:12px; }

/* Compat: fill .hfc-msg-text baseline */
.hfc-msg-text { display:flex; flex-direction:column; }

/* Responsive tweaks for the page-specific blocks */
@media(max-width:1024px){
  .svc-hero-content { grid-template-columns:1fr; gap:32px; }
  .svc-bento { grid-template-columns:repeat(2,1fr); }
  .scard.wide { grid-column:span 2; grid-template-columns:1fr; }
  .scard.wide .scard-img { min-height:220px; }
  .hiw-stats-row { grid-template-columns:repeat(2,1fr); }
  .hiw-stat:nth-child(2) { border-right:none; }
  .hiw-stat:nth-child(-n+2) { border-bottom:1px solid var(--border); }
  .step-grid { grid-template-columns:1fr; gap:32px; direction:ltr; }
  .step-section.alt .step-grid { direction:ltr; }
  .pricing-split { grid-template-columns:1fr; }
  .contact-split { grid-template-columns:1fr; gap:40px; }
  .prohibited-grid { grid-template-columns:repeat(2,1fr); }
  .founder-card { grid-template-columns:1fr; padding:28px; }
  .founder-avatar { width:72px; height:72px; }
}
@media(max-width:780px){
  .svc-bento { grid-template-columns:1fr; }
  .scard.wide { grid-column:span 1; }
  .prohibited-grid { grid-template-columns:1fr; }
  .hiw-stats-row { grid-template-columns:1fr; }
  .hiw-stat { border-right:none; border-bottom:1px solid var(--border); }
  .hiw-stat:last-child { border-bottom:none; }
  .faq-featured { grid-template-columns:1fr; }
  .faq-featured-icon { justify-self:start; }
  .contact-wa-tile { flex-wrap:wrap; }
}
