:root {
  --ink: #132a33;
  --muted: #52666b;
  --paper: #f7f4ec;
  --white: #fffefa;
  --teal: #176b68;
  --teal-dark: #10514f;
  --sand: #e7dfcf;
  --line: #d8d4c8;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Aptos", "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.65 var(--sans); }
a { color: var(--teal-dark); }
a:hover { color: #073c3a; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 5; background: var(--white); padding: .75rem 1rem; }
.skip-link:focus { left: 1rem; top: 1rem; }
.site-header { display:flex; justify-content:space-between; align-items:center; gap:2rem; max-width:1180px; margin:auto; padding:1.1rem 1.5rem; }
.brand { text-decoration:none; color:var(--ink); font-size:1.05rem; font-weight:700; letter-spacing:.02em; }
.brand span { display:block; color:var(--muted); font-size:.72rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; }
nav { display:flex; align-items:center; gap:1.35rem; flex-wrap:wrap; }
nav a { text-decoration:none; color:var(--ink); font-size:.92rem; }
nav a:hover, nav a[aria-current="page"] { color:var(--teal); text-decoration:underline; text-underline-offset:5px; }
.phone-link { font-weight:700; white-space:nowrap; }
.hero { position:relative; overflow:hidden; background:var(--ink); color:var(--white); }
.hero::after { content:""; position:absolute; width:42rem; height:42rem; right:-14rem; top:-18rem; border:1px solid rgba(239,224,184,.25); border-radius:50%; box-shadow:0 0 0 3rem rgba(239,224,184,.035),0 0 0 7rem rgba(239,224,184,.025); }
.hero-inner { position:relative; z-index:1; max-width:1180px; margin:auto; padding:6.5rem 1.5rem 6rem; }
.eyebrow { color:#d4bd83; font-size:.75rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.12; }
h1 { max-width:780px; margin:.8rem 0 1.2rem; font-size:clamp(2.7rem,7vw,5.5rem); letter-spacing:-.035em; }
.hero p { max-width:630px; color:#d8e0dd; font-size:1.12rem; }
.actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.button { display:inline-block; padding:.85rem 1.15rem; border:1px solid var(--teal); border-radius:3px; background:var(--teal); color:white; font-weight:700; text-decoration:none; }
.button:hover { background:var(--teal-dark); color:white; }
.button.secondary { border-color:rgba(255,255,255,.55); background:transparent; }
.button.secondary:hover { background:rgba(255,255,255,.1); }
.section { max-width:1180px; margin:auto; padding:5rem 1.5rem; }
.section.narrow { max-width:850px; }
.section h2 { margin:0 0 1rem; font-size:clamp(2rem,4vw,3rem); letter-spacing:-.02em; }
.section p { color:var(--muted); }
.intro-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:4rem; align-items:start; }
.note-card { padding:1.6rem; border:1px solid var(--line); background:var(--white); }
.note-card .eyebrow { color:var(--teal); }
.note-card h3 { margin:.55rem 0; font-size:1.55rem; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.step { padding:1.35rem; border-top:2px solid var(--teal); background:var(--white); }
.step-number { color:var(--teal); font-size:.78rem; font-weight:700; letter-spacing:.12em; }
.step h3 { margin:.45rem 0; font-size:1.35rem; }
.step p { margin-bottom:0; font-size:.95rem; }
.soft { background:#eee9dc; }
.areas { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.4rem 0 0; padding:0; list-style:none; }
.areas li { padding:.45rem .75rem; border:1px solid #c8c3b5; border-radius:999px; background:rgba(255,255,255,.45); color:var(--ink); font-size:.9rem; }
.cta { display:flex; justify-content:space-between; align-items:center; gap:2rem; background:var(--teal-dark); color:white; }
.cta h2 { margin:0; max-width:650px; }
.cta p { color:#d9e8e5; }
.cta .button { background:#f3e8cf; border-color:#f3e8cf; color:var(--ink); white-space:nowrap; }
.page-hero { background:#eae4d6; border-bottom:1px solid var(--line); }
.page-hero-inner { max-width:1180px; margin:auto; padding:4.2rem 1.5rem 3.7rem; }
.page-hero h1 { max-width:850px; margin:.55rem 0 1rem; font-size:clamp(2.5rem,6vw,4.3rem); }
.page-hero p { max-width:710px; color:var(--muted); font-size:1.08rem; }
.content-grid { display:grid; grid-template-columns:1.4fr .6fr; gap:3rem; }
.content h2 { margin:2.5rem 0 .8rem; font-size:2rem; }
.content h2:first-child { margin-top:0; }
.content li { margin:.5rem 0; color:var(--muted); }
.sidebar { padding:1.4rem; align-self:start; border:1px solid var(--line); background:var(--white); }
.sidebar h2 { font-size:1.45rem; margin:0 0 .6rem; }
.sidebar p { font-size:.95rem; }
.contact-card { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:1.5rem; }
.contact-card div { padding:1.25rem; border:1px solid var(--line); background:var(--white); }
.contact-card h2 { margin:0 0 .45rem; font-size:1.35rem; }
.site-footer { border-top:1px solid var(--line); background:#eee9dc; }
.footer-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; max-width:1180px; margin:auto; padding:2rem 1.5rem; }
.footer-inner p,.fineprint { color:var(--muted); font-size:.86rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:.75rem 1.2rem; justify-content:flex-end; }
.footer-links a { font-size:.9rem; }
.fineprint { max-width:1180px; margin:auto; padding:0 1.5rem 1.5rem; }
@media (max-width:760px) {
  .site-header { align-items:flex-start; flex-direction:column; gap:1rem; }
  nav { gap:.65rem 1rem; }
  .hero-inner { padding:4.5rem 1.25rem 4rem; }
  .section { padding:3.6rem 1.25rem; }
  .intro-grid,.content-grid,.footer-inner { grid-template-columns:1fr; gap:1.5rem; }
  .steps { grid-template-columns:1fr; }
  .cta { align-items:flex-start; flex-direction:column; }
  .contact-card { grid-template-columns:1fr; }
  .footer-links { justify-content:flex-start; }
}
