/* Übergangsseite Euro Dance Center: statisch, ohne Skript. Farben und Schriften wie im EDC-Design. */
@font-face{font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Barlow-700.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:italic;font-weight:700;font-display:swap;src:url("../fonts/Barlow-700-italic.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:italic;font-weight:800;font-display:swap;src:url("../fonts/Barlow-800-italic.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/SourceSans3-400.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/SourceSans3-400-italic.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/SourceSans3-600.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/SourceSans3-700.woff2") format("woff2")}

:root{
  --primary:#273583;--primary-hover:#1E2A6B;--yellow:#FDC110;--on-primary:#fff;
  --ink:#273583;--bg:#fff;--tint:#F4F5FB;--tint2:#E6E9F6;--muted:#4A5388;--border:#C5CCE6;
  --link:#273583;--focus:#273583;
  --notice-bg:#FDC110;--notice-ink:#131A45;
  --radius:1rem;
  --font-head:"Barlow","Segoe UI",system-ui,sans-serif;--font-body:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{--ink:#F4F5FB;--bg:#131A45;--tint:#1B2358;--tint2:#252E6B;--muted:#C5CCE6;--border:#3A4580;--link:#FDC110;--focus:#FDC110;--primary:#FDC110;--on-primary:#131A45;--primary-hover:#FFD65A}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:400 1.0625rem/1.65 var(--font-body);color:var(--ink);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-underline-offset:.15em}
a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:.25rem}
.wrap{width:min(100% - 2rem,70rem);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:var(--on-primary);padding:.75rem 1rem;z-index:10}
.skip:focus{left:0}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.15;color:var(--ink);margin:0 0 .75rem}
h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem)}
h2{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin-top:2.5rem}
h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem)}
p{margin:0 0 1rem}

/* Kopf und Menü */
.site-header{border-bottom:1px solid var(--border);background:var(--bg)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0}
.brand img{height:3.5rem;width:auto}
.main-nav ul,.site-footer ul{list-style:none;margin:0;padding:0}
.main-nav a{display:block;padding:.6rem .9rem;font:700 1rem var(--font-head);letter-spacing:.02em;text-decoration:none;color:var(--ink);border-radius:var(--radius)}
.main-nav a:hover,.main-nav a[aria-current="page"]{background:var(--tint2)}
.nav-mobile>summary{list-style:none;cursor:pointer;padding:.6rem 1rem;border:2px solid var(--primary);border-radius:var(--radius);font:700 1rem var(--font-head);color:var(--ink)}
.nav-mobile>summary::-webkit-details-marker{display:none}
.nav-mobile ul{position:absolute;right:1rem;left:1rem;margin-top:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;box-shadow:0 8px 24px -6px rgba(19,26,69,.25);z-index:5}
.nav-desktop{display:none}
@media (min-width:62rem){
  .nav-mobile{display:none}
  .nav-desktop{display:flex;gap:.25rem}
}
/* Hinweis auf jeder Seite */
.notice{background:var(--notice-bg);color:var(--notice-ink)}
.notice p{margin:0;padding:.75rem 0;font-size:1rem}
.notice a{color:var(--notice-ink);font-weight:700}
.notice a:focus-visible{outline-color:var(--notice-ink)}
/* Inhalt */
main{padding:2.5rem 0 4rem}
.lead{font-size:1.25rem;color:var(--muted);max-width:46rem}
.toc{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1.5rem 0 2rem}
.toc a{display:inline-block;padding:.4rem .9rem;border:1px solid var(--border);border-radius:var(--radius-pill,50rem);text-decoration:none;background:var(--tint)}
.toc a:hover{background:var(--tint2)}
.cards{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));margin:1.5rem 0 0;padding:0;list-style:none}
.card{background:var(--tint);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;scroll-margin-top:1rem}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card-body{padding:1.25rem 1.25rem 1.5rem}
.card-body h3{margin-bottom:.5rem}
.card-body p:last-child{margin-bottom:0}
.card .more{display:inline-block;margin-top:.5rem;font-weight:700}
.feature{display:grid;gap:1.5rem;align-items:center;background:var(--tint);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:1.5rem 0}
.feature img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/2}
.feature-body{padding:1.5rem}
@media (min-width:48rem){.feature{grid-template-columns:1fr 1fr}.feature-body{padding:1.5rem 2rem 1.5rem 0}}
.hero{padding:1rem 0 .5rem}
.hero h1{max-width:20ch}
.stub{padding:2rem;border:2px dashed var(--border);border-radius:var(--radius);background:var(--tint);color:var(--muted)}
/* Fuß */
.site-footer{background:var(--primary);color:var(--on-primary);padding:2rem 0 1rem}
.site-footer a{color:var(--on-primary)}
.footer-grid{display:grid;gap:1.5rem}
@media (min-width:48rem){.footer-grid{grid-template-columns:1fr 1fr}}
address{font-style:normal}
.site-footer li a{display:inline-block;padding:.3rem 0}
.copy{margin:1.5rem auto 0;font-size:.9rem;opacity:.9}
@media (prefers-color-scheme:dark){.site-footer{background:#0D1236;color:#F4F5FB}.site-footer a{color:#FDC110}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Zusätze für längere Seiten */
.section-intro{color:var(--muted);max-width:46rem}
.feature-top{align-items:start}
.feature-top img{height:auto;aspect-ratio:3/2;align-self:start;position:sticky;top:1rem;border-radius:var(--radius)}
.feature-top h2{margin-top:0}
.feature-top h3{font-size:1.1rem;color:var(--muted);font-weight:700}
@media (max-width:47.99rem){.feature-top img{position:static}.feature-body{padding:0 1.25rem 1.5rem}}
.card-body h2{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);margin:0 0 .5rem}
/* Kontakt, Widerruf, Formular */
.contact-grid{display:grid;gap:1.5rem;margin:1.5rem 0}
@media (min-width:48rem){.contact-grid{grid-template-columns:1fr 1fr}}
.panel{background:var(--tint);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem}
.panel h2{margin-top:0;font-size:1.5rem}
.form-sample ul{margin:0 0 1rem;padding-left:1.25rem}
.help{color:var(--muted);font-size:.95rem}
.opt{color:var(--muted);font-weight:400}
.btn{display:inline-block;background:var(--primary);color:var(--on-primary);font:700 1.0625rem var(--font-head);letter-spacing:.02em;padding:.85rem 1.6rem;border:0;border-radius:50rem;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--primary-hover)}
.btn:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.form{max-width:42rem;margin-top:1.5rem}
.form fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin:0 0 1.25rem}
.form legend{font-weight:700;padding:0 .4rem}
.field{margin:0 0 1.1rem}
.field label,.choice label{font-weight:600}
.field label{display:block;margin-bottom:.3rem}
.form input[type=text],.form input[type=email],.form input[type=date],.form textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:2px solid var(--border);border-radius:.75rem;padding:.65rem .85rem}
.form input:focus-visible,.form textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--primary)}
.field-row{display:grid;gap:0 1rem}
@media (min-width:36rem){.field-row{grid-template-columns:1fr 1fr}}
.choice{display:flex;align-items:center;gap:.6rem;margin:.4rem 0}
.choice input{width:1.2rem;height:1.2rem;accent-color:var(--primary)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Kündigungsformular: Fehler, Bestätigung */
.alert{background:var(--tint2);border-left:6px solid var(--yellow);border-radius:.5rem;padding:.25rem 1rem;margin:1rem 0;max-width:42rem}
.error{color:#B00020;font-weight:600;margin:.3rem 0 0}
@media (prefers-color-scheme:dark){.error{color:#FF8A9B}}
.form input[aria-invalid=true],.form textarea[aria-invalid=true]{border-color:#B00020}
.summary{max-width:42rem;margin:1.5rem 0;background:var(--tint);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.5rem}
.summary dt{font-weight:700;margin-top:.75rem}
.summary dd{margin:0}
.summary-text{white-space:pre-wrap;background:var(--tint);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;max-width:42rem;font:inherit}
.btn-secondary{background:transparent;color:var(--ink);border:2px solid var(--primary)}
.btn-secondary:hover{background:var(--tint2)}
form.inline{display:inline-block;margin:0 .5rem .5rem 0}
