@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/barlow-condensed-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/barlow-condensed-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-style:normal;font-display:swap;src:url("../fonts/barlow-condensed-latin-800-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/barlow-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/barlow-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/barlow-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");}
/* ============ TOKENS ============ */
:root{
  --navy:#16202C;
  --navy-2:#1E2C3C;
  --navy-3:#28394D;
  --plywood:#EBE1C8;
  --plywood-2:#DFD1A6;
  --bag-red:#C4432B;
  --bag-red-dark:#9E3320;
  --chalk-yellow:#EFB93E;
  --turf-green:#3E6B52;
  --paper:#F7F2E4;
  --ink:#16202C;
  --ink-soft:#4B5768;
  --line: rgba(22,32,44,0.12);
  --line-dark: rgba(247,242,228,0.14);
  --radius-board: 14px;
  --shadow-card: 0 10px 30px rgba(22,32,44,0.18);
  --shadow-soft: 0 4px 14px rgba(22,32,44,0.10);
  --display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --body: "Barlow", -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{
  margin:0;
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block; max-width:100%;}
a{color:inherit;}
button{font-family:inherit;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

:focus-visible{
  outline:3px solid var(--chalk-yellow);
  outline-offset:2px;
  border-radius:4px;
}

.eyebrow{
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:600;
}

h1,h2,h3{
  font-family:var(--display);
  font-weight:700;
  line-height:1.02;
  margin:0;
  letter-spacing:0.005em;
}

/* ============ HEADER ============ */
.site-header{
  display:flex;
  flex-direction:column;
  gap:0.7rem;
  padding:0.9rem clamp(1.2rem, 4vw, 3rem);
  background:var(--navy);
  color:var(--paper);
  border-bottom:1px solid var(--line-dark);
}
.header-row{display:flex; align-items:center;}
.brand{
  display:flex;
  align-items:center;
  gap:0.7rem;
  font-family:var(--display);
  font-weight:800;
  font-size:1.4rem;
  letter-spacing:0.01em;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}
.brand .dco-logo{
  width:40px; height:40px;
  flex:none;
  object-fit:contain;
  background:var(--paper);
  border-radius:8px;
  padding:3px;
}
.brand-name{white-space:nowrap;}
.brand-year{color:var(--chalk-yellow);}
.header-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.4rem;
  font-family:var(--mono);
  font-size:0.8rem;
  letter-spacing:0.03em;
}
.header-nav a{text-decoration:none; opacity:0.85; cursor:pointer;}
.header-nav a:hover{opacity:1;}
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  border:none;
  cursor:pointer;
  font-family:var(--display);
  font-weight:700;
  letter-spacing:0.01em;
  text-decoration:none;
  border-radius:999px;
  padding:0.55rem 1.3rem;
  font-size:1rem;
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--bag-red); color:var(--paper); box-shadow:0 6px 16px rgba(196,67,43,0.35);}
.btn-primary:hover{background:var(--bag-red-dark);}

/* ============ HERO (HOME) ============ */
.hero{
  background:var(--navy);
  color:var(--paper);
  padding:clamp(2.4rem,7vw,5rem) clamp(1.2rem,4vw,3rem) clamp(3rem,6vw,4.5rem);
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  right:-120px; top:-120px;
  width:420px; height:420px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, var(--chalk-yellow) 0%, transparent 70%);
  opacity:0.16;
  pointer-events:none;
}
.hero-inner{max-width:1180px; margin:0 auto; position:relative;}
.hero h1{
  font-size:clamp(2.6rem, 7vw, 5.2rem);
  text-transform:uppercase;
  max-width:15ch;
}
.hero h1 em{
  font-style:normal;
  color:var(--chalk-yellow);
}
.hero p.lede{
  font-size:clamp(1.05rem,2vw,1.3rem);
  max-width:52ch;
  color:var(--plywood);
  margin-top:1.1rem;
  line-height:1.5;
}
.hero .eyebrow{color:var(--turf-green); background:rgba(62,107,82,0.25); display:inline-block; padding:0.3rem 0.7rem; border-radius:999px; margin-bottom:1rem;}

/* series strip */
.series-strip{
  margin-top:2.6rem;
  display:flex;
  align-items:flex-start;
  gap:0.6rem;
  overflow-x:auto;
  padding-bottom:0.4rem;
}
.series-strip::-webkit-scrollbar{height:6px;}
.series-strip::-webkit-scrollbar-thumb{background:var(--line-dark); border-radius:4px;}
.strip-link{
  flex:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.35rem;
  text-decoration:none;
  color:var(--plywood-2);
  cursor:pointer;
  width:74px;
}
.strip-dot{
  width:38px; height:38px;
  border-radius:50%;
  border:2px solid var(--line-dark);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-weight:600; font-size:0.85rem;
  background:var(--navy-2);
  transition:transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.strip-link:hover .strip-dot{border-color:var(--chalk-yellow); transform:translateY(-2px);}
.strip-city{font-family:var(--mono); font-size:0.65rem; text-align:center; letter-spacing:0.02em; opacity:0.85;}

/* ============ TOURNAMENT GRID ============ */
.section{padding:clamp(2.4rem,6vw,4rem) clamp(1.2rem,4vw,3rem);}
.section-inner{max-width:1180px; margin:0 auto;}
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  margin-bottom:1.8rem; flex-wrap:wrap;
}
.section-head h2{font-size:clamp(1.9rem,4vw,2.6rem); text-transform:uppercase;}
.section-head .eyebrow{color:var(--bag-red);}
.section-head p{color:var(--ink-soft); max-width:46ch; margin:0.3rem 0 0;}
.legal-text h3{font-family:var(--display); font-size:1.2rem; text-transform:uppercase; margin-top:2rem;}
.legal-text p, .legal-text li{color:var(--ink-soft); line-height:1.6;}
.legal-text ul{padding-left:1.2rem; margin-top:0.5rem;}
.legal-text li + li{margin-top:0.3rem;}
.legal-text a{color:var(--bag-red);}
.status-legend{display:flex; gap:1.2rem; font-family:var(--mono); font-size:0.78rem; color:var(--ink-soft);}
.status-legend span{display:flex; align-items:center; gap:0.4rem;}
.status-legend i{width:8px; height:8px; border-radius:50%; background:var(--status-color); display:block;}

.map-section{background:var(--navy-2);}
.map-section .section-head h2, .map-section .eyebrow{color:var(--paper);}
.map-section .eyebrow{color:var(--chalk-yellow);}
.map-section .section-head p{color:var(--plywood);}
.map-section .status-legend{color:var(--plywood-2);}
.germany-map{
  display:block; margin:1.5rem auto 0;
  width:100%; max-width:340px; height:auto;
}
.map-pin{cursor:pointer;}
.map-pin circle{transition:r 0.15s ease;}
.map-pin:hover circle, .map-pin:focus-visible circle{r:11;}
.map-pin-label{opacity:0; transition:opacity 0.15s ease; pointer-events:none;}
.map-pin:hover .map-pin-label, .map-pin:focus-visible .map-pin-label{opacity:1;}
.overview-list{
  margin-top:1.2rem;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr));
  gap:0.5rem;
}
.overview-item{
  display:flex; align-items:center; gap:0.6rem;
  padding:0.6rem 0.8rem;
  background:var(--navy);
  border:1px solid var(--line-dark);
  border-radius:8px;
  text-decoration:none;
  color:var(--paper);
  transition:border-color 0.15s ease, transform 0.15s ease;
}
.overview-item:hover, .overview-item:focus-visible{border-color:var(--chalk-yellow); transform:translateY(-1px);}
.overview-dot{width:8px; height:8px; border-radius:50%; background:var(--status-color); flex:none;}
.overview-num{font-family:var(--mono); font-size:0.75rem; color:var(--plywood-2); flex:none;}
.overview-land{font-family:var(--display); font-weight:700; font-size:1rem; text-transform:uppercase; flex:1;}
.overview-city{font-family:var(--mono); font-size:0.75rem; color:var(--plywood-2);}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(270px,1fr));
  gap:1.4rem;
}

.card{
  background:var(--plywood);
  border-radius:var(--radius-board);
  padding:1.3rem 1.3rem 1.5rem;
  cursor:pointer;
  position:relative;
  border:1px solid rgba(22,32,44,0.08);
  box-shadow:var(--shadow-soft);
  transition:transform 0.18s ease, box-shadow 0.18s ease;
  text-align:left;
  display:flex; flex-direction:column; gap:0.9rem;
  width:100%;
}
.card:hover, .card:focus-visible{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
}
.card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:0.6rem;}
.card-stop{
  font-family:var(--mono); font-weight:600; font-size:0.72rem; letter-spacing:0.08em;
  color:var(--ink-soft); text-transform:uppercase;
}
.card-status{
  font-family:var(--mono); font-size:0.65rem; letter-spacing:0.06em; text-transform:uppercase;
  display:flex; align-items:center; gap:0.35rem;
  padding:0.2rem 0.55rem 0.2rem 0.4rem; border-radius:999px; color:var(--ink-soft);
  background:rgba(22,32,44,0.08);
}
.card-status::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--status-color, var(--bag-red));
  flex:none;
}
.card-logo-wrap{
  display:flex; justify-content:center; padding:0.2rem 0 0.4rem;
  position:relative;
}
.card-logo-wrap svg, .card-logo-wrap img{
  width:100%;
  height:auto;
  border-radius:10px;
  box-shadow:0 3px 10px rgba(22,32,44,0.12);
}
.card-logo-wrap .bag{
  position:absolute; top:-6px; right:38%;
  width:16px; height:16px; border-radius:4px;
  opacity:0; transform:translateY(-6px) rotate(0deg);
  transition:opacity 0.25s ease, transform 0.35s cubic-bezier(.34,1.56,.64,1);
  z-index:2;
}
.card:hover .card-logo-wrap .bag, .card:focus-visible .card-logo-wrap .bag{
  opacity:1; transform:translateY(10px) rotate(35deg);
}
.card h3{font-size:1.55rem; text-transform:uppercase;}
.card .card-city{font-family:var(--mono); font-weight:600; font-size:0.95rem; color:var(--ink-soft);}
.card-date{
  display:flex; align-items:center; gap:0.5rem;
  font-family:var(--mono); font-size:0.85rem; font-weight:600;
  padding-top:0.5rem; border-top:1px dashed rgba(22,32,44,0.18);
}
.card-date .dot{width:6px; height:6px; border-radius:50%; background:var(--bag-red);}

/* ============ DETAIL PAGE ============ */
.detail-hero{
  background:var(--navy); color:var(--paper);
  padding:clamp(2rem,5vw,3.2rem) clamp(1.2rem,4vw,3rem) 0;
}
.back-link{
  display:inline-flex; align-items:center; gap:0.4rem;
  font-family:var(--mono); font-size:0.78rem; letter-spacing:0.04em;
  text-decoration:none; color:var(--plywood-2); cursor:pointer; margin-bottom:1.4rem;
}
.back-link:hover{color:var(--chalk-yellow);}
.detail-hero-inner{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:auto 1fr; gap:2rem; align-items:center;
  padding-bottom:2.2rem;
}
.detail-logo{
  width:240px; flex:none;
  border-radius:12px; overflow:hidden;
  border:1px solid var(--line-dark);
  box-shadow:0 10px 26px rgba(0,0,0,0.35);
}
.detail-logo svg, .detail-logo img{width:100%; height:auto; display:block;}
.detail-stop{font-family:var(--mono); font-size:0.78rem; letter-spacing:0.1em; color:var(--chalk-yellow); text-transform:uppercase;}
.detail-hero h1{font-size:clamp(2.1rem,5vw,3.4rem); text-transform:uppercase; margin-top:0.3rem;}
.detail-meta{
  display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1rem;
  font-family:var(--mono); font-size:0.85rem; color:var(--plywood);
}
.detail-meta span{display:flex; align-items:center; gap:0.4rem;}
.detail-meta .ico{width:8px; height:8px; border-radius:50%; background:var(--turf-green);}

.quickfacts{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:1px; background:var(--line-dark);
  border-top:1px solid var(--line-dark);
  margin-top:1.6rem;
}
.quickfact{background:var(--navy); padding:1rem 1.4rem;}
.quickfact .label{font-family:var(--mono); font-size:0.65rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--plywood-2);}
.quickfact .value{font-family:var(--display); font-size:1.5rem; font-weight:700; color:var(--paper); margin-top:0.15rem;}

.capacity{
  max-width:1180px; margin:0 auto; padding:1.1rem clamp(1.2rem,4vw,3rem) 1.6rem;
  display:grid; grid-template-columns:1fr 1fr; gap:1.6rem;
}
.capacity-block{}
.capacity-head{
  display:flex; justify-content:space-between; align-items:baseline;
  font-family:var(--mono); font-size:0.78rem; letter-spacing:0.03em; text-transform:uppercase;
  color:var(--plywood-2); margin-bottom:0.5rem;
}
.capacity-head span:first-child{color:var(--chalk-yellow);}
.capacity-bar{
  width:100%; height:8px; border-radius:999px; background:rgba(247,242,228,0.12); overflow:hidden;
}
.capacity-fill{height:100%; border-radius:999px; transition:width 0.3s ease;}
.capacity-breakdown{
  margin-top:0.6rem; font-size:0.85rem; color:var(--plywood);
}
@media (max-width:640px){ .capacity{grid-template-columns:1fr;} }

/* sub nav */
.subnav{
  position:sticky; top:0; z-index:40;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  display:flex; gap:0.3rem; overflow-x:auto;
  padding:0 clamp(1.2rem,4vw,3rem);
}
.subnav-inner{display:flex; gap:0.3rem; max-width:1180px; margin:0 auto; width:100%;}
.subnav a{
  text-decoration:none;
  padding:0.9rem 0.9rem 0.8rem;
  font-family:var(--mono); font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:2.5px solid transparent;
  white-space:nowrap;
}
.subnav a:hover{color:var(--ink);}
.subnav a.cta-inline{color:var(--bag-red); font-weight:600;}

.detail-body{max-width:1180px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem);}
.detail-section{
  padding:clamp(2.6rem,5vw,3.6rem) 0;
  border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:220px 1fr; gap:2.4rem;
}
.detail-section:last-of-type{border-bottom:none;}
.detail-section .col-label{}
.detail-section .col-label .eyebrow{color:var(--bag-red);}
.detail-section .col-label h2{font-size:1.9rem; text-transform:uppercase; margin-top:0.4rem;}
.detail-section .col-content p{line-height:1.65; color:var(--ink); max-width:66ch;}
.detail-section .col-content p + p{margin-top:0.9rem;}

.venue-address{
  margin-top:1rem; padding:1rem 1.2rem; background:var(--plywood); border-radius:10px;
}
.venue-name{font-family:var(--display); font-weight:700; font-size:1.15rem; text-transform:uppercase;}
.venue-street{font-family:var(--mono); font-size:0.92rem; color:var(--ink-soft); margin-top:0.2rem;}
.venue-links{display:flex; gap:1rem; margin-top:0.8rem; flex-wrap:wrap;}
.venue-links a{
  font-family:var(--mono); font-size:0.82rem; color:var(--bag-red); text-decoration:none;
  border-bottom:1px solid currentColor;
}
.venue-links a:hover{color:var(--bag-red-dark);}

.map-embed{
  margin-top:1.3rem;
  border-radius:var(--radius-board);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  position:relative;
}
.map-caption{
  display:block;
  font-family:var(--mono);
  font-size:0.68rem;
  letter-spacing:0.03em;
  color:var(--ink-soft);
  background:var(--plywood);
  padding:0.55rem 0.9rem;
  border-bottom:1px solid var(--line);
}
.map-embed iframe{display:block;}

.info-list{list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:0.7rem;}
.info-list li{
  display:flex; gap:0.7rem; align-items:flex-start;
  font-size:0.98rem; line-height:1.5;
}
.info-list li::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--turf-green);
  margin-top:0.5rem; flex:none;
}

.hotel-cards{display:grid; gap:0.9rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin-top:1.2rem;}
.hotel-card{
  display:block; border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem;
  background:var(--plywood); text-decoration:none; color:var(--ink);
  transition:transform 0.15s ease, box-shadow 0.15s ease;
}
a.hotel-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-soft);}
.hotel-card .hotel-name{font-family:var(--display); font-weight:700; font-size:1.1rem; text-transform:uppercase;}
.hotel-card .hotel-address{font-family:var(--mono); font-size:0.78rem; color:var(--ink-soft); margin-top:0.3rem;}
.hotel-card .hotel-dist{font-family:var(--mono); font-size:0.75rem; color:var(--ink-soft); margin-top:0.2rem;}
.hotel-card .hotel-note{font-size:0.85rem; margin-top:0.5rem; color:var(--ink-soft);}

.fee-table{width:100%; border-collapse:collapse; margin-top:1.2rem; font-size:0.95rem;}
.fee-table th, .fee-table td{text-align:left; padding:0.75rem 0.9rem; border-bottom:1px solid var(--line);}
.fee-table th{font-family:var(--mono); font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}
.fee-table td.price{font-family:var(--display); font-weight:700; font-size:1.2rem;}
.fee-note{
  margin-top:1.1rem; padding:0.9rem 1.1rem; background:rgba(62,107,82,0.12);
  border-left:3px solid var(--turf-green); border-radius:0 8px 8px 0; font-size:0.92rem; line-height:1.5;
}

/* Footer */
.site-footer{
  background:var(--ink); color:var(--plywood-2);
  padding:2.2rem clamp(1.2rem,4vw,3rem);
  font-family:var(--mono); font-size:0.78rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.8rem;
  border-top:1px solid var(--line-dark);
}
.footer-legal{display:flex; gap:1rem;}
.footer-legal a{color:var(--plywood-2); text-decoration:none;}
.footer-legal a:hover{color:var(--paper); text-decoration:underline;}

@media (max-width:760px){
  .detail-hero-inner{grid-template-columns:1fr; text-align:left;}
  .detail-logo{width:160px;}
  .detail-section{grid-template-columns:1fr; gap:0.9rem;}
}

/* ============ PHP-ERGÄNZUNGEN ============ */
a.card{text-decoration:none; color:inherit;}
.card-logo-wrap img, .detail-logo img{aspect-ratio:190/120; object-fit:contain; background:var(--plywood);}
.header-nav{justify-content:flex-start;}
.nav-links{display:flex; gap:1.4rem;}
.site-header .brand-year{color:var(--chalk-yellow);}
.accent-0{--accent:#C4432B;} .accent-1{--accent:#3E6B52;} .accent-2{--accent:#EFB93E;} .accent-3{--accent:#28394D;}
.ph-logo .ph-frame{fill:#EBE1C8; stroke:var(--accent); stroke-width:3;}
.ph-logo .ph-ring{fill:var(--accent); fill-opacity:.16; stroke:var(--accent); stroke-width:3;}
.ph-logo .ph-num, .ph-logo .ph-sub{fill:var(--accent); font-family:var(--mono); font-weight:600;}
.ph-logo .ph-land{fill:#16202C; font-family:var(--display); font-weight:700;}
.germany-map .map-pin{text-decoration:none;}
.col-content .prose p{line-height:1.65; max-width:66ch; margin:0;}
.col-content .prose p + p, .prose p + ul, .prose ul + p{margin-top:.9rem;}
.prose ul{padding-left:1.2rem; line-height:1.6;}
.prose h3{font-size:1.25rem; text-transform:uppercase; margin:1.2rem 0 .4rem;}
.prose a, .legal-text a{color:var(--bag-red);}
mark.ph{background:#fff3a8; color:#16202C; padding:0 .2em; border-radius:3px;}
.reg-section{background:var(--navy); color:var(--paper); padding:clamp(3rem,6vw,4.5rem) clamp(1.2rem,4vw,3rem); scroll-margin-top:60px;}
.reg-inner{max-width:760px; margin:0 auto;}
.reg-inner .eyebrow{color:var(--chalk-yellow);}
.reg-inner h2{font-size:clamp(2rem,5vw,2.8rem); text-transform:uppercase; margin-top:.4rem;}
.reg-inner p{color:var(--plywood); margin-top:.8rem; max-width:56ch; line-height:1.55;}
.reg-inner .btn{margin-top:1.2rem;}
.reg-closed-notice{margin-top:1.3rem; padding:1.2rem 1.4rem; background:var(--navy-2); border:1px solid var(--line-dark); border-radius:10px;}
.reg-closed-notice strong{font-family:var(--display); font-size:1.1rem; text-transform:uppercase; margin-left:.5rem;}
.reg-closed-dot{width:9px; height:9px; border-radius:50%; display:inline-block; vertical-align:middle; background:var(--status-color);}
.reg-closed-notice p{margin-top:.6rem;}
.map-consent{display:flex; flex-direction:column; align-items:flex-start; gap:.7rem; padding:1.2rem; background:var(--plywood); min-height:200px; justify-content:center;}
.map-consent p{margin:0; font-size:.88rem; color:var(--ink-soft); max-width:60ch; line-height:1.5;}
.map-consent .btn{background:var(--navy); color:var(--paper);}
.pager{display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; max-width:1180px; margin:0 auto; padding:1.6rem clamp(1.2rem,4vw,3rem) 2.4rem; font-family:var(--mono); font-size:.82rem;}
.pager a{color:var(--bag-red); text-decoration:none; border-bottom:1px solid currentColor;}
.page-wrap{max-width:820px; margin:0 auto; padding:clamp(2.4rem,6vw,4rem) clamp(1.2rem,4vw,3rem);}
.page-wrap h1{font-size:clamp(2rem,5vw,3rem); text-transform:uppercase; margin-bottom:1.2rem;}
.notfound{text-align:center;}
.draft-banner{background:var(--chalk-yellow); color:var(--ink); font-family:var(--mono); font-size:.8rem; text-align:center; padding:.5rem 1rem;}
.admin-bar{background:var(--bag-red); color:var(--paper); font-family:var(--mono); font-size:.78rem; padding:.4rem clamp(1.2rem,4vw,3rem); display:flex; gap:1rem; justify-content:space-between;}
.admin-bar a{color:inherit;}
.footer-legal{flex-wrap:wrap;}
.detail-meta .nowrap{white-space:nowrap;}
.status-legend i.lg-offen,.overview-dot.st-offen,.reg-closed-dot.st-offen,.strip-dot.st-offen{--status-color:var(--turf-green);}
.status-legend i.lg-bald,.overview-dot.st-bald,.reg-closed-dot.st-bald,.strip-dot.st-bald{--status-color:var(--chalk-yellow);}
.status-legend i.lg-geschlossen,.overview-dot.st-geschlossen,.reg-closed-dot.st-geschlossen,.strip-dot.st-geschlossen{--status-color:var(--bag-red);}
.status-legend i{background:currentColor;}
.status-legend i.lg-offen{color:var(--turf-green);} .status-legend i.lg-bald{color:var(--chalk-yellow);} .status-legend i.lg-geschlossen{color:var(--bag-red);}
.card-status.st-offen{--status-color:var(--turf-green);} .card-status.st-bald{--status-color:var(--chalk-yellow);} .card-status.st-geschlossen{--status-color:var(--bag-red);}
.strip-dot.st-offen{border-color:var(--turf-green);} .strip-dot.st-bald{border-color:var(--chalk-yellow);} .strip-dot.st-geschlossen{border-color:var(--bag-red);}
.ico.st-offen{background:var(--turf-green)!important;} .ico.st-bald{background:var(--chalk-yellow)!important;} .ico.st-geschlossen{background:var(--bag-red)!important;}
.capacity-fill{background:var(--chalk-yellow);}
.hero h1 em{font-style:normal;}
.card-bag{position:absolute; top:-6px; right:38%; width:16px; height:16px; border-radius:4px; opacity:0; transform:translateY(-6px) rotate(0deg); transition:opacity .25s ease, transform .35s cubic-bezier(.34,1.56,.64,1); z-index:2; background:var(--accent);}
.card:hover .card-bag,.card:focus-visible .card-bag{opacity:1; transform:translateY(10px) rotate(35deg);}
.brand-name{font-size:1.4rem;}
.quickfact .value.value-sm{font-size:1.15rem;}
.reg-buttons{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem;}.reg-buttons .btn{margin-top:0;}
