/*
Theme Name: Shotokan Hildesheim
Theme URI: https://www.shotokan-hildesheim.de/
Author: Shotokan Hildesheim e.V.
Description: Individuelles WordPress-Theme für den Shotokan Hildesheim e.V.
Version: 1.0.7
Text Domain: shotokan-hildesheim
*/

@font-face { font-family:'Shotokan Display'; src:url('assets/fonts/oswald.woff2') format('woff2'); font-display:swap; font-weight:200 700; }
@font-face { font-family:'Shotokan Sans'; src:url('assets/fonts/inter.woff2') format('woff2'); font-display:swap; font-weight:100 900; }

:root {
  --red:#b51f2d; --red-dark:#8e1420; --ink:#171717; --paper:#f5f1e9; --cream:#fbf8f2; --line:#d9d3c8;
  /* Vergleichsvariante: #171717 stellt den bisherigen schwarzen Hintergrund wieder her. */
  --dark-panel-original:#171717; --dark-panel:#34434a; --dark-panel-deep:#28343a; --dark-panel-text:#fffdf7; --dark-panel-muted:#e2e8e8;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'Shotokan Sans',Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-shell { overflow:hidden; }
.wrap { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:10px 14px; background:#fff; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.site-header { height:86px; position:relative; z-index:20; border-bottom:1px solid rgb(255 255 255 / .18); color:var(--dark-panel-text); background:var(--dark-panel-deep); }
.header-inner { width:min(1240px,calc(100% - 40px)); height:100%; margin:auto; display:flex; align-items:center; gap:28px; }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brand img { object-fit:contain; }
.brand span { display:flex; flex-direction:column; line-height:1; }
.brand strong { font:700 22px/1 'Shotokan Display',sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.brand small { margin-top:5px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.desktop-nav { margin-left:auto; display:flex; align-items:center; gap:28px; font-size:14px; }
.desktop-nav .menu { margin:0; padding:0; display:flex; align-items:center; gap:28px; list-style:none; }
.desktop-nav a { padding-block:12px; border-bottom:2px solid transparent; }
.desktop-nav a:hover { border-color:#fff; }
.header-cta { display:flex; align-items:center; gap:8px; padding:12px 17px; border:1px solid rgb(255 255 255 / .6); font-weight:700; font-size:14px; }
.mobile-menu { display:none; margin-left:auto; position:relative; }
.mobile-menu summary { list-style:none; cursor:pointer; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.menu-close,.mobile-menu[open] .menu-open { display:none; }
.mobile-menu[open] .menu-close { display:block; }
.mobile-menu nav { position:absolute; right:0; top:42px; width:240px; padding:18px; display:grid; gap:4px; color:var(--ink); background:#fff; box-shadow:0 20px 50px rgb(0 0 0 / .2); }
.mobile-menu nav a { padding:12px; border-bottom:1px solid #eee; }

.hero { min-height:760px; height:88vh; max-height:920px; position:relative; display:flex; align-items:center; color:#fff; background:#222; }
.cover-image,.hero-image,.story-image img,.trainer-photo img,.news-image img { width:100%; height:100%; display:block; }
.hero-image { position:absolute; inset:0; }
.hero-image { object-fit:cover; object-position:center 42%; filter:grayscale(1) contrast(1.08); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgb(10 10 10 / .92) 0%,rgb(10 10 10 / .7) 40%,rgb(10 10 10 / .1) 72%),linear-gradient(0deg,rgb(0 0 0 / .55),transparent 42%); }
.hero-content { position:relative; }
.kicker { margin:0 0 20px; font-size:12px; line-height:1.3; font-weight:800; letter-spacing:.18em; }
.kicker.red { color:var(--red); }
h1,h2,h3 { font-family:'Shotokan Display',Impact,sans-serif; margin:0; text-transform:uppercase; font-weight:700; }
h1 { max-width:850px; font-size:clamp(68px,8vw,116px); line-height:.91; letter-spacing:-.025em; }
h1 em { color:#d13845; font-style:normal; }
.hero-copy { width:min(610px,100%); margin:28px 0; color:#f3f3f3; font-size:18px; line-height:1.7; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.button { width:max-content; min-height:48px; padding:14px 20px; display:inline-flex; align-items:center; justify-content:center; gap:9px; border:0; cursor:pointer; font:750 14px/1 'Shotokan Sans',sans-serif; transition:.2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:#fff; background:var(--red); }
.button-primary:hover { background:var(--red-dark); }
.button-ghost { color:#fff; border:1px solid rgb(255 255 255 / .6); background:rgb(255 255 255 / .04); }
.button-dark { color:#fff; background:var(--ink); }
.button-light { color:var(--ink); background:#fff; }
.hero-proof { margin-top:32px; display:flex; gap:25px; color:#ddd; font-size:13px; }
.hero-proof span { display:flex; align-items:center; gap:7px; }
.hero-proof svg { color:#e7525e; }

.quick-strip { background:var(--red); color:#fff; }
.quick-grid { min-height:116px; display:grid; grid-template-columns:repeat(4,1fr); }
.quick-grid>div { display:flex; align-items:center; gap:15px; padding:24px 30px; border-right:1px solid rgb(255 255 255 / .25); }
.quick-grid>div:first-child { border-left:1px solid rgb(255 255 255 / .25); }
.quick-grid strong { min-width:65px; font:700 34px/1 'Shotokan Display',sans-serif; }
.quick-grid strong svg { width:34px; height:34px; }
.quick-grid span { font-size:13px; line-height:1.45; }
.event-promo { background:#fff; }
.event-promo-grid { display:grid; grid-template-columns:.9fr 1.1fr; align-items:stretch; background:var(--paper); }
.event-promo-visual { min-height:520px; position:relative; overflow:hidden; background:#171717; }
.event-promo-visual img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.05); }
.event-promo-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgb(0 0 0 / .45),transparent 55%); }
.event-promo-visual>span { position:absolute; left:28px; bottom:24px; z-index:1; color:#fff; font:700 76px/.72 'Shotokan Display',sans-serif; }
.event-promo-visual small { font-size:19px; letter-spacing:.14em; }
.event-promo-copy { padding:64px; display:flex; flex-direction:column; justify-content:center; }
.event-promo-copy h2 { font-size:clamp(48px,5.4vw,72px); line-height:.95; }
.event-promo-copy>p:not(.kicker) { max-width:620px; margin:26px 0; color:#5f5a52; font-size:16px; line-height:1.75; }
.event-promo-facts { padding:18px 0; display:grid; gap:10px; border-block:1px solid var(--line); color:#5f5a52; font-size:13px; }
.event-promo-facts b { color:var(--ink); }
.event-promo-actions { margin-top:28px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.event-promo-actions .text-link { margin:0; }
.page-hero { min-height:520px; padding:90px 0; display:flex; align-items:center; color:var(--dark-panel-text); background:linear-gradient(115deg,var(--dark-panel-deep) 0%,var(--dark-panel) 70%,#651925 100%); }
.page-hero.small { min-height:390px; }
.page-hero.event { background:linear-gradient(115deg,#3b0910 0%,#971925 70%,#111 100%); }
.page-hero h1 { font-size:clamp(68px,9vw,125px); }
.page-hero>div>p:last-child { max-width:650px; margin:24px 0 0; color:var(--dark-panel-muted); font-size:18px; line-height:1.7; }
.subnav { min-height:66px; display:flex; align-items:center; gap:28px; overflow-x:auto; border-bottom:1px solid var(--line); font-size:13px; font-weight:700; white-space:nowrap; }
.subnav a { display:flex; align-items:center; gap:7px; }
.section { padding:110px 0; }
.section-heading h2,.story h2,.contact-section h2 { font-size:clamp(48px,6vw,78px); line-height:.98; letter-spacing:-.025em; }
.split-heading,.schedule-heading { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:80px; margin-bottom:55px; }
.split-heading>p,.schedule-heading>p { margin:0 0 7px; color:#5f5a52; line-height:1.75; font-size:16px; }
.audience { background:var(--paper); }
.home-intro { background:var(--paper); }
.home-paths { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); background:#fff; }
.home-paths>a { min-height:310px; padding:35px; display:flex; flex-direction:column; border-right:1px solid var(--line); transition:.2s; }
.home-paths>a:last-child { border:0; }
.home-paths>a:hover { color:var(--dark-panel-text); background:var(--dark-panel); transform:translateY(-5px); }
.home-paths span { color:var(--red); font:700 12px 'Shotokan Display',sans-serif; }
.home-paths h3 { margin-top:auto; font-size:38px; }
.home-paths p { color:#716b62; font-size:14px; line-height:1.6; }
.home-paths>a:hover p { color:var(--dark-panel-muted); }
.home-paths b { margin-top:18px; display:flex; align-items:center; gap:8px; font-size:13px; }
.compact-title { margin-bottom:40px; display:flex; justify-content:space-between; align-items:end; }
.compact-title h2 { font-size:clamp(48px,6vw,78px); line-height:.98; }
.home-news { background:#fff; }
.page-cta { padding:60px 0; color:#fff; background:var(--red); }
.page-cta>.wrap { display:flex; align-items:center; justify-content:space-between; gap:35px; }
.page-cta .kicker { margin-bottom:8px; }
.page-cta h2 { font-size:42px; }
.info-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.info-cards article { min-height:260px; padding:35px; border:1px solid var(--line); background:#fff; }
.info-cards svg,.red-icon { color:var(--red); }
.card-icon,.red-icon,.tiny-icon { color:var(--red); font-weight:800; }
.info-cards h3 { margin-top:60px; font-size:35px; }
.info-cards p { color:#686159; line-height:1.65; }
.alt-section { background:var(--paper); }
.two-column { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.two-column h2,.fees h2,.event-facts h2,.prose-wide h2 { font-size:clamp(48px,6vw,76px); line-height:.98; }
.two-column>div>p:not(.kicker),.prose { color:#625c54; line-height:1.75; }
.check-list,.large-checks { margin:28px 0; padding:0; display:grid; gap:14px; list-style:none; }
.check-list li,.large-checks li { display:flex; align-items:center; gap:10px; }
.check-list svg,.large-checks svg { color:var(--red); flex:none; }
.quote-panel { min-height:360px; padding:45px; display:flex; flex-direction:column; justify-content:flex-end; color:var(--dark-panel-text); background:var(--dark-panel); }
.quote-panel strong { color:#d13845; font:700 70px/.9 'Shotokan Display',sans-serif; }
.quote-panel span { margin-top:18px; font:700 31px 'Shotokan Display',sans-serif; text-transform:uppercase; }
.prose h3 { margin-top:28px; font-size:25px; }
.fees { background:#fff; }
.fee-grid { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); }
.fee-grid>div { min-height:210px; padding:35px; display:flex; flex-direction:column; border-right:1px solid var(--line); }
.fee-grid>div:last-child { border:0; }
.fee-grid span { font-size:13px; font-weight:700; }
.fee-grid strong { margin-top:auto; color:var(--red); font:700 58px/1 'Shotokan Display',sans-serif; }
.fee-grid small { margin-top:5px; color:#777; }
.fee-note { color:#716b62; font-size:12px; }
.fee-extras { margin:22px 0; padding:22px 26px; border-left:4px solid var(--red); background:var(--paper); }
.fee-extras strong { display:block; margin-bottom:10px; font-size:14px; }
.fee-extras p { margin:5px 0; color:#625c54; font-size:13px; line-height:1.55; }
.audience-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); }
.audience-card { min-height:390px; padding:38px; display:flex; flex-direction:column; border-right:1px solid var(--line); background:#fff; transition:.25s; }
.audience-card:last-child { border:0; }
.audience-card:hover { background:var(--dark-panel); color:var(--dark-panel-text); transform:translateY(-7px); box-shadow:0 20px 50px rgb(0 0 0 / .15); }
.audience-card>svg { color:var(--red); margin-bottom:auto; }
.audience-card>p { margin:35px 0 9px; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.16em; }
.audience-card h3 { font-size:41px; }
.audience-card>span { min-height:95px; margin-top:14px; color:#666158; line-height:1.65; font-size:14px; }
.audience-card:hover>span { color:var(--dark-panel-muted); }
.audience-card>a { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:750; }

.schedule-section { background:#fff; }
.schedule-heading { grid-template-columns:.9fr 1.1fr; }
.schedule-download { margin:-24px 0 34px; }
.schedule-list { border-top:2px solid var(--ink); }
.schedule-row { min-height:100px; display:grid; grid-template-columns:60px 1.3fr .7fr .7fr 1fr; gap:20px; align-items:center; border-bottom:1px solid var(--line); }
.schedule-number { color:#aaa39a; font:700 13px/1 'Shotokan Display',sans-serif; }
.schedule-group { display:flex; flex-direction:column; gap:7px; }
.schedule-group strong { font-size:15px; }
.schedule-group small { color:#777168; }
.schedule-row>div:not(.schedule-group) { display:flex; align-items:center; gap:8px; font-size:13px; }
.schedule-row svg { color:var(--red); flex:none; }
.text-link { margin-top:30px; display:flex; align-items:center; gap:9px; color:var(--red); font-weight:750; font-size:14px; }
.hall-legend { margin-top:28px; padding:22px 0; display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--line); color:#6d675f; font-size:12px; }
.hall-legend strong { color:var(--ink); }
.hall-legend b { color:var(--red); margin-right:5px; }
.location-grid { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.location-card { min-height:245px; padding:30px; display:flex; flex-direction:column; border:1px solid var(--line); background:#fff; transition:.2s ease; }
.location-card:hover { border-color:var(--red); transform:translateY(-3px); box-shadow:0 14px 30px rgb(30 25 20 / .08); }
.location-grid b { color:var(--red); font:700 28px 'Shotokan Display',sans-serif; }
.location-grid h3 { margin-top:30px; font-size:27px; }
.location-grid p { color:#706a62; font-size:13px; line-height:1.6; }
.location-address { margin-top:12px; display:flex; align-items:flex-start; gap:7px; color:#706a62; font-size:12px; line-height:1.45; }
.location-address svg { margin-top:1px; color:var(--red); flex:none; }
.location-link { margin-top:auto; padding-top:18px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); color:var(--ink); font-size:12px; font-weight:750; }
.story { background:var(--paper); }
.story-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; }
.story-image { height:650px; position:relative; }
.story-image img { object-fit:cover; object-position:55% center; }
.story-copy { margin-left:-55px; padding:62px; position:relative; background:var(--cream); box-shadow:0 30px 70px rgb(30 25 20 / .12); }
.story-copy>p:not(.kicker) { color:#5f5a52; line-height:1.75; }
.story-copy blockquote { margin:28px 0; padding-left:20px; border-left:3px solid var(--red); font:700 20px/1.45 'Shotokan Display',sans-serif; text-transform:uppercase; }
.statutes-section { background:#fff; }
.statutes-panel { display:grid; grid-template-columns:260px 1fr; border:1px solid var(--line); background:var(--paper); }
.statutes-mark { min-height:360px; padding:34px; display:flex; flex-direction:column; justify-content:flex-end; color:var(--dark-panel-text); background:var(--dark-panel); }
.statutes-mark span { margin-bottom:auto; color:#d13845; font:700 72px/1 'Shotokan Display',sans-serif; }
.statutes-mark b { color:#d13845; font:700 108px/.78 'Shotokan Display',sans-serif; }
.statutes-mark small { margin-top:16px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.statutes-copy { padding:55px 64px; }
.statutes-copy h2 { font-size:clamp(48px,6vw,76px); line-height:.98; }
.statutes-copy>p:not(.kicker) { max-width:680px; color:#625c54; line-height:1.75; }
.statutes-copy .statutes-meta { margin:26px 0 20px; padding-top:18px; border-top:1px solid var(--line); color:var(--red); font-size:12px; font-weight:750; }
.trainer-section { background:#fff; }
.trainer-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.trainer-card { min-width:0; background:var(--cream); }
.trainer-photo { height:250px; position:relative; overflow:hidden; background:#ddd7ce; }
.trainer-photo img { object-fit:cover; object-position:center top; filter:grayscale(1); transition:.3s ease; }
.trainer-card:hover .trainer-photo img { filter:grayscale(0); transform:scale(1.035); }
.trainer-card:nth-child(3) .trainer-photo img { transform:translateY(-38px) scale(1.14); transform-origin:center top; }
.trainer-card:nth-child(3):hover .trainer-photo img { transform:translateY(-38px) scale(1.17); }
.trainer-card:nth-child(5) .trainer-photo img { transform:translateY(-12px) scale(1.08); transform-origin:center top; }
.trainer-card:nth-child(5):hover .trainer-photo img { transform:translateY(-12px) scale(1.11); }
.trainer-card:nth-child(6) .trainer-photo img { mix-blend-mode:darken; filter:grayscale(1) brightness(1.22) contrast(.88); }
.trainer-card:nth-child(6):hover .trainer-photo img { filter:grayscale(0) brightness(1.18) contrast(.9); }
.trainer-card:nth-child(9) .trainer-photo img { transform:scale(1.1); transform-origin:center top; }
.trainer-card:nth-child(9):hover .trainer-photo img { transform:scale(1.13); }
.trainer-card>div:last-child { min-height:145px; padding:22px 18px; }
.trainer-card p { margin:0 0 8px; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.trainer-card h3 { font-size:23px; line-height:1.05; }
.trainer-card span { margin-top:12px; display:block; color:#746e65; font-size:12px; line-height:1.5; }
.news-section { background:var(--paper); }
.news-heading { margin-bottom:48px; display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:80px; }
.news-heading h2 { font-size:clamp(48px,6vw,78px); line-height:.98; }
.news-heading>p { margin:0 0 7px; color:#5f5a52; line-height:1.75; }
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.news-card { background:#fff; }
.news-card-link { height:100%; display:block; }
.news-image { height:235px; position:relative; overflow:hidden; }
.news-image img { object-fit:cover; transition:.3s ease; }
.news-card-herbstlehrgang-michael-fuchs-rueckblick-folgt .news-image img { object-position:center 12%; }
.news-card-frauen-selbstverteidigung-2026 .news-image img { object-position:center 18%; }
.news-card:hover .news-image img { transform:scale(1.04); }
.news-body { min-height:290px; padding:28px; display:flex; flex-direction:column; }
.news-body time { color:var(--red); font-size:11px; font-weight:800; letter-spacing:.14em; }
.news-body h3 { margin-top:12px; font-size:29px; line-height:1.08; }
.news-body p { color:#6b655d; font-size:13px; line-height:1.65; }
.news-read { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:750; }
.news-all { margin-left:auto; }
.news-static { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); color:#888; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.article-hero { padding:90px 0 72px; background:var(--cream); }
.article-back { margin-bottom:46px; display:inline-flex; align-items:center; gap:9px; color:var(--red); font-size:13px; font-weight:750; }
.article-hero-grid { display:grid; grid-template-columns:130px 1fr; gap:52px; align-items:end; }
.article-mark { position:relative; min-height:260px; padding-left:18px; border-left:4px solid var(--red); }
.article-mark span { display:block; color:var(--red); font-size:11px; font-weight:800; letter-spacing:.16em; }
.article-mark strong { position:absolute; bottom:-17px; left:8px; color:var(--red); font:700 126px/.8 'Shotokan Display',sans-serif; opacity:.12; }
.article-title time { color:var(--red); font-size:12px; font-weight:800; letter-spacing:.15em; }
.article-title h1 { max-width:920px; margin-top:18px; font-size:clamp(54px,7.5vw,104px); line-height:.92; }
.article-title>p { max-width:720px; margin:28px 0 0; color:#5f5a52; font-size:18px; line-height:1.65; }
.article-main { padding:0 0 110px; background:#fff; }
.article-image { width:min(100%,760px); height:420px; margin:0 auto; position:relative; overflow:hidden; background:var(--cream); }
.article-image img { width:100%; height:100%; display:block; object-fit:contain; }
.postid-29 .article-image img { object-fit:cover; object-position:center bottom; }
.article-copy-grid { margin-top:66px; display:grid; grid-template-columns:130px minmax(0,720px); gap:52px; }
.article-side { color:var(--red); font:700 15px/1.3 'Shotokan Display',sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.article-copy p { margin:0 0 24px; color:#4f4a43; font-size:18px; line-height:1.8; }
.article-copy p:first-child::first-letter { float:left; margin:8px 10px 0 0; color:var(--red); font:700 72px/.72 'Shotokan Display',sans-serif; }
.article-section { margin-bottom:46px; }
.article-section h2 { margin:0 0 22px; font-size:36px; line-height:1.08; }
.article-section ul { margin:10px 0 0; padding:0; list-style:none; border-top:2px solid var(--ink); }
.article-section li { padding:18px 0 18px 28px; position:relative; border-bottom:1px solid var(--line); color:#4f4a43; font-size:17px; line-height:1.55; }
.article-section li::before { content:'✓'; position:absolute; left:0; color:var(--red); font-weight:800; }
.article-cta { width:max-content; margin:0 0 18px; }
.article-copy .article-end { margin-top:42px; padding-top:25px; border-top:1px solid var(--line); color:var(--red); font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.feature-links { background:#fff; }
.feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.feature-grid>a { min-height:330px; padding:42px; display:flex; flex-direction:column; color:var(--dark-panel-text); background:var(--dark-panel); }
.feature-grid>a:first-child { background:var(--red); }
.feature-grid>a.feature-main { grid-column:1 / -1; min-height:390px; position:relative; overflow:hidden; background:linear-gradient(115deg,#8e1420 0%,#b51f2d 58%,#1a1a1a 100%); }
.feature-grid>a.feature-main::after { content:'03·10'; position:absolute; right:35px; bottom:-35px; color:rgb(255 255 255 / .1); font:700 170px/1 'Shotokan Display',sans-serif; pointer-events:none; }
.feature-grid>a.feature-main h2 { max-width:800px; font-size:clamp(52px,7vw,82px); line-height:.95; position:relative; z-index:1; }
.feature-grid>a.feature-main p,.feature-grid>a.feature-main b,.feature-grid>a.feature-main span { position:relative; z-index:1; }
.feature-grid span { font-size:11px; font-weight:800; letter-spacing:.16em; }
.feature-grid h2 { margin-top:auto; font-size:52px; }
.feature-grid p { color:var(--dark-panel-muted); }
.feature-grid>a:first-child p { color:#f3d9dc; }
.feature-grid b { display:flex; align-items:center; gap:8px; font-size:13px; }
.event-detail { scroll-margin-top:20px; color:#fff; background:linear-gradient(120deg,#8e1420 0%,#b51f2d 58%,#181818 100%); }
.event-detail-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.event-detail-intro h2 { font-size:clamp(54px,6.4vw,86px); line-height:.94; }
.event-detail-intro>div:first-child>p:not(.kicker) { max-width:670px; color:#f2dfe1; font-size:16px; line-height:1.75; }
.event-detail-intro .button { margin-top:20px; }
.event-detail-image { height:450px; position:relative; overflow:hidden; border:1px solid rgb(255 255 255 / .22); }
.event-detail-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; filter:grayscale(1); }
.event-detail-facts { margin-top:62px; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid rgb(255 255 255 / .25); }
.event-detail-facts>div { min-height:190px; padding:27px; border-right:1px solid rgb(255 255 255 / .25); }
.event-detail-facts>div:last-child { border:0; }
.event-detail-facts span { font-size:10px; font-weight:800; letter-spacing:.16em; }
.event-detail-facts strong { margin-top:42px; display:block; font:700 26px/1.05 'Shotokan Display',sans-serif; text-transform:uppercase; }
.event-detail-facts p { color:#e8d4d7; font-size:12px; line-height:1.55; }
.event-contact { margin:24px 0 0; color:#ead8da; font-size:13px; }
.event-contact a { color:#fff; font-weight:750; border-bottom:1px solid rgb(255 255 255 / .6); }
.contact-details { margin-top:40px; display:grid; gap:22px; }
.contact-details>span { display:flex; align-items:flex-start; gap:12px; color:#4f4942; line-height:1.6; }
.contact-symbol { color:var(--red); font-size:11px; line-height:2.15; }
.contact-address { display:block; }
.contact-details svg { color:var(--red); flex:none; }
.preview-form .consent { display:flex; grid-template-columns:auto 1fr; align-items:flex-start; font-weight:400; line-height:1.5; }
.preview-form .consent input { width:auto; margin-top:2px; }
.event-facts { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.sport-intro h2 { font-size:clamp(48px,6vw,76px); line-height:.98; }
.sport-discipline-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); background:#fff; }
.sport-discipline-grid article { min-height:280px; padding:30px; display:flex; flex-direction:column; border-right:1px solid var(--line); }
.sport-discipline-grid article:last-child { border:0; }
.sport-discipline-grid b { color:var(--red); font:700 14px 'Shotokan Display',sans-serif; }
.sport-discipline-grid h3 { margin-top:auto; font-size:31px; }
.sport-discipline-grid p { min-height:66px; color:#686159; font-size:13px; line-height:1.6; }
.sport-number { min-height:330px; padding:42px; display:flex; flex-direction:column; justify-content:flex-end; color:var(--dark-panel-text); background:var(--dark-panel); }
.sport-number span { color:#d13845; font:700 82px/1 'Shotokan Display',sans-serif; }
.sport-number strong { margin-top:18px; font:700 34px/1.05 'Shotokan Display',sans-serif; text-transform:uppercase; }
.sport-links { display:grid; border-top:2px solid var(--ink); }
.sport-links a { min-height:92px; padding:18px 0; display:grid; grid-template-columns:55px 1fr auto; gap:16px; align-items:center; border-bottom:1px solid var(--line); }
.sport-links span { color:var(--red); font-size:11px; font-weight:800; letter-spacing:.12em; }
.sport-links strong { font-size:14px; }
.sport-links b { font-size:12px; }
.fact-list { display:grid; border-top:2px solid var(--ink); }
.fact-list span { min-height:78px; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); font-size:14px; }
.fact-list strong { width:95px; color:var(--red); }
.large-checks { margin:0; font-size:19px; }
.prose-wide { max-width:820px; }
.prose-wide>p:not(.kicker) { color:#625c54; font-size:17px; line-height:1.8; }
.year-list { display:grid; }
.year-list article { padding:55px 0; display:grid; grid-template-columns:180px 1fr; gap:50px; border-bottom:1px solid var(--line); scroll-margin-top:20px; }
.year-list article>span { color:var(--red); font:700 70px/1 'Shotokan Display',sans-serif; }
.year-list h2 { font-size:45px; }
.year-list article p:last-child { max-width:700px; color:#625c54; line-height:1.75; }
.pfingst-intro { background:#fff; }
.pfingst-years { background:var(--paper); }
.pfingst-year { padding:105px 0; scroll-margin-top:20px; }
.pfingst-year.alt { background:#fff; }
.pfingst-year-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:75px; align-items:start; }
.pfingst-year.alt .pfingst-year-copy { grid-column:2; grid-row:1; }
.pfingst-year.alt .pfingst-gallery { grid-column:1; grid-row:1; }
.pfingst-number { display:block; margin:5px 0 12px; color:var(--red); font:700 92px/.9 'Shotokan Display',sans-serif; opacity:.16; }
.pfingst-year-copy h2 { margin-bottom:30px; font-size:clamp(42px,4.7vw,64px); line-height:.98; }
.pfingst-year-copy>p:not(.kicker) { color:#5f5a52; font-size:15px; line-height:1.78; }
.pfingst-gallery { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pfingst-gallery figure { height:360px; margin:0; position:relative; overflow:hidden; background:#ddd7ce; }
.pfingst-gallery figure.wide { height:285px; grid-column:1 / -1; }
.pfingst-gallery figure:not(.wide) { grid-column:1 / -1; }
.pfingst-gallery img { width:100%; height:100%; display:block; object-fit:cover; transition:.35s ease; }
.pfingst-gallery figure:hover img { transform:scale(1.025); }
.pfingst-gallery figcaption { position:absolute; right:0; bottom:0; left:0; padding:24px 18px 14px; color:#fff; background:linear-gradient(transparent,rgb(0 0 0 / .72)); font-size:11px; font-weight:700; letter-spacing:.05em; }
.women-story-image img { object-position:center 18%; }
.women-intro { background:#fff; }
.women-intro h2 { max-width:520px; }
.women-intro .prose p { margin-top:0; color:#5f5a52; font-size:16px; line-height:1.8; }
.women-program { background:var(--paper); }
.women-steps { display:grid; grid-template-columns:1fr 1fr; border-top:2px solid var(--ink); }
.women-steps article { min-height:190px; padding:30px 34px; display:grid; grid-template-columns:55px 1fr; gap:18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.women-steps article:nth-child(even) { border-right:0; }
.women-steps span { color:var(--red); font:700 25px/1 'Shotokan Display',sans-serif; }
.women-steps h3 { font-size:30px; }
.women-steps p { color:#6b655d; line-height:1.65; }
.women-gallery-section { background:#fff; }
.women-gallery { display:grid; grid-template-columns:1.25fr .75fr .75fr; grid-template-rows:290px 290px; gap:14px; }
.women-gallery figure { margin:0; position:relative; overflow:hidden; background:#ddd7ce; }
.women-gallery-main { grid-row:1 / 3; }
.women-gallery figure:nth-child(2) { grid-column:2 / 4; }
.women-gallery img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 32%; transition:.35s ease; }
.women-gallery figure:hover img { transform:scale(1.025); }
.women-gallery figcaption { position:absolute; right:0; bottom:0; left:0; padding:34px 18px 16px; color:#fff; background:linear-gradient(transparent,rgb(0 0 0 / .76)); font-size:11px; font-weight:700; letter-spacing:.04em; }
.women-result { background:var(--cream); }
.women-result-grid { display:grid; grid-template-columns:310px 1fr; gap:75px; align-items:center; }
.women-result-number { min-height:330px; padding:38px; display:flex; flex-direction:column; justify-content:flex-end; background:var(--red); color:#fff; }
.women-result-number strong { font:700 118px/.8 'Shotokan Display',sans-serif; }
.women-result-number span { margin-top:25px; font-size:14px; font-weight:750; line-height:1.45; text-transform:uppercase; }
.women-result-grid>div:last-child p:not(.kicker) { max-width:720px; color:#5f5a52; line-height:1.8; }
.legal-page h2 { font-size:52px; }
.legal-page h3 { margin-top:38px; font-size:27px; }
.legal-page p { color:#625c54; line-height:1.8; }
.legal-notice { margin:30px 0; padding:25px; border-left:4px solid var(--red); background:var(--paper); }
.legal-notice p { margin-bottom:0; }
.event-section { padding:80px 0; background:var(--dark-panel); color:var(--dark-panel-text); }
.event-card { display:grid; grid-template-columns:150px 1.3fr .8fr auto; align-items:center; gap:40px; }
.event-date { display:flex; align-items:center; gap:14px; padding-right:30px; border-right:1px solid #444; }
.event-date strong { color:#d13845; font:700 64px/1 'Shotokan Display',sans-serif; }
.event-date span { font-weight:800; font-size:13px; line-height:1.25; }
.event-copy .kicker { color:#d13845; margin-bottom:10px; }
.event-copy h2 { font-size:48px; }
.event-copy>p:last-child { color:var(--dark-panel-muted); line-height:1.65; font-size:14px; }
.event-meta { display:grid; gap:12px; font-size:13px; }
.event-meta span { display:flex; align-items:center; gap:8px; color:var(--dark-panel-muted); }
.event-meta svg { color:#d13845; }
.contact-section { background:#efe9df; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:start; }
.contact-grid>div>p:last-child { max-width:480px; margin-top:25px; color:#655f56; line-height:1.75; }
.preview-form { padding:42px; display:grid; gap:22px; background:#fff; box-shadow:0 24px 60px rgb(50 40 30 / .1); }
.preview-form label { display:grid; gap:8px; font-size:12px; font-weight:750; }
.preview-form label span { color:#999; font-weight:400; }
.preview-form input,.preview-form select,.preview-form textarea { width:100%; padding:14px; border:1px solid #d8d3ca; border-radius:0; background:#fff; color:var(--ink); font:400 14px 'Shotokan Sans',sans-serif; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.preview-form small { color:#888; }
footer { padding:65px 0 25px; background:var(--dark-panel-deep); color:var(--dark-panel-text); }
.footer-grid { display:grid; grid-template-columns:1.1fr 1fr 1.2fr auto; gap:50px; align-items:center; }
.footer-brand img { filter:none; }
.footer-grid>p { color:var(--dark-panel-muted); font-size:13px; line-height:1.65; }
.footer-grid nav { display:flex; flex-wrap:wrap; gap:16px 24px; font-size:12px; }
.social-link { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgb(255 255 255 / .35); }
.copyright { margin-top:55px; padding-top:20px; border-top:1px solid rgb(255 255 255 / .18); display:flex; justify-content:space-between; color:#c4cdce; font-size:11px; }

@media (max-width: 960px) {
  .desktop-nav,.header-cta { display:none; }
  .mobile-menu { display:block; }
  .hero { min-height:720px; }
  .quick-grid { grid-template-columns:1fr 1fr; }
  .quick-grid>div { border-bottom:1px solid rgb(255 255 255 / .25); }
  .audience-grid { grid-template-columns:1fr; }
  .audience-card { min-height:320px; border-right:0; border-bottom:1px solid var(--line); }
  .schedule-row { grid-template-columns:45px 1.4fr 1fr; padding:20px 0; }
  .schedule-row>div:nth-child(4),.schedule-row>div:nth-child(5) { grid-column:2 / -1; }
  .story-grid { grid-template-columns:1fr; }
  .story-image { height:500px; }
  .story-copy { margin:-80px 32px 0; }
  .statutes-panel { grid-template-columns:200px 1fr; }
  .statutes-copy { padding:48px; }
  .event-card { grid-template-columns:120px 1fr; }
  .trainer-grid { grid-template-columns:repeat(3,1fr); }
  .news-grid { grid-template-columns:1fr 1fr; }
  .home-paths { grid-template-columns:1fr; }
  .home-paths>a { border-right:0; border-bottom:1px solid var(--line); }
  .info-cards { grid-template-columns:1fr; }
  .two-column,.event-facts { grid-template-columns:1fr; gap:40px; }
  .pfingst-year-grid { grid-template-columns:1fr; gap:45px; }
  .pfingst-year.alt .pfingst-year-copy,.pfingst-year.alt .pfingst-gallery { grid-column:auto; grid-row:auto; }
  .pfingst-year.alt .pfingst-year-copy { order:1; }
  .pfingst-year.alt .pfingst-gallery { order:2; }
  .women-gallery { grid-template-columns:1fr 1fr; grid-template-rows:420px 300px 300px; }
  .women-gallery-main { grid-column:1 / -1; grid-row:auto; }
  .women-gallery figure:nth-child(2) { grid-column:1 / -1; }
  .women-result-grid { grid-template-columns:240px 1fr; gap:45px; }
  .event-promo-grid,.event-detail-intro { grid-template-columns:1fr; }
  .event-detail-facts { grid-template-columns:1fr 1fr; }
  .event-detail-facts>div:nth-child(2) { border-right:0; }
  .event-detail-facts>div { border-bottom:1px solid rgb(255 255 255 / .25); }
  .news-card:last-child { grid-column:1 / -1; }
  .article-hero-grid,.article-copy-grid { grid-template-columns:90px 1fr; gap:32px; }
  .event-meta,.event-card>.button { grid-column:2; }
  .contact-grid { gap:45px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .sport-discipline-grid { grid-template-columns:1fr 1fr; }
  .sport-discipline-grid article:nth-child(2) { border-right:0; }
  .sport-discipline-grid article { border-bottom:1px solid var(--line); }
}

@media (max-width: 680px) {
  .wrap { width:min(100% - 32px,1160px); }
  main h1,main h2,main h3 { max-width:100%; overflow-wrap:anywhere; }
  .site-header { height:76px; }
  .header-inner { width:calc(100% - 28px); }
  .brand img { width:54px; height:54px; }
  .brand strong { font-size:18px; }
  .brand small { font-size:9px; }
  .hero { height:auto; min-height:720px; align-items:flex-end; padding-bottom:55px; }
  .hero-overlay { background:linear-gradient(0deg,rgb(8 8 8 / .96) 10%,rgb(8 8 8 / .5) 72%,rgb(8 8 8 / .35)); }
  .hero-content { padding-top:70px; }
  h1 { font-size:clamp(43px,15vw,54px); }
  .hero-copy { font-size:16px; line-height:1.6; }
  .hero-actions { display:grid; }
  .button { width:100%; }
  .hero-proof { align-items:flex-start; flex-direction:column; gap:10px; }
  .quick-grid { width:100%; }
  .quick-grid>div { padding:18px 16px; }
  .quick-grid strong { min-width:52px; font-size:27px; }
  .quick-grid span { font-size:11px; }
  .event-promo-visual { min-height:360px; }
  .event-promo-copy { min-width:0; padding:38px 26px; }
  .event-promo-copy h2 { font-size:clamp(35px,10.8vw,44px); line-height:.98; letter-spacing:-.02em; }
  .event-promo-actions { align-items:stretch; flex-direction:column; gap:18px; }
  .event-promo-actions .text-link { width:100%; }
  .section { padding:75px 0; }
  .page-hero { min-height:430px; padding:60px 0; }
  .page-hero.small { min-height:340px; }
  .page-hero h1 { font-size:clamp(43px,15vw,56px); }
  .subnav { width:100%; padding-inline:16px; gap:22px; }
  .section-heading h2,.story h2,.contact-section h2 { font-size:clamp(38px,12vw,46px); }
  .split-heading,.schedule-heading { grid-template-columns:1fr; gap:25px; margin-bottom:38px; }
  .audience-card { padding:30px; }
  .schedule-row { grid-template-columns:32px 1fr; gap:10px; }
  .schedule-row>div:nth-child(n+3) { grid-column:2; }
  .story-image { height:390px; }
  .story-copy { margin:-45px 15px 0; padding:32px 24px; }
  .statutes-panel { grid-template-columns:1fr; }
  .statutes-mark { min-height:190px; padding:26px; }
  .statutes-mark span { font-size:52px; }
  .statutes-mark b { font-size:78px; }
  .statutes-copy { min-width:0; padding:34px 24px; }
  .statutes-copy h2 { font-size:46px; overflow-wrap:anywhere; }
  .trainer-grid { grid-template-columns:1fr 1fr; }
  .trainer-photo { height:220px; }
  .trainer-card>div:last-child { min-height:155px; padding:18px 14px; }
  .trainer-card h3 { font-size:20px; }
  .news-heading { grid-template-columns:1fr; gap:22px; }
  .news-grid { grid-template-columns:1fr; }
  .news-card:last-child { grid-column:auto; }
  .article-hero { padding:55px 0 52px; }
  .article-back { margin-bottom:35px; }
  .article-hero-grid,.article-copy-grid { grid-template-columns:1fr; gap:26px; }
  .article-mark { min-height:0; padding:0 0 18px; border-left:0; border-bottom:3px solid var(--red); }
  .article-mark strong { right:0; bottom:5px; left:auto; font-size:76px; }
  .article-title h1 { font-size:50px; }
  .article-title>p,.article-copy p { font-size:16px; }
  .article-main { padding-bottom:75px; }
  .article-image { height:230px; }
  .article-copy-grid { margin-top:42px; }
  .article-section { margin-bottom:36px; }
  .article-section h2 { font-size:30px; }
  .article-cta { width:100%; }
  .event-card { grid-template-columns:1fr; gap:25px; }
  .event-date { border-right:0; border-bottom:1px solid #444; padding:0 0 20px; }
  .event-meta,.event-card>.button { grid-column:1; }
  .contact-grid { grid-template-columns:1fr; }
  .compact-title,.page-cta>.wrap { align-items:flex-start; flex-direction:column; }
  .home-paths>a { min-height:270px; padding:28px; }
  .fee-grid { grid-template-columns:1fr; }
  .fee-grid>div { min-height:170px; border-right:0; border-bottom:1px solid var(--line); }
  .location-grid { grid-template-columns:1fr; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-grid>a.feature-main { grid-column:auto; min-height:350px; }
  .feature-grid>a.feature-main::after { right:12px; font-size:105px; }
  .feature-grid>a { min-height:280px; padding:30px; }
  .feature-grid h2 { font-size:43px; }
  .event-detail-intro { gap:38px; }
  .event-detail-intro h2 { font-size:49px; }
  .event-detail-image { height:320px; }
  .event-detail-facts { margin-top:38px; grid-template-columns:1fr; }
  .event-detail-facts>div { min-height:155px; border-right:0; }
  .event-detail-facts>div:last-child { border-bottom:0; }
  .event-detail-facts strong { margin-top:28px; }
  .year-list article { grid-template-columns:1fr; gap:15px; }
  .year-list article>span { font-size:52px; }
  .pfingst-year { padding:75px 0; }
  .pfingst-number { font-size:70px; }
  .pfingst-year-copy h2 { font-size:40px; }
  .pfingst-gallery { grid-template-columns:1fr; }
  .pfingst-gallery figure,.pfingst-gallery figure.wide { height:250px; grid-column:auto; }
  .women-steps { grid-template-columns:1fr; }
  .women-steps article { min-height:0; padding:26px 22px; grid-template-columns:42px 1fr; border-right:0; }
  .women-gallery { grid-template-columns:1fr; grid-template-rows:none; }
  .women-gallery figure,.women-gallery-main,.women-gallery figure:nth-child(2) { height:300px; grid-column:auto; grid-row:auto; }
  .women-result-grid { grid-template-columns:1fr; gap:36px; }
  .women-result-number { min-height:230px; }
  .preview-form { padding:25px 20px; }
  .form-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:28px; }
  .copyright { gap:15px; flex-direction:column; }
  .sport-discipline-grid { grid-template-columns:1fr; }
  .sport-discipline-grid article { min-height:230px; border-right:0; }
  .sportabzeichen-page .two-column>*,
  .sportabzeichen-page .event-facts>* { min-width:0; }
  .sportabzeichen-page h1,
  .sportabzeichen-page h2,
  .sportabzeichen-page .sport-number strong,
  .sportabzeichen-page .sport-links strong { overflow-wrap:anywhere; hyphens:auto; }
  .sportabzeichen-page .page-hero h1 { font-size:46px; letter-spacing:-.035em; }
  .sportabzeichen-page .sport-number { padding:34px 26px; }
  .sport-links a { grid-template-columns:45px 1fr; }
  .sportabzeichen-page .sport-links a>* { min-width:0; }
  .sport-links b { grid-column:2; }
}
