:root {
  --ink-900: #20262f;
  --ink-600: #5a6676;
  --line-200: #d7dee8;
  --paper-050: #f7fafc;
  --primary-700: #3b5f8a;
  --primary-500: #537db0;
  --accent-500: #c4873c;
  --radius-md: 10px;
  --radius-lg: 16px;
  --wrap: 1040px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Verdana", "Segoe UI", sans-serif; color: var(--ink-900); line-height: 1.67; background: #fff; }
a { color: var(--primary-700); }
a:hover, a:focus-visible { color: #2f4c6f; }

.frame { width: min(var(--wrap), calc(100% - 42px)); margin: 0 auto; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 10px; top: 10px; background: var(--primary-700); color: #fff; padding: 8px 12px; border-radius: var(--radius-md); text-decoration: none; z-index: 80; }

.top { border-bottom: 1px solid var(--line-200); background: #fff; position: sticky; top: 0; z-index: 30; }
.top-grid { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; padding: 12px 0; }
.brand { margin: 0; font-size: 1.18rem; font-weight: 700; }
.subbrand { margin: 4px 0 0; color: var(--ink-600); font-size: 0.92rem; }
.menu { margin: 0; padding: 0; list-style: none; display: flex; gap: 10px; flex-wrap: wrap; }
.menu a { text-decoration: none; font-weight: 700; }

.hero { padding: 60px 0 46px; background: linear-gradient(180deg, var(--paper-050), #fff); border-bottom: 1px solid var(--line-200); }
.kicker { margin: 0 0 10px; text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.78rem; color: var(--ink-600); }
h1 { margin: 0 0 14px; font-size: clamp(2rem, 4vw, 2.85rem); line-height: 1.2; }
h2 { margin: 0 0 14px; font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { margin: 0 0 8px; font-size: 1.06rem; }
.lead { color: var(--ink-600); max-width: 900px; }
.cta-row { margin-top: 20px; display: flex; gap: 10px; flex-wrap: wrap; }

.btn { border-radius: 999px; border: 2px solid var(--primary-700); text-decoration: none; padding: 10px 16px; font-weight: 700; cursor: pointer; }
.btn-solid { background: var(--primary-700); color: #fff; }
.btn-outline { background: transparent; color: var(--primary-700); }

.section { padding: 48px 0; }
.alt { background: #fbfcff; border-top: 1px solid var(--line-200); border-bottom: 1px solid var(--line-200); }
.two-col { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }
.panel { border: 1px solid var(--line-200); border-radius: var(--radius-md); padding: 14px; background: #fff; }
.panel ul { margin: 0; padding-left: 18px; }

.item, .card, .qa, .step, .quotes blockquote { border: 1px solid var(--line-200); border-radius: var(--radius-md); background: #fff; padding: 14px; margin: 0 0 12px; }
.cards, .steps, .quotes { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.step { border-left: 5px solid var(--accent-500); }
.quotes footer { color: var(--ink-600); }

.form { display: grid; gap: 10px; }
label { display: block; font-weight: 700; margin-bottom: 4px; }
input, textarea, button { font: inherit; }
input, textarea { width: 100%; border: 1px solid #aeb8c6; border-radius: var(--radius-md); padding: 10px 11px; }
textarea { min-height: 126px; resize: vertical; }
.consent { display: flex; align-items: flex-start; gap: 9px; font-size: 0.94rem; }
.consent input { width: 18px; height: 18px; margin-top: 2px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.notice { border: 1px solid var(--line-200); border-radius: var(--radius-lg); background: #fff; padding: 16px; }
.footer { border-top: 1px solid var(--line-200); background: var(--paper-050); padding: 26px 0; }
.foot-grid { display: grid; gap: 10px; }
.legal-links { display: flex; flex-wrap: wrap; gap: 12px; }

.cookie { position: fixed; left: 16px; bottom: 16px; max-width: 360px; border: 1px solid var(--line-200); border-radius: var(--radius-md); background: #fff; padding: 14px; box-shadow: 0 8px 22px rgba(38, 47, 63, 0.15); }
.cookie button { border: 0; border-radius: var(--radius-md); background: var(--primary-700); color: #fff; padding: 9px 12px; font-weight: 700; }
.hidden { display: none; }

input:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid #9ab4d2; outline-offset: 1px; }

@media (max-width: 900px) {
  .top-grid, .two-col { grid-template-columns: 1fr; }
}
