:root{
  --ink:#16302B; --bg:#F3F6F4; --surface:#EDF3F0; --accent:#2F6E62;
  --gold:#C08B3F; --line:#D7E2DE; --white:#FFFFFF;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif; line-height:1.6;
}
h1,h2,h3{font-family:'Fraunces',serif; font-weight:600; line-height:1.15;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1040px; margin:0 auto; padding:0 24px;}
a{color:inherit;}

header{position:sticky; top:0; background:var(--bg); border-bottom:1px solid var(--line); z-index:10;}
.nav{display:flex; justify-content:space-between; align-items:center; padding:18px 24px;}
.brand{font-family:'Fraunces',serif; font-weight:700; font-size:1.3rem;}
.nav-links{display:flex; gap:28px; font-size:.92rem;}
.nav-links a{text-decoration:none; opacity:.85;}
.nav-links a:hover{opacity:1; color:var(--accent);}
.call-btn{
  background:var(--accent); color:var(--white); padding:9px 18px;
  border-radius:6px; text-decoration:none; font-size:.9rem; font-weight:500;
}
@media (max-width:720px){.nav-links{display:none;} .call-btn{display:none;}}

.menu-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:32px; height:32px; background:none; border:none; cursor:pointer; padding:0;}
.menu-toggle span{display:block; width:100%; height:2px; background:var(--ink); transition:transform .25s ease, opacity .25s ease;}
.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0;}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:720px){.menu-toggle{display:flex;}}

.mobile-nav{display:none; flex-direction:column; padding:8px 24px 20px; border-top:1px solid var(--line);}
.mobile-nav.open{display:flex;}
.mobile-nav a{padding:13px 0; text-decoration:none; opacity:.85; border-bottom:1px solid var(--line); font-size:.98rem;}
.mobile-nav a:last-child{border-bottom:none;}
.mobile-nav .mobile-call{color:var(--accent); font-weight:600;}
@media (min-width:721px){.mobile-nav{display:none !important;}}

.hero{padding:64px 24px 40px;}
.hero-card{
  background:var(--surface); border:1px solid var(--line); border-radius:14px;
  padding:48px; position:relative; overflow:hidden;
}
@media (max-width:720px){.hero{padding:32px 16px 24px;} .hero-card{padding:24px;}}
.hero-card::before{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(transparent, transparent 27px, var(--line) 28px);
  opacity:.35; pointer-events:none;
}
.eyebrow{
  font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.12em;
  font-size:.78rem; color:var(--accent); font-weight:500; margin-bottom:14px;
}
.hero h1{font-size:clamp(1.9rem, 6vw, 2.6rem); max-width:620px; margin-bottom:14px; word-wrap:break-word;}
.hero p.sub{font-size:1.05rem; max-width:520px; opacity:.85; margin-bottom:26px;}
.credential-line{
  font-family:'IBM Plex Mono',monospace; font-size:.82rem; letter-spacing:.04em;
  color:var(--gold); text-transform:uppercase; margin-bottom:30px;
}
.cta-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{
  background:var(--accent); color:var(--white); padding:13px 26px; border-radius:7px;
  text-decoration:none; font-weight:500; font-size:.95rem;
}
.btn-secondary{
  background:transparent; color:var(--ink); padding:13px 26px; border-radius:7px;
  text-decoration:none; font-weight:500; font-size:.95rem; border:1px solid var(--ink);
}

.trust-bar{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin:40px 0;
}
.trust-item{padding:22px 24px; border-right:1px solid var(--line);}
.trust-item:last-child{border-right:none;}
.trust-item .label{font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; opacity:.6; margin-bottom:6px;}
.trust-item .value{font-weight:600; font-size:1rem;}
@media (max-width:720px){.trust-bar{grid-template-columns:1fr;} .trust-item{border-right:none; border-bottom:1px solid var(--line);}}

section{padding:56px 24px;}
.section-head{margin-bottom:34px;}
.section-head .eyebrow{margin-bottom:8px;}
.section-head h2{font-size:1.9rem;}

.services-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
@media (max-width:720px){.services-grid{grid-template-columns:1fr;}}
.service-group{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:26px;}
.service-group h3{font-size:1.1rem; margin-bottom:14px; color:var(--accent);}
.service-group ul{list-style:none;}
.service-group li{
  padding:9px 0; border-bottom:1px solid var(--line); font-size:.94rem;
}
.service-group li:last-child{border-bottom:none;}

.about{display:grid; grid-template-columns:1fr 1.4fr; gap:40px; align-items:start;}
@media (max-width:720px){.about{grid-template-columns:1fr;}}
.about-card{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:28px;}
.about-card .cred-stamp{
  font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--gold);
  border:1px solid var(--gold); display:inline-block; padding:4px 10px; border-radius:4px; margin-bottom:14px;
}
.about-card h3{font-size:1.3rem; margin-bottom:6px;}

.appointment{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:40px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; align-items:start;} .form-grid input[type="date"]{max-width:100%; min-width:0;}
@media (max-width:720px){.form-grid{grid-template-columns:1fr;}}
.form-grid label{display:block; font-size:.82rem; margin-bottom:6px; opacity:.8;}
.form-grid input, .form-grid select, .form-grid textarea{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:6px;
  background:var(--white); font-family:'IBM Plex Sans',sans-serif; font-size:.94rem;
}
.form-grid .full{grid-column:1/-1;}
.form-grid button{
  margin-top:6px; background:var(--accent); color:var(--white); border:none;
  padding:13px 28px; border-radius:7px; font-size:.95rem; font-weight:500; cursor:pointer;
}

footer{background:var(--surface); border-top:1px solid var(--line); padding:36px 24px; font-size:.88rem; opacity:.75;}
.footer-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px;}
/* ===== Premium redesign additions ===== */
.hero-3d{width:100%; height:280px; margin-bottom:24px; cursor:grab;}
.hero-3d:active{cursor:grabbing;}
@media (max-width:720px){.hero-3d{height:200px;}}

@keyframes fadeUp{
  from{opacity:0; transform:translateY(24px);}
  to{opacity:1; transform:translateY(0);}
}
.reveal{opacity:0; animation:fadeUp .7s ease forwards;}
.reveal.d1{animation-delay:.1s;}
.reveal.d2{animation-delay:.2s;}
.reveal.d3{animation-delay:.3s;}

.page-nav a.active{color:var(--accent); font-weight:600;}

/* Normalize date input to match other fields - iOS renders it differently by default */
.form-grid input, .form-grid select, .form-grid textarea{
  box-sizing:border-box; height:44px; line-height:1.2;
}
.form-grid textarea{height:auto;}
.form-grid input[type="date"]{
  -webkit-appearance:none; appearance:none;
  font-family:'IBM Plex Sans',sans-serif; font-size:.94rem;
}

/* Nav links as green boxes with shadow */
.nav-links a{
  background:var(--accent); color:var(--white) !important; padding:9px 18px;
  border-radius:8px; box-shadow:0 3px 6px rgba(0,0,0,.18); text-decoration:none;
  opacity:1 !important; transition:transform .15s ease, box-shadow .15s ease;
}
.nav-links a:hover{
  transform:translateY(-2px); box-shadow:0 6px 12px rgba(0,0,0,.24);
}
