/* ===========================================================================
   Restoration Dental — Homepage & hero
   =========================================================================== */

/* ---------- signature hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; isolation:isolate;
  padding-top:calc(var(--header-h) + 2rem); padding-bottom:3rem; overflow:hidden; }
.hero__poster,#hero-gl{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero__poster{ background:
    radial-gradient(1100px 700px at 78% 18%, rgba(184,137,62,.20), transparent 60%),
    radial-gradient(900px 700px at 12% 90%, rgba(120,150,135,.22), transparent 60%),
    linear-gradient(165deg, #fbf8f2 0%, #f1ede4 48%, #e9eee9 100%); }
#hero-gl{ z-index:-1; opacity:.9; }
.hero::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(120% 80% at 50% 100%, rgba(247,244,239,.6), transparent 60%); pointer-events:none; }

.hero__content{ max-width:760px; }
.hero h1{ margin-bottom:1.3rem; }
.hero h1 .accent{ font-style:italic; color:var(--brass-deep); }
.hero h1 .line{ display:block; overflow:hidden; }
.hero .lead{ max-width:54ch; margin-bottom:2rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.hero-rating{ display:inline-flex; align-items:center; gap:.7rem; margin-top:2.2rem; flex-wrap:wrap; }
.hero-rating .stars{ color:var(--brass); letter-spacing:2px; }
.hero-rating .txt{ font-size:.9rem; color:var(--slate); }
.hero-rating .txt b{ color:var(--ink); }
.hero-badges{ display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; margin-top:2.4rem; }
.hero-badges span{ display:inline-flex; align-items:center; gap:.5rem; font-size:.84rem; font-weight:500; color:var(--slate); }
.hero-badges svg{ width:1.05em; color:var(--brass); }
.hero-scroll{ position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%); font-size:.75rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--slate-2); display:flex; flex-direction:column;
  align-items:center; gap:.5rem; }
.hero-scroll .bar{ width:1px; height:34px; background:linear-gradient(var(--brass),transparent); animation:scrollpulse 2.2s ease-in-out infinite; }
@keyframes scrollpulse{ 0%,100%{ transform:scaleY(.4); opacity:.4; } 50%{ transform:scaleY(1); opacity:1; } }
@media(prefers-reduced-motion:reduce){ .hero-scroll .bar{ animation:none; } }
@media(max-width:560px){ .hero{ min-height:auto; padding-top:calc(var(--header-h) + 3rem); } .hero-scroll{ display:none; } }

/* trust strip */
.trust-strip{ background:var(--ink); color:rgba(255,255,255,.85); padding:1.1rem 0; }
.trust-strip .wrap{ display:flex; align-items:center; justify-content:center; gap:clamp(1.2rem,4vw,3rem); flex-wrap:wrap; }
.trust-strip span{ display:inline-flex; align-items:center; gap:.55rem; font-size:.9rem; font-weight:500; }
.trust-strip svg{ width:1.1em; color:var(--brass-soft); }
.trust-strip .dot{ width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.3); }
@media(max-width:680px){ .trust-strip .dot{ display:none; } }

/* section heading block */
.sec-head{ max-width:660px; margin-bottom:clamp(2rem,4vw,3.2rem); }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head p{ font-size:1.1rem; }

/* services showcase */
.svc-feature{ display:grid; grid-template-columns:1.1fr 1fr; gap:1.4rem; }
@media(max-width:880px){ .svc-feature{ grid-template-columns:1fr; } }
.svc-hero-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; padding:2.2rem; color:#fff;
  background:linear-gradient(150deg,#1b2a3a,#0f1a26); display:flex; flex-direction:column; justify-content:flex-end; min-height:340px; }
.svc-hero-card::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 15%,rgba(184,137,62,.4),transparent 55%); }
.svc-hero-card>*{ position:relative; z-index:1; }
.svc-hero-card .tag{ color:var(--brass-soft); }
.svc-hero-card h3{ color:#fff; font-size:1.7rem; }
.svc-hero-card p{ color:rgba(255,255,255,.78); }
.svc-hero-card .link-arrow{ color:var(--brass-soft); }
.svc-mini-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
@media(max-width:520px){ .svc-mini-grid{ grid-template-columns:1fr; } }

/* founder section */
.founder{ position:relative; }
.founder-card{ background:linear-gradient(160deg,var(--surface),#f1ece2); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:clamp(1.8rem,3.5vw,3rem); box-shadow:var(--shadow); }
.founder-cred{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1.2rem 0; }
.founder-cred .badge{ background:#fff; }
.founder-sign{ font-family:var(--display); font-size:1.5rem; color:var(--ink); font-style:italic; margin-top:.6rem; }

/* process steps */
.steps{ counter-reset:step; display:grid; gap:1.2rem; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start; padding:1.4rem 0; border-bottom:1px solid var(--line); }
.step:last-child{ border-bottom:none; }
.step .n{ counter-increment:step; width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--display); font-size:1.3rem; color:var(--brass-deep); background:linear-gradient(150deg,#f3ead9,#fff); border:1px solid var(--sand); }
.step .n::before{ content:"0" counter(step); }
.step h3{ font-size:1.25rem; margin-bottom:.3rem; }
.step p{ margin:0; }

/* tech marquee */
.marquee{ overflow:hidden; border-block:1px solid var(--line); padding:1.3rem 0; -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; gap:3rem; width:max-content; animation:marquee 32s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee span{ font-family:var(--display); font-size:clamp(1.3rem,2.4vw,1.9rem); color:var(--slate); display:inline-flex; align-items:center; gap:1.4rem; white-space:nowrap; }
.marquee span::after{ content:"✦"; color:var(--brass); font-size:.8em; }
.marquee .out{ color:transparent; -webkit-text-stroke:1px var(--brass); }
@keyframes marquee{ to{ transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

/* before/after teaser */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
@media(max-width:820px){ .gallery-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .gallery-grid{ grid-template-columns:1fr; } }
.ba-card{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:1; border:1px solid var(--sand);
  background:linear-gradient(150deg,#efe6d6,#f9f5ee); display:grid; place-content:center; text-align:center; gap:.5rem; }
.ba-card .ph-fill{ color:var(--brass-deep); }
.ba-card .ph-fill svg{ width:36px; height:36px; margin-inline:auto; opacity:.7; }
.ba-card .ph-fill span{ font-size:.78rem; color:var(--slate-2); }

/* areas served */
.areas{ display:flex; flex-wrap:wrap; gap:.7rem; }
.areas .badge{ background:var(--surface); }
