/* V20 refinement: preserve typography, gradients, imagery and club identity. */
[data-page="ueber-uns"] .location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.location-card { display: flex; flex-direction: column; align-items: flex-start; }
.location-card .location-table { margin-top: 14px; font-size: .9375rem; }
.location-card > a { margin-top: auto; padding-top: 16px; }
@media (max-width: 620px) {
  [data-page="ueber-uns"] .location-grid { grid-template-columns: minmax(0, 1fr); }
}
html { color-scheme: dark; scroll-padding-top: 164px; }
body { overflow-x: clip; }
button, a { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--lime); outline-offset: 4px;
}
:where(.grid-2, .grid-3, .content-grid, .contact-grid, .about-layout,
  .dyp-showcase, .info-card, .contact-item, .team-header-copy, .welcome-head) > * { min-width: 0; }
:where(p, li, h2, h3, strong, a, code) { overflow-wrap: anywhere; }
.public-site .brand-row { min-height: 100px; }
.topbar { -webkit-backdrop-filter: blur(20px); }
.display { line-height: .94; }
.display span { max-width: 100%; overflow-wrap: anywhere; }
.hero-text { line-height: 1.75; max-width: 580px; }
.info-card p, .content-card p, .welcome p, .event-card p { line-height: 1.72; }
.info-card h3, .trophy-copy h3 { line-height: 1.25; }
.subhero :is(h1,h2) { line-height: 1.08; margin-block: 12px 18px; }
.card { border-radius: 22px; }
.grid-2, .content-grid, .contact-grid, .dyp-showcase, .dyp-process { gap: 22px; }
.tag { font-size: .75rem; line-height: 1.4; letter-spacing: .025em; }
.kicker, .field label, .section-title { font-size: .875rem; }
.feature { font-size: .8125rem; letter-spacing: .015em; line-height: 1.5; }
.player-team-label, .table-chip span { font-size: .75rem; letter-spacing: .035em; }
.player-name { line-height: 1.4; }
.btn { padding-block: 12px; line-height: 1.4; text-align: center; }
.btn:active { transform: translateY(1px); }
.field input, .field select, .field textarea { font-size: 1rem; min-height: 50px; }
.field-grid { gap: 18px; }
.mail-launch { min-height: 44px; line-height: 1.5; }
.contact-item strong { line-height: 1.5; }
.weekday { padding: 12px 8px; }
.weekday span { white-space: nowrap; }
.footer-grid a { display: inline-flex; align-items: center; min-height: 36px; }
.footer-bottom { color: #9eabb2; line-height: 1.6; }
.skip-link {
  position: fixed; z-index: 100; left: 18px; top: -100px;
  padding: 12px 18px; border-radius: 12px; color: #071000; background: var(--lime); font-weight: 750;
}
.skip-link:focus { top: 12px; }
.legal-page .title { line-height: 1.08; overflow-wrap: anywhere; }
.legal-page .header > * { min-width: 0; }
.legal-page .brand img { flex-shrink: 0; }
.legal-page .back { flex-shrink: 0; }
.legal-page .footer-row a { display: inline-flex; align-items: center; min-height: 36px; }
@media (min-width: 951px) {
  .hero, .hero-inner { min-height: 630px; }
  .hero-inner { padding-block: 60px; }
  .info-card { padding: 30px; }
  .content-card, .welcome { padding: 32px; }
}
@media (max-width: 950px) {
  html { scroll-padding-top: 100px; }
  .public-site .brand-row { min-height: 84px; }
  .mobile-toggle { flex-shrink: 0; min-width: 46px; min-height: 46px; }
  .nav-wrap.open {
    max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px);
    overflow-y: auto; overscroll-behavior: contain;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
    -webkit-backdrop-filter: blur(20px);
  }
  .nav-link { min-height: 46px; font-size: .875rem; }
  .member-nav { min-height: 46px; }
  .nav-link:focus-visible { outline-offset: -3px; }
  .contact-grid, .content-grid, .about-layout { grid-template-columns: minmax(0, 1fr); }
  .trophy-card { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .trophy-media img { object-fit: contain; }
}
@media (max-width: 620px) {
  .shell { width: min(var(--max), calc(100% - 36px)); }
  .public-site .brand-row { min-height: 80px; gap: 12px; }
  .brand { gap: 12px; }
  .brand-copy strong { line-height: 1.2; }
  .brand-copy small { letter-spacing: .14em; }
  .hero, .hero-inner { min-height: 0; }
  .hero-inner { padding: 40px 0 36px; }
  .hero-copy { padding-top: 4px; }
  .display { margin: 15px 0 24px; font-size: clamp(2.1rem, 10.2vw, 3.18rem); }
  .hero-text { font-size: 1rem; }
  .cta-row { gap: 12px; margin-top: 26px; }
  .btn { min-height: 50px; font-size: .8125rem; padding-inline: 16px; }
  .section { padding-block: 30px; }
  .section-sm { padding-bottom: 30px; }
  .grid-2, .content-grid, .contact-grid, .dyp-showcase, .dyp-process { gap: 18px; }
  .card { border-radius: 18px; }
  .info-card { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 22px; }
  .info-card .round-icon { width: 48px; height: 48px; }
  .info-card .round-icon svg { width: 27px; height: 27px; }
  .info-card h3 { font-size: 1.4rem; margin-block: 10px; }
  .kicker { letter-spacing: .055em; }
  .welcome, .content-card, .location-card, .play-join-card { padding: 24px; }
  .welcome-head { gap: 20px; }
  .feature-strip { margin-top: 24px; padding-top: 16px; }
  .feature { min-height: 44px; padding: 10px 0; }
  .dyp-heading { margin-bottom: 24px; }
  .dyp-stage { padding: 24px; gap: 18px; }
  .trophy-card { grid-template-columns: minmax(0, 1fr); }
  .trophy-copy { padding: 24px; }
  .subhero { padding-block: 40px; }
  .subhero :is(h1,h2) { font-size: clamp(1.9rem, 9vw, 2.9rem); }
  .event-card { padding: 24px; gap: 22px; }
  .weekday { min-height: 76px; }
  .team-header { padding: 22px 18px; }
  .team-header-copy { min-width: 0; }
  .team-number { flex-shrink: 0; }
  .player-grid { gap: 10px; padding: 12px; }
  .player-info { padding: 12px; }
  .player-photo { max-width: 100%; }
  .contact-item { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; }
  .contact-item .round-icon { width: 42px; height: 42px; }
  .footer-grid { padding-block: 32px; gap: 26px; }
  .footer-grid a, .legal-page .footer-row a { min-height: 44px; }
  .legal-page .header { flex-wrap: wrap; gap: 12px; padding-block: 12px; }
  .legal-page .brand { flex: 1 1 200px; }
  .legal-page .card { padding: 24px; }
  .legal-page h2 { line-height: 1.35; }
}
@media (max-width: 360px) {
  .info-card { grid-template-columns: minmax(0, 1fr); }
  .brand-logo-frame { width: 54px; height: 54px; }
  .brand-copy strong { font-size: .95rem; }
  .content-card, .welcome, .event-card { padding: 20px; }
}
@media (hover: none) {
  .card:hover, .player-card:hover, .table-chip:hover, .btn:hover { transform: none; }
  .round-icon { will-change: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .ui-reveal { opacity: 1 !important; transform: none !important; }
}
