/* ==============================================================
   kontakt.css  ·  Besitzer: P6 Kontakt, Formular, Tuerschild
   v4 „Passer“ (25.09.2026). Altbestand aus v3 (.closer .tel-gross
   .kontakt-grid .chan …) ist zurueckgebaut; keine andere Datei nutzt ihn.

   1 K30 Kontaktblock (includes/kontaktblock.php, auf fast jeder Seite)
     Flaeche Wash. Links Ueberschrift + Besuch-Karte (Tuerschild, Telefon
     in Gross-Stufe, Adresse mit Parkhinweis, Zeiten in Mono, Mail).
     Rechts das Formular als Leuchtkasten-Karte mit Cyan-Oberkante
     (Platte der Buehne: Gewerbe = Magenta).
   2 Kontaktseite (kontakt.php, Plan 11.7): Hero mit Ladenfoto-Bogen und
     grossem Tuerschild, Kontaktwege als ruhige Zeilen, Anfahrt mit
     Rundgang, Karten-Platzhalter (K34) und Parken (4 Moeglichkeiten).
   Umbrueche nur fuer die Spaltenzahl (Plan 7): 48rem, 56rem, 60rem.
   ============================================================== */

/* ---- 1 Kontaktblock ------------------------------------------- */
.kb-raster{display:grid;gap:clamp(2rem, 1.2rem + 3vw, 3.5rem) var(--gut);align-items:start}
.kb-raster > *{min-width:0}
@media (min-width:56rem){
  .kb-raster{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
}
.kb-links h2{max-width:20ch}
.kb-text{margin:0;max-width:52ch;color:var(--muted)}

.kb-besuch{
  container-type:inline-size;
  display:grid;gap:1.3rem;margin-top:clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem);
  padding:clamp(1.2rem, .9rem + 1.5vw, 1.9rem);
  background-color:var(--flaeche-licht);border-radius:var(--r-karte);box-shadow:var(--sh-1);
}
.kb-besuch > *{min-width:0}
.kb-besuch .tuerschild{margin-top:calc(var(--schnur) + 4px)}

/* Telefon in Gross-Stufe (Plan 6: 2,4-4,75rem), in der Karte zusaetzlich
   an deren Breite gebunden, damit die Nummer nie umbricht oder ueberlaeuft. */
.kb-tel{display:grid;gap:.3rem;justify-items:start;text-decoration:none;color:var(--text);width:fit-content;max-width:100%}
.tel-lab{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--schrift-titel);font-weight:620;font-stretch:96%;
  font-size:.875rem;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
}
.tel-lab svg{flex:0 0 auto;color:var(--accent-text)}
.tel-num{
  display:block;white-space:nowrap;
  font-family:var(--schrift-titel);font-weight:780;font-stretch:88%;
  font-size:min(clamp(2.4rem, 1.6rem + 3.4vw, 4.75rem), 10.4cqi);
  line-height:.95;letter-spacing:-.02em;
  text-decoration:underline;text-decoration-color:var(--line-2);text-decoration-thickness:3px;text-underline-offset:.14em;
  transition:text-decoration-color var(--t-kurz) var(--ease);
}
.kb-tel:hover .tel-num,.kb-tel:focus-visible .tel-num{text-decoration-color:var(--platte)}

.kb-daten{display:grid;gap:1rem;margin:0;padding-top:1.2rem;border-top:1px solid var(--line)}
.kb-daten > div{display:grid;gap:.2rem}
.kb-daten dt{
  font-family:var(--schrift-titel);font-weight:620;font-stretch:96%;
  font-size:.875rem;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
}
.kb-daten dd{margin:0;line-height:1.5}
.kb-adresse{font-style:normal;font-weight:560}
.kb-parken{margin:.25rem 0 0;font-size:.9375rem;line-height:1.45;color:var(--muted)}
.kb-parken a{display:inline-flex;align-items:center;min-height:24px}
.kb-zeiten{margin:0}
.kb-termin{margin:.25rem 0 0;font-size:.9375rem;line-height:1.45;color:var(--muted)}
.kb-mail{display:inline-flex;align-items:center;min-height:24px;font-weight:560;overflow-wrap:anywhere}

.kb-formular{
  position:relative;
  padding:clamp(1.4rem, 1rem + 2vw, 2.6rem);
  background-color:var(--flaeche-licht);border-radius:var(--r-karte);
  /* Cyan-Oberkante (Platte der Buehne) mit Magenta-Haarlinie darunter -
     als Rand + Schatten, nicht als Pseudo-Flaeche: sonst kann axe den
     Hintergrund der Felder nicht bestimmen (Kontrast "incomplete"). */
  border-top:6px solid var(--platte);
  box-shadow:inset 0 2px 0 var(--haar), var(--sh-2);
}
.ohne-deko .kb-formular{box-shadow:var(--sh-2)}
.kb-note{margin:0;color:var(--muted);max-width:56ch}
.kb-formular .formular{margin-top:1.2rem}
.kb-formular .hinweis{margin:0 0 1.2rem;max-width:none}
.kb-formular .btn{width:100%}
@media (min-width:36rem){ .kb-formular .btn{width:auto;justify-self:start} }
/* Pfeil ohne Text im Knopf (sonst waere Peters Knopftext nicht mehr wortgleich) */
.kb-formular .btn-1::after{content:"\2192";display:inline-block;transition:translate var(--t-kurz) var(--ease)}
@media (hover:hover) and (pointer:fine){ .kb-formular .btn-1:hover::after{translate:4px 0} }

/* ---- 2 Kontaktseite -------------------------------------------- */
/* 2a Hero: Text links, rechts Ladenfoto als Bogen, davor das grosse Tuerschild */
.kontakt-hero{padding-block:clamp(2.4rem, 1.6rem + 3vw, 4.4rem) clamp(2.4rem, 1.8rem + 2.5vw, 4rem)}
.kh-raster{display:grid;gap:clamp(2rem, 1.4rem + 2.5vw, 3.5rem) var(--gut);align-items:center}
.kh-raster > *{min-width:0}
@media (min-width:60rem){
  .kh-raster{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
}
.kh-text .lead{margin:0 0 1.8rem}
.kh-bild{position:relative}
.kh-bild .bogen{margin-bottom:0}
.kh-bild .tuerschild{position:relative;z-index:1;margin:-2.4rem 0 0 clamp(.8rem, 3vw, 2rem)}
@media (min-width:60rem){
  .kh-bild .tuerschild{margin-top:-4.2rem}
}

/* 2b Kontaktwege als ruhige Zeilen (Etikett links, grosser Wert rechts) */
.kw-liste{margin:clamp(1.4rem, 1rem + 1.5vw, 2.2rem) 0 0;padding:0;list-style:none}
.kw-zeile{display:grid;gap:.35rem 2rem;padding-block:1.3rem;border-top:1px solid var(--line)}
.kw-zeile:last-child{border-bottom:1px solid var(--line)}
.kw-zeile > *{min-width:0}
@media (min-width:48rem){
  .kw-zeile{grid-template-columns:13rem minmax(0,1fr);align-items:baseline}
}
.kw-zeile h3{
  margin:0;font-family:var(--schrift-titel);font-weight:620;font-stretch:96%;
  font-size:.875rem;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
}
.kw-zeile p,.kw-zeile address{margin:0;font-style:normal;line-height:1.7}
.kw-zeile address{font-size:clamp(1.0625rem, 1rem + .3vw, 1.2rem)}
.kw-parken,.kw-termin{margin:.4rem 0 0;color:var(--muted);font-size:.9375rem}
.kw-parken a{display:inline-flex;align-items:center;min-height:24px}
/* Telefon in Gross-Stufe; bleibt inline (Satz mit Telefax darunter) */
.gross-link{
  font-family:var(--schrift-titel);font-weight:780;font-stretch:88%;
  font-size:clamp(2rem, 1.2rem + 3.4vw, 4.75rem);line-height:1.15;letter-spacing:-.02em;
  color:var(--text);text-decoration-color:var(--line-2);text-decoration-thickness:3px;text-underline-offset:.14em;
  white-space:nowrap;
}
.gross-link:hover,.gross-link:focus-visible{text-decoration-color:var(--platte)}
.gross-link--mail{font-size:clamp(1.3rem, 1.1rem + .9vw, 1.9rem);font-weight:700;white-space:normal;overflow-wrap:anywhere}
.zeiten{width:auto;border-collapse:collapse;font-family:var(--schrift-mono);font-size:clamp(.9375rem, .9rem + .15vw, 1.0625rem);font-variant-numeric:tabular-nums}
.zeiten th{text-align:left;font-family:var(--schrift-titel);font-weight:620;font-stretch:96%;padding:.3rem 1.6rem .3rem 0;vertical-align:top;white-space:nowrap}
.zeiten td{padding:.3rem 0;color:var(--muted);line-height:1.6}

/* 2c Anfahrt: Rundgang gross, Karte, Parken */
.rundgang{
  display:grid;gap:1.2rem clamp(1.4rem, 1rem + 2vw, 2.4rem);align-items:center;
  margin:clamp(1.4rem, 1rem + 1.5vw, 2.2rem) 0 var(--abstand-klein);
  text-decoration:none;color:var(--text);
}
.rundgang > *{min-width:0}
@media (min-width:48rem){
  .rundgang{grid-template-columns:minmax(0,30rem) minmax(0,1fr)}
}
.rundgang-bild{
  position:relative;display:block;aspect-ratio:16/9;overflow:hidden;
  border-radius:var(--r-bogen);background-color:var(--schild);
  box-shadow:var(--versatz) var(--versatz) 0 var(--platte), var(--sh-2);
  margin:0 var(--versatz) var(--versatz) 0;
}
.rundgang-bild img{width:100%;height:100%;object-fit:cover}
.rundgang-play{
  position:absolute;left:50%;top:50%;translate:-50% -50%;
  display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;
  background-color:var(--knopf-fill);color:var(--on-knopf);box-shadow:4px 4px 0 var(--haar);
  transition:scale var(--t-kurz) var(--ease);
}
@media (hover:hover) and (pointer:fine){
  .rundgang:hover .rundgang-play{scale:1.08}
  .rundgang:hover .rundgang-h{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
}
.rundgang:focus-visible{outline:3px solid var(--fokus);outline-offset:6px;border-radius:var(--r-bogen)}
.rundgang-text{display:grid;gap:.4rem}
.rundgang-k{
  font-family:var(--schrift-titel);font-weight:620;font-stretch:96%;
  font-size:.875rem;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);
}
.rundgang-h{font-family:var(--schrift-titel);font-weight:720;font-stretch:92%;font-size:clamp(1.3rem, 1.15rem + .6vw, 1.7rem);line-height:1.15}
.rundgang-p{color:var(--muted);max-width:44ch}

/* K34 Karten-Platzhalter: Rahmen und Seitenverhaeltnis hier, die Flaeche
   selbst in cookie-consent/pl-consent.css (.pl-embed, Ladenschild-Tokens). */
.karte-rahmen{margin:0 0 var(--abstand-klein)}
.karte-rahmen .pl-embed{width:100%;aspect-ratio:16/9;min-height:18rem}
@media (min-width:48rem){ .karte-rahmen .pl-embed{aspect-ratio:21/9} }
.karte-rahmen iframe{width:100%;height:100%;border:0;display:block}

.parken{margin:0}
.parken h3{margin:0 0 .8rem}
.parken-direkt,.parken-liste li{
  display:grid;gap:.25rem 1.4rem;align-items:baseline;
  padding:1rem 1.2rem;background-color:var(--flaeche-licht);border-radius:var(--r-chip);box-shadow:var(--sh-1);
}
.parken-direkt{margin:0 0 clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem);border-left:4px solid var(--platte)}
.parken-liste{list-style:none;margin:0 0 .9rem;padding:0;display:grid;gap:.6rem}
@media (min-width:48rem){
  .parken-direkt,.parken-liste li{grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) auto}
}
.pk-ort{font-family:var(--schrift-titel);font-weight:650;font-stretch:96%}
.pk-info{color:var(--muted)}
.pk-weg{font-family:var(--schrift-mono);font-size:.9375rem;color:var(--accent-text);white-space:nowrap}
.kb-nobr{white-space:nowrap}
.kb-allein{container-type:inline-size;margin-top:clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem)}
/* sr-only-Zusatz ("neuer Tab") im Knopf verankern, sonst steht der 1-px-Kasten ausserhalb */
.kontakt-hero .btn{position:relative}
.kb-note + .hinweis{margin-top:1.2rem}
/* Einspaltig (unter 56rem) stehen Karte und Formular untereinander: der
   Block wird lang (Laengenbudget Plan 7) - darum dort die kleine Abstandsstufe
   und dichtere Karte. Haengt an der Spaltenzahl, nicht an einer Groesse. */
@media (max-width:55.99rem){
  .kontaktblock.kapitel{padding-block:var(--abstand-klein)}
  .kb-besuch{gap:1rem;margin-top:1.4rem}
  .kb-daten{gap:.8rem;padding-top:1rem}
  .kb-formular .formular{gap:.9rem}
  .kb-formular .feld textarea{min-height:7rem}
}
/* K34 ohne JavaScript: Adresse + Routenlink statt leerer Flaeche */
.pl-embed__ohne-js{position:absolute;inset:0;display:grid;place-content:center;gap:.4rem;margin:0;padding:1.4rem;text-align:center;
  font-family:var(--schrift-titel);font-weight:640;font-size:1.125rem;line-height:1.5}
.pl-embed__ohne-js a{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:44px;color:var(--accent-text)}

/* ---- Nachbesserung 25.09.2026 (Jury Befunde 12, 13) -------------------- */
.kontakt-hero .brotkrumen{padding:0;margin:0 0 clamp(1.25rem, 1rem + 1.2vw, 2.25rem)}
.kontakt-hero .kicker{hyphens:manual}
.kh-wege{display:flex;flex-wrap:wrap;gap:.25rem 1.6rem;margin:1rem 0 0}
.kh-link{
  display:inline-flex;align-items:center;gap:.35rem;min-height:44px;
  font-family:var(--schrift-titel);font-weight:640;font-stretch:96%;font-size:1.0625rem;line-height:1.2;
  color:var(--accent-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;
}
.kh-link:hover{text-decoration-thickness:2px}
