/* Design tokens copied from the LAL Dental in-house rebuild
   (/workspace/websites/laldental-inhouse/staging/dist, Nov 2026). */
:root{
  --color-primary:#002868;
  --color-secondary:#001a45;
  --color-dark:#0a1020;
  --color-light:#faf9f7;
  --color-accent:#bf0a30;
  --color-accent-ink:#a50926;
  --color-accent-on-dark:#f2808f;
  --accent:var(--color-accent);
  --color-on-dark:#8fb0e4;
  --color-muted-on-dark:#c2cee4;
  --color-plate:#faf9f7;
  --color-ink:#0a1020;
  --color-muted:#5a6167;
  --color-rule:#dcd9d2;
  --color-green:#002868;
  --color-green-deep:#001a45;
  --color-green-bright:#bf0a30;
  --radius-control:6px;
  --radius-card:10px;
  --font-heading:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
  --font-body:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
  --max:80rem;
  --ease-out-soft:cubic-bezier(.16, 1, .3, 1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 1rem/1.65 var(--font-body);color:var(--color-ink);background:var(--color-plate);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary)}
a:hover{color:var(--color-accent)}
h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-ink);margin:0 0 .5em}
.display{font-family:var(--font-heading);letter-spacing:-.035em;text-wrap:balance;font-weight:800;line-height:.94}
.display-xl{font-size:clamp(2.6rem,7.2vw,5.6rem)}
.display-lg{font-size:clamp(2.1rem,5vw,3.6rem)}
h2.display-lg{font-size:clamp(1.25rem,6.8vw,2.75rem)}
@media(min-width:60rem){h2.display-lg{font-size:clamp(1.6rem,3.4vw,2.75rem)}}
.marginal{font-family:var(--font-body);letter-spacing:.18em;text-transform:uppercase;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}
.lal{color:var(--color-accent)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1rem}
@media(min-width:40rem){.wrap{padding:0 1.5rem}}
@media(min-width:64rem){.wrap{padding:0 2rem}}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--color-primary);padding:.75rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}

/* Header — sibling to LAL Dental: overlay on home, solid after scroll */
#site-header{position:absolute;inset-inline:0;top:0;z-index:50;transition:background-color .3s,box-shadow .3s,color .3s}
#site-header.is-stuck,
#site-header.is-solid{position:sticky;background:rgba(250,249,247,.94);backdrop-filter:saturate(1.4) blur(10px);box-shadow:0 1px 0 var(--color-rule)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0}
@media(min-width:64rem){.nav-bar{padding:1.15rem 0}}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;flex-shrink:0}
.brand img{height:2.25rem;width:auto}
@media(min-width:40rem){.brand img{height:2.5rem}}
@media(min-width:64rem){.brand img{height:2.75rem}}
.logo-dark{display:none}
.brand-tag{padding-left:.85rem;border-left:2px solid var(--color-accent);font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);line-height:1.15}
#site-header.is-overlay:not(.is-stuck) .logo-mark{display:none}
#site-header.is-overlay:not(.is-stuck) .logo-dark{display:block}
#site-header.is-overlay:not(.is-stuck) .brand-tag{color:#ffffffe6;border-left-color:var(--color-accent-on-dark)}
#site-header.is-overlay:not(.is-stuck) .nav-links>a,
#site-header.is-overlay:not(.is-stuck) .menu-btn{color:#fff}
#site-header.is-overlay:not(.is-stuck) .nav-links>a:hover,
#site-header.is-overlay:not(.is-stuck) .nav-links>a[aria-current]{color:var(--color-on-dark)}
.nav-links{display:none;align-items:center;gap:0}
@media(min-width:64rem){.nav-links{display:flex}}
.nav-links>a{padding:.75rem .7rem;font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--color-primary);white-space:nowrap;transition:color .15s}
.nav-links>a:hover,
.nav-links>a[aria-current]{color:var(--color-accent)}
.nav-cta{display:none;margin-left:.75rem;align-items:center;border-radius:var(--radius-control);background:var(--color-accent);padding:.6rem 1.15rem;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-decoration:none;white-space:nowrap;transition:background-color .15s ease}
.nav-cta:hover{background:var(--color-accent-ink);color:#fff}
@media(min-width:80rem){.nav-cta{display:inline-flex}}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid currentColor;border-radius:var(--radius-control);background:transparent;color:var(--color-primary);cursor:pointer}
@media(min-width:64rem){.menu-btn{display:none}}
.menu-btn span{display:block;width:1.1rem;height:2px;background:currentColor;position:relative}
.menu-btn span::before,
.menu-btn span::after{content:"";position:absolute;inset-inline:0;height:2px;background:currentColor}
.menu-btn span::before{top:-6px}
.menu-btn span::after{top:6px}
.mobile-panel{display:none;border-top:1px solid var(--color-rule);background:var(--color-plate);padding:.5rem 0 1rem}
#site-header.is-open .mobile-panel{display:block}
#site-header.is-overlay:not(.is-stuck).is-open{background:var(--color-dark)}
.mobile-panel a{display:block;padding:.85rem 0;border-bottom:1px solid var(--color-rule);text-decoration:none;font-weight:600;color:var(--color-ink)}
#site-header.is-overlay:not(.is-stuck) .mobile-panel{background:var(--color-dark);border-top-color:rgba(255,255,255,.12)}
#site-header.is-overlay:not(.is-stuck) .mobile-panel a{color:#fff;border-bottom-color:rgba(255,255,255,.12)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:0 1.4rem;border-radius:var(--radius-control);font:700 .8rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--color-accent-ink);border-color:var(--color-accent-ink);color:#fff}
.btn.ghost{background:transparent;color:#fff;border-color:#fff}
.btn.ghost:hover{background:#fff;color:var(--color-primary)}
.btn.ink{background:var(--color-primary);border-color:var(--color-primary)}
.btn.ink:hover{background:var(--color-secondary);border-color:var(--color-secondary)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* Hero */
.hero{position:relative;background:var(--color-dark);color:#fff;padding:9.5rem 0 5rem;overflow:hidden}
@media(min-width:64rem){.hero{padding:11rem 0 6.5rem}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,16,32,.2) 0%,rgba(10,16,32,.55) 100%),radial-gradient(1200px 500px at 80% -10%,rgba(0,40,104,.7),transparent 60%);pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero__brand{margin:0 0 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem}
.hero__brandName{font-family:var(--font-heading);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;letter-spacing:-.01em;line-height:1;color:#fff}
.hero__brandTag{padding-left:1rem;border-left:2px solid var(--color-accent-on-dark);font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#ffffffe6}
.hero h1{margin:0;color:#fff;font-size:clamp(1.35rem,6vw,3.1rem)}
@media(min-width:60rem){.hero h1{font-size:clamp(2rem,3vw,3rem)}}
.hero__cred{margin:1.6rem 0 0;max-width:60ch;color:#ffffffe0;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6}
.pagehero{padding:8.5rem 0 3.5rem;border-bottom:1px solid var(--color-rule);background:#fff}
.pagehero h1{margin:.4rem 0 0}
.pagehero p{margin:1rem 0 0;max-width:46em;color:var(--color-muted)}

/* Sections */
.section{padding:4.5rem 0}
@media(min-width:64rem){.section{padding:6rem 0}}
.section.tight{padding:3.5rem 0}
.alt{background:#fff}
.on-dark{background:var(--color-dark);color:var(--color-muted-on-dark)}
.on-dark h2,.on-dark h3{color:#fff}
.on-dark a{color:#fff}
.on-dark a:hover{color:var(--color-accent-on-dark)}
.lede{font-size:1.125rem;max-width:46em}
.muted{color:var(--color-muted)}
.rule{border:0;border-top:1px solid var(--color-rule);margin:0}

/* Cards / grids */
.cards{display:grid;grid-template-columns:1fr;gap:1px;background:transparent;border:0}
@media(min-width:40rem){.cards{grid-template-columns:1fr 1fr}}
@media(min-width:64rem){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--color-plate);padding:2rem 1.75rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:background .2s;border:1px solid var(--color-rule)}
.alt .card{background:#fff}
a.card:hover{background:#f0eee9;color:inherit}
.card h3{font-size:1.25rem;letter-spacing:-.02em;margin:0 0 .5em}
.card p{color:var(--color-muted);font-size:.95rem;flex:1;margin:0 0 1rem}
.card .more{font-weight:700;font-size:.82rem;letter-spacing:.04em;color:var(--color-accent);text-transform:uppercase}

.steps{counter-reset:s;list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:40rem){.steps{grid-template-columns:1fr 1fr}}
@media(min-width:64rem){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{counter-increment:s;border-top:1px solid var(--color-primary);padding-top:1.15rem}
.on-dark .steps li{border-top-color:rgba(255,255,255,.2)}
.steps li::before{content:"0" counter(s);font:800 1rem/1 var(--font-heading);color:var(--color-accent);display:block;margin-bottom:.5rem;letter-spacing:.08em}
.steps b{display:block;font:700 1.2rem/1.25 var(--font-heading);color:var(--color-ink);margin-bottom:.45rem}
.on-dark .steps b{color:#fff}
.steps span{font-size:.93rem;color:var(--color-muted)}
.on-dark .steps span{color:var(--color-muted-on-dark)}

.split{display:grid;grid-template-columns:1fr;gap:2.25rem;align-items:start}
@media(min-width:64rem){.split{grid-template-columns:1.1fr .9fr;gap:4.5rem}}
.prose{max-width:46em}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.03em;margin:1.6em 0 .5em}
.prose h2:first-child{margin-top:0}
.prose p{margin:0 0 1.1em}
.prose ul{padding-left:1.15em}
.prose li{margin:.35em 0}
.creds{border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);background:#fff}
.creds ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr}
@media(min-width:64rem){.creds ul{grid-template-columns:repeat(4,1fr)}}
.creds li{padding:1.5rem 1.15rem;border-top:1px solid var(--color-rule)}
@media(min-width:40rem){.creds li:nth-child(odd){border-right:1px solid var(--color-rule)}}
@media(min-width:64rem){
  .creds li{border-top:0;border-right:1px solid var(--color-rule);border-left:0}
  .creds li:last-child{border-right:0}
}
.creds b{display:block;font:800 1.05rem/1.25 var(--font-heading);color:var(--color-ink);margin-bottom:.4rem;letter-spacing:-.02em}
.creds span{font-size:.82rem;color:var(--color-muted);line-height:1.4;display:block}

/* Forms */
form.f{display:grid;gap:1rem}
.f label{font-size:.82rem;font-weight:600;color:var(--color-ink);display:grid;gap:.4rem}
.f input,.f select,.f textarea{font:inherit;font-size:1rem;padding:.75rem .9rem;border:1px solid #cfc6b6;border-radius:var(--radius-control);background:#fff;min-height:3rem;color:var(--color-ink);width:100%}
.f textarea{min-height:8rem;resize:vertical}
.form-note{background:#fff;border:1px solid var(--color-rule);padding:1rem 1.15rem;font-size:.9rem;color:var(--color-muted)}
.side{background:#fff;border:1px solid var(--color-rule);padding:1.75rem}
.side h3{font-size:1.25rem;margin-bottom:.6rem}
.side p,.side li{font-size:.95rem}
.side .btn{width:100%;margin-top:.75rem}
.layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start}
@media(min-width:64rem){.layout{grid-template-columns:1fr 22rem;gap:4rem}}
.hours{list-style:none;padding:0;margin:0}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--color-rule);font-size:.92rem}
.hours span:last-child{color:var(--color-muted)}

/* Footer */
footer{background:var(--color-dark);color:#c2cee4}
footer .wrap{padding-top:3rem;padding-bottom:3rem}
footer .grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:40rem){footer .grid{grid-template-columns:1fr 1fr}}
@media(min-width:64rem){footer .grid{grid-template-columns:1.3fr 1fr 1fr 1.1fr}}
footer h3{color:#fff;font-size:1.1rem;font-weight:700;margin:0 0 1rem}
footer p,footer li,footer a{font-size:.9rem}
footer a{color:#c2cee4;text-decoration:none}
footer a:hover{color:#fff}
footer .tel{color:#fff;font-weight:600;font-size:1rem}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:2rem;padding-top:1.75rem;text-align:center;font-size:.82rem;color:#8a93a3}
footer .legal p{margin:0 0 .6rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Sticky call bar on small screens */
.sc{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:.5rem;padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom,0px));background:rgba(10,16,32,.94);backdrop-filter:blur(8px)}
.sc .btn{flex:1;min-height:2.75rem}
@media(min-width:64rem){.sc{display:none}}
body{padding-bottom:4.5rem}
@media(min-width:64rem){body{padding-bottom:0}}

.hero a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.hero a:hover{color:var(--color-accent-on-dark)}
@media (max-width:40rem){
  .hero__brandTag{border-left:0;padding-left:0;width:100%;margin-top:.2rem}
}
