/* TKD Heidelberg: public homepage refresh, September 2026. */
.modern-site{--accent:#e9bd52;--text:#191d23;--muted:#626875;--surface:#f5f4f0;--border:#e3e4e5;background:#fff;color:var(--text);line-height:1.7}
.modern-site .container{max-width:1240px;padding-inline:32px}
.modern-site h1,.modern-site h2,.modern-site h3{letter-spacing:-.04em;line-height:1.15}
.modern-site h2{font-size:clamp(30px,3.7vw,48px);font-weight:800;margin-bottom:20px}
.modern-site h3{font-size:21px;letter-spacing:-.025em}
.modern-site p{margin-top:0}
.modern-site .eyebrow{font-size:11px;font-weight:800;letter-spacing:.17em;line-height:1.6;margin-bottom:20px;color:var(--accent)}
.modern-site .section-eyebrow{color:#8b671f;margin-bottom:12px}
.modern-site .header{background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-bottom:1px solid #e8e8e8}
.modern-site .header__row{min-height:90px;gap:24px}
.modern-site .brand{gap:12px;flex-shrink:0}
.modern-site .brand__logo-img{width:52px;height:52px;border:0;background:white;object-fit:contain}
.modern-site .brand__name{font-size:15px;letter-spacing:-.03em}
.modern-site .brand__sub{font-size:10px;letter-spacing:.035em}
.modern-site .nav{gap:1px;align-items:center}
.modern-site .nav a{font-size:12px;padding:10px 9px;border-radius:6px;white-space:nowrap}
.modern-site .nav a:hover{background:#f4f2ea}
.modern-site .nav a.nav-cta{background:#191d23;color:#fff;padding:12px 16px;margin-left:9px}
.modern-site .hero{background:#15191e;color:#fff}
.modern-site .hero::before{background:radial-gradient(ellipse at 20% 50%,#31302b,transparent 65%);opacity:.5}
.modern-site .hero__grid{grid-template-columns:1.05fr 1fr;gap:64px;padding-block:76px 80px;position:relative}
.modern-site .hero h1{font-size:clamp(52px,5.5vw,78px);line-height:1.05;margin-bottom:26px;font-weight:800}
.modern-site .hero .lead{font-size:17px;line-height:1.8;max-width:480px;color:#c5c9cf}
.modern-site .actions{gap:12px;margin-top:28px}
.modern-site .btn{border-radius:6px;padding:14px 20px;font-size:13px;font-weight:800;transition:background .2s,transform .2s;text-decoration:none}
.modern-site .btn:hover{transform:translateY(-2px)}
.modern-site .btn--primary{background:var(--accent);border-color:var(--accent);color:#17191e}
.modern-site .btn--primary:hover{background:#f3cd71;opacity:1}
.modern-site .btn--ghost,.modern-site .btn--ghost--light{border-color:#73767b;color:#fff}
.modern-site .hero .badges{margin-top:30px;gap:18px}
.modern-site .hero .badge{padding:0;background:none;color:#c5c9cf;font-weight:400;font-size:11px;border-radius:0}
.modern-site .hero .badge::before{content:'•';color:var(--accent);margin-right:7px}
.modern-site .hero__image{border:0;border-radius:12px;background:#fff;box-shadow:none;overflow:hidden;transform:rotate(-2deg)}
.modern-site .hero__image img{width:100%;height:410px;object-fit:contain;padding:24px;background:#fff}
.modern-site .hero__caption{padding:22px 28px;background:var(--accent);color:#191d23;transform:none}
.modern-site .hero__caption span{display:block;font-size:10px;letter-spacing:.16em;font-weight:800;margin-bottom:4px}
.modern-site .hero__caption strong{font-size:20px;letter-spacing:-.025em}
.modern-site .intro-strip{background:#f5f4f0;border-bottom:1px solid var(--border)}
.modern-site .intro-strip__grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:28px;gap:30px}
.modern-site .intro-strip__grid>div{border-right:1px solid #dad9d4;padding-right:24px}
.modern-site .intro-strip__grid>div:last-child{border:0}
.modern-site .intro-strip strong,.modern-site .intro-strip span{display:block}
.modern-site .intro-strip strong{font-size:17px;letter-spacing:-.02em}
.modern-site .intro-strip span{font-size:12px;color:var(--muted);margin-top:3px}
.modern-site .section{padding-block:88px;scroll-margin-top:96px}
.modern-site .section--alt{border:0;background:var(--surface)}
.modern-site .section__head{margin-bottom:30px}
.modern-site .grid{gap:24px}
.modern-site .card{border-radius:12px;padding:28px;border-color:var(--border);box-shadow:0 8px 25px rgba(25,29,35,.025)}
.modern-site .card__body{padding:24px}
.modern-site .card--profile{padding:0;overflow:hidden;transition:transform .2s,box-shadow .2s;cursor:pointer}
.modern-site .card--profile:hover{transform:translateY(-4px);box-shadow:0 16px 35px #15191e12}
.modern-site .card--profile .card__img{height:260px;object-fit:contain;background:#f5f4f0;padding:12px}
.modern-site .checklist li::before{color:#967021;content:'✓'}
.modern-site #kurse .card{position:relative;border-top:3px solid var(--accent);padding-top:32px}
.modern-site #kurse .card__title{font-size:24px}
.modern-site #kurse .checklist{font-size:14px;gap:13px;margin-top:25px}
.modern-site #verein .grid>div{padding:30px;background:#f5f4f0;border-radius:12px}
.modern-site .note{border-radius:8px;border-left:3px solid var(--accent);background:#faf7ee;color:#4f493c;padding:20px 24px}
.modern-site #galerie .gallery{gap:22px}
.modern-site #galerie .gallery__item{padding:0;border-radius:12px;overflow:hidden!important;border:1px solid #dededb;box-shadow:none}
.modern-site #galerie .gallery__item img{height:240px!important;max-height:none!important;width:100%;object-fit:contain!important;background:#fff;padding:12px}
.modern-site #galerie .gallery__item figcaption{background:#fff;padding:18px 20px;position:static;color:#191d23;opacity:1;font-weight:800;font-size:16px}
.modern-site .news-slide{border-radius:12px;overflow:hidden}
.modern-site .news-slide__title{line-height:1.35}
.modern-site .plan{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;margin-inline:0;box-shadow:0 12px 35px #15191e08}
.modern-site .plan img{display:block;width:100%;height:auto}
.modern-site .training-location{font-size:16px;line-height:1.7;max-width:600px}
.modern-site .section--dark{background:#15191e;color:white}
.modern-site .section--dark .section-eyebrow{color:var(--accent)}
.modern-site #mitglied .flex{display:block}
.modern-site #mitglied .flex__text{max-width:700px;margin-bottom:40px}
.modern-site #mitglied .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.modern-site .section--dark .card{background:#20252c;border-color:#373d44;padding:28px}
.modern-site .section--dark .muted,.modern-site .section--dark .tiny{color:#b3bbc5}
.modern-site .pricecard__amount{color:var(--accent)}
.modern-site #faq details{border:1px solid #dededb;border-radius:8px;background:#fff;padding:20px 24px;margin-bottom:12px}
.modern-site #faq summary{font-weight:600;cursor:pointer}
.modern-site #kontakt .form{background:#f5f4f0;padding:28px;border-radius:12px;margin-top:28px;display:grid;gap:18px}
.modern-site input,.modern-site textarea{border-radius:6px;border-color:#d8dadd;padding:12px 14px;max-width:100%;min-width:0}
.modern-site input:focus,.modern-site textarea:focus{outline:2px solid #987321}
.modern-site input[type=checkbox]{accent-color:#967021}
.modern-site .form__group:has(input[type=checkbox]){font-size:12px}
.modern-site .footer{background:#15191e;color:#d8dce2;padding-block:44px;border-top:0}
.modern-site .footer a{color:inherit}
.modern-site #verbaende,.modern-site #partner{padding-block:48px}
.modern-site #verbaende h2,.modern-site #partner h2{font-size:24px;text-align:center}
.modern-site a:focus-visible,.modern-site button:focus-visible,.modern-site summary:focus-visible{outline:3px solid #a57b22;outline-offset:4px}
@media(max-width:1100px){.modern-site .nav{display:none}.modern-site .nav__toggle{display:block}.modern-site .header .nav.open{display:flex;right:24px;left:24px;padding:16px;gap:5px}.modern-site .nav.open a{padding:12px}.modern-site .nav.open .nav-cta{margin-left:0;text-align:center}.modern-site .hero__grid{gap:35px}.modern-site .hero h1{font-size:62px}}
@media(max-width:767px){.modern-site .container{padding-inline:22px}.modern-site .header__row{min-height:76px}.modern-site .brand__name{font-size:13px}.modern-site .brand__sub{font-size:9px}.modern-site .brand__logo-img{width:43px;height:43px}.modern-site .hero__grid{grid-template-columns:1fr;padding-block:48px;gap:36px}.modern-site .hero h1{font-size:clamp(42px,10vw,66px)}.modern-site .hero .lead{font-size:15px}.modern-site .hero__image{transform:none;max-width:540px}.modern-site .hero__image img{height:310px}.modern-site .hero__caption{padding:18px 22px}.modern-site .hero__caption strong{font-size:18px}.modern-site .hero .badges{gap:12px}.modern-site .intro-strip__grid{grid-template-columns:1fr;gap:14px;padding-block:24px}.modern-site .intro-strip__grid>div{border-right:0;border-bottom:1px solid #dad9d4;padding:0 0 14px;display:flex;justify-content:space-between;gap:16px;align-items:center}.modern-site .intro-strip strong{font-size:14px}.modern-site .intro-strip span{font-size:11px;text-align:right;max-width:180px}.modern-site .intro-strip__grid>div:last-child{padding-bottom:0}.modern-site .section{padding-block:56px;scroll-margin-top:85px}.modern-site .section__head{align-items:flex-start;flex-direction:column;gap:12px}.modern-site #mitglied .grid{grid-template-columns:1fr}.modern-site #galerie .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.modern-site #galerie .gallery__item img{height:155px!important;padding:6px}.modern-site #galerie .gallery__item figcaption{padding:14px 10px;font-size:13px}.modern-site #kontakt .form{padding:20px}.modern-site .grid>*{min-width:0}.modern-site .plan{padding:8px}.modern-site .btn{padding:13px 16px}.modern-site .g-recaptcha{transform-origin:left top;max-width:100%}}
@media(max-width:374px){.modern-site .container{padding-inline:16px}.modern-site #kontakt .form{padding:12px}.modern-site .g-recaptcha{transform:scale(.85);margin-bottom:-10px}.modern-site .brand__sub{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.modern-site *, .modern-site *::before{transition:none!important;animation:none!important}}
.modern-site #galerie .gallery__item figcaption{transform:none!important;display:block!important;opacity:1!important;margin:0!important;inset:auto!important;line-height:1.5}
.modern-site .hero__copy{min-width:0}

/* Gallery correction: override legacy thumbnail sizes and figure margins. */
.modern-site #galerie .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;justify-items:stretch;align-items:stretch}
.modern-site #galerie .gallery__item{display:flex!important;flex-direction:column;width:100%;min-width:0;height:auto!important;aspect-ratio:auto!important;margin:0!important;padding:0!important;overflow:hidden!important;border-radius:12px;background:#fff}
.modern-site #galerie .gallery__item img{display:block;width:100%!important;max-width:100%;height:260px!important;min-height:0;aspect-ratio:auto!important;object-fit:contain!important;object-position:center;padding:16px;flex:none}
.modern-site #galerie .gallery__item figcaption{position:static!important;inset:auto!important;transform:none!important;background:#fff!important;color:#191d23!important;height:auto!important;min-height:58px;margin:0!important;padding:16px 20px!important;display:block!important;text-align:left;line-height:1.5;opacity:1!important;border-top:1px solid #eeeeeb;font-size:16px;font-weight:800}
@media(max-width:900px){.modern-site #galerie .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.modern-site #galerie .gallery__item img{height:220px!important}}
@media(max-width:600px){.modern-site #galerie .gallery{gap:12px}.modern-site #galerie .gallery__item img{height:160px!important;padding:8px}.modern-site #galerie .gallery__item figcaption{padding:12px!important;min-height:48px;font-size:13px}}
@media(max-width:360px){.modern-site #galerie .gallery{grid-template-columns:1fr}.modern-site #galerie .gallery__item img{height:230px!important}}

/* Contact section: form and information form two explicit grid children. */
.modern-site #kontakt>.container{grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr);align-items:start;gap:48px}
.modern-site .contact-aside{min-width:0;display:grid;gap:24px;padding-top:0}
.modern-site .contact-panel{background:#f5f4f0;border:1px solid #e3e4e5;border-radius:12px;padding:28px}
.modern-site .contact-panel h3{font-size:24px;margin-bottom:16px}
.modern-site .contact-panel>.muted{font-size:14px;line-height:1.8;margin-bottom:20px}
.modern-site .contact-details{margin:24px 0 0;display:grid;gap:18px}
.modern-site .contact-details>div{padding-top:16px;border-top:1px solid #dededb}
.modern-site .contact-details dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#747b84;margin-bottom:4px}
.modern-site .contact-details dd{margin:0;font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.modern-site .contact-details a{color:#191d23;text-decoration:underline;text-underline-offset:4px}
.modern-site .contact-training-link{display:inline-block;font-size:13px;font-weight:800;color:#755619;text-underline-offset:4px;margin-bottom:22px}
.modern-site .contact-panel .map{width:100%;aspect-ratio:4/3;border-radius:8px;background:#e9e7df}
.modern-site .contact-map-note{margin:12px 0 0;line-height:1.6}
@media(max-width:900px){.modern-site #kontakt>.container{grid-template-columns:minmax(0,1fr);gap:32px}.modern-site .contact-aside{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.modern-site .contact-panel{padding:24px}}
@media(max-width:600px){.modern-site .contact-aside{grid-template-columns:minmax(0,1fr)}.modern-site .contact-panel{padding:22px}}

/* Complete social symbols and readable footer columns. */
.modern-site .footer .footer-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.modern-site .footer .footer-social a{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:#fff;color:#191d23;text-decoration:none}
.modern-site .footer .footer-social svg{display:block;width:20px;height:20px;fill:currentColor}
.modern-site .footer .footer-social a:hover{background:#e9bd52;color:#191d23;transform:translateY(-2px)}
.modern-site .footer__grid{grid-template-columns:1.3fr 1fr .8fr 1.1fr 1.3fr;gap:28px;padding-block:16px 32px;align-items:start}
.modern-site .footer__grid>div{min-width:0}
.modern-site .footer__title{margin-bottom:14px;font-size:14px;color:#fff}
.modern-site .footer__list{font-size:13px;line-height:1.8}
.modern-site .footer .muted,.modern-site .footer .visitor-counter,.modern-site .footer .copy{color:#b3bbc5}
.modern-site .footer .copy{padding:24px 20px 0;border-top:1px solid #343940;margin-top:12px}
@media(max-width:1100px){.modern-site .footer__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}
@media(max-width:767px){.modern-site .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.modern-site .footer__grid>div:first-child{grid-column:1/-1}}
@media(max-width:420px){.modern-site .footer__grid{grid-template-columns:1fr}.modern-site .footer__grid>div:first-child{grid-column:auto}}

/* Timeless trainer overview with immediately visible profile facts. */
.modern-site #team .grid{gap:24px;align-items:stretch}
.modern-site #team .card--profile{display:flex;flex-direction:column;border:1px solid #e2e3e5;box-shadow:none}
.modern-site #team .card--profile .card__img{height:280px;padding:16px;background:#f5f4f0;object-fit:contain;flex:none}
.modern-site #team .trainer-card__body{padding:26px;display:flex;flex-direction:column;gap:16px;flex:1;border-top:3px solid #e9bd52}
.modern-site #team .card__title{font-size:22px;line-height:1.3;margin:0;letter-spacing:-.03em;color:#191d23}
.modern-site #team .trainer-card__summary{font-size:14px;color:#444d58;line-height:1.9;margin:0}
.modern-site #team .trainer-card__detail{font-size:13px;color:#626875;line-height:1.8;margin:0;padding-top:14px;border-top:1px solid #e9e9e6}
.modern-site #team .chips{gap:7px;margin:0}
.modern-site #team .chip{font-size:11px;line-height:1.5;background:#f5f4f0;border:0;border-radius:4px;padding:6px 9px;font-weight:600;color:#555c66}
.modern-site #team .trainer-card__email{font-size:12px;color:#755619;text-underline-offset:3px;overflow-wrap:anywhere}
.modern-site #team .trainer-card__more{margin-top:auto;padding:16px 0 0;border:0;border-top:1px solid #e3e4e5;border-radius:0;background:transparent;color:#191d23;text-align:left;display:flex;justify-content:space-between;align-items:center;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.modern-site #team .trainer-card__more span{color:#987321;font-size:20px}
.modern-site #team .trainer-card__more:hover{color:#987321}
@media(min-width:601px) and (max-width:1000px){.modern-site #team .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.modern-site #team .grid{grid-template-columns:minmax(0,1fr);gap:20px}.modern-site #team .trainer-card__body{padding:22px}.modern-site #team .card--profile .card__img{height:290px}.modern-site #team .card__title{font-size:22px}}

/* Desktop trainer dialog: display the entire portrait without cropping. */
@media(min-width:701px){
  .modern-site .profile__header img{display:block;width:140px;height:180px;min-width:140px;max-width:140px;object-fit:contain;object-position:center;background:#f5f4f0;flex:0 0 140px;border-radius:10px}
}

/* Training schedule: source-plan layout, colors and simultaneous sessions. */
.modern-site .training-schedule{margin:32px 0 24px}
.modern-site .training-schedule__title{font-size:22px;line-height:1.4;letter-spacing:-.02em;font-weight:800;margin-bottom:12px}
.modern-site .training-schedule__hint{font-size:12px;color:#626875;margin-bottom:16px}
.modern-site .training-schedule__scroll{overflow-x:auto;border:1px solid #191d23;border-radius:8px;background:#fff;overscroll-behavior-x:contain}
.modern-site .training-schedule__table{border-collapse:collapse;width:100%;min-width:1000px;table-layout:fixed;font-size:12px;line-height:1.45;color:#111}
.modern-site .training-schedule__table .time-col{width:64px}
.modern-site .training-schedule__table th,.modern-site .training-schedule__table td{border:1px solid #333;text-align:center;padding:5px;vertical-align:middle}
.modern-site .training-schedule__table thead tr:first-child th{background:#09b0dc;font-size:12px;font-weight:600;padding:4px}
.modern-site .training-schedule__table thead tr:first-child .schedule-corner{background:#fff}
.modern-site .training-schedule__table thead tr:first-child .schedule-room-wieblingen{background:#f2e8e1}
.modern-site .training-schedule__table thead tr:nth-child(2) th{background:#fff;font-size:14px;padding:8px}
.modern-site .training-schedule__table tbody tr{height:42px}
.modern-site .training-schedule__table .schedule-time{font-weight:700;text-align:right;vertical-align:top;font-size:12px;background:#fff}
.modern-site .training-schedule__table td strong,.modern-site .training-schedule__table td span{display:block}
.modern-site .training-schedule__table td strong{font-weight:700}
.modern-site .training-schedule__table td span{margin-top:3px;font-size:12px}
.modern-site .training-schedule__table .schedule-kids{background:#a9ce90}
.modern-site .training-schedule__table .schedule-bambini{background:#ffe99e}
.modern-site .training-schedule__table .schedule-minis{background:#ca98f4}
.modern-site .training-schedule__table .schedule-beginner{background:#f8ccb0}
.modern-site .training-schedule__table .schedule-fight{background:#ff4d50}
.modern-site .training-schedule__table .schedule-traditional{background:#bed8ed}
.modern-site .training-schedule__table .schedule-poomsae{background:#8eabdb}
.modern-site .training-schedule__table .schedule-free{background:#d5dee7;vertical-align:top;padding-top:12px}
.modern-site .training-schedule__table .schedule-free-wieblingen{background-color:#e3e8ec;background-image:radial-gradient(#999 0.5px,transparent .5px);background-size:4px 4px}
.modern-site .training-schedule__table .schedule-free-wieblingen strong{writing-mode:vertical-rl;transform:rotate(180deg);margin:auto;font-size:15px;letter-spacing:.02em}
.modern-site .training-schedule__table .schedule-empty{background:#fff}
.modern-site .training-schedule__table tfoot th,.modern-site .training-schedule__table tfoot td{padding:4px;font-size:12px;text-align:right}
@media(max-width:700px){.modern-site .training-schedule__title{font-size:18px}.modern-site .training-schedule__scroll{border-radius:6px}}

/* Match the original plan: time labels sit at the END of each interval. */
.modern-site .training-schedule__table .schedule-time{vertical-align:bottom;padding:0 5px;line-height:1.2}
.modern-site .training-schedule__table thead tr:nth-child(2) .schedule-start-time{vertical-align:bottom;text-align:right;font-size:12px;padding:0 5px;line-height:1.2}

/* Final partner entry, retaining the supplied AdeelSoft logo. */
.modern-site #partner .partnerlist__adeelsoft{background:#555!important;padding:0;border-radius:12px;overflow:hidden;width:240px;max-width:100%}
.modern-site #partner .partnerlist__adeelsoft img{display:block;width:240px;height:240px;max-width:100%;object-fit:contain}
.modern-site #partner .partnerlist__adeelsoft:hover{background:#555!important;transform:translateY(-2px)}
@media(max-width:700px){.modern-site #partner .partnerlist__adeelsoft{width:220px}.modern-site #partner .partnerlist__adeelsoft img{width:220px;height:220px;max-width:100%}}

/* Transparent AdeelSoft wordmark at the width of the Stadtwerke logo. */
.modern-site #partner .partnerlist__adeelsoft{width:600px;max-width:100%;padding:0;background:transparent!important;border-radius:0;overflow:visible}
.modern-site #partner .partnerlist__adeelsoft:hover{background:transparent!important}
.modern-site #partner .partnerlist__adeelsoft img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
@media(max-width:700px){.modern-site #partner .partnerlist__adeelsoft{width:100%;max-width:320px}.modern-site #partner .partnerlist__adeelsoft img{width:100%;height:auto;max-width:100%}}
