/* ==========================================================
   Wendy's Healing Touch — token system
   Palette: warm white / cream / beige / antique gold / sage
   ========================================================== */
:root{
  --bg:          #ffffff;
  --bg-cream:    #f9f4ea;
  --bg-beige:    #f2e9d6;
  --surface:     #ffffff;
  --glass:       rgba(255,255,255,0.6);
  --glass-soft:  rgba(255,255,255,0.42);
  --glass-border:rgba(255,255,255,0.7);

  --ink:         #2c2419;
  --ink-dim:     #6f6555;
  --ink-faint:   #a89c87;

  --gold:        #b6884c;
  --gold-lt:     #d9b26e;
  --gold-dk:     #8c6a37;
  --gold-glow:   rgba(182,136,76,0.18);

  --sage:        #8fa789;
  --sage-lt:     #b7c9ae;
  --sage-dk:     #62795e;
  --sage-glow:   rgba(143,167,137,0.20);

  --line:        rgba(140,106,55,0.18);
  --shadow-color: 30,24,16;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Raleway', Helvetica, Arial, sans-serif;

  --container: 1200px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --radius-pill: 999px;

  color-scheme: light;
}

/* ---------- Dark mode ---------- */
[data-theme="dark"]{
  --bg:          #15120e;
  --bg-cream:    #1c1811;
  --bg-beige:    #221d15;
  --surface:     #1e1a14;
  --glass:       rgba(38,33,25,0.55);
  --glass-soft:  rgba(38,33,25,0.38);
  --glass-border:rgba(217,178,110,0.16);

  --ink:         #f3ecdd;
  --ink-dim:     #c3b6a0;
  --ink-faint:   #8c7f6a;

  --gold:        #d9b26e;
  --gold-lt:     #ecc989;
  --gold-dk:     #b6884c;
  --gold-glow:   rgba(217,178,110,0.16);

  --sage:        #a3bd9c;
  --sage-lt:     #7f9a78;
  --sage-dk:     #b7c9ae;
  --sage-glow:   rgba(143,167,137,0.14);

  --line:        rgba(217,178,110,0.16);
  --shadow-color: 0,0,0;
  color-scheme: dark;
}

@font-face{ font-family:'Cormorant Garamond'; }
@font-face{ font-family:'Raleway'; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  transition:background .5s ease, color .5s ease;
  overflow-x:hidden;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; margin:0 0 0.4em; color:var(--ink); letter-spacing:0.2px; }
p{ margin:0 0 1em; color:var(--ink-dim); }
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; position:relative; }

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- ambient decorative glow blobs ---------- */
.ambient{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.blob{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.55; }
.blob-gold{ background:radial-gradient(circle,var(--gold-glow),transparent 70%); }
.blob-sage{ background:radial-gradient(circle,var(--sage-glow),transparent 70%); }

/* ---------- glass utility ---------- */
.glass{
  background:var(--glass);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid var(--glass-border);
  box-shadow:0 8px 40px -12px rgba(var(--shadow-color),0.18);
}

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--gold-dk);
  display:inline-flex;
  align-items:center;
  margin-bottom:14px;
}
[data-theme="dark"] .eyebrow{ color:var(--gold-lt); }
.eyebrow::before{ content:''; display:inline-block; width:22px; height:1px; background:var(--gold); margin-right:10px; }

/* ==========================================================
   Header
   ========================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid transparent;
  transition:background .4s ease, border-color .4s ease, padding .4s ease;
  padding:18px 0;
}
[data-theme="dark"] .site-header{ background:rgba(21,18,14,0.7); }
.site-header.scrolled{
  background:rgba(255,255,255,0.88);
  border-bottom:1px solid var(--line);
  padding:10px 0;
  box-shadow:0 8px 30px -18px rgba(var(--shadow-color),0.35);
}
[data-theme="dark"] .site-header.scrolled{ background:rgba(21,18,14,0.9); }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo-link{ display:block; }
.logo-link svg,.logo-link img{ height:44px; width:auto; transition:height .4s ease; }
.site-header.scrolled .logo-link svg,.site-header.scrolled .logo-link img{ height:34px; }

.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{
  font-size:12.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--ink-dim);
  position:relative; padding:6px 0;
  transition:color .3s ease;
}
.main-nav a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition:width .3s ease;
}
.main-nav a:hover,.main-nav a.active{ color:var(--ink); }
.main-nav a:hover::after,.main-nav a.active::after{ width:100%; }

.nav-cta{
  border:1px solid var(--gold); padding:11px 24px !important; border-radius:var(--radius-pill);
  color:var(--gold-dk) !important; letter-spacing:2.5px;
}
[data-theme="dark"] .nav-cta{ color:var(--gold-lt) !important; }
.nav-cta::after{ display:none; }
.nav-cta:hover{ background:var(--gold); color:#fff !important; }

.header-actions{ display:flex; align-items:center; gap:14px; }

/* theme toggle */
.theme-toggle{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background:var(--glass-soft); display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex:0 0 auto; transition:border-color .3s ease, transform .3s ease;
  color:var(--gold-dk);
}
[data-theme="dark"] .theme-toggle{ color:var(--gold-lt); }
.theme-toggle:hover{ border-color:var(--gold); transform:rotate(15deg); }
.theme-toggle svg{ width:18px; height:18px; }
.theme-toggle .icon-sun{ display:none; }
[data-theme="dark"] .theme-toggle .icon-moon{ display:none; }
[data-theme="dark"] .theme-toggle .icon-sun{ display:block; }

/* ---------- Hamburger ---------- */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:42px; height:42px; background:var(--glass-soft); border:1px solid var(--line);
  border-radius:50%; cursor:pointer; flex:0 0 auto; z-index:210; position:relative;
}
.nav-toggle .bar{
  display:block; width:18px; height:1.5px; background:var(--ink); border-radius:2px;
  transition:transform .35s ease, opacity .25s ease, width .35s ease;
}
.nav-toggle[aria-expanded="true"] .bar1{ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bar2{ opacity:0; }
.nav-toggle[aria-expanded="true"] .bar3{ transform:translateY(-6.5px) rotate(-45deg); }

.nav-scrim{
  position:fixed; inset:0; background:rgba(20,16,10,0.72);
  opacity:0; pointer-events:none; transition:opacity .4s ease; z-index:190;
}
.nav-scrim.show{ opacity:1; pointer-events:auto; }

@media (max-width:900px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:82%; max-width:360px;
    background:#f9f4ea; backdrop-filter:none; -webkit-backdrop-filter:none;
    flex-direction:column; align-items:flex-start;
    padding:110px 36px 40px; gap:28px;
    transform:translateX(100%); transition:transform .45s cubic-bezier(.5,0,.15,1);
    border-left:1px solid var(--line);
    box-shadow:-20px 0 60px -20px rgba(var(--shadow-color),0.25);
  }
  [data-theme="dark"] .main-nav{ background:#1c1811; }
  .main-nav.open{ transform:translateX(0); }
  .main-nav a{ font-size:16px; width:100%; padding:14px 0; color:var(--ink); border-bottom:1px solid var(--line); }
  .main-nav a.active{ color:var(--gold-dk); font-weight:600; }
  .nav-toggle{ display:flex; }
}

/* ==========================================================
   Buttons
   ========================================================== */
.btn{
  display:inline-block; padding:16px 34px; font-size:12.5px; letter-spacing:3px; text-transform:uppercase;
  border-radius:var(--radius-pill); transition:all .35s ease; cursor:pointer; border:1px solid var(--gold);
}
.btn-solid{ background:linear-gradient(120deg,var(--gold-lt),var(--gold-dk)); color:#231a0e; box-shadow:0 10px 30px -12px var(--gold-glow); }
.btn-solid:hover{ filter:brightness(1.08); transform:translateY(-3px); box-shadow:0 16px 34px -12px var(--gold-glow); }
.btn-ghost{ color:var(--ink); background:var(--glass-soft); }
.btn-ghost:hover{ border-color:var(--gold); background:var(--glass); transform:translateY(-3px); }

/* ==========================================================
   Hero
   ========================================================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; padding-top:120px; background:var(--bg-cream);
}
.hero::before,.hero::after{
  content:''; position:absolute; border-radius:50%; filter:blur(70px); z-index:0; pointer-events:none;
}
.hero::before{ width:340px; height:340px; top:-80px; right:-60px; background:radial-gradient(circle,var(--gold-glow),transparent 70%); }
.hero::after{ width:280px; height:280px; bottom:-60px; left:8%; background:radial-gradient(circle,var(--sage-glow),transparent 70%); }

.cta-panel{ position:relative; overflow:hidden; }
.cta-panel::before{
  content:''; position:absolute; width:260px; height:260px; border-radius:50%; filter:blur(70px);
  top:-90px; left:-60px; background:radial-gradient(circle,var(--sage-glow),transparent 70%); z-index:0; pointer-events:none;
}
.cta-panel > *{ position:relative; z-index:1; }
.hero-bg{
  position:absolute; inset:0; z-index:0;
}
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, var(--bg) 28%, rgba(249,244,234,0.72) 55%, rgba(249,244,234,0.25) 100%);
}
[data-theme="dark"] .hero-bg::after{
  background:linear-gradient(100deg, var(--bg) 28%, rgba(28,24,17,0.78) 55%, rgba(28,24,17,0.35) 100%);
}
.hero .container{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:center; }
.hero-copy h1{ font-size:clamp(38px,5.6vw,68px); line-height:1.08; }
.hero-copy h1 em{ font-style:italic; color:var(--gold-dk); }
[data-theme="dark"] .hero-copy h1 em{ color:var(--gold-lt); }
.hero-copy p.lead{ font-size:18px; max-width:480px; margin-top:20px; }
.hero-actions{ display:flex; gap:18px; margin-top:34px; flex-wrap:wrap; }

.hero-card{
  border-radius:var(--radius-lg); overflow:hidden; position:relative;
  aspect-ratio:4/5; box-shadow:0 30px 60px -20px rgba(var(--shadow-color),0.35);
}
.hero-card img{ width:100%; height:100%; object-fit:cover; transform:scale(1.02); animation:heroDrift 16s ease-in-out infinite alternate; }
@keyframes heroDrift{ from{ transform:scale(1.02) translateY(0); } to{ transform:scale(1.07) translateY(-10px); } }
.hero-card .tag{
  position:absolute; left:20px; bottom:20px; padding:14px 20px; border-radius:var(--radius-md);
  font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--ink);
}

.hero-scroll{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:1;
  font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--ink-dim);
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.hero-scroll .stem{ width:1px; height:40px; background:linear-gradient(var(--gold),transparent); animation:stemPulse 2.4s ease-in-out infinite; }
@keyframes stemPulse{ 0%,100%{ opacity:0.3; } 50%{ opacity:1; } }

@media (max-width:900px){
  .hero .container{ grid-template-columns:1fr; text-align:left; }
  .hero-card{ order:-1; max-width:360px; margin:0 auto 30px; aspect-ratio:5/4; }
}

/* ==========================================================
   Sections
   ========================================================== */
section{ padding:120px 0; position:relative; }
.section-alt{ background:var(--bg-cream); }
.section-head{ max-width:640px; margin:0 auto 64px; text-align:center; }
.section-head p{ font-size:17px; }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* Philosophy / intro */
.philosophy{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:center; }
.philosophy blockquote{
  font-family:var(--serif); font-style:italic; font-size:27px; color:var(--ink);
  border-left:2px solid var(--gold); padding:8px 0 8px 28px; margin:0;
}
@media (max-width:900px){ .philosophy{ grid-template-columns:1fr; gap:40px; } }

/* Service / feature cards */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:30px; }
@media (max-width:900px){ .grid-3,.grid-2{ grid-template-columns:1fr; } }

.card{
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:border-color .35s ease, transform .4s ease, box-shadow .4s ease;
}
.card:hover{ transform:translateY(-8px); box-shadow:0 26px 50px -20px rgba(var(--shadow-color),0.28); }
.card-media{ aspect-ratio:4/3; overflow:hidden; }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.card:hover .card-media img{ transform:scale(1.08); }
.card-body{ padding:32px 30px 34px; }
.card h3{ font-size:23px; }
.card .meta{ font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dk); margin-top:14px; display:block; }
[data-theme="dark"] .card .meta{ color:var(--gold-lt); }

/* plain glass card (no media) */
.card.plain{ padding:36px 32px; }
.card .mark{ width:32px; height:32px; margin-bottom:20px; }

/* Service list (services page) */
.service-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:24px;
  padding:26px 8px; border-bottom:1px solid var(--line); border-radius:var(--radius-sm);
  transition:background .3s ease;
}
.service-row:hover{ background:var(--glass-soft); }
.service-row h4{ font-size:21px; margin:0; }
.service-row .desc{ color:var(--ink-dim); font-size:14.5px; max-width:520px; margin-top:6px; }
.service-row .price{ font-family:var(--serif); font-size:20px; color:var(--gold-dk); white-space:nowrap; }
[data-theme="dark"] .service-row .price{ color:var(--gold-lt); }
.service-group-title{ margin-bottom:6px; }
.service-group{ margin-bottom:70px; }

/* Testimonial */
.testimonial{ text-align:center; max-width:760px; margin:0 auto; padding:56px 48px; border-radius:var(--radius-lg); }
.testimonial p{ font-family:var(--serif); font-style:italic; font-size:29px; color:var(--ink); line-height:1.4; }
.testimonial .who{ font-family:var(--sans); font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--gold-dk); margin-top:22px; }
[data-theme="dark"] .testimonial .who{ color:var(--gold-lt); }

/* Gallery panels — real photography */
.panel{
  border-radius:var(--radius-lg); position:relative; overflow:hidden;
  display:block; padding:0; background:var(--surface);
  border:1px solid var(--line); box-shadow:0 18px 40px -24px rgba(var(--shadow-color),0.32);
}
.panel img{
  position:relative; display:block; width:100%; height:auto;
  object-fit:contain; transition:transform .45s ease;
}
.panel:hover img{ transform:scale(1.015); }
.panel::after{ display:none; }

/* Founder / about */
.founder{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:70px; align-items:center; }
.founder .frame{ border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4; box-shadow:0 30px 60px -20px rgba(var(--shadow-color),0.3); }
.founder .frame img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){ .founder{ grid-template-columns:1fr; gap:36px; } }

.creds{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.creds span{ font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold-dk); border:1px solid var(--line); padding:9px 16px; border-radius:var(--radius-pill); background:var(--glass-soft); }
[data-theme="dark"] .creds span{ color:var(--gold-lt); }

/* FAQ Accordion */
.faq{ max-width:800px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:none; border:none; text-align:left; cursor:pointer;
  padding:26px 6px; color:var(--ink); font-family:var(--serif); font-size:20px;
}
.faq-icon{ position:relative; flex:0 0 auto; width:18px; height:18px; }
.faq-icon::before,.faq-icon::after{
  content:''; position:absolute; top:50%; left:50%; background:var(--gold);
  transform:translate(-50%,-50%);
}
.faq-icon::before{ width:14px; height:1.5px; }
.faq-icon::after{ width:1.5px; height:14px; transition:transform .3s ease; }
.faq-q[aria-expanded="true"] .faq-icon::after{ transform:translate(-50%,-50%) rotate(90deg) scaleY(0); }
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .4s ease, padding .4s ease;
  padding:0 6px;
}
.faq-a p{ padding-bottom:24px; margin:0; max-width:640px; }
.faq-q[aria-expanded="true"] + .faq-a{ max-height:220px; }

/* Contact */
.contact-cards{ margin-top:28px; display:flex; flex-direction:column; gap:14px; }
.contact-card{
  display:flex; align-items:center; gap:18px;
  border-radius:var(--radius-md);
  padding:18px 22px; transition:border-color .3s ease, transform .3s ease, background .3s ease;
}
.contact-card:hover{ border-color:var(--gold); transform:translateX(6px); }
.cc-icon{
  flex:0 0 auto; width:38px; height:38px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.cc-icon svg{ width:19px; height:19px; }
.cc-body{ display:flex; flex-direction:column; gap:3px; }
.cc-label{ font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-dk); }
[data-theme="dark"] .cc-label{ color:var(--gold-lt); }
.cc-value{ font-family:var(--serif); font-size:18px; color:var(--ink); word-break:break-word; }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.info-row{ padding:20px 4px; border-bottom:1px solid var(--line); }
.info-row .label{ font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--gold-dk); display:block; margin-bottom:6px; }
[data-theme="dark"] .info-row .label{ color:var(--gold-lt); }

form.contact-form{ display:flex; flex-direction:column; gap:22px; padding:36px; border-radius:var(--radius-lg); }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:var(--ink-dim); }
.field input,.field select,.field textarea{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); color:var(--ink);
  font-family:var(--sans); font-size:15px; padding:12px 14px; transition:border-color .3s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:110px; }
.form-note{ font-size:13px; color:var(--ink-dim); margin-top:6px; }

/* CTA band */
.cta-band{ text-align:center; }
.cta-band h2{ font-size:clamp(30px,4vw,48px); }
.cta-panel{ border-radius:var(--radius-lg); padding:64px 40px; }

/* ==========================================================
   Footer
   ========================================================== */
.site-footer{ background:var(--bg-cream); padding:70px 0 30px; border-top:1px solid var(--line); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; margin-bottom:50px; }
.footer-grid h4{ font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-dk); margin-bottom:18px; font-family:var(--sans); }
[data-theme="dark"] .footer-grid h4{ color:var(--gold-lt); }
.footer-grid a{ display:block; color:var(--ink-dim); font-size:14.5px; margin-bottom:12px; transition:color .3s ease; }
.footer-grid a:hover{ color:var(--gold-dk); }
[data-theme="dark"] .footer-grid a:hover{ color:var(--gold-lt); }
.footer-logo img{ height:42px; width:auto; margin-bottom:18px; }
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding-top:26px; border-top:1px solid var(--line);
  font-size:12.5px; color:var(--ink-faint); letter-spacing:0.5px;
}
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr; gap:34px; } }


/* Detailed contribution table */
.rate-table{max-width:820px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;padding:10px 34px;}
.rate-head,.rate-row{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);}
.rate-head{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink-dim);font-weight:600;}
.rate-row:last-child{border-bottom:0;}
.rate-row span{font-family:var(--serif);font-size:22px;color:var(--ink);}
.rate-row strong{font-family:var(--serif);font-size:23px;color:var(--gold-dk);font-weight:600;}
[data-theme="dark"] .rate-row strong{color:var(--gold-lt);}
.rate-note{max-width:780px;margin:24px auto 0;text-align:center;font-size:14px;}
.step-number{display:inline-block;font-family:var(--serif);font-size:28px;color:var(--gold-dk);margin-bottom:16px;}
@media(max-width:600px){.rate-table{padding:6px 18px}.rate-head,.rate-row{padding:17px 2px;gap:16px}.rate-row span{font-size:18px}.rate-row strong{font-size:19px}.rate-head{font-size:9px;letter-spacing:1.4px}.site-header{background:#f9f4ea;backdrop-filter:none;-webkit-backdrop-filter:none}.site-header.scrolled{background:#f9f4ea}[data-theme="dark"] .site-header,[data-theme="dark"] .site-header.scrolled{background:#15120e}}

/* Empty photo slots ready for user-provided images */
.photo-placeholder{
  position:absolute; inset:0; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background:var(--surface-2, #eee8df); border:1px dashed var(--line);
  color:var(--ink-dim); font-size:12px; letter-spacing:2px; text-transform:uppercase;
}
.founder .frame .photo-placeholder{ position:relative; inset:auto; }
.about-photo-placeholder{ width:100%; height:100%; }

/* Client reviews */
.reviews-section{background:var(--bg);}
.pinned-review{max-width:920px;margin:0 auto 34px;padding:38px 42px;border-radius:var(--radius-lg);border:1px solid var(--gold);position:relative;overflow:hidden;}
.pinned-review::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(var(--gold-lt),var(--gold-dk));}
.review-topline,.review-rating{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.review-stars{color:var(--gold-dk);font-size:19px;letter-spacing:3px;line-height:1;}
[data-theme="dark"] .review-stars{color:var(--gold-lt);}
.pinned-badge{font-size:10px;letter-spacing:2px;text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 11px;color:var(--ink-dim);}
.pinned-review h3,.review-card h3{margin:15px 0 9px;font-size:23px;}
.pinned-review p{font-size:16px;max-width:800px;}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.review-card{padding:28px;border-radius:var(--radius-md);min-height:210px;transition:transform .35s ease,border-color .35s ease;}
.review-card:hover{transform:translateY(-5px);border-color:var(--gold);}
.review-rating strong{font-size:12px;color:var(--ink-dim);}
.review-card p{font-size:14.5px;}
.review-form-wrap{max-width:920px;margin:52px auto 0;padding:42px;border-radius:var(--radius-lg);display:grid;grid-template-columns:.8fr 1.2fr;gap:46px;align-items:start;}
.review-form-intro h3{font-size:34px;margin-bottom:12px;}
.review-form{display:flex;flex-direction:column;gap:18px;}
.review-form .btn{align-self:flex-start;}
.review-form .field input,.review-form .field select,.review-form .field textarea{width:100%;}
.review-submitted{animation:reviewIn .45s ease both;}
@keyframes reviewIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.review-form-wrap{grid-template-columns:1fr;gap:24px;}}
@media(max-width:600px){.reviews-grid{grid-template-columns:1fr}.pinned-review,.review-form-wrap{padding:28px 22px}.review-card{min-height:0}.review-stars{font-size:17px;letter-spacing:2px}}


/* Certification section */
.certification-card{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:48px; align-items:center; padding:34px; border-radius:var(--radius-lg);
  max-width:1100px; margin:0 auto;
}
.certificate-frame{
  background:#fff; padding:14px; border-radius:var(--radius-md);
  box-shadow:0 24px 50px -24px rgba(var(--shadow-color),.35);
}
.certificate-frame img{ width:100%; height:auto; display:block; border-radius:8px; }
.certificate-copy h3{ font-size:clamp(28px,3vw,40px); margin-bottom:16px; }
.certificate-copy p{ font-size:16px; }
.certificate-note{ margin-top:18px; font-size:12.5px!important; color:var(--ink-faint); }
@media(max-width:900px){
  .certification-card{ grid-template-columns:1fr; gap:30px; padding:20px; }
}

/* Reliability fix: homepage content must remain visible on all browsers/devices. */
.reveal,
.reveal.in {
  opacity: 1 !important;
  transform: none !important;
}


/* Footer visibility safeguard */
.site-footer{position:relative;z-index:5;display:block;width:100%;}
main{display:block;min-height:1px;}

/* Page-end and overscroll correction */
html, body {
  margin: 0;
  padding: 0;
  min-height: 0;
  overscroll-behavior-y: none;
}
body {
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
}
main, .site-footer {
  margin-bottom: 0;
}
.site-footer {
  min-height: 0;
}
.site-footer > .container,
.footer-bottom {
  margin-bottom: 0;
}

/* Keep the decorative scroll line out of normal document flow. */
.touch-line-wrap {
  position: relative;
  display: block;
  overflow: hidden;
}
.touch-line-svg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
  pointer-events: none;
  overflow: visible;
  z-index: 0;
}
.touch-line-wrap > section {
  position: relative;
  z-index: 1;
}

/* Prevent browser-generated trailing spacing after the final element. */
body > script:last-child {
  display: none;
}


/* Final layout repair: normal document flow with no artificial blank pages. */
html {
  min-height: 100%;
  background: #f9f4ea;
  overflow-x: clip;
}
body {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  overflow-x: clip;
  overscroll-behavior: none;
}
main {
  flex: 1 0 auto;
  width: 100%;
  overflow: visible;
}
.site-footer {
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
}

/* The decorative line is removed from the homepage to prevent oversized flow areas. */
.touch-line-wrap,
.touch-line-svg,
.touch-line-path,
.touch-point {
  display: none !important;
}

/* Keep sections compact and content-led instead of screen-sized. */
section {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 96px;
  padding-bottom: 96px;
}
.hero {
  min-height: clamp(680px, 100svh, 900px) !important;
  height: auto !important;
  padding-top: 130px;
  padding-bottom: 72px;
}

/* Nothing after the footer may create layout height. */
body > script:last-child {
  display: none;
}
.site-footer:last-of-type {
  margin-bottom: 0 !important;
  padding-bottom: 30px;
}

@media (max-width: 900px) {
  section {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .hero {
    min-height: 0 !important;
    padding-top: 112px;
    padding-bottom: 64px;
  }
}

@media (max-width: 600px) {
  section {
    padding-top: 58px;
    padding-bottom: 58px;
  }
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }
  .hero {
    padding-top: 96px;
    padding-bottom: 52px;
  }
  .site-footer {
    padding-bottom: 22px;
  }
}


/* Homepage readability and contrast repair */
.home-page {
  background:#ffffff;
  color:#2c2419;
}
.home-page section,
.home-page .reviews-section {
  color:#2c2419;
}
.home-page section:not(.hero):not(.section-alt),
.home-page .reviews-section {
  background:#ffffff;
}
.home-page .section-alt,
.home-page .certification-section,
.home-page .cta-band {
  background:#f7f0e3;
}
.home-page h1,
.home-page h2,
.home-page h3,
.home-page h4,
.home-page .rate-row span,
.home-page .cc-value {
  color:#241d14 !important;
  text-shadow:none !important;
}
.home-page p,
.home-page .section-head p,
.home-page .card p,
.home-page .review-card p,
.home-page .pinned-review p,
.home-page .certificate-copy p,
.home-page .review-form-intro p {
  color:#5d5346 !important;
  opacity:1 !important;
}
.home-page .eyebrow,
.home-page .step-number,
.home-page .review-stars,
.home-page .card .meta,
.home-page .rate-row strong {
  color:#805d2e !important;
}
.home-page .glass,
.home-page .card.glass,
.home-page .rate-table.glass,
.home-page .testimonial.glass,
.home-page .pinned-review.glass,
.home-page .review-card.glass,
.home-page .review-form-wrap.glass,
.home-page .certification-card.glass,
.home-page .cta-panel.glass {
  background:#fffdf9 !important;
  border-color:rgba(140,106,55,.28) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:0 12px 36px -22px rgba(45,34,20,.35) !important;
}
.home-page .hero-bg::after {
  background:linear-gradient(90deg,rgba(255,253,249,.97) 0%,rgba(255,253,249,.92) 42%,rgba(255,253,249,.52) 70%,rgba(255,253,249,.25) 100%) !important;
}
.home-page .hero-copy {
  position:relative;
  z-index:2;
  max-width:650px;
  padding:30px;
  border-radius:24px;
  background:rgba(255,253,249,.9);
  border:1px solid rgba(140,106,55,.2);
  box-shadow:0 18px 48px -28px rgba(45,34,20,.45);
}
.home-page .hero-copy h1 { color:#241d14 !important; }
.home-page .hero-copy p.lead { color:#544a3d !important; }
.home-page .btn-ghost,
.home-page .btn-ghost.glass {
  background:#fffdf9 !important;
  color:#2c2419 !important;
  border-color:#9a713c !important;
}
.home-page .btn-solid {
  color:#21170c !important;
}
.home-page .rate-head {
  color:#51483c !important;
}
.home-page .pinned-badge,
.home-page .review-rating strong,
.home-page .field label,
.home-page .form-note,
.home-page .certificate-note {
  color:#655a4b !important;
}
.home-page .field input,
.home-page .field select,
.home-page .field textarea {
  background:#ffffff !important;
  color:#2c2419 !important;
  border-color:rgba(140,106,55,.3) !important;
}
.home-page .field input::placeholder,
.home-page .field textarea::placeholder {
  color:#8b8173 !important;
  opacity:1;
}
@media(max-width:900px){
  .home-page .hero-bg::after{
    background:linear-gradient(180deg,rgba(255,253,249,.45) 0%,rgba(255,253,249,.94) 46%,#fffdf9 100%) !important;
  }
  .home-page .hero-copy{
    padding:24px 22px;
    background:rgba(255,253,249,.96);
  }
}
