/* ==========================================================================
   Life Health & Wellness — Design System
   Thunder Bay, ON — lifetbay.com
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root{
  /* Brand greens (from logo) */
  --forest-900:#152B1B;
  --forest-800:#1C3823;
  --forest-700:#24462B;
  --forest-600:#2D5433;
  --leaf-500:#6E9A44;
  --leaf-400:#8AB35C;
  --leaf-300:#A8C97F;
  --leaf-100:#E3EDD8;

  /* Warm neutrals */
  --cream-50:#FBF8F1;
  --cream-100:#F5EFE2;
  --stone-100:#F1ECDF;
  --stone-200:#E6DFCC;
  --stone-300:#D8CEB2;

  --charcoal-900:#22281F;
  --charcoal-700:#3C4436;
  --charcoal-500:#5B6353;
  --white:#FFFFFF;

  /* Semantic */
  --bg-page: var(--cream-50);
  --text-body: var(--charcoal-900);
  --text-muted: var(--charcoal-500);
  --brand-primary: var(--forest-700);
  --brand-accent: var(--leaf-500);

  /* Type */
  --font-display:"Droid Serif", "Iowan Old Style", Georgia, serif;
  --font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Spacing / layout */
  --container-w: 1240px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-pad: clamp(4rem, 9vw, 7.5rem);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  --shadow-sm: 0 2px 10px rgba(34,40,31,.06);
  --shadow-md: 0 12px 32px rgba(34,40,31,.10);
  --shadow-lg: 0 24px 60px rgba(21,43,27,.16);

  --ease: cubic-bezier(.22,.85,.32,1);
  --dur-fast:.25s;
  --dur-med:.5s;
  --dur-slow:.9s;

  --header-h: 84px;
  --header-top: clamp(12px, 2.2vw, 24px);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top: calc(var(--header-top) + var(--header-h) + 12px);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--bg-page);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font:inherit; background:none; border:none; cursor:pointer; color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); color:var(--forest-800); line-height:1.12; font-weight:600; letter-spacing:-.01em;}
h1{font-size:clamp(2.6rem, 5.4vw, 4.6rem); font-weight:600;}
h2{font-size:clamp(2rem, 4vw, 3rem);}
h3{font-size:clamp(1.3rem, 2vw, 1.7rem);}
p{color:var(--text-muted);}
.container{max-width:var(--container-w); margin-inline:auto; padding-inline:var(--gutter);}
section{padding-block:var(--section-pad); position:relative;}
.section-tight{padding-block: calc(var(--section-pad) * .55);}

/* ---------- Utility ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-body); font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  font-size:.72rem; color:var(--leaf-500); margin-bottom:1rem;
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--leaf-500); display:inline-block; border-radius:2px;}
.text-center{text-align:center;}
.mx-auto{margin-inline:auto;}
.max-w-content{max-width:640px;}
.mt-1{margin-top:.6rem;} .mt-2{margin-top:1.2rem;} .mt-3{margin-top:2rem;} .mt-4{margin-top:3rem;}
.mb-1{margin-bottom:.6rem;} .mb-2{margin-bottom:1.2rem;} .mb-3{margin-bottom:2rem;} .mb-4{margin-bottom:3rem;}
.badge-soft{
  display:inline-flex; align-items:center; gap:.5rem; background:var(--leaf-100); color:var(--forest-700);
  padding:.5rem 1rem; border-radius:var(--radius-pill); font-size:.8rem; font-weight:600;
}
.grain-overlay{position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:multiply;}

/* Reveal-on-scroll */
[data-reveal]{opacity:0; transform:translateY(28px); transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);}
[data-reveal].is-visible{opacity:1; transform:none;}
[data-reveal="fade"]{transform:none;}
[data-reveal-group] > *{transition-delay:calc(var(--i, 0) * 90ms);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 2rem; border-radius:var(--radius-pill); font-weight:700; font-size:.95rem;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  white-space:nowrap; cursor:pointer; border:1.5px solid transparent;
}
.btn svg{width:18px; height:18px; flex:none;}
.btn-primary{background:var(--forest-700); color:var(--white); box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--forest-800); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-accent{background:var(--leaf-500); color:var(--white); box-shadow:var(--shadow-sm);}
.btn-accent:hover{background:var(--leaf-400); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-outline{background:transparent; border-color:var(--forest-700); color:var(--forest-700);}
.btn-outline:hover{background:var(--forest-700); color:var(--white); transform:translateY(-2px);}
.btn-ghost{background:rgba(255,255,255,.14); color:var(--white); border-color:rgba(255,255,255,.5); backdrop-filter:blur(6px);}
.btn-ghost:hover{background:rgba(255,255,255,.24); transform:translateY(-2px);}
.btn-block{width:100%;}
.btn[disabled],.btn.is-inert{opacity:1;}
.btn-lg{padding:1.15rem 2.4rem; font-size:1.02rem;}

/* ---------- Hero ticker (call-now marquee, sits inside hero) ---------- */
.hero-ticker{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  background:rgba(255,255,255,.14); border-top:1px solid rgba(255,255,255,.25); border-bottom:1px solid rgba(255,255,255,.25);
  overflow:hidden; height:84px;
  display:flex; align-items:center; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.promo-track{display:flex; width:max-content; animation:marquee 34s linear infinite;}
.hero-ticker:hover .promo-track{animation-play-state:paused;}
.promo-group{display:flex; align-items:center; flex:none;}
.promo-item{
  display:inline-flex; align-items:center; gap:.85rem; white-space:nowrap;
  padding-inline:2.75rem; font-size:1.25rem; font-weight:700; letter-spacing:.02em; color:var(--white);
  border-right:1px solid rgba(255,255,255,.15);
}
.promo-item svg{width:22px; height:22px; flex:none; color:var(--white);}
.promo-item .ph{opacity:.6; font-weight:600; margin-left:.25rem; font-size:1.1rem;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.promo-track{animation:none;}}

/* ---------- Header ---------- */
.site-header{
  position:fixed; left:50%; top:var(--header-top); transform:translateX(-50%); z-index:100;
  width:min(94%, var(--container-w)); height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(255,255,255,1);
  border-radius:var(--radius-pill);
  border:1px solid rgba(216,206,178,.5);
  box-shadow:var(--shadow-lg);
  transition:background var(--dur-med) var(--ease), box-shadow var(--dur-med) var(--ease), border-color var(--dur-med) var(--ease), height var(--dur-med) var(--ease);
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:var(--shadow-md);
  border-color:rgba(216,206,178,.7);
}
.site-header .container{display:flex; align-items:center; justify-content:space-between; width:100%; gap:1.5rem;}
.brand{display:flex; align-items:center; gap:.7rem; flex:none;}
.brand-logo-full{height:60px; width:auto; flex:none; display:block;}
.brand-word{font-family:var(--font-display); font-weight:700; font-size:1.28rem; color:var(--forest-800); line-height:1;}
.brand-word span{display:block; font-family:var(--font-body); font-weight:600; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--leaf-500); margin-top:.2rem;}

/* Typewriter (hero slogan) */
.type-wrap{display:inline-flex; align-items:baseline;}
.type-word{color:var(--leaf-500); font-style:italic;}
.type-caret{display:inline-block; width:3px; height:.8em; background:var(--leaf-500); margin-left:3px; animation:caret-blink .85s steps(1) infinite; vertical-align:-.05em;}
@keyframes caret-blink{0%,49%{opacity:1;} 50%,100%{opacity:0;}}
@media (prefers-reduced-motion: reduce){.type-caret{animation:none; opacity:1;}}

.nav-primary{display:flex; align-items:center; gap:2.1rem;}
.nav-primary a{
  position:relative; font-weight:600; font-size:.95rem; color:var(--forest-800); padding:.4rem .1rem;
}
.nav-primary a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--leaf-500);
  transition:right var(--dur-fast) var(--ease); border-radius:2px;
}
.nav-primary a:hover::after, .nav-primary a.is-active::after{right:0;}
.nav-primary a.is-active{color:var(--leaf-500);}

.header-cta{display:flex; align-items:center; gap:1rem; flex:none;}
.nav-toggle{display:none; flex:none; width:44px; height:44px; align-items:center; justify-content:center; border-radius:50%;}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after{content:""; display:block; width:22px; height:2px; background:var(--forest-800); border-radius:2px; transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);}
.nav-toggle{flex-direction:column; gap:5px;}
.nav-toggle.is-open span{opacity:0;}
.nav-toggle.is-open::before{transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open::after{transform:translateY(-7px) rotate(-45deg);}

@media (max-width:1140px){
  .nav-primary{
    position:fixed; inset:calc(var(--header-top) + var(--header-h) + 12px) 0 0 0; background:var(--cream-50); flex-direction:column;
    justify-content:flex-start; padding:2.5rem var(--gutter); gap:0; transform:translateX(100%);
    transition:transform var(--dur-med) var(--ease); overflow-y:auto;
  }
  .nav-primary.is-open{transform:translateX(0);}
  .nav-primary a{width:100%; padding:1.15rem 0; border-bottom:1px solid var(--stone-200); font-size:1.15rem;}
  .nav-primary .nav-cta-mobile{display:inline-flex; width:100%; margin-top:1.5rem; border-bottom:none;}
  .header-cta .btn-book{display:none;}
  .nav-toggle{display:flex;}
}
.nav-cta-mobile{display:none;}

/* ---------- Hero (centered, photo-style background) ---------- */
.hero{
  min-height:75svh; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
  padding-top:calc(var(--header-top) + var(--header-h) + 3rem); padding-bottom:5rem;
  background:var(--forest-900);
  margin-inline:clamp(14px, 3vw, 56px);
  border-radius:var(--radius-lg);
}
.hero-bg-photo{
  position:absolute; inset:0; z-index:0;
  background-image:url("../images/hero-clinic-exterior.jpg");
  background-size:auto 145%; background-position:center 11%; background-repeat:no-repeat;
  filter:contrast(1.05) saturate(1.1) brightness(1.4);
  transform:scale(1.02);
}
@media (max-width:760px){
  .hero-bg-photo{background-size:cover; background-position:center 18%;}
}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(15,30,19,.3) 0%, rgba(15,30,19,.32) 35%, rgba(15,30,19,.38) 65%, rgba(15,30,19,.56) 100%);
}
.hero-bg{position:absolute; inset:0; z-index:2;}
.blob{position:absolute; filter:blur(2px); opacity:.35; animation:float 16s ease-in-out infinite;}
.blob-a{width:640px; height:640px; top:-220px; right:-200px; background:radial-gradient(circle at 30% 30%, var(--leaf-300), var(--leaf-500) 70%); border-radius:42% 58% 65% 35% / 45% 40% 60% 55%; animation-delay:0s;}
.blob-b{width:420px; height:420px; bottom:-160px; left:-140px; background:radial-gradient(circle at 60% 40%, var(--leaf-300), transparent 75%); border-radius:60% 40% 35% 65% / 55% 60% 40% 45%; opacity:.16; animation-delay:-4s;}
.blob-c{width:260px; height:260px; top:20%; left:6%; background:radial-gradient(circle at 40% 40%, var(--leaf-100), transparent 70%); border-radius:50%; opacity:.14; animation-delay:-9s;}
@keyframes float{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  33%{transform:translate(-3%, 4%) rotate(6deg);}
  66%{transform:translate(3%, -3%) rotate(-5deg);}
}
.leaf-decor{position:absolute; opacity:.7; animation:sway 7s ease-in-out infinite;}
@keyframes sway{0%,100%{transform:rotate(-6deg) translateY(0);} 50%{transform:rotate(6deg) translateY(-10px);}}

.hero-inner-centered{
  position:relative; z-index:3; display:flex; flex-direction:column; align-items:center;
  text-align:center; width:100%; max-width:min(92vw, 1300px); margin-inline:auto;
}
.eyebrow-light{color:var(--leaf-300);}
.eyebrow-light::before{background:var(--leaf-300);}
.hero-title-centered{
  color:var(--white); display:flex; flex-direction:row; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:0 .5rem; margin-bottom:1.5rem;
  width:calc(100% + 2 * var(--gutter)); margin-inline:calc(-1 * var(--gutter));
  font-size:clamp(2.2rem, 4.6vw, 3.8rem);
}
.type-line-static{white-space:nowrap;}
.type-line-dynamic{
  display:flex; align-items:baseline; justify-content:flex-start;
  line-height:1.15; overflow:hidden;
}
.type-word{color:var(--leaf-300); font-style:italic; white-space:nowrap;}
.type-letter{display:inline-block; animation:letter-in .22s cubic-bezier(.2,.9,.3,1) both;}
@keyframes letter-in{from{opacity:0; transform:translateY(5px);} to{opacity:1; transform:translateY(0);}}
.type-caret{display:inline-block; width:3px; height:.8em; background:var(--leaf-300); margin-left:3px; animation:caret-blink .85s steps(1) infinite; vertical-align:-.05em;}
.hero-lead-light{color:rgba(255,255,255,.85); font-size:1.15rem; max-width:600px; margin-bottom:2.1rem;}
.hero-actions-center{justify-content:center;}
.hero-trust.hero-trust-light{justify-content:center;}
.hero-trust.hero-trust-light div strong{color:var(--white);}
.hero-trust.hero-trust-light div span{color:rgba(255,255,255,.7);}

.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.6rem;}
.hero-trust{display:flex; gap:2.4rem; flex-wrap:wrap;}
.hero-trust div strong{display:block; font-family:var(--font-display); font-size:1.7rem; color:var(--forest-800); font-variant-numeric:lining-nums;}
.hero-trust div span{font-size:.82rem; color:var(--text-muted); font-weight:600;}

/* ---------- Page header (interior pages) ---------- */
.page-hero{
  padding-top:calc(var(--header-top) + var(--header-h) + 4.5rem); padding-bottom:3.5rem;
  background:linear-gradient(180deg, var(--cream-100), var(--cream-50));
  position:relative; overflow:hidden; text-align:center;
}
.page-hero .container{position:relative; z-index:2;}
.page-hero p{max-width:620px; margin-inline:auto; font-size:1.08rem;}
.crumb{display:flex; gap:.5rem; align-items:center; justify-content:center; font-size:.85rem; font-weight:600; color:var(--text-muted); margin-bottom:1.2rem;}
.crumb a:hover{color:var(--leaf-500);}

/* ---------- Stats bar ---------- */

/* ---------- Cards ---------- */
.grid{display:grid; gap:1.75rem;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--white); border-radius:var(--radius-md); padding:2.2rem 1.9rem; box-shadow:var(--shadow-sm);
  border:1px solid var(--stone-200); transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  height:100%; display:flex; flex-direction:column;
}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--leaf-300);}
.card-icon{
  width:56px; height:56px; border-radius:16px; background:var(--leaf-100); color:var(--forest-700);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.3rem; flex:none;
  transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.card-icon svg{width:28px; height:28px;}
.card:hover .card-icon{background:var(--forest-700); color:var(--white); transform:rotate(-6deg) scale(1.06);}
.card h3{margin-bottom:.6rem; font-size:1.25rem;}
.card p{font-size:.95rem; flex:1;}
.card-link{display:inline-flex; align-items:center; gap:.4rem; margin-top:1.2rem; font-weight:700; font-size:.88rem; color:var(--forest-700);}
.card-link svg{width:16px; height:16px; transition:transform var(--dur-fast) var(--ease);}
.card:hover .card-link svg{transform:translateX(4px);}

/* Service detail block */
.service-block{display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem; align-items:center; padding-block:3.5rem; border-bottom:1px solid var(--stone-200);}
.service-block:last-child{border-bottom:none;}
.service-block:nth-child(even) .service-visual{order:2;}
.service-visual{
  aspect-ratio:1/1; border-radius:var(--radius-lg); background:linear-gradient(160deg, var(--leaf-100), var(--stone-100));
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; box-shadow:var(--shadow-sm);
}
.service-visual svg{width:38%; height:38%; color:var(--forest-700); position:relative; z-index:2;}
.service-visual::after{content:""; position:absolute; inset:12%; border:1.5px dashed var(--leaf-400); border-radius:50%; opacity:.5; animation:spin 40s linear infinite;}
.service-tags{display:flex; gap:.6rem; flex-wrap:wrap; margin:1.2rem 0 1.4rem;}
.tag{background:var(--leaf-100); color:var(--forest-700); font-size:.78rem; font-weight:700; padding:.4rem .85rem; border-radius:var(--radius-pill);}
.service-list{margin-top:1rem; display:flex; flex-direction:column; gap:.65rem;}
.service-list li{display:flex; gap:.7rem; align-items:flex-start; font-size:.95rem; color:var(--text-body);}
.service-list svg{width:18px; height:18px; color:var(--leaf-500); flex:none; margin-top:.15rem;}
@media (max-width:800px){
  .service-block, .service-block:nth-child(even){grid-template-columns:1fr;}
  .service-block:nth-child(even) .service-visual{order:0;}
  .service-visual{max-width:280px; margin-inline:auto;}
}

/* ---------- Team ---------- */
.team-card{text-align:center; align-items:center;}
.avatar{
  width:132px; height:132px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(155deg, var(--forest-600), var(--forest-800)); color:var(--white);
  font-family:var(--font-display); font-size:2.4rem; font-weight:600; margin-bottom:1.4rem; box-shadow:var(--shadow-md);
  position:relative; flex:none;
}
.avatar::after{content:""; position:absolute; inset:-6px; border:1.5px solid var(--leaf-300); border-radius:50%; opacity:.6;}
.team-role{color:var(--leaf-500); font-weight:700; font-size:.85rem; letter-spacing:.02em; margin-bottom:.9rem;}
.team-exp{display:inline-flex; align-items:center; gap:.4rem; background:var(--stone-100); padding:.35rem .8rem; border-radius:var(--radius-pill); font-size:.78rem; font-weight:700; color:var(--charcoal-700); margin-top:1rem;}
.placeholder-flag{font-size:.72rem; color:var(--text-muted); font-style:italic; margin-top:.9rem;}

/* ---------- Approach / process ---------- */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; counter-reset:step;}
.process-step{position:relative; padding-top:2.4rem;}
.process-step::before{
  counter-increment:step; content:counter(step,decimal-leading-zero); position:absolute; top:0; left:0;
  font-family:var(--font-display); font-size:2.6rem; color:var(--leaf-300); font-weight:600;
}
@media (max-width:900px){.process{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.process{grid-template-columns:1fr;}}

/* ---------- FAQ accordion ---------- */
.accordion{border-top:1px solid var(--stone-200);}
.accordion-item{border-bottom:1px solid var(--stone-200);}
.accordion-trigger{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1.5rem .2rem; text-align:left; font-family:var(--font-display); font-size:1.15rem; color:var(--forest-800); font-weight:600;
}
.accordion-trigger .plus{position:relative; width:20px; height:20px; flex:none;}
.accordion-trigger .plus::before, .accordion-trigger .plus::after{content:""; position:absolute; background:var(--leaf-500); border-radius:2px; transition:transform var(--dur-fast) var(--ease);}
.accordion-trigger .plus::before{width:100%; height:2px; top:9px; left:0;}
.accordion-trigger .plus::after{width:2px; height:100%; top:0; left:9px;}
.accordion-item.is-open .plus::after{transform:rotate(90deg);}
.accordion-panel{max-height:0; overflow:hidden; transition:max-height var(--dur-med) var(--ease);}
.accordion-panel p{padding:0 .2rem 1.6rem; max-width:70ch;}

/* ---------- CTA banner ---------- */
.cta-banner{
  background:linear-gradient(135deg, var(--forest-700), var(--forest-900));
  color:var(--white); border-radius:var(--radius-lg); padding:clamp(2.5rem,6vw,4.5rem);
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; position:relative; overflow:hidden;
}
.cta-banner::before{content:""; position:absolute; width:360px; height:360px; background:radial-gradient(circle, rgba(138,179,92,.35), transparent 70%); top:-120px; right:-80px;}
.cta-banner h2{color:var(--white); max-width:520px; position:relative; z-index:1;}
.cta-banner p{color:rgba(255,255,255,.8); margin-top:.6rem; max-width:460px; position:relative; z-index:1;}
.cta-banner .btn-row{display:flex; gap:1rem; position:relative; z-index:1; flex-wrap:wrap;}

/* ---------- Store / placeholder pages ---------- */
.store-hero{text-align:center; max-width:720px; margin-inline:auto;}
.store-panel{
  background:var(--white); border:1px solid var(--stone-200); border-radius:var(--radius-lg);
  padding:clamp(2.5rem,6vw,4rem); text-align:center; box-shadow:var(--shadow-sm); max-width:760px; margin:0 auto;
}
.store-icon{width:84px; height:84px; border-radius:24px; background:var(--leaf-100); color:var(--forest-700); display:flex; align-items:center; justify-content:center; margin:0 auto 1.6rem;}
.store-icon svg{width:42px; height:42px;}
.coming-soon-pill{display:inline-flex; align-items:center; gap:.5rem; background:var(--stone-100); color:var(--charcoal-700); font-weight:700; font-size:.78rem; padding:.45rem 1rem; border-radius:var(--radius-pill); margin-bottom:1.2rem;}
.coming-soon-pill .ping{width:8px; height:8px; border-radius:50%; background:var(--leaf-500); animation:ping 1.8s ease-in-out infinite;}
@keyframes ping{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.4; transform:scale(1.4);}}

/* ---------- Toast (inert button feedback) ---------- */
.toast{
  position:fixed; left:50%; bottom:2rem; transform:translateX(-50%) translateY(20px); z-index:1000;
  background:var(--forest-900); color:var(--white); padding:1rem 1.5rem; border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); font-size:.9rem; font-weight:600; display:flex; align-items:center; gap:.7rem;
  opacity:0; pointer-events:none; transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
  max-width:min(92vw,420px);
}
.toast.is-visible{opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto;}
.toast svg{width:20px; height:20px; color:var(--leaf-400); flex:none;}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest-900); color:rgba(255,255,255,.75); padding-block:4.5rem 2rem; position:relative; overflow:hidden;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.12);}
.footer-brand .brand-word{color:var(--white);}
.footer-brand img{height:48px; margin-bottom:1rem; border-radius:12px; box-shadow:0 6px 16px rgba(0,0,0,.3);}
.footer-brand p{color:rgba(255,255,255,.6); font-size:.92rem; margin-top:1rem; max-width:280px;}
.footer-col h4{color:var(--white); font-family:var(--font-body); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.2rem;}
.footer-col ul{display:flex; flex-direction:column; gap:.75rem;}
.footer-col a, .footer-col address{font-size:.92rem; font-style:normal; color:rgba(255,255,255,.75); transition:color var(--dur-fast);}
.footer-col a:hover{color:var(--leaf-300);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:2rem; font-size:.82rem; color:rgba(255,255,255,.5); flex-wrap:wrap; gap:1rem;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr; row-gap:2.5rem;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Misc page utility ---------- */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}
.bg-forest{background:var(--forest-800); color:var(--white);}
.bg-forest h2, .bg-forest h3{color:var(--white);}
.bg-forest p{color:rgba(255,255,255,.78);}
.bg-cream{background:var(--cream-100);}
.bg-stone{background:var(--stone-100);}

.skip-link{position:absolute; left:-999px; top:0; background:var(--forest-800); color:#fff; padding:.8rem 1.2rem; z-index:1000; border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* ---------- Booking page ---------- */
.map-wrap{border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--stone-200); aspect-ratio:16/9;}
.map-wrap iframe{width:100%; height:100%; border:0;}
.hours-table{width:100%; border-collapse:collapse;}
.hours-table tr{border-bottom:1px solid var(--stone-200);}
.hours-table tr:last-child{border-bottom:none;}
.hours-table td{padding:.85rem .2rem; font-size:.95rem;}
.hours-table td:first-child{font-weight:700; color:var(--forest-800);}
.hours-table td:last-child{text-align:right; color:var(--text-muted);}
.jane-placeholder{
  border:2px dashed var(--leaf-400); border-radius:var(--radius-lg); padding:2.5rem 1.5rem; text-align:center;
  background:var(--leaf-100);
}
