/* ============ TOKENS ============ */
:root{
  --ink:#12211d;
  --ink-soft:#4b5f5a;
  --bg:#faf8f3;
  --bg-alt:#f1efe6;
  --surface:#ffffff;
  --line:#e5e1d4;
  --brand:#1f8a6f;
  --brand-dark:#155c4a;
  --brand-light:#eaf6f1;
  --accent:#e7a730;
  --shadow-sm: 0 2px 10px rgba(18,33,29,.06);
  --shadow-md: 0 12px 32px rgba(18,33,29,.10);
  --shadow-lg: 0 24px 60px rgba(18,33,29,.16);
  --radius: 22px;
  --nav-h: 74px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Manrope',system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-.01em;
}
p{margin:0 0 1em; color:var(--ink-soft); line-height:1.65;}
a{color:inherit; text-decoration:none;}
ul{list-style:none; margin:0; padding:0;}
img{max-width:100%; display:block;}
svg{flex-shrink:0;}

.eyebrow{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.75rem;
  font-weight:700;
  color:var(--brand);
  margin:0 0 .8em;
}

/* ============ BACKGROUND GLOW ============ */
.bg-glow{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(600px 400px at 85% -5%, rgba(31,138,111,.14), transparent 60%),
    radial-gradient(500px 380px at -5% 20%, rgba(231,167,48,.10), transparent 60%);
}

/* ============ REVEAL ANIMATION ============ */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.in-view{
  opacity:1;
  transform:translateY(0);
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 24px;
  border-radius:999px;
  font-weight:700;
  font-size:.95rem;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
  white-space:nowrap;
}
.btn svg{transition:transform .3s var(--ease);}
.btn:hover svg{transform:translateX(3px);}
.btn-primary{
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff;
  box-shadow:0 10px 24px rgba(31,138,111,.28);
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(31,138,111,.36);}
.btn-ghost{
  background:var(--surface);
  color:var(--ink);
  border-color:var(--line);
}
.btn-ghost:hover{transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:var(--brand);}
.btn-full{width:100%; justify-content:center;}

/* ============ PILL NAVBAR ============ */
.nav-wrap{
  position:fixed; top:16px; left:0; right:0; z-index:100;
  display:flex; justify-content:center;
  padding:0 16px;
}
.pill-nav{
  width:100%;
  max-width:980px;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  padding:8px 10px 8px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 8px 30px rgba(18,33,29,.10);
  transition:box-shadow .4s var(--ease), background .4s var(--ease), transform .4s var(--ease);
}
.pill-nav.scrolled{
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 36px rgba(18,33,29,.16);
}
.nav-logo{display:flex; align-items:center; gap:10px; font-weight:800;}
.logo-mark{
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff; font-family:'Fraunces',serif; font-size:.85rem;
  flex-shrink:0;
}
.logo-text{font-size:1rem; letter-spacing:-.01em;}
.logo-text em{color:var(--brand); font-style:normal;}

.nav-links{display:flex; align-items:center; gap:4px;}
.nav-links a{
  position:relative;
  padding:9px 16px;
  border-radius:999px;
  font-size:.9rem;
  font-weight:600;
  color:var(--ink-soft);
  transition:color .3s, background .3s;
}
.nav-links a:hover{color:var(--brand-dark); background:var(--brand-light);}
.nav-links a.active{color:var(--brand-dark); background:var(--brand-light);}

.nav-cta{
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff; padding:10px 20px; border-radius:999px;
  font-size:.88rem; font-weight:700;
  box-shadow:0 6px 18px rgba(31,138,111,.3);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  flex-shrink:0;
}
.nav-cta:hover{transform:translateY(-1px); box-shadow:0 10px 22px rgba(31,138,111,.38);}

.nav-burger{
  display:none;
  width:40px; height:40px;
  border-radius:50%;
  border:none;
  background:var(--brand-light);
  flex-direction:column; align-items:center; justify-content:center; gap:4px;
  cursor:pointer;
  flex-shrink:0;
}
.nav-burger span{
  width:16px; height:2px; background:var(--brand-dark); border-radius:2px;
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.mobile-panel{
  max-width:980px; margin:8px auto 0;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  max-height:0;
  opacity:0;
  transition:max-height .45s var(--ease), opacity .35s var(--ease);
  display:flex; flex-direction:column;
  box-shadow:var(--shadow-md);
}
.mobile-panel.open{max-height:420px; opacity:1;}
.mobile-panel a{
  padding:16px 22px;
  font-weight:600;
  border-bottom:1px solid var(--line);
}
.mobile-panel a:last-child{border-bottom:none;}
.mobile-panel .mobile-cta{
  color:var(--brand-dark); font-weight:800;
}

/* ============ HERO ============ */
.hero{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  padding:calc(var(--nav-h) + 56px) 24px 60px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:40px;
  align-items:center;
  min-height:92vh;
}
.hero-inner{max-width:560px;}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  font-weight:600;
}
.hero h1 .accent{
  color:var(--brand);
  font-style:italic;
  font-weight:500;
}
.hero-sub{font-size:1.08rem; max-width:480px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin:28px 0 40px;}

.hero-stats{display:flex; align-items:center; gap:22px;}
.stat{display:flex; flex-direction:column;}
.stat-num{font-family:'Fraunces',serif; font-size:1.9rem; font-weight:600; color:var(--ink);}
.stat-plus{font-family:'Fraunces',serif; font-size:1.9rem; color:var(--brand);}
.stat-label{font-size:.8rem; color:var(--ink-soft);}
.stat-divider{width:1px; height:36px; background:var(--line);}

.hero-visual{position:relative; height:460px;}
.tooth-card{
  position:absolute; inset:10% 6%;
  background:var(--surface);
  border-radius:32px;
  box-shadow:var(--shadow-lg);
  display:flex; align-items:center; justify-content:center;
  padding:60px;
  animation:float-slow 7s ease-in-out infinite;
}
.tooth-card svg{width:60%; height:60%;}
.orbit-ring{
  position:absolute; border-radius:50%;
  border:1px dashed rgba(31,138,111,.28);
}
.orbit-ring.r1{width:340px; height:340px; top:5%; left:8%; animation:spin 40s linear infinite;}
.orbit-ring.r2{width:230px; height:230px; bottom:0; right:2%; animation:spin 30s linear infinite reverse;}

.float-chip{
  position:absolute;
  display:flex; align-items:center; gap:8px;
  background:var(--surface);
  padding:12px 16px;
  border-radius:999px;
  box-shadow:var(--shadow-md);
  font-size:.82rem;
  font-weight:700;
  animation:float-slow 6s ease-in-out infinite;
}
.chip-1{top:8%; right:0; animation-delay:.4s;}
.chip-2{bottom:10%; left:-4%; animation-delay:1.1s;}

@keyframes float-slow{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
@keyframes spin{
  to{transform:rotate(360deg);}
}

/* ============ TRUST BAR ============ */
.trust-bar{
  max-width:1180px; margin:0 auto;
  padding:20px 24px 70px;
  display:flex; flex-wrap:wrap; gap:16px 32px;
  justify-content:center;
  border-top:1px solid var(--line);
}
.trust-item{
  display:flex; align-items:center; gap:9px;
  font-size:.86rem; font-weight:700; color:var(--ink-soft);
}
.trust-item svg{color:var(--brand);}

/* ============ SECTION HEAD ============ */
.section-head{max-width:640px; margin:0 auto 48px; text-align:center;}
.section-head h2{font-size:clamp(1.8rem, 3.4vw, 2.5rem); font-weight:600;}

/* ============ SERVICES ============ */
.services{max-width:1180px; margin:0 auto; padding:80px 24px;}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}
.service-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px 26px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-md);
  border-color:transparent;
}
.service-icon{
  width:52px; height:52px;
  border-radius:16px;
  background:var(--brand-light);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
  transition:transform .4s var(--ease);
}
.service-card:hover .service-icon{transform:scale(1.08) rotate(-4deg);}
.service-card h3{font-size:1.12rem; font-weight:600; margin-bottom:8px;}
.service-card p{font-size:.92rem; margin:0;}

/* ============ ABOUT ============ */
.about{
  max-width:1180px; margin:0 auto;
  padding:40px 24px 100px;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:60px;
  align-items:center;
}
.about-visual{position:relative; height:380px;}
.about-blob{
  position:absolute; inset:0;
  border-radius:44% 56% 60% 40% / 46% 42% 58% 54%;
  background:linear-gradient(140deg, var(--brand-light), #fff);
  border:1px solid var(--line);
  animation:blob 12s var(--ease) infinite alternate;
}
@keyframes blob{
  to{border-radius:58% 42% 40% 60% / 54% 60% 40% 46%;}
}
.about-card{
  position:absolute; bottom:24px; left:24px;
  background:var(--surface);
  box-shadow:var(--shadow-md);
  border-radius:18px;
  padding:16px 20px;
  display:flex; align-items:center; gap:12px;
}
.about-card .avatar{
  width:44px; height:44px; border-radius:50%;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:600;
}
.about-card div strong{display:block; font-size:.92rem;}
.about-card div span{font-size:.78rem; color:var(--ink-soft);}

.about-content h2{font-size:clamp(1.8rem, 3.4vw, 2.4rem); font-weight:600;}
.about-list{margin-top:20px; display:flex; flex-direction:column; gap:12px;}
.about-list li{display:flex; align-items:center; gap:10px; font-weight:600; font-size:.95rem;}

/* ============ REVIEWS ============ */
.reviews{
  background:linear-gradient(180deg, var(--bg-alt), var(--bg));
  padding:90px 24px;
}
.review-track{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;
}
.review-card{
  background:var(--surface);
  border-radius:var(--radius);
  border:1px solid var(--line);
  padding:28px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.review-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.stars{color:var(--accent); letter-spacing:2px; margin-bottom:12px; font-size:1rem;}
.review-card p{font-style:italic; color:var(--ink); font-size:.95rem;}
.review-name{font-size:.82rem; font-weight:700; color:var(--ink-soft);}
.review-note{text-align:center; max-width:1180px; margin:36px auto 0; font-size:.85rem;}

.review-summary{
  max-width:420px; margin:0 auto;
  text-align:center;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:44px 32px;
  box-shadow:var(--shadow-sm);
}
.review-score{display:flex; align-items:baseline; justify-content:center; gap:2px; font-family:'Fraunces',serif;}
.score-num{font-size:3.2rem; font-weight:600; color:var(--ink);}
.score-max{font-size:1.3rem; color:var(--ink-soft);}
.stars.big{font-size:1.3rem; margin:6px 0 14px;}
.review-summary-text{font-size:.88rem; margin-bottom:20px;}
.review-link{margin:0 auto;}

/* ============ HOURS + CONTACT ============ */
.hours-contact{
  max-width:1180px; margin:0 auto;
  padding:90px 24px;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:24px;
  align-items:start;
}
.hc-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:28px;
  padding:36px;
}
.hours-card{position:sticky; top:110px;}
.hours-list{margin-top:20px; display:flex; flex-direction:column; gap:2px;}
.hours-list li{
  display:flex; justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  font-weight:600; font-size:.94rem;
  color:var(--ink-soft);
}
.hours-list li:last-child{border-bottom:none;}
.hours-list .closed{color:#c2846d;}
.hours-list .open-day{color:var(--ink);}
.hours-list .open-day span:last-child{color:var(--brand-dark);}
.hours-hint{margin-top:18px; font-size:.85rem;}

.contact-rows{display:flex; flex-direction:column; gap:10px; margin:20px 0 28px;}
.contact-row{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px;
  background:var(--bg-alt);
  border-radius:14px;
  font-weight:600; font-size:.92rem;
  transition:background .3s, transform .3s;
}
a.contact-row:hover{background:var(--brand-light); transform:translateX(4px); color:var(--brand-dark);}
.contact-row svg{color:var(--brand);}

.booking-form{display:flex; flex-direction:column; gap:12px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.booking-form input, .booking-form textarea{
  width:100%;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--bg-alt);
  font-family:inherit;
  font-size:.92rem;
  color:var(--ink);
  transition:border-color .3s, background .3s;
  resize:vertical;
}
.booking-form input:focus, .booking-form textarea:focus{
  outline:none; border-color:var(--brand); background:var(--surface);
}
.form-note{font-size:.78rem; text-align:center; margin:0;}

/* ============ MAP ============ */
.map-section{
  max-width:1180px; margin:0 auto 90px; padding:0 24px;
}
.map-section iframe{
  width:100%; height:360px; border:0; border-radius:var(--radius);
  filter:grayscale(.15) contrast(1.02);
  box-shadow:var(--shadow-sm);
}

/* ============ FOOTER ============ */
.footer{
  background:var(--ink);
  color:#cfe0da;
  padding:50px 24px;
}
.footer-inner{max-width:1180px; margin:0 auto; text-align:center;}
.footer-brand{display:flex; align-items:center; justify-content:center; gap:10px; font-weight:800; color:#fff; margin-bottom:14px;}
.footer-brand .logo-text em{color:var(--accent); font-style:normal;}
.footer p{color:#9fb3ac; font-size:.85rem; margin:0 0 6px;}
.footer-copy{opacity:.7;}

/* ============ MOBILE FAB (call) ============ */
.mobile-fab{
  display:none;
  position:fixed; bottom:22px; right:92px; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  align-items:center; justify-content:center;
  box-shadow:0 12px 28px rgba(31,138,111,.4);
  animation:pulse-ring 2.6s ease-in-out infinite;
}
@keyframes pulse-ring{
  0%,100%{box-shadow:0 12px 28px rgba(31,138,111,.4);}
  50%{box-shadow:0 12px 28px rgba(31,138,111,.4), 0 0 0 10px rgba(31,138,111,.12);}
}

/* ============ AI CHAT WIDGET ============ */
.chat-widget{
  position:fixed; bottom:22px; right:22px; z-index:95;
  display:flex; flex-direction:column; align-items:flex-end;
  gap:14px;
}
.chat-toggle{
  position:relative;
  width:56px; height:56px; border-radius:50%;
  border:none; cursor:pointer;
  background:linear-gradient(135deg, var(--accent), #c98a1c);
  box-shadow:0 12px 28px rgba(231,167,48,.42);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.chat-toggle:hover{transform:scale(1.06);}
.chat-toggle .icon-close{display:none; position:absolute;}
.chat-toggle.open .icon-chat{display:none;}
.chat-toggle.open .icon-close{display:block;}
.chat-ping{
  position:absolute; top:-2px; right:-2px;
  width:14px; height:14px; border-radius:50%;
  background:#e6543e; border:2px solid var(--bg);
  animation:pulse-ring 2.2s ease-in-out infinite;
}
.chat-toggle.open .chat-ping{display:none;}

.chat-panel{
  width:min(360px, calc(100vw - 44px));
  max-height:min(520px, 70vh);
  background:var(--surface);
  border-radius:24px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column;
  overflow:hidden;
  transform-origin:bottom right;
  transform:scale(.9) translateY(12px);
  opacity:0;
  pointer-events:none;
  transition:transform .32s var(--ease), opacity .28s var(--ease);
}
.chat-panel.open{
  transform:scale(1) translateY(0);
  opacity:1;
  pointer-events:auto;
}
.chat-header{
  display:flex; align-items:center; gap:12px;
  padding:16px 18px;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff;
}
.chat-avatar{
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:600; font-size:.85rem;
  flex-shrink:0;
}
.chat-header strong{display:block; font-size:.92rem;}
.chat-header span{font-size:.72rem; opacity:.85;}

.chat-body{
  flex:1;
  overflow-y:auto;
  padding:16px;
  display:flex; flex-direction:column; gap:10px;
  background:var(--bg-alt);
}
.chat-msg{
  max-width:84%;
  padding:10px 14px;
  border-radius:16px;
  font-size:.86rem;
  line-height:1.5;
  animation:msg-in .28s var(--ease);
}
.chat-msg.bot{
  align-self:flex-start;
  background:var(--surface);
  border:1px solid var(--line);
  border-bottom-left-radius:4px;
  color:var(--ink);
}
.chat-msg.user{
  align-self:flex-end;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff;
  border-bottom-right-radius:4px;
}
@keyframes msg-in{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}
.chat-typing{align-self:flex-start; display:flex; gap:4px; padding:12px 14px; background:var(--surface); border:1px solid var(--line); border-radius:16px; border-bottom-left-radius:4px;}
.chat-typing span{width:6px; height:6px; border-radius:50%; background:var(--ink-soft); opacity:.5; animation:typing-bounce 1s infinite;}
.chat-typing span:nth-child(2){animation-delay:.15s;}
.chat-typing span:nth-child(3){animation-delay:.3s;}
@keyframes typing-bounce{
  0%,60%,100%{transform:translateY(0); opacity:.4;}
  30%{transform:translateY(-4px); opacity:1;}
}

.chat-quick{
  display:flex; flex-wrap:wrap; gap:6px;
  padding:10px 14px;
  border-top:1px solid var(--line);
}
.chat-quick button{
  border:1px solid var(--line);
  background:var(--bg-alt);
  border-radius:999px;
  padding:7px 12px;
  font-size:.74rem;
  font-weight:700;
  color:var(--brand-dark);
  cursor:pointer;
  transition:background .25s, transform .25s;
}
.chat-quick button:hover{background:var(--brand-light); transform:translateY(-1px);}

.chat-input-row{
  display:flex; gap:8px;
  padding:12px 14px 8px;
}
.chat-input-row input{
  flex:1;
  border:1px solid var(--line);
  background:var(--bg-alt);
  border-radius:999px;
  padding:10px 16px;
  font-size:.86rem;
  font-family:inherit;
  color:var(--ink);
}
.chat-input-row input:focus{outline:none; border-color:var(--brand);}
.chat-input-row button{
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  border:none; cursor:pointer;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:transform .25s var(--ease);
}
.chat-input-row button:hover{transform:scale(1.08);}
.chat-disclaimer{
  font-size:.68rem; text-align:center; color:var(--ink-soft);
  padding:0 14px 12px; margin:0;
}

@media (max-width: 620px){
  .chat-widget{bottom:16px; right:16px;}
  .mobile-fab{right:82px; bottom:16px;}
  .chat-toggle{width:52px; height:52px;}
  .chat-panel{
    position:fixed; right:16px; bottom:82px; left:16px;
    width:auto;
  }
}

/* ============ RESPONSIVE ============ */
@media (max-width: 980px){
  .nav-links, .nav-cta{display:none;}
  .nav-burger{display:flex;}
  .hero{grid-template-columns:1fr; text-align:center; min-height:auto; padding-top:calc(var(--nav-h) + 40px);}
  .hero-inner{max-width:100%; margin:0 auto;}
  .hero-sub{margin-left:auto; margin-right:auto;}
  .hero-actions{justify-content:center;}
  .hero-stats{justify-content:center;}
  .hero-visual{margin-top:20px; height:340px;}
  .about{grid-template-columns:1fr;}
  .about-visual{height:300px;}
  .hours-contact{grid-template-columns:1fr;}
  .hours-card{position:static;}
  .service-grid{grid-template-columns:repeat(2, 1fr);}
  .review-track{grid-template-columns:1fr;}
}

@media (max-width: 620px){
  :root{--nav-h:64px;}
  .pill-nav{padding:6px 8px 6px 14px;}
  .logo-text{display:none;}
  .service-grid{grid-template-columns:1fr;}
  .trust-bar{gap:14px 20px; padding-bottom:50px;}
  .hero-actions{flex-direction:column; width:100%;}
  .hero-actions .btn{width:100%; justify-content:center;}
  .form-row{grid-template-columns:1fr;}
  .mobile-fab{display:flex;}
  .hc-card{padding:26px 22px;}
  .stat-num, .stat-plus{font-size:1.5rem;}
}

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