:root {
  --paper:#F4F2EC;
  --card:#FBFAF6;
  --ink:#1D3546;
  --muted:#697680;
  --line:#E4E0D6;
  --gold:#DFAF46;
  --tint:#E9F0EC;
  --grad:linear-gradient(115deg,#1F5069 0%,#2E8B93 52%,#56A45C 100%);
  --maxw:1080px;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:system-ui,-apple-system,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
a { text-decoration:none; color:inherit; }

.grad {
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* ---- nav ---- */
.nav {
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--maxw); margin:0 auto;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap; gap:12px;
}
.brand { display:flex; align-items:center; gap:12px; }
.brand img { border-radius:8px; display:block; }
.wordmark { font-weight:700; font-size:17px; letter-spacing:-.2px; }
.wordmark b {
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.nav-right { display:flex; align-items:center; gap:22px; }
.nav-link { font-size:14px; color:var(--muted); font-weight:500; }
.nav-link:hover { color:var(--ink); }
.lang { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); }
.lang button {
  background:none; border:none; padding:0; cursor:pointer;
  font:inherit; color:var(--muted); letter-spacing:.5px;
}
.lang button.active { color:var(--ink); font-weight:700; }
.lang-sep { color:var(--line); }
.nav-cta { color:#2E8B93; font-weight:600; font-size:14px; }

/* ---- shared buttons ---- */
.btn {
  display:inline-block;
  background:var(--grad); color:#fff; font-weight:600; font-size:15px;
  padding:14px 30px; border-radius:30px; border:none; cursor:pointer;
  box-shadow:0 8px 22px rgba(46,139,147,.28);
  transition:transform .15s, box-shadow .15s;
  font-family:inherit;
}
.btn:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(46,139,147,.34); }
.link {
  font-size:15px; font-weight:500; color:var(--ink);
  border-bottom:1px solid #CFCABB; padding-bottom:2px;
}
.link:hover { border-color:var(--ink); }

/* ---- section headers ---- */
.section-label {
  font-size:12px; letter-spacing:4px; text-transform:uppercase;
  color:var(--muted); margin:0 0 14px;
}
.section-title {
  font-size:clamp(24px,3.4vw,34px); font-weight:300; letter-spacing:-.6px;
  margin:0 0 40px; max-width:20ch; line-height:1.2;
}

/* ---- hero ---- */
.hero {
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(56px,9vw,96px) 24px clamp(48px,7vw,72px);
}
.label {
  font-size:12px; letter-spacing:4px; text-transform:uppercase;
  color:var(--muted); margin:0 0 22px;
}
.hero h1 {
  font-size:clamp(30px,5.5vw,46px); line-height:1.12; font-weight:300;
  letter-spacing:-1px; margin:0 0 24px; max-width:16ch;
}
.hero h1 b {
  font-weight:600;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lead {
  font-size:clamp(15px,1.6vw,17px); line-height:1.7; color:#4C5761;
  max-width:64ch; margin:0 0 36px;
}
.hero-cta { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }

/* ---- services ---- */
.services {
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(40px,6vw,64px) 24px;
  border-top:1px solid var(--line);
}
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.svc {
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:28px 26px;
}
.svc-k {
  font-size:28px; font-weight:300; letter-spacing:-.5px;
  display:flex; align-items:center; gap:9px; margin-bottom:16px;
}
.svc-k .dot { width:8px; height:8px; border-radius:50%; background:var(--gold); flex:none; }
.svc h3 { font-size:16px; font-weight:600; margin:0 0 10px; }
.svc p { font-size:14px; line-height:1.65; color:var(--muted); margin:0; }

/* ---- why ---- */
.why {
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(40px,6vw,64px) 24px;
  border-top:1px solid var(--line);
}
.why-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.why-item { }
.why-k { font-size:38px; font-weight:300; letter-spacing:-1px; margin-bottom:10px; }
.why-item p { font-size:13.5px; line-height:1.6; color:var(--muted); margin:0; }

/* ---- quotes (future) ---- */
.quotes { margin-top:44px; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.quote {
  margin:0; background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:26px; border-left:3px solid transparent; border-image:var(--grad) 1;
}
.quote p { font-size:15px; line-height:1.6; font-style:italic; margin:0 0 14px; }
.quote cite { font-size:13px; font-style:normal; color:var(--muted); font-weight:600; }

/* ---- contact ---- */
.contact {
  border-top:1px solid var(--line);
  background:var(--tint);
}
.contact-inner {
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(48px,7vw,80px) 24px;
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px);
  align-items:start;
}
.contact-invite {
  font-size:clamp(22px,3vw,30px); font-weight:300; line-height:1.3;
  margin:0 0 28px; max-width:18ch;
}
.contact-links { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.contact-links .link { color:#2E7A80; border-color:#B9CFC7; }

/* form */
.contact-form { display:flex; flex-direction:column; gap:16px; }
.field { display:flex; flex-direction:column; gap:6px; }
.field label { font-size:12px; font-weight:600; letter-spacing:.5px; color:var(--ink); }
.field input, .field textarea {
  font:inherit; font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; resize:vertical;
}
.field input:focus, .field textarea:focus {
  outline:none; border-color:#2E8B93; box-shadow:0 0 0 3px rgba(46,139,147,.15);
}
.contact-form .btn { align-self:flex-start; margin-top:4px; }
.form-status { font-size:14px; margin:6px 0 0; min-height:1.2em; }
.form-status.ok { color:#2E7A4A; }
.form-status.err { color:#B2432E; }

/* ---- footer ---- */
.foot {
  background:var(--paper);
  border-top:1px solid var(--line);
  padding:28px 24px;
}
.foot .req, .foot .copy { max-width:var(--maxw); margin:0 auto; }
.foot .req {
  display:flex; flex-wrap:wrap; gap:6px 22px; align-items:baseline;
  font-size:13px; color:var(--muted);
}
.foot .req strong { color:var(--ink); font-size:14px; }
.foot .copy { margin-top:12px; font-size:12px; color:var(--muted); }

/* ---- responsive ---- */
@media (max-width:860px) {
  .why-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:720px) {
  .svc-grid { grid-template-columns:1fr; }
  .contact-inner { grid-template-columns:1fr; }
  .nav-link { display:none; }
}
