:root {
  --ink: #15362f;
  --ink-soft: #2c463f;
  --paper: #f7f4ee;
  --cream: #eee8df;
  --line: rgba(21, 54, 47, .18);
  --white: #fffdf9;
  --max: 1180px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea { font: inherit; }
.skip-link { position: fixed; z-index: 100; left: 1rem; top: 1rem; padding: .7rem 1rem; background: var(--ink); color: white; transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

.site-header { height: 90px; padding: 0 clamp(28px, 4vw, 56px); display: flex; align-items: center; justify-content: space-between; background: rgba(250,248,244,.98); border-bottom: 1px solid rgba(21,54,47,.05); position: relative; z-index: 20; }
.brand { display: flex; align-items: center; gap: 15px; text-decoration: none; min-width: 350px; }
.brand-mark { width: 72px; height: 72px; margin: -7px; flex: 0 0 auto; display: block; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-copy strong { font-size: 23px; letter-spacing: .22em; font-weight: 600; }
.brand-copy small { margin-top: 6px; font-size: 11px; line-height: 1.35; color: #1f2e2a; }
.main-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 32px); }
.main-nav a { position: relative; padding: 34px 0 11px; color: #172520; text-decoration: none; font-size: 12px; white-space: nowrap; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 4px; height: 1px; background: var(--ink); transition: right .25s ease; }
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.main-nav .nav-cta { margin-left: 2px; padding: 9px 17px; border-radius: 3px; background: var(--ink); color: white; box-shadow: 0 6px 16px rgba(11,40,33,.12); transition: transform .2s ease, background .2s ease; }
.main-nav .nav-cta::after { display: none; }
.main-nav .nav-cta:hover { background: #234d43; transform: translateY(-1px); }
.menu-button { display: none; }

.hero { height: 422px; position: relative; overflow: hidden; isolation: isolate; background: #c9c8b9; }
.hero-image { position: absolute; inset: 0; z-index: -3; background: url('/assets/hero-herfstbos-optimized.jpg') center 51% / cover no-repeat; transform: scale(1.01); }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(244,246,243,.97) 0%, rgba(244,246,243,.9) 31%, rgba(244,246,243,.24) 56%, rgba(15,39,32,.08) 100%); }
.hero-content { width: min(var(--max), calc(100% - 108px)); height: 100%; margin: 0 auto; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-bottom: 5px; }
.hero h1 { margin: 0 0 18px; max-width: 560px; font-family: var(--serif); font-size: clamp(40px, 4.2vw, 58px); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.hero p { margin: 0 0 28px; color: #233a34; font-size: 15px; line-height: 1.55; }
.button { display: inline-flex; align-items: center; gap: 26px; min-height: 45px; padding: 10px 19px 10px 21px; background: linear-gradient(135deg,#173c33,#0f2e28); border: 1px solid rgba(255,255,255,.1); border-radius: 3px; color: white; text-decoration: none; font-size: 13px; box-shadow: 0 7px 18px rgba(11,40,33,.11); transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: #234d43; }
.button:focus-visible, .main-nav a:focus-visible, .text-link:focus-visible { outline: 3px solid #b79755; outline-offset: 4px; }
.button-small { margin-top: 6px; min-height: 37px; padding: 7px 14px; gap: 20px; font-size: 11px; }

.pillars { min-height: 99px; background: rgba(250,248,244,.97); border-bottom: 1px solid rgba(21,54,47,.05); display: grid; grid-template-columns: repeat(4,1fr); padding: 19px clamp(30px, 5vw, 64px); }
.pillars article { min-width: 0; display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 16px; padding: 0 26px; border-right: 1px solid var(--line); }
.pillars article:first-child { padding-left: 0; }
.pillars article:last-child { border-right: 0; padding-right: 0; }
.pillars h2 { margin: 0 0 3px; font: 500 12px/1.35 var(--sans); }
.pillars p { margin: 0; color: #263a34; font-size: 10px; line-height: 1.45; }
.pillar-icon { width: 70px; height: 70px; max-width: none; margin: -9.5px; display: block; object-fit: contain; }

.welcome { height: 362px; min-height: 362px; padding: 40px clamp(42px, 5vw, 64px) 32px; display: grid; grid-template-columns: minmax(320px, .76fr) minmax(560px, 1.24fr); gap: clamp(42px, 6vw, 86px); align-items: stretch; overflow: hidden; background: radial-gradient(circle at 22% 20%, #fbfaf7 0%, var(--paper) 48%, #eee9e1 100%); }
.welcome-copy { padding: 0 0 30px; }
.eyebrow { margin: 0 0 2px !important; color: #7c6651 !important; font-size: 10px !important; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.welcome h2, .home-about h2 { margin: 0 0 11px; font: 400 32px/1.2 var(--serif); letter-spacing: -.02em; }
.welcome-copy > p:not(.eyebrow) { max-width: 570px; margin: 0 0 16px; color: #2f403b; font-size: 13px; line-height: 1.65; }
.welcome-visual { min-height: 290px; margin: 0; overflow: hidden; border-radius: 10px; position: relative; }
.welcome-visual::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, transparent 36%, rgba(248,243,234,.03) 56%, rgba(245,237,222,.5) 100%); }
.welcome-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: saturate(.88) sepia(.08); }
.welcome-visual figcaption { position: absolute; z-index: 2; right: 6%; top: 10%; color: #0b2f27; font: italic 23px/1.26 var(--serif); text-shadow: 0 1px 0 rgba(255,255,255,.65), 0 2px 12px rgba(255,255,255,.72); }
.welcome-visual figcaption::after { content:""; display:block; width: 38px; height: 1px; background: currentColor; margin-top: 10px; }
.home-about { padding: 52px clamp(42px, 8vw, 120px); display: grid; grid-template-columns: 1fr 1.45fr auto; gap: 52px; align-items: end; background: #15362f; color: white; }
.home-about p { margin: 0; color: rgba(255,255,255,.78); }
.home-about .eyebrow { color: #d9c8a1 !important; }
.home-about h2 { font-size: 32px; margin: 0; }
.text-link { display: inline-flex; gap: 14px; align-items: center; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; white-space: nowrap; }

.site-footer { padding: 46px clamp(30px, 6vw, 86px); display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 44px; background: #0d2923; color: rgba(255,255,255,.72); font-size: 13px; }
.site-footer > div { display:flex; flex-direction:column; gap: 5px; }
.site-footer strong { color:white; letter-spacing:.03em; }
.footer-brand strong { font-size:20px; letter-spacing:.2em; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: white; }
.footer-links { align-items:flex-start; }

/* Binnenpagina's */
.page-hero { min-height: 286px; position: relative; display: flex; align-items: end; overflow: hidden; background: #b9b8a7; isolation: isolate; }
.page-hero::before { content:""; position:absolute; inset:0; z-index:-2; background: var(--page-image, url('/assets/heuvelpad.jpg')) center 54% / cover no-repeat; }
.page-hero::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(90deg, rgba(16,48,41,.9), rgba(16,48,41,.58) 45%, rgba(16,48,41,.08)); }
.page-hero-inner { width:min(var(--max), calc(100% - 96px)); margin:0 auto; padding: 62px 0 52px; color:white; }
.page-hero .eyebrow { color:#ead9b5 !important; }
.page-hero h1 { max-width:760px; margin:3px 0 12px; font:400 clamp(40px,5vw,62px)/1.08 var(--serif); letter-spacing:-.035em; }
.page-hero p { max-width:680px; margin:0; color:rgba(255,255,255,.9); font-size:17px; line-height:1.65; }
.page-main { width:min(1100px, calc(100% - 64px)); margin:0 auto; padding:72px 0 90px; }
.lead-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(46px,8vw,112px); align-items:start; }
.lead-grid h2, .content-section h2, .contact-card h2 { margin:0 0 18px; font:400 clamp(28px,3.3vw,43px)/1.2 var(--serif); letter-spacing:-.025em; }
.lead-grid p, .content-section p, .offer-card p, .info-card p, .contact-card p, .steps p { color:#344943; }
.lead-grid p:first-child, .content-section > p:first-of-type { margin-top:0; }
.quote { margin:0; padding:0 0 0 25px; border-left:1px solid #b79755; color:var(--ink); font:italic 24px/1.5 var(--serif); }
.fact-list { display:grid; gap:0; margin:34px 0 0; border-top:1px solid var(--line); }
.fact-list div { display:grid; grid-template-columns:180px 1fr; gap:22px; padding:15px 0; border-bottom:1px solid var(--line); }
.fact-list dt { font-weight:600; }
.fact-list dd { margin:0; color:#40534e; }
.section-band { margin:80px 0 0; padding:72px clamp(32px, 6vw, 72px); background:#eee9e1; border-radius:10px; }
.section-band > .content-section { max-width:1100px; margin:0 auto; }
.content-section + .content-section { margin-top:62px; padding-top:62px; border-top:1px solid var(--line); }
.content-section h3 { margin:28px 0 10px; font:400 24px/1.25 var(--serif); }
.offer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:38px; }
.offer-card, .info-card, .contact-card { padding:28px; background:#fbfaf7; border:1px solid rgba(21,54,47,.13); border-radius:8px; }
.offer-card { min-height:225px; display:flex; flex-direction:column; }
.offer-card .number { color:#9a7a49; font:600 11px/1 var(--sans); letter-spacing:.13em; }
.offer-card h2, .offer-card h3 { margin:18px 0 10px; font:400 23px/1.22 var(--serif); }
.offer-card p { margin:0; font-size:14px; line-height:1.65; }
.offer-card a { margin-top:auto; padding-top:16px; text-decoration:none; font-size:13px; }
.offer-details { margin-top:86px; }
.offer-details article { display:grid; grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr); gap:70px; padding:46px 0; border-top:1px solid var(--line); scroll-margin-top:100px; }
.offer-details h2 { margin:0; font:400 30px/1.24 var(--serif); }
.offer-details p { margin:0 0 13px; color:#344943; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:42px 0 0; counter-reset:steps; }
.steps article { position:relative; padding:28px 30px 28px 0; border-top:1px solid var(--ink); counter-increment:steps; }
.steps article + article { padding-left:30px; border-left:1px solid var(--line); }
.steps article::before { content:"0" counter(steps); display:block; color:#9a7a49; font-size:12px; letter-spacing:.15em; margin-bottom:20px; }
.steps h2 { margin:0 0 10px; font:400 25px/1.2 var(--serif); }
.notice { margin:0 0 54px; padding:24px 28px; background:#173c33; color:white; border-radius:7px; display:grid; grid-template-columns:190px 1fr; gap:28px; align-items:center; }
.notice strong { font:400 22px/1.25 var(--serif); }
.notice p { margin:0; color:rgba(255,255,255,.86); }
.info-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.info-card h2 { margin:0 0 12px; font:400 27px/1.25 var(--serif); }
.info-card p:last-child { margin-bottom:0; }
.crisis { border-color:#9f7654; background:#f2ebe3; }
.contact-layout { display:grid; grid-template-columns:1fr .95fr; gap:42px; align-items:start; }
.contact-card { padding:38px; }
.contact-card dl { margin:25px 0 0; }
.contact-card div { padding:14px 0; border-top:1px solid var(--line); }
.contact-card dt { font-weight:600; }
.contact-card dd { margin:3px 0 0; }
.contact-card a { text-underline-offset:3px; }
.map-visual { min-height:460px; border-radius:10px; overflow:hidden; position:relative; background:url('/assets/landschap-boom.jpg') center / cover no-repeat; }
.map-visual::after { content:"Homeruslaan 22 · Utrecht Oost"; position:absolute; left:24px; bottom:24px; padding:10px 14px; background:rgba(247,244,238,.94); color:var(--ink); font-size:13px; }

/* Aanmelden */
.registration-hero::before { background-image:url('/assets/warm-heuvelpad.jpg'); background-position:center 58%; }
.registration-overview { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
.registration-card { padding:36px; border:1px solid rgba(21,54,47,.13); border-radius:10px; background:#fbfaf7; }
.registration-card h2 { margin:2px 0 14px; font:400 32px/1.22 var(--serif); letter-spacing:-.025em; }
.registration-card p { color:#344943; }
.registration-card p:last-child { margin-bottom:0; }
.practitioner-status { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.practitioner-status h3 { margin:0 0 4px; font:400 23px/1.25 var(--serif); }
.status-badge { display:inline-flex; align-items:center; gap:8px; margin:8px 0 13px; padding:5px 10px; border-radius:999px; background:#e2ece6; color:#174137; font-size:12px; font-weight:600; }
.status-badge::before { content:""; width:7px; height:7px; border-radius:50%; background:#3f7667; }
.status-badge.is-closed { background:#efe1d5; color:#714936; }
.status-badge.is-closed::before { background:#9f6247; }
.wait-time { margin:0; font-weight:600; color:var(--ink) !important; }
.registration-closed-notice { margin-top:14px !important; padding:14px 16px; border-left:3px solid #9f6247; background:#f2ebe3; color:#5d392b !important; font-weight:600; }
.registration-action-closed { margin-top:18px; padding:20px 22px; border-left:3px solid #9f6247; background:#f2ebe3; }
.registration-action-closed p { color:#49352c; }
.registration-action-closed p:first-child { margin-top:0; font-weight:600; }
.registration-action-closed p:last-child { margin-bottom:0; }
.registration-card .button { margin-top:18px; }
.registration-guidance { margin-top:54px; padding:36px clamp(30px,5vw,58px); border-radius:10px; background:#eee9e1; }
.registration-guidance h2 { margin:0 0 12px; font:400 30px/1.25 var(--serif); }
.registration-guidance p { max-width:850px; margin:0; color:#344943; }
.registration-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:54px; }
.registration-step { padding:28px; border-top:1px solid var(--ink); background:rgba(255,255,255,.24); }
.registration-step span { display:block; margin-bottom:18px; color:#9a7a49; font-size:12px; font-weight:600; letter-spacing:.15em; }
.registration-step h2 { margin:0 0 10px; font:400 24px/1.2 var(--serif); }
.registration-step p { margin:0; color:#344943; font-size:14px; line-height:1.65; }
.registration-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr); gap:34px; align-items:start; }
.registration-form { padding:38px; border:1px solid rgba(21,54,47,.13); border-radius:10px; background:#fbfaf7; }
.registration-form h2 { margin:0 0 8px; font:400 34px/1.2 var(--serif); }
.registration-form > p { margin:0 0 28px; color:#42554f; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field { display:flex; flex-direction:column; gap:6px; }
.form-field-full { grid-column:1 / -1; }
.form-field label, .checkbox-field span { font-size:13px; font-weight:600; color:#223a34; }
.form-field input, .form-field select, .form-field textarea { width:100%; min-height:47px; padding:11px 12px; border:1px solid rgba(21,54,47,.28); border-radius:4px; background:white; color:#172d27; }
.form-field textarea { min-height:150px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline:3px solid rgba(183,151,85,.32); border-color:#8e7342; }
.checkbox-field { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; margin:24px 0; }
.checkbox-field input { width:18px; height:18px; margin-top:2px; accent-color:var(--ink); }
.form-disclaimer { margin:0 0 20px; color:#5b6a66; font-size:12px; line-height:1.55; }
.form-status { margin:22px 0 0; padding:16px 18px; border-left:3px solid #9a7a49; background:#f2ebe3; color:#273d37; }
.integration-card { padding:30px; border-radius:10px; background:#173c33; color:white; }
.integration-card h2 { margin:0 0 12px; font:400 27px/1.22 var(--serif); }
.integration-card p { color:rgba(255,255,255,.82); font-size:14px; line-height:1.65; }
.integration-card p:last-child { margin-bottom:0; }
.registration-stop-panel { padding:38px clamp(28px,5vw,58px); border:1px solid rgba(159,98,71,.28); border-radius:10px; background:#f2ebe3; }
.registration-stop-panel h2 { margin:2px 0 12px; font:400 clamp(30px,4vw,42px)/1.18 var(--serif); }
.registration-stop-panel p:not(.eyebrow) { max-width:760px; color:#493d38; }

/* Beheer */
.admin-hero::before { background-image:url('/assets/hero-herfstbos-optimized.jpg'); background-position:center 48%; }
.admin-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:34px; align-items:start; }
.admin-panel { padding:38px; border:1px solid rgba(21,54,47,.13); border-radius:10px; background:#fbfaf7; }
.admin-panel h2 { margin:2px 0 8px; font:400 34px/1.2 var(--serif); }
.admin-panel > p { margin-top:0; color:#42554f; }
.admin-form { display:grid; gap:24px; margin-top:30px; }
.admin-field { display:flex; flex-direction:column; gap:7px; }
.admin-field label, .admin-toggle strong { color:#223a34; font-size:13px; font-weight:600; }
.admin-field input, .admin-field textarea { width:100%; min-height:47px; padding:11px 12px; border:1px solid rgba(21,54,47,.28); border-radius:4px; background:white; color:#172d27; font:inherit; }
.admin-field textarea { min-height:108px; resize:vertical; }
.admin-field input:focus, .admin-field textarea:focus { outline:3px solid rgba(183,151,85,.32); border-color:#8e7342; }
.admin-toggle { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.admin-toggle small { display:block; margin-top:3px; color:#5b6a66; }
.switch { position:relative; width:54px; height:30px; }
.switch input { position:absolute; opacity:0; }
.switch-track { position:absolute; inset:0; border-radius:999px; background:#bbc4c0; cursor:pointer; transition:.2s; }
.switch-track::after { content:""; position:absolute; width:22px; height:22px; left:4px; top:4px; border-radius:50%; background:white; box-shadow:0 2px 6px rgba(0,0,0,.2); transition:.2s; }
.switch input:checked + .switch-track { background:#9f6247; }
.switch input:checked + .switch-track::after { transform:translateX(24px); }
.switch input:focus-visible + .switch-track { outline:3px solid #b79755; outline-offset:3px; }
.admin-actions { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.admin-actions .button:disabled { cursor:wait; opacity:.65; transform:none; }
.admin-message { margin:0; color:#344943; font-size:14px; }
.admin-message.is-error { color:#8a3f2d; }
.admin-preview { padding:30px; border-radius:10px; background:#173c33; color:white; }
.admin-preview h2 { margin:0 0 20px; font:400 28px/1.2 var(--serif); }
.admin-preview-card { padding:22px; border-radius:7px; background:rgba(255,255,255,.09); }
.admin-preview-card h3 { margin:0 0 8px; font:400 22px/1.25 var(--serif); }
.admin-preview-card p { margin:8px 0 0; color:rgba(255,255,255,.84); }
.admin-help { margin-top:24px; color:rgba(255,255,255,.76); font-size:13px; }
.admin-help code { color:white; }

@media (max-width: 840px) {
  .page-hero { min-height:330px; }
  .page-hero-inner { width:calc(100% - 48px); padding:72px 0 48px; }
  .page-main { width:calc(100% - 48px); padding:56px 0 72px; }
  .lead-grid, .contact-layout, .registration-layout, .admin-layout { grid-template-columns:1fr; gap:38px; }
  .offer-grid { grid-template-columns:1fr 1fr; }
  .offer-details article { grid-template-columns:1fr; gap:16px; }
  .steps { grid-template-columns:1fr; }
  .steps article + article { padding-left:0; border-left:0; }
  .notice { grid-template-columns:1fr; gap:8px; }
  .section-band { margin-left:-24px; margin-right:-24px; padding-left:24px; padding-right:24px; }
}

@media (max-width: 560px) {
  .offer-grid, .info-grid { grid-template-columns:1fr; }
  .fact-list div { grid-template-columns:1fr; gap:3px; }
  .section-band { margin-top:60px; padding-top:54px; padding-bottom:54px; }
  .map-visual { min-height:340px; }
}

@media (max-width: 1050px) {
  .site-header { height: 72px; }
  .brand { min-width: 290px; }
  .brand-mark { width: 62px; height: 62px; }
  .brand-copy strong { font-size: 20px; }
  .main-nav { gap: 16px; }
  .main-nav a { font-size: 11px; }
  .main-nav .nav-cta { padding:8px 12px; font-size:10.5px; }
  .hero { height: 336px; }
  .hero-content { padding-top: 56px; padding-bottom: 0; }
  .hero h1 { margin-bottom: 10px; font-size: 45px; }
  .hero p { margin-bottom: 22px; }
  .pillars { min-height: 85px; padding-top: 12px; padding-bottom: 12px; }
  .pillars article { padding: 0 15px; gap: 10px; grid-template-columns: 48px 1fr; }
  .pillar-icon { width: 61px; height: 61px; margin: -9px; }
  .pillars { height: 85px; min-height: 85px; overflow: hidden; padding-top: 8px; padding-bottom: 8px; }
  .pillars h2 { font-size: 10px; }
  .pillars p { font-size: 8.5px; line-height: 1.35; }
  .welcome { height: 326px; min-height: 326px; padding-top: 32px; padding-bottom: 26px; grid-template-columns: minmax(300px, .74fr) minmax(500px, 1.26fr); gap: 46px; }
  .welcome-copy { padding-bottom: 24px; }
  .welcome h2 { font-size: 29px; }
  .welcome-copy > p:not(.eyebrow) { font-size: 11.5px; margin-bottom: 13px; }
  .welcome-visual { min-height: 268px; }
  .welcome-visual figcaption { font-size: 20px; }
}

@media (max-width: 840px) {
  .site-header { height: 74px; padding: 0 20px; position: sticky; top: 0; }
  .brand { min-width: 0; }
  .brand-mark { width: 60px; height: 60px; }
  .brand-copy strong { font-size: 18px; }
  .brand-copy small { display: none; }
  .menu-button { display: grid; width: 48px; height: 48px; place-content:center; gap:5px; border:0; background:transparent; color:var(--ink); cursor:pointer; }
  .menu-button span { display:block; width:25px; height:1px; background:currentColor; }
  .menu-button b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .main-nav { position:absolute; left:0; right:0; top:74px; padding:14px 22px 25px; background:var(--paper); border-bottom:1px solid var(--line); display:none; flex-direction:column; align-items:stretch; gap:0; box-shadow:0 18px 28px rgba(20,49,42,.1); }
  .main-nav.open { display:flex; }
  .main-nav a { padding:12px 0; font-size:15px; }
  .main-nav a::after { bottom:7px; }
  .main-nav .nav-cta { justify-content:center; margin:10px 0 0; padding:12px 16px; text-align:center; }
  .hero { height:auto; min-height: 620px; display:flex; align-items:flex-end; }
  .hero-image { background-position: center 52%; }
  .hero-shade { background: linear-gradient(0deg, rgba(244,246,243,.99) 0%, rgba(244,246,243,.95) 44%, rgba(244,246,243,.04) 75%); }
  .hero-content { width:100%; height:auto; padding: 250px 25px 50px; }
  .hero h1 { font-size:clamp(40px,12vw,58px); }
  .hero p { font-size:16px; }
  .pillars { grid-template-columns:1fr 1fr; padding:0 22px; }
  .pillars article { min-height:118px; border-bottom:1px solid var(--line); }
  .pillars article:nth-child(2) { border-right:0; }
  .pillars article:nth-child(3), .pillars article:nth-child(4) { border-bottom:0; }
  .welcome { height:auto; min-height:0; padding:50px 24px 32px; grid-template-columns:1fr; gap:32px; overflow:visible; }
  .welcome h2 { font-size:31px; }
  .welcome-copy > p:not(.eyebrow) { font-size:15px; }
  .welcome-visual { min-height:300px; }
  .home-about { padding:50px 24px; grid-template-columns:1fr; gap:24px; }
  .site-footer { grid-template-columns:1fr 1fr; }
  .registration-overview, .registration-steps { grid-template-columns:1fr; }
  .registration-card, .registration-form { padding:28px 24px; }
  .admin-panel { padding:28px 24px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field-full { grid-column:auto; }
}

@media (max-width: 520px) {
  .pillars { grid-template-columns:1fr; }
  .pillars article { border-right:0; border-bottom:1px solid var(--line) !important; padding: 18px 0; min-height:95px; }
  .pillars article:last-child { border-bottom:0 !important; }
  .welcome-visual { min-height:245px; }
  .welcome-visual figcaption { right:7%; font-size:16px; }
  .site-footer { grid-template-columns:1fr; }
}
