:root{
  --canvas:#F4F7F6;
  --rail:#0E3B3A;
  --rail-text:#E7F3F1;
  --accent:#E2B33A;
  --ink:#0E3B3A;
  --muted:rgba(14,59,58,.72);
  --rule:rgba(14,59,58,.14);
  --bar:62px;
  --radius:5px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.mark,.rail-mark,.tl-num,.cta{font-family:"Sora",system-ui,sans-serif}
a{color:inherit}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  height:var(--bar);
  display:flex;align-items:center;gap:18px;
  padding:0 20px;
  background:var(--rail);
  color:var(--rail-text);
  border-bottom:1px solid rgba(231,243,241,.18);
}
.mark{
  display:flex;align-items:center;gap:9px;
  font-weight:700;font-size:1.06rem;letter-spacing:.01em;
  text-decoration:none;color:var(--rail-text);
}
.mark-glyph{
  width:14px;height:14px;display:block;
  border:2px solid var(--accent);
  transform:rotate(45deg);
  border-bottom-left-radius:8px;
}
.topnav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}
.topnav a{
  text-decoration:none;font-size:.86rem;
  color:rgba(231,243,241,.82);
  padding-bottom:2px;border-bottom:1px solid transparent;
}
.topnav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.topbar-phone{
  text-decoration:none;font-weight:700;font-size:.92rem;
  color:var(--rail);background:var(--accent);
  padding:8px 14px;border-radius:var(--radius);
  white-space:nowrap;
}
.topbar-phone:hover{filter:brightness(1.07)}

/* ---------- split shell ---------- */
.shell{
  display:grid;
  grid-template-columns:minmax(300px,36%) 1fr;
  align-items:stretch;
  min-height:calc(100vh - var(--bar));
}
.rail{
  grid-column:1;
  grid-row:1 / span 40;
  background:var(--rail);
  color:var(--rail-text);
  align-self:stretch;
}
.block{
  grid-column:2;
  padding:52px clamp(22px,4.2vw,60px);
  border-bottom:1px solid var(--rule);
  scroll-margin-top:calc(var(--bar) + 8px);
}
.block:last-child{border-bottom:none}

/* ---------- rail ---------- */
.rail-inner{
  position:sticky;
  top:var(--bar);
  padding:46px clamp(20px,2.6vw,38px) 40px;
  display:flex;flex-direction:column;gap:20px;
}
.rail-mark{
  font-size:clamp(2.1rem,3.4vw,2.9rem);
  font-weight:700;line-height:1.02;letter-spacing:-.02em;
}
.rail-mark::after{
  content:"";display:block;width:58px;height:5px;
  background:var(--accent);margin-top:16px;
}
.rail-tag{color:rgba(231,243,241,.85);font-size:1.02rem;max-width:34ch}
.cta{
  display:inline-block;text-align:center;text-decoration:none;
  background:var(--accent);color:var(--rail);
  font-weight:700;font-size:.98rem;
  padding:14px 20px;border-radius:var(--radius);
  border:1px solid var(--accent);
}
.cta:hover{background:transparent;color:var(--accent)}
.rail-contact{display:flex;flex-direction:column;gap:6px;font-size:.95rem}
.rail-contact a{text-decoration:none;color:var(--accent);font-weight:700}
.rail-contact a:hover{text-decoration:underline}
.rail-contact p{color:rgba(231,243,241,.7);font-size:.9rem;margin-top:4px}
.rail-nav{display:flex;flex-direction:column;border-top:1px solid rgba(231,243,241,.2)}
.rail-nav a{
  text-decoration:none;font-size:.9rem;
  color:rgba(231,243,241,.78);
  padding:10px 0 10px 14px;
  border-bottom:1px solid rgba(231,243,241,.12);
  border-left:3px solid transparent;
}
.rail-nav a:hover{color:var(--rail-text);border-left-color:var(--accent);background:rgba(231,243,241,.05)}
.rail-deco{display:flex;align-items:flex-end;gap:14px;margin-top:6px}
.rail-deco .line{display:block;width:4px;background:rgba(231,243,241,.3)}
.rail-deco .l1{height:22px}
.rail-deco .l2{height:40px;background:var(--accent)}
.rail-deco .l3{height:30px}
.rail-svg{width:52px;height:52px;margin-left:auto;opacity:.95}

/* ---------- typography blocks ---------- */
.eyebrow{
  font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:16px;
}
h1{
  font-size:clamp(1.75rem,3.1vw,2.5rem);
  line-height:1.14;letter-spacing:-.02em;font-weight:700;
  max-width:19ch;
}
.section-title{
  font-size:clamp(1.15rem,1.9vw,1.4rem);
  margin:34px 0 10px;letter-spacing:-.01em;
}
.block > .section-title:first-child{margin-top:0}
.lede{margin-top:16px;max-width:62ch;color:var(--muted)}
.lede em{color:var(--ink);font-style:italic}
.lede.small{font-size:.97rem}

/* ---------- objection ---------- */
.objection{background:rgba(14,59,58,.045)}
.quote{position:relative;padding-left:22px;max-width:60ch}
.quote-bar{position:absolute;left:0;top:4px;bottom:4px;width:5px;background:var(--accent)}
.quote p{
  font-family:"Sora",sans-serif;font-weight:600;
  font-size:clamp(1.15rem,2.1vw,1.5rem);line-height:1.3;letter-spacing:-.01em;
}
.objection-answer{margin-top:22px;display:grid;gap:14px;max-width:64ch;color:var(--muted)}

/* ---------- chips ---------- */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:26px;padding-top:18px;border-top:1px solid var(--rule)}
.chips li{font-size:.84rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);font-weight:500}
.chips li + li{position:relative;padding-left:0}

/* ---------- services ---------- */
.services{display:flex;flex-direction:column;gap:2px;margin-top:18px}
.svc{
  border-left:4px solid var(--accent);
  padding:16px 18px;
  background:rgba(255,255,255,.62);
  border-top:1px solid var(--rule);
  transition:background .18s ease,padding-left .18s ease;
}
.svc:last-child{border-bottom:1px solid var(--rule)}
.svc h3{font-size:1.04rem;margin-bottom:4px}
.svc p{color:var(--muted);font-size:.96rem;max-width:60ch}
.svc:hover{background:#fff;padding-left:24px}

/* ---------- timeline ---------- */
.timeline{list-style:none;margin-top:28px;padding-left:4px;position:relative}
.timeline::before{
  content:"";position:absolute;left:19px;top:8px;bottom:8px;
  width:2px;background:var(--rule);
}
.timeline li{position:relative;padding:0 0 28px 56px}
.timeline li:last-child{padding-bottom:0}
.tl-num{
  position:absolute;left:0;top:0;
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--rail);color:var(--accent);
  font-weight:700;font-size:.95rem;
  border:2px solid var(--rail);
}
.timeline h3{font-size:1.02rem;margin-bottom:4px;padding-top:7px}
.timeline p{color:var(--muted);font-size:.96rem;max-width:58ch}

/* ---------- form ---------- */
.form{margin-top:22px;max-width:520px;display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea{
  font-family:inherit;font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid var(--rule);border-radius:var(--radius);
  padding:12px 13px;width:100%;
}
.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.field textarea{resize:vertical}
.field.invalid input,.field.invalid textarea{border-color:var(--accent);background:rgba(226,179,58,.08)}
.cta-dark{background:var(--rail);color:var(--rail-text);border-color:var(--rail);cursor:pointer;align-self:flex-start;padding:14px 26px}
.cta-dark:hover{background:var(--accent);color:var(--rail);border-color:var(--accent)}
.form-note{font-size:.84rem;color:var(--muted)}
.form-note a{color:var(--ink)}
.form-status{font-size:.95rem;font-weight:500;min-height:1.4em}
.form-status.ok{color:var(--rail);border-left:4px solid var(--accent);padding-left:12px}
.form-status.err{color:var(--rail);border-left:4px solid rgba(14,59,58,.5);padding-left:12px}

/* ---------- contact + footer ---------- */
.contact-grid{display:flex;flex-wrap:wrap;gap:26px 48px;margin-top:20px}
.contact-item{border-left:4px solid var(--accent);padding-left:14px;min-width:210px}
.contact-item h3{font-size:.84rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.contact-item a{color:var(--ink);font-weight:700;text-decoration:none}
.contact-item a:hover{text-decoration:underline}
.footer{
  margin-top:40px;padding-top:18px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
  font-size:.88rem;color:var(--muted);
}
.footer a{color:var(--ink)}

#privacy h1{max-width:24ch}
#privacy p{max-width:66ch;color:var(--muted);margin-top:8px}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .shell{display:flex;flex-direction:column;min-height:0}
  .rail{order:-1;grid-row:auto}
  .rail-inner{position:static;padding:34px 22px 30px}
  .rail-mark::after{margin-top:12px}
  .block{padding:40px 22px}
}
@media (max-width:720px){
  body{font-size:16px}
  .topnav{display:none}
  .topbar{gap:12px}
  .topbar-phone{margin-left:auto}
  .rail-deco{display:none}
}
