/* --------- Base / Theme --------- */
:root{
  --bg:#ffffff;
  --text:#0f172a;            /* slate-900 */
  --muted:#475569;           /* slate-600 */
  --line:#e2e8f0;            /* slate-200 */
  --brand:#a3c1ad;           /* Cambridge blue */
  --brand-600:#7fa892;
  --brand-700:#6c9580;
  --accent:#0ea5e9;          /* sky-500 for subtle links */
  --card:#f8fafc;            /* slate-50 */
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

/* --------- Utilities --------- */
.container{
  width:min(1120px, 92%);
  margin-inline:auto;
}
.section{padding:64px 0}
.section--alt{background:linear-gradient(180deg, #fff, #f7fbf9)}
.section--cta{background:var(--brand); color:#083d2b}
.section-lead{color:var(--muted); margin-top:-8px}

h1,h2,h3{line-height:1.2; margin:0 0 12px}
h1{font-size: clamp(2rem, 2.5vw + 1rem, 3rem)}
h2{font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem)}
h3{font-size:1.25rem}
p{margin:0 0 12px}

.btn{
  display:inline-block; padding:12px 18px; border-radius:12px;
  background:var(--text); color:#fff; text-decoration:none; font-weight:600;
  border:2px solid var(--text);
}
.btn:hover{opacity:.92}
.btn--ghost{background:transparent; color:var(--text)}
.btn--small{padding:8px 12px; font-size:.95rem}
.btn--full{width:100%}

.footnote{font-size:.875rem; color:var(--muted)}

/* --------- Header / Nav --------- */
.site-header{
  position:sticky; top:0; z-index:50; background:#ffffffcc; backdrop-filter:saturate(180%) blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; padding:12px 0;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text)}
.brand-mark{width:32px; height:32px}
.brand-text{font-weight:700}
.nav-toggle{
  display:none; background:transparent; border:none; font-size:1.5rem; cursor:pointer;
}
.nav-menu{display:flex; gap:18px; align-items:center; list-style:none; margin:0; padding:0}
.nav-menu a{text-decoration:none; color:var(--text)}
.nav-menu a:hover{color:var(--brand-700)}

@media (max-width: 860px){
  .nav-toggle{display:block}
  .nav-menu{
    position:absolute; right:16px; top:56px; background:#fff; border:1px solid var(--line);
    border-radius:12px; padding:10px; display:none; flex-direction:column; min-width:200px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
  }
  .nav-menu--open{display:flex}
}

/* --------- Hero --------- */
.hero{padding:72px 0 32px; background:
  radial-gradient(600px 300px at 20% -50%, #e9f3ee 10%, transparent 60%),
  radial-gradient(800px 400px at 120% 10%, #e9f3ee 10%, transparent 60%)
}
.hero-inner{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:28px; align-items:center;
}
.hero-copy p{color:var(--muted)}
.hero-cta{display:flex; gap:12px; margin:12px 0 6px}
.hero-bullets{display:flex; gap:16px; padding:0; margin:18px 0 0; list-style:none; color:var(--muted)}
.hero-media img{width:100%; border-radius:16px; box-shadow:0 20px 40px rgba(0,0,0,.08)}
@media (max-width: 980px){ .hero-inner{grid-template-columns:1fr} }

/* --------- Grid / Cards --------- */
.grid-2{display:grid; grid-template-columns:1.1fr .9fr; gap:28px}
.cards-3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.card{
  background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px;
  box-shadow:0 6px 20px rgba(0,0,0,.04);
}
.card img{width:100%; height:200px; object-fit:cover; border-radius:12px; margin-bottom:10px}
@media (max-width: 980px){
  .grid-2{grid-template-columns:1fr}
  .cards-3{grid-template-columns:1fr}
}

/* --------- Stats --------- */
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:end}
.stat{display:flex; flex-direction:column; gap:4px; align-items:flex-start}
.stat-num{font-size:1.8rem; font-weight:700}
.stat-label{font-size:.9rem; color:var(--muted)}
.stats .footnote{grid-column:1 / -1; margin-top:8px}

/* --------- Gallery --------- */
.gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.gallery-item{
  border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff;
}
.gallery-item img{width:100%; height:220px; object-fit:cover; display:block}
.gallery-item figcaption{padding:10px; font-size:.95rem; color:var(--muted)}
@media (max-width: 980px){ .gallery{grid-template-columns:1fr} }

/* --------- Steps --------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding-left:20px}
.steps li{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px}
@media (max-width: 980px){ .steps{grid-template-columns:1fr} }

/* --------- Pricing --------- */
.pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.price-card{
  border:1px solid var(--line); border-radius:16px; padding:16px; background:#fff;
}
.price-card--accent{border:2px solid var(--brand); box-shadow:0 10px 30px rgba(163,193,173,.25)}
.price{font-size:1.25rem; font-weight:700}
.price span{font-size:1.6rem}
.pricing ul{margin:8px 0 0; padding-left:18px}
@media (max-width: 980px){ .pricing{grid-template-columns:1fr} }

/* --------- Quotes --------- */
.quotes{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.quote{
  background:#fff; border-left:4px solid var(--brand); border-radius:12px; padding:14px 16px; border:1px solid var(--line);
}
.quote p{margin:0 0 8px}
.quote cite{font-style:normal; color:var(--muted); font-size:.95rem}
@media (max-width: 980px){ .quotes{grid-template-columns:1fr} }

/* --------- FAQs --------- */
.faq{
  border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:8px 0; background:#fff;
}
.faq summary{font-weight:600; cursor:pointer}
.faq p{margin:8px 0 0}

/* --------- Contact --------- */
.section--cta .btn{background:#083d2b; border-color:#083d2b}
.section--cta .btn--ghost{background:transparent; color:#083d2b; border-color:#083d2b}
.contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:18px}
.contact-list{list-style:none; padding:0; margin:10px 0 18px}
.contact-list a{color:#083d2b}
.contact-form{
  background:#fff; border:1px solid var(--brand-600); border-radius:16px; padding:16px;
}
.contact-form label{display:block; margin-bottom:10px}
.contact-form span{display:block; font-weight:600; margin-bottom:6px}
.contact-form input, .contact-form textarea{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font:inherit;
}
.contact-form button{margin-top:8px}
@media (max-width: 980px){ .contact-grid{grid-template-columns:1fr} }

/* --------- Footer --------- */
.site-footer{border-top:1px solid var(--line); padding:18px 0; background:#fff}
.footer-inner{display:flex; justify-content:space-between; align-items:center}
.back-to-top{text-decoration:none; color:var(--muted)}
.back-to-top:hover{color:var(--text)}

