/* --- Base & Reset --- */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font: 16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  color: #0a2239;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
:root {
  --brand:#0a2239;
  --accent:#ef6f20;
  --muted:#f5f7fb;
  --ink:#0a2239;
  --ink-2:#334155;
  --ring: 0 0 0 .25rem rgba(239,111,32,.25);
  --radius:14px;
}
.container { width:min(1100px, 92vw); margin-inline:auto; }
.skip-link {
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus { left: 1rem; top: 1rem; width:auto; height:auto; padding:.5rem .75rem; background:#fff; border-radius:6px; box-shadow:0 5px 20px rgba(0,0,0,.1); }

/* --- Header --- */
.site-header {
  position: sticky; top: 0; z-index: 60; background: #ffffffE6; backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid #e5e7eb;
}
.header-inner { display:flex; align-items:center; justify-content:space-between; padding:.75rem 0; gap:1rem; }
.brand { display:flex; align-items:center; gap:.6rem; color:var(--ink); font-weight:700; }
.logo { width:28px; height:28px; color:var(--accent); }
.nav ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:1.2rem; }
.nav a { color:var(--ink); font-weight:600; }
.nav a.active { color:var(--accent); }
.btn.btn-sm { padding:.55rem .9rem; }
.nav-toggle { display:none; background:none; border:0; padding:.4rem; }
.nav-toggle .bar { display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px; }

/* --- Hero --- */
.hero {
  --overlay: linear-gradient(180deg, rgba(10,34,57,.65), rgba(10,34,57,.45));
  color: #fff; background: var(--overlay), var(--hero) center/cover no-repeat; isolation:isolate;
}
.hero .hero-inner { padding: clamp(60px, 12vw, 160px) 0; }
.hero small { opacity:.9; }
.hero h1 { font-size: clamp(1.9rem, 4vw, 3rem); line-height:1.15; margin: 0 0 .6rem; }
.hero p { max-width: 60ch; margin:0 0 1.2rem; color:#f3f6fb; }
.hero.small .hero-inner { padding: clamp(56px, 8vw, 120px) 0; }

/* --- Sections --- */
.section { padding: clamp(40px, 5vw, 80px) 0; }
.section.muted { background: var(--muted); }
.badges { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; }
.badge { background:#fff; border:1px solid #e5e7eb; border-radius:999px; padding:.5rem .9rem; font-weight:600; box-shadow:0 2px 10px rgba(2,8,20,.04); }

.grid.cards { display:grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.card { background:#fff; border:1px solid #e5e7eb; border-radius: var(--radius); overflow:hidden; box-shadow:0 10px 30px rgba(2,8,20,.05); }
.card img { aspect-ratio: 16/10; object-fit: cover; }
.card-body { padding:1rem; }
.link { font-weight:700; color: var(--accent); }

.two-col, .split { display:grid; gap: clamp(16px, 3vw, 32px); align-items:center; }
.two-col { grid-template-columns: 1.2fr 1fr; }
.two-col.reverse { grid-template-columns: 1fr 1.2fr; }
.panel { background:#fff; border:1px solid #e5e7eb; border-radius: var(--radius); padding: clamp(16px, 3vw, 28px); box-shadow:0 10px 30px rgba(2,8,20,.05); }
.rounded { border-radius: var(--radius); }

.prose p { font-size:1.05rem; color: var(--ink-2); }
.checklist { padding-left: 1.1rem; }
.checklist li { margin:.35rem 0; }

/* --- Buttons --- */
.btn {
  display:inline-block; background: var(--accent); color:#fff; border:0; border-radius: 10px;
  padding:.8rem 1.1rem; font-weight:800; letter-spacing:.2px; box-shadow: 0 6px 20px rgba(239,111,32,.25);
}
.btn:hover { filter: brightness(.95); text-decoration:none; }
.btn-outline { background: transparent; color:#fff; border:2px solid #fff; box-shadow:none; }
.btn-outline:hover { background:#ffffff26; }

/* --- Contact --- */
.contact-grid { grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.contact-card { background:#fff; border:1px solid #e5e7eb; border-radius: var(--radius); padding:1rem; }
.contact-form { display:grid; gap:.6rem; }
.contact-form input, .contact-form textarea {
  width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:.7rem .8rem; font: inherit;
}
.contact-form input:focus, .contact-form textarea:focus { outline:none; box-shadow: var(--ring); border-color: var(--accent); }
.contact-form .form-note { font-size:.875rem; color:#64748b; }
a.big { font-size:1.25rem; font-weight:800; }

/* --- Footer --- */
.site-footer { border-top:1px solid #e5e7eb; background:#fff; }
.footer-inner { padding:1rem 0; display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.site-footer a { color: var(--ink-2); }

/* --- Responsive --- */
@media (max-width: 960px) {
  .two-col, .split { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .nav { position: fixed; inset: 56px 0 auto 0; background:#fff; border-bottom:1px solid #e5e7eb;
         transform: translateY(-120%); transition: transform .25s ease; }
  .nav.open { transform: translateY(0); }
  .nav ul { flex-direction: column; align-items:flex-start; padding: 1rem; }
  .nav-toggle { display:block; }
}
