/*
Theme Name: TV Velden Tennis Child
Theme URI: https://tvvelden-tennis.at/
Description: Child Theme für die moderne One-Page-Website der Sektion Tennis des Veldener Turn- und Sportvereins.
Author: TV Velden Tennis
Template: blocksy
 Version: 1.9.26
Text Domain: tv-velden-tennis
*/
/* WordPress-News: dynamische Beiträge in der Court-Modernism-Systematik. */
.tvvt-news { background:linear-gradient(145deg,var(--tvvt-blue) 0%,#173d5c 100%); color:#fff; overflow:hidden; }
.tvvt-news::before { content:""; position:absolute; width:34rem; height:34rem; border:1px solid rgba(255,255,255,.09); border-radius:50%; right:-16rem; top:-17rem; pointer-events:none; }
.tvvt-news .tvvt-wrap { position:relative; }
.tvvt-news-head { display:flex; justify-content:space-between; gap:3rem; align-items:end; margin-bottom:2.6rem; }
.tvvt-news .tvvt-eyebrow { color:var(--tvvt-clay-light); }
.tvvt-news .tvvt-title { color:#fff; }
.tvvt-news-head p { width:min(24rem,100%); margin:0 0 .5rem; color:rgba(255,255,255,.72); font-size:1.05rem; line-height:1.55; }
.tvvt-news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.tvvt-news-card { min-width:0; overflow:hidden; background:rgba(255,255,255,.96); color:var(--tvvt-ink); box-shadow:0 1.4rem 3rem rgba(0,0,0,.18); transition:transform .24s var(--ease-out,cubic-bezier(.23,1,.32,1)),box-shadow .24s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-news-card:hover { transform:translateY(-.35rem); box-shadow:0 1.8rem 3.4rem rgba(0,0,0,.24); }
.tvvt-news-empty { grid-column:1/-1; display:flex; align-items:center; gap:1.25rem; padding:1.5rem; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#fff; }
.tvvt-news-empty-mark { display:grid; flex:0 0 auto; width:3.5rem; height:3.5rem; place-items:center; background:var(--tvvt-clay); font:700 1.25rem 'Oswald',sans-serif; letter-spacing:.02em; }
.tvvt-news-empty h3 { margin:0 0 .25rem; font:700 1.35rem 'Oswald',sans-serif; text-transform:uppercase; }
.tvvt-news-empty p { margin:0; color:rgba(255,255,255,.76); line-height:1.5; }
.tvvt-news-image { display:block; height:13rem; overflow:hidden; background:var(--tvvt-clay); }
.tvvt-news-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-news-card:hover .tvvt-news-image img { transform:scale(1.045); }
.tvvt-news-image--fallback { display:grid; place-items:center; background:linear-gradient(135deg,var(--tvvt-clay),var(--tvvt-clay-light)); color:#fff; font:700 clamp(2.7rem,7vw,4.2rem)/1 'Oswald',sans-serif; letter-spacing:-.04em; }
.tvvt-news-card-body { padding:1.35rem 1.35rem 1.45rem; }
.tvvt-news-card time { display:block; margin-bottom:.7rem; color:var(--tvvt-clay); font:700 .73rem 'Oswald',sans-serif; letter-spacing:.09em; text-transform:uppercase; }
.tvvt-news-card h3 { margin:0 0 .65rem; font:700 clamp(1.4rem,2vw,1.75rem)/1.02 'Oswald',sans-serif; text-transform:uppercase; }
.tvvt-news-card h3 a { color:inherit; text-decoration:none; }
.tvvt-news-card p { margin:0 0 1rem; color:rgba(28,28,30,.72); font-size:.98rem; line-height:1.55; }
.tvvt-news-link,.tvvt-news-archive a { display:inline-flex; gap:.45rem; align-items:center; color:var(--tvvt-clay); font:700 .84rem 'Oswald',sans-serif; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; }
.tvvt-news-link span,.tvvt-news-archive span { transition:transform .18s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-news-link:hover span,.tvvt-news-archive a:hover span { transform:translateX(.22rem); }
.tvvt-news-archive { margin:2rem 0 0; text-align:right; }
.tvvt-news-archive a { color:#fff; padding-bottom:.25rem; border-bottom:1px solid rgba(255,255,255,.5); }
@media(max-width:780px) { .tvvt-news-head { display:block; margin-bottom:1.7rem; } .tvvt-news-head p { margin-top:1rem; } .tvvt-news-grid { grid-template-columns:1fr; gap:1rem; } .tvvt-news-image { height:12.5rem; } .tvvt-news-card-body { padding:1.2rem; } .tvvt-news-empty { align-items:flex-start; } }

/* Aktuelles: eine ruhige, redaktionelle Lesefläche vor dem visuellen Instagram-Feed. */
.tvvt-news { background:var(--tvvt-cream); color:var(--tvvt-blue); }
.tvvt-news::before { display:none; }
.tvvt-news .tvvt-eyebrow { color:var(--tvvt-clay); }
.tvvt-news .tvvt-title { color:var(--tvvt-blue); }
.tvvt-news-head { align-items:end; margin-bottom:2rem; }
.tvvt-news-head p { max-width:22rem; color:rgba(15,41,66,.68); font-size:.98rem; }
.tvvt-news-grid { gap:1rem; }
.tvvt-news-card { border:1px solid rgba(15,41,66,.13); border-radius:.72rem; background:#fff; box-shadow:none; }
.tvvt-news-card:hover { box-shadow:0 1rem 2rem rgba(15,41,66,.1); }
.tvvt-news-image { height:10.5rem; background:var(--tvvt-blue); }
.tvvt-news-card-body { padding:1.05rem 1.1rem 1.15rem; }
.tvvt-news-card time { margin-bottom:.5rem; font-size:.68rem; }
.tvvt-news-card h3 { margin-bottom:.45rem; font-size:clamp(1.22rem,1.7vw,1.5rem); }
.tvvt-news-card p { margin-bottom:.75rem; font-size:.9rem; line-height:1.48; }
.tvvt-news-archive { margin-top:1.35rem; }
.tvvt-news-archive a { border:0; padding:0; color:var(--tvvt-blue); }
.tvvt-news-empty { border-color:rgba(15,41,66,.15); background:#fff; color:var(--tvvt-blue); }
.tvvt-news-empty p { color:rgba(15,41,66,.68); }
@media(max-width:780px) { .tvvt-news-head { margin-bottom:1.45rem; } .tvvt-news-image { height:10.75rem; } .tvvt-news-card-body { padding:1rem; } }

/* Aktuelles bleibt bewusst knapp; die Akzentlinie folgt der linken Trainingsüberschrift. */
.tvvt-news-head>p { display:none; }
.tvvt-news .tvvt-title::after { margin-right:auto; margin-left:0; }
.tvvt-news-archive-view { min-height:100vh; padding-top:3.5rem; background:var(--tvvt-cream); }
.tvvt-news-archive-view .tvvt-news { min-height:100vh; }
.tvvt-news-archive-view .tvvt-news-head { margin-bottom:2.25rem; }
.tvvt-news-archive-view .tvvt-news-card h2 { margin:0 0 .45rem; font:700 clamp(1.22rem,1.7vw,1.5rem)/1.02 'Oswald',sans-serif; text-transform:uppercase; }
.tvvt-news-archive-view .tvvt-news-card h2 a { color:inherit; text-decoration:none; }
.tvvt-news-pagination { display:flex; justify-content:center; margin-top:2rem; }
.tvvt-news-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem; margin:0; padding:0; list-style:none; }
.tvvt-news-pagination li { display:flex; }
.tvvt-news-pagination a,.tvvt-news-pagination .current { display:grid; width:2.45rem; height:2.45rem; place-items:center; border:1px solid rgba(15,41,66,.18); border-radius:50%; padding:0; background:#fff; color:var(--tvvt-blue); font:700 .78rem/1 'Oswald',sans-serif; letter-spacing:0; text-decoration:none; }
.tvvt-news-pagination a:hover,.tvvt-news-pagination .current { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
.tvvt-news-pagination .prev,.tvvt-news-pagination .next { width:auto; min-width:2.45rem; padding:0 .88rem; border-radius:999px; letter-spacing:.025em; }
.tvvt-news-pagination .dots { display:grid; width:1.45rem; height:2.45rem; place-items:center; color:rgba(15,41,66,.62); font-weight:700; letter-spacing:.08em; }

/* Beitragsansichten und -übersicht: sofort belastbarer Kontrast auf der hellen Lesefläche. */
.tvvt-site-header.tvvt-content-site-header,.tvvt-site-header.tvvt-content-site-header.is-scrolled { background:rgba(7,24,39,.96); box-shadow:0 .6rem 1.8rem rgba(3,11,19,.15); backdrop-filter:none; }
@media(max-width:900px) { .tvvt-site-header.tvvt-content-site-header { padding:.68rem 0; background:rgba(7,24,39,.98); } .tvvt-site-header.tvvt-content-site-header .tvvt-brand img { filter:drop-shadow(0 2px 8px rgba(0,0,0,.54)); } .tvvt-site-header.tvvt-content-site-header .tvvt-menu-toggle { border-color:rgba(255,255,255,.36); background:rgba(15,41,66,.92); box-shadow:0 8px 18px rgba(0,0,0,.24); } }

/* Customizer: Der Rechner ist unabhängig von den sichtbaren Platzpreisen schaltbar. */
body.tvvt-hide-price-calculator .tvvt-price-calculator,body.tvvt-hide-price-calculator .tvvt-price-calculator-trigger { display:none!important; }
.tvvt-post { min-height:100vh; padding:0 0 5rem; background:var(--tvvt-cream); color:var(--tvvt-blue); }
.tvvt-post-hero { padding:calc(7rem + env(safe-area-inset-top)) 0 3.2rem; background:linear-gradient(125deg,#071827,#0f2942 68%,#173c5f); color:#fff; }
.tvvt-post-hero-inner { max-width:55rem; }
.tvvt-post-back,.tvvt-post-footer a { display:inline-flex; align-items:center; gap:.45rem; color:inherit!important; font:.76rem/1 'Oswald','Arial Narrow',sans-serif; letter-spacing:.08em; text-decoration:none!important; text-transform:uppercase; }
.tvvt-post-back { margin-bottom:2.25rem; color:rgba(255,255,255,.76)!important; }
.tvvt-post-back:hover,.tvvt-post-back:focus-visible { color:#fff!important; transform:translateX(-.16rem); }
.tvvt-post-hero .tvvt-eyebrow { color:#ff9f7e; }
.tvvt-post-hero h1 { max-width:48rem; margin:.7rem 0 1rem; color:#fff; font-size:clamp(2.35rem,6vw,5.35rem); line-height:.95; text-transform:uppercase; }
.tvvt-post-meta { display:flex; flex-wrap:wrap; gap:.55rem; color:rgba(255,255,255,.72); font-size:.9rem; }
.tvvt-post-meta a { color:rgba(255,255,255,.92); text-decoration:none!important; }
.tvvt-post-layout { max-width:55rem; }
.tvvt-post-content { margin-top:-1.25rem; border:1px solid rgba(15,41,66,.12); border-radius:1rem; background:#fff; box-shadow:0 1.35rem 3rem rgba(15,41,66,.08); overflow:hidden; }
.tvvt-post-featured-image { margin:0; background:var(--tvvt-blue); }
.tvvt-post-featured-image img { display:block; width:100%; max-height:35rem; object-fit:cover; }
.tvvt-post-body { padding:clamp(1.4rem,4vw,3.25rem); color:rgba(15,41,66,.9); font-size:1.08rem; line-height:1.78; }
.tvvt-post-body>*:first-child { margin-top:0; }
.tvvt-post-body h2,.tvvt-post-body h3,.tvvt-post-body h4 { margin:2.1rem 0 .8rem; color:var(--tvvt-blue); font-family:'Oswald','Arial Narrow',sans-serif; line-height:1.08; text-transform:uppercase; }
.tvvt-post-body h2 { font-size:clamp(1.7rem,3vw,2.45rem); }
.tvvt-post-body h3 { font-size:1.55rem; }
.tvvt-post-body a { color:var(--tvvt-clay); text-decoration-thickness:1px; text-underline-offset:.18em; }
.tvvt-post-body img { height:auto; max-width:100%; border-radius:.65rem; }
.tvvt-post-body blockquote { margin:1.8rem 0; border-left:3px solid var(--tvvt-clay); padding:.25rem 0 .25rem 1rem; color:var(--tvvt-blue); font-family:'Oswald','Arial Narrow',sans-serif; font-size:1.25rem; }
.tvvt-post-footer { display:flex; justify-content:flex-start; border-top:1px solid rgba(15,41,66,.12); padding:1.2rem clamp(1.4rem,4vw,3.25rem); }
.tvvt-post-footer a { color:var(--tvvt-blue)!important; }
.tvvt-post-footer a:hover,.tvvt-post-footer a:focus-visible { color:var(--tvvt-clay)!important; transform:translateX(-.14rem); }
@media(max-width:780px) { .tvvt-post-hero { padding-top:6.15rem; padding-bottom:2.25rem; } .tvvt-post-back { margin-bottom:1.6rem; } .tvvt-post-hero h1 { font-size:clamp(2.25rem,11vw,3.6rem); } .tvvt-post-content { margin-top:-.75rem; border-radius:.72rem; } .tvvt-post-body { font-size:1rem; line-height:1.7; } .tvvt-post-featured-image img { max-height:17rem; } .tvvt-post-meta { font-size:.82rem; } }

/* Customizer: Drei performante Header- und Mobilmenüvarianten (nur CSS). */
body.tvvt-nav-glass .tvvt-site-header { background:rgba(7,24,39,.68); border-bottom:1px solid rgba(255,255,255,.14); box-shadow:0 16px 34px rgba(3,11,19,.16); }
body.tvvt-nav-glass .tvvt-site-header.is-scrolled { background:rgba(10,31,49,.9); }
body.tvvt-nav-glass .tvvt-primary-nav ul { gap:.38rem; padding:.22rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(255,255,255,.06); }
body.tvvt-nav-glass .tvvt-primary-nav a { border-radius:999px; padding:.46rem .72rem; }
body.tvvt-nav-glass .tvvt-primary-nav a::after { display:none; }
body.tvvt-nav-glass .tvvt-primary-nav a:hover { background:rgba(255,255,255,.12); transform:none; }
body.tvvt-nav-glass .tvvt-header-cta .tvvt-reserve { box-shadow:0 9px 24px rgba(240,56,0,.26); }

body.tvvt-nav-editorial .tvvt-site-header { border-bottom:2px solid var(--tvvt-clay); background:rgba(7,24,39,.82); box-shadow:none; backdrop-filter:none; }
body.tvvt-nav-editorial .tvvt-site-header.is-scrolled { background:var(--tvvt-blue); }
body.tvvt-nav-editorial .tvvt-primary-nav ul { gap:0; }
body.tvvt-nav-editorial .tvvt-primary-nav li + li { border-left:1px solid rgba(255,255,255,.16); }
body.tvvt-nav-editorial .tvvt-primary-nav a { padding:.45rem .74rem; font-size:.88rem; }
body.tvvt-nav-editorial .tvvt-primary-nav a::after { right:.74rem; bottom:.14rem; left:.74rem; height:2px; }
body.tvvt-nav-editorial .tvvt-header-cta .tvvt-reserve { border-radius:.42rem; box-shadow:none; }

@media(max-width:900px) {
  body.tvvt-nav-glass .tvvt-menu-toggle { border-color:rgba(255,255,255,.28); border-radius:1rem; background:rgba(7,24,39,.58); }
  body.tvvt-nav-glass .tvvt-mobile-panel { width:min(calc(100vw - 1.25rem),25rem); border:1px solid rgba(255,255,255,.14); border-right:0; border-radius:1.2rem 0 0 1.2rem; background:linear-gradient(160deg,rgba(18,52,78,.98),rgba(7,24,39,.99)); }
  body.tvvt-nav-glass .tvvt-mobile-panel::before { height:1px; background:rgba(255,255,255,.3); }
  body.tvvt-nav-glass .tvvt-mobile-nav a { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.035); }
  body.tvvt-nav-glass .tvvt-mobile-nav a::before { border-radius:2px; background:var(--tvvt-clay); }
  body.tvvt-nav-editorial .tvvt-menu-toggle { border:0; border-radius:.35rem; background:var(--tvvt-clay); box-shadow:none; backdrop-filter:none; }
  body.tvvt-nav-editorial .tvvt-mobile-panel { width:min(92vw,25rem); padding-left:1.45rem; background:#081d2f; }
  body.tvvt-nav-editorial .tvvt-mobile-panel::before { top:0; left:0; width:5px; height:100%; background:var(--tvvt-clay); }
  body.tvvt-nav-editorial .tvvt-mobile-nav ul { gap:0; }
  body.tvvt-nav-editorial .tvvt-mobile-nav li { border-bottom:1px solid rgba(255,255,255,.12); }
  body.tvvt-nav-editorial .tvvt-mobile-nav a { border-radius:0; padding-right:.25rem; padding-left:0; }
  body.tvvt-nav-editorial .tvvt-mobile-nav a::before { width:.32rem; height:.32rem; border-radius:0; }
  body.tvvt-nav-editorial .tvvt-mobile-social { border-top:0; }
}
@font-face { font-family:'Oswald'; src:url('assets/fonts/oswald-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Oswald'; src:url('assets/fonts/oswald-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Oswald'; src:url('assets/fonts/oswald-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('assets/fonts/source-sans-3-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('assets/fonts/source-sans-3-400-italic.ttf') format('truetype'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('assets/fonts/source-sans-3-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Source Sans 3'; src:url('assets/fonts/source-sans-3-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }

/* Absicherung gegen externe Theme-/Plugin-Ladezustände: Die TVV-Seite bleibt immer sichtbar. */
body.tvvt-site { display:block!important; }

:root { --tvvt-blue:#0f2942; --tvvt-blue-light:#1b3d5c; --tvvt-clay:#f03800; --tvvt-clay-light:#ff5a1f; --tvvt-orange-deep:#c83b0d; --tvvt-orange-soft:#fff1eb; --tvvt-cream:#f6f4ef; --tvvt-ink:#1c1c1e; --tvvt-gold:#d4a843; --tvvt-max:1200px; }
html { scroll-behavior:smooth; }
body.tvvt-site { margin:0; background:var(--tvvt-cream); color:var(--tvvt-ink); font-family:'Source Sans 3', 'Segoe UI', system-ui, sans-serif; }
body.tvvt-site *, body.tvvt-site *::before, body.tvvt-site *::after { box-sizing:border-box; }
body.tvvt-site h1,body.tvvt-site h2,body.tvvt-site h3,body.tvvt-site h4 { font-family:'Oswald', 'Arial Narrow', 'Aptos Narrow', sans-serif; letter-spacing:.035em; }
body.tvvt-site a { color:inherit; text-decoration:none; }
.tvvt-wrap { width:min(calc(100% - 2rem),var(--tvvt-max)); margin:0 auto; }
.tvvt-eyebrow { display:block; color:var(--tvvt-clay); font-size:.82rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.tvvt-title { margin:.5rem 0 0; color:var(--tvvt-blue); font-size:clamp(2.3rem,5vw,4rem); font-weight:700; line-height:1; text-transform:uppercase; }
.tvvt-title::after { content:''; display:block; width:4rem; height:4px; margin:1rem auto 0; background:var(--tvvt-clay); }
.tvvt-section { padding:6rem 0; }
.tvvt-section[id] { scroll-margin-top:0; }
.tvvt-section-head { margin:0 auto 3.75rem; max-width:42rem; text-align:center; }
.tvvt-site-header { position:fixed; z-index:50; top:0; right:0; left:0; padding:.75rem 0; background:rgba(7,24,39,.50); color:#fff; box-shadow:0 10px 30px rgba(3,11,19,.14); transition:background-color .25s ease,box-shadow .25s ease,padding .25s ease,opacity .2s ease; backdrop-filter:blur(10px); }
.tvvt-site-header.is-scrolled { padding:.5rem 0; background:rgba(15,41,66,.96); box-shadow:0 8px 25px rgba(5,15,25,.2); backdrop-filter:blur(12px); }
.tvvt-season-notice { position:fixed; z-index:55; top:0; right:0; left:0; background:var(--tvvt-clay); color:#fff; }
.tvvt-season-notice .tvvt-wrap { display:flex; align-items:center; justify-content:center; gap:1rem; min-height:2.2rem; font-size:.79rem; font-weight:700; letter-spacing:.035em; text-align:center; }
.tvvt-season-notice a { border-bottom:1px solid rgba(255,255,255,.65); color:#fff; font-size:.74rem; text-transform:uppercase; white-space:nowrap; }
body.tvvt-season-notice-active .tvvt-site-header { top:2.2rem; }
.tvvt-header-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.tvvt-brand img { display:block; width:auto; height:2.6rem; opacity:1; filter:drop-shadow(0 2px 8px rgba(0,0,0,.42)); transition:transform .2s ease; }
.tvvt-brand:hover img { transform:scale(1.035); }
.tvvt-primary-nav ul { display:flex; gap:.2rem; margin:0; padding:0; list-style:none; }
.tvvt-primary-nav a { position:relative; display:block; padding:.55rem .85rem; color:rgba(255,255,255,.9); font-size:.94rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; transition:color .2s ease,transform .2s ease; }
.tvvt-primary-nav a::after { position:absolute; right:.85rem; bottom:.3rem; left:.85rem; height:1px; background:var(--tvvt-clay); content:''; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.tvvt-primary-nav a:hover { color:#fff; transform:translateY(-1px); }
.tvvt-primary-nav a:hover::after { transform:scaleX(1); }
.tvvt-reserve { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:0; border-radius:999px; padding:.8rem 1.35rem; background:var(--tvvt-clay); color:#fff!important; font-family:'Oswald',sans-serif; font-size:.92rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; box-shadow:0 8px 22px rgba(240,56,0,.35); transition:transform .18s ease,background-color .18s ease; }
.tvvt-reserve-icon { display:block; width:1.05rem; height:1.05rem; flex:0 0 auto; }
.tvvt-reserve:hover { background:var(--tvvt-clay-light); transform:translateY(-2px); }
.tvvt-reserve:active { transform:scale(.97); }
.tvvt-reserve--pulse { animation:tvvt-pulse 2.5s ease-in-out infinite; }
@keyframes tvvt-pulse { 50% { box-shadow:0 0 0 14px rgba(240,56,0,0); } }
.tvvt-menu-toggle { display:none; border:0; padding:.55rem; background:transparent; color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; }
.tvvt-mobile-menu { position:fixed; z-index:70; inset:0; display:flex; justify-content:flex-end; visibility:hidden; background:rgba(5,15,25,.64); opacity:0; transition:opacity .25s ease,visibility .25s ease; backdrop-filter:blur(4px); }
.tvvt-mobile-menu.is-open { visibility:visible; opacity:1; }
.tvvt-mobile-panel { position:relative; display:flex; width:min(88vw,24rem); height:100%; flex-direction:column; overflow:hidden; padding:1.25rem 1.25rem 1.5rem; background:radial-gradient(circle at 100% 0,rgba(240,56,0,.22),transparent 32%),linear-gradient(160deg,#0b2034 0%,var(--tvvt-blue) 70%,#091a2a 100%); transform:translateX(100%); transition:transform .28s cubic-bezier(.23,1,.32,1); }
.tvvt-mobile-panel::before { position:absolute; top:0; left:0; width:100%; height:3px; background:var(--tvvt-clay); content:''; }
.tvvt-mobile-menu.is-open .tvvt-mobile-panel { transform:translateX(0); }
.tvvt-mobile-brand { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.tvvt-mobile-brand img { display:block; width:auto; height:2.8rem; }
.tvvt-mobile-close { display:grid; width:2.5rem; height:2.5rem; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:50%; padding:0; background:rgba(255,255,255,.06); color:#fff; font-size:1.45rem; line-height:1; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.tvvt-mobile-close:hover { border-color:var(--tvvt-clay); background:rgba(255,255,255,.12); transform:scale(.97); }
.tvvt-mobile-nav { margin-top:1.7rem; }
.tvvt-mobile-nav ul { margin:0; padding:0; list-style:none; }
.tvvt-mobile-nav a { display:flex; align-items:center; gap:.9rem; border-radius:1rem; padding:.82rem .65rem; color:rgba(255,255,255,.92); font-family:'Oswald',sans-serif; font-size:1.32rem; letter-spacing:.06em; text-transform:uppercase; transition:background .2s ease,color .2s ease,transform .2s ease; }
.tvvt-mobile-nav a::before { width:.48rem; height:.48rem; flex:0 0 auto; border:1px solid rgba(240,56,0,.45); border-radius:50%; background:var(--tvvt-clay); box-shadow:0 0 8px rgba(240,56,0,.2); content:''; transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.tvvt-mobile-nav a[data-external]::after { margin-left:auto; color:rgba(255,255,255,.45); content:'↗'; font-family:'Source Sans 3',sans-serif; font-size:1rem; }
.tvvt-mobile-nav a:hover { background:rgba(255,255,255,.08); color:#fff; transform:translateX(.2rem); }
.tvvt-mobile-nav a:hover::before { width:.48rem; transform:scale(1.18); border-color:var(--tvvt-clay-light); background:var(--tvvt-clay-light); }
.tvvt-mobile-social { margin-top:auto; border-top:1px solid rgba(255,255,255,.1); padding-top:1.1rem; }
.tvvt-mobile-social p { margin:0 0 .7rem; color:rgba(255,255,255,.45); font-size:.65rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.tvvt-mobile-social>div { display:flex; gap:.55rem; }
.tvvt-mobile-social a { display:inline-flex; align-items:center; gap:.42rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:.48rem .75rem; color:#fff; font-size:.78rem; font-weight:600; transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }
.tvvt-mobile-social-icon { width:1rem; height:1rem; flex:0 0 1rem; color:currentColor; }
.tvvt-mobile-social a:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
body.tvvt-menu-open { overflow:hidden; }
body.tvvt-menu-open .tvvt-site-header { pointer-events:none; opacity:0; }
@media(max-width:900px) { .tvvt-site-header { background:transparent; box-shadow:none; backdrop-filter:none; } .tvvt-site-header.is-scrolled { background:rgba(15,41,66,.96); box-shadow:0 8px 25px rgba(5,15,25,.2); backdrop-filter:blur(12px); } .tvvt-mobile-nav a { gap:.7rem; } .tvvt-mobile-nav a::before { width:.38rem; height:.38rem; border:0; border-radius:50%; background:rgba(240,56,0,.68); box-shadow:none; } .tvvt-mobile-nav a:hover::before { width:.38rem; transform:scale(1.1); background:var(--tvvt-clay-light); } }
.tvvt-hero { position:relative; display:grid; min-height:100svh; place-items:center; overflow:hidden; background:var(--tvvt-blue); color:#fff; isolation:isolate; }
.tvvt-hero::before { position:absolute; z-index:-3; inset:0; content:''; background-color:var(--tvvt-blue); background-image:linear-gradient(98deg,#071827 0%,#071827 23%,rgba(7,24,39,.94) 35%,rgba(7,24,39,.69) 49%,rgba(7,24,39,.28) 65%,rgba(5,18,30,.4) 100%),linear-gradient(0deg,rgba(5,18,30,.9) 0%,rgba(5,18,30,.23) 39%,rgba(5,18,30,.04) 70%,rgba(5,18,30,.24) 100%),var(--tvvt-hero-image); background-position:center,center,68% 46%; background-repeat:no-repeat; background-size:100% 100%,100% 100%,cover; transform:none; animation:none; }
.tvvt-hero::after { position:absolute; z-index:-2; inset:0; display:block; pointer-events:none; content:''; background:radial-gradient(ellipse 62% 56% at 83% 18%,rgba(240,56,0,.24),transparent 62%),radial-gradient(ellipse 42% 42% at 72% 84%,rgba(255,167,103,.12),transparent 70%),linear-gradient(90deg,rgba(7,24,39,.28) 0%,transparent 45%,rgba(240,56,0,.08) 76%,rgba(7,24,39,.32) 100%); mix-blend-mode:screen; opacity:.8; }
.tvvt-hero-court { display:none; }
.tvvt-hero-court::before,.tvvt-hero-court::after { display:none; }
.tvvt-hero-content { position:relative; max-width:68rem; padding:10rem 1rem 3.25rem; text-align:left; }
.tvvt-hero-content::before { display:none; }
.tvvt-hero-kicker { display:none; }
.tvvt-hero-kicker::before { width:2.5rem; height:1px; border-radius:0; background:var(--tvvt-clay); box-shadow:none; content:''; }
.tvvt-hero h1 { margin:0; color:#fff; font-size:clamp(3.85rem,7.5vw,7rem); font-weight:700; letter-spacing:-.02em; line-height:.88; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.18); }
.tvvt-hero h1 span { display:block; margin-top:.24em; color:var(--tvvt-clay); text-shadow:0 10px 28px rgba(89,23,14,.35); }
.tvvt-hero-subtitle { max-width:34rem; margin:2.5rem 0 0; color:rgba(255,255,255,.88); font-size:clamp(1.08rem,2vw,1.35rem); line-height:1.5; text-shadow:0 2px 14px rgba(0,0,0,.2); }
.tvvt-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; margin-top:1.7rem; }
.tvvt-hero-actions .tvvt-reserve { margin:0; }
.tvvt-hero-secondary { display:inline-flex; align-items:center; gap:.4rem; border:1px solid rgba(255,255,255,.38); border-radius:999px; padding:.74rem 1rem; color:#fff!important; font:600 .84rem 'Oswald',sans-serif; letter-spacing:.055em; text-transform:uppercase; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.tvvt-hero-secondary:hover { border-color:#fff; background:rgba(255,255,255,.13); transform:translateY(-2px); }
.tvvt-hero-note { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:.85rem; margin-top:1.1rem; color:rgba(255,255,255,.68); font-size:.72rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }
.tvvt-hero-note span { display:inline-flex; align-items:center; gap:.45rem; }
.tvvt-hero-note span::before { width:.25rem; height:.25rem; border-radius:50%; background:var(--tvvt-clay); content:''; }
.tvvt-stats { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:0; margin:2.75rem 0 0; border-radius:0; padding:0; background:transparent; box-shadow:none; backdrop-filter:none; width:min(100%,29rem); }
.tvvt-stat { min-width:6.3rem; flex:0 1 auto; padding:.1rem 1.5rem .1rem 0; text-align:left; }
.tvvt-stat+.tvvt-stat { border-left:1px solid rgba(255,255,255,.14); }
.tvvt-stat strong { display:block; color:var(--tvvt-clay); font-family:'Oswald',sans-serif; font-size:2rem; line-height:1; }
.tvvt-stat span { color:rgba(255,255,255,.68); font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
@keyframes tvvt-hero-drift { 100% { transform:scale(1.035) translate3d(-.18%,-.12%,0); } }
@media(min-width:901px) { .tvvt-hero { align-items:start; } .tvvt-hero-content { width:min(calc(100% - 2rem),48rem); max-width:none; margin-right:0; margin-left:max(1rem,calc((100vw - var(--tvvt-max))/2)); padding:7.25rem 0 2rem; transform:none; } .tvvt-hero h1 { max-width:44rem; } .tvvt-hero-subtitle { max-width:30rem; } .tvvt-floating-reservation { display:none; } }
.tvvt-about-grid,.tvvt-gastro-grid,.tvvt-contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:4.5rem; }
.tvvt-copy { color:rgba(28,28,30,.78); font-size:1.13rem; line-height:1.65; }
.tvvt-copy p { margin:0 0 1.25rem; }
.tvvt-parent-link { display:flex; align-items:center; gap:.85rem; margin:0 0 1.25rem; border:1px solid rgba(240,56,0,.2); border-radius:1rem; padding:.8rem; background:var(--tvvt-orange-soft); color:var(--tvvt-blue)!important; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.tvvt-parent-link:hover { border-color:rgba(240,56,0,.42); box-shadow:0 10px 22px rgba(15,41,66,.1); transform:translateY(-2px); }
.tvvt-parent-link-icon { display:grid; width:2.8rem; height:2.8rem; flex:0 0 auto; place-items:center; border-radius:.7rem; background:#fff; padding:.25rem; box-shadow:0 4px 10px rgba(15,41,66,.1); } .tvvt-parent-link-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.tvvt-parent-link strong,.tvvt-parent-link small { display:block; }
.tvvt-parent-link strong { font-size:.88rem; line-height:1.25; }
.tvvt-parent-link small { margin-top:.08rem; color:rgba(28,28,30,.58); font-size:.78rem; }
.tvvt-parent-link-arrow { margin-left:auto; color:var(--tvvt-clay); font-size:1.1rem; }
.tvvt-feature-image { position:relative; }
.tvvt-feature-image img { display:block; width:100%; min-height:25rem; border-radius:1.3rem; object-fit:cover; box-shadow:0 20px 50px rgba(15,41,66,.22); }
.tvvt-year { position:absolute; bottom:-1.5rem; left:-1rem; border-radius:1rem; padding:1rem 1.2rem; background:var(--tvvt-clay); color:#fff; box-shadow:0 12px 25px rgba(240,56,0,.25); }
.tvvt-year strong { display:block; font-family:'Oswald',sans-serif; font-size:1.8rem; line-height:1; }
.tvvt-year span { font-size:.78rem; opacity:.82; }
.tvvt-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.15rem; margin-top:4.25rem; } .tvvt-card-gallery { grid-column:span 1; }
.tvvt-card { display:block; overflow:hidden; border:1px solid rgba(15,41,66,.1); border-radius:1.15rem; background:#fff; color:var(--tvvt-ink); text-align:left; box-shadow:0 4px 14px rgba(15,41,66,.05); transition:transform .25s ease,box-shadow .25s ease; }
.tvvt-card:hover { transform:translateY(-5px); box-shadow:0 18px 35px rgba(15,41,66,.16); }
button.tvvt-card { width:100%; padding:0; border-width:1px; font:inherit; cursor:pointer; }
.tvvt-card-image { position:relative; height:14rem; overflow:hidden; background:var(--tvvt-blue); } .tvvt-card-gallery .tvvt-card-image { height:14rem; }
.tvvt-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.tvvt-card:hover .tvvt-card-image img { transform:scale(1.08); }
.tvvt-card-overlay { position:absolute; right:0; bottom:0; left:0; display:flex; align-items:flex-end; padding:1rem; background:linear-gradient(transparent,rgba(15,41,66,.8)); min-height:100%; }
.tvvt-card-overlay span { border-radius:999px; padding:.48rem .7rem; background:rgba(255,255,255,.94); color:var(--tvvt-blue); font-size:.72rem; font-weight:700; }
.tvvt-card-body { padding:1.3rem; }
.tvvt-icon { display:grid; width:2.7rem; height:2.7rem; place-items:center; border-radius:.8rem; background:rgba(15,41,66,.09); color:var(--tvvt-blue); font-size:1.15rem; }
.tvvt-card h3 { margin:1rem 0 .35rem; color:var(--tvvt-blue); font-size:1.25rem; text-transform:uppercase; }
.tvvt-card p { margin:0; color:rgba(28,28,30,.65); font-size:.95rem; line-height:1.45; }
.tvvt-board { margin-top:5.5rem; text-align:center; }
.tvvt-board h3 { color:var(--tvvt-blue); font-size:1.8rem; text-transform:uppercase; }
.tvvt-board-list { display:flex; flex-wrap:wrap; justify-content:center; gap:2.5rem; margin-top:2rem; }
.tvvt-person img { display:block; width:7rem; height:7rem; margin:auto; border:4px solid rgba(15,41,66,.15); border-radius:50%; object-fit:cover; transition:border-color .2s ease; }
.tvvt-person:hover img { border-color:var(--tvvt-clay); }
.tvvt-person strong { display:block; margin-top:.85rem; color:var(--tvvt-blue); font-family:'Oswald',sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.tvvt-person span { color:rgba(28,28,30,.58); font-size:.88rem; }
.tvvt-pricing { background:var(--tvvt-blue); color:#fff; }
.tvvt-pricing .tvvt-title { color:#fff; }
.tvvt-pricing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.tvvt-price-card { position:relative; border:1px solid rgba(255,255,255,.12); border-radius:1.15rem; padding:1.5rem; background:rgba(255,255,255,.06); }
.tvvt-price-card.is-popular { border-color:var(--tvvt-clay-muted); background:var(--tvvt-clay-muted); box-shadow:0 18px 30px rgba(201,80,43,.25); }
.tvvt-price-card h3 { margin:0 0 .45rem; font-size:1.25rem; text-transform:uppercase; }
.tvvt-price { display:block; margin-bottom:1rem; color:var(--tvvt-clay); font-family:'Oswald',sans-serif; font-size:2.5rem; font-weight:700; line-height:1; }
.is-popular .tvvt-price { color:#fff; }
.tvvt-price small { font-family:'Source Sans 3',sans-serif; font-size:.9rem; font-weight:400; }
.tvvt-price-card ul { margin:0; padding:0; list-style:none; color:rgba(255,255,255,.78); font-size:.91rem; line-height:1.7; }
.tvvt-price-card li::before { content:'✓'; margin-right:.45rem; }
.tvvt-price-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin-top:1.25rem; }
.tvvt-meta-card { border:1px solid rgba(255,255,255,.12); border-radius:1.15rem; padding:1.5rem; background:rgba(255,255,255,.06); }
.tvvt-meta-card h3 { margin-top:0; font-size:1.35rem; text-transform:uppercase; }
.tvvt-price-list { margin:0; padding:0; list-style:none; }
.tvvt-price-list li { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.12); padding:.7rem 0; color:rgba(255,255,255,.8); }
.tvvt-price-list b { color:var(--tvvt-clay); font-family:'Oswald',sans-serif; font-size:1.25rem; }
.tvvt-bank { border-radius:.8rem; padding:1rem; background:rgba(255,255,255,.07); color:rgba(255,255,255,.78); font-size:.92rem; line-height:1.6; }
.tvvt-etennis-link { color:var(--tvvt-clay)!important; font-weight:700; text-decoration:underline!important; text-decoration-color:rgba(240,56,0,.45)!important; text-underline-offset:3px; } .tvvt-price-extra { color:rgba(255,255,255,.56); font-size:.78rem; line-height:1.5; }
.tvvt-price-calculator-trigger { display:inline-flex; align-items:center; gap:.45rem; margin-top:1.15rem; border:1px solid rgba(240,56,0,.48); border-radius:999px; padding:.65rem 1rem; background:rgba(240,56,0,.1); color:#fff; font-family:'Oswald',sans-serif; font-size:.86rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.tvvt-price-calculator-trigger:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); transform:translateY(-2px); }
.tvvt-price-calculator { position:fixed; z-index:110; inset:0; display:block; overflow-y:auto; padding:1rem; visibility:hidden; background:rgba(5,15,25,.84); opacity:0; transition:opacity .2s ease,visibility .2s ease; backdrop-filter:blur(5px); }
.tvvt-price-calculator.is-open { visibility:visible; opacity:1; }
.tvvt-price-calculator-panel { position:relative; width:min(100%,36rem); margin:1rem auto; border:1px solid rgba(255,255,255,.15); border-radius:1.35rem; padding:2rem; background:var(--tvvt-blue); color:#fff; box-shadow:0 24px 70px rgba(0,0,0,.35); }
.tvvt-price-calculator-panel::before { position:absolute; top:0; right:1.6rem; left:1.6rem; height:3px; border-radius:0 0 3px 3px; background:var(--tvvt-clay); content:''; }
.tvvt-price-calculator-close { position:absolute; top:1rem; right:1rem; display:grid; width:2.35rem; height:2.35rem; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:50%; background:rgba(255,255,255,.06); color:#fff; font-size:1.3rem; cursor:pointer; }
.tvvt-price-calculator-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; } .tvvt-price-calculator-info-button { border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:.4rem .7rem; background:rgba(255,255,255,.05); color:rgba(255,255,255,.78); font:600 .78rem 'Source Sans 3',sans-serif; cursor:pointer; } .tvvt-price-calculator-info-button:hover { border-color:var(--tvvt-clay); color:#fff; } .tvvt-price-calculator-kicker { margin:0 0 .45rem; color:var(--tvvt-clay); font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.tvvt-price-calculator-panel h3 { margin:0; font-size:2rem; text-transform:uppercase; }
.tvvt-price-calculator-intro { margin:.5rem 0 1.25rem; color:rgba(255,255,255,.68); font-size:.92rem; line-height:1.5; } .tvvt-price-calculator-info { border:1px solid rgba(240,56,0,.25); border-radius:.9rem; padding:.75rem .85rem; background:rgba(240,56,0,.1); color:rgba(255,255,255,.78); font-size:.82rem; line-height:1.5; } .tvvt-price-calculator-info strong { color:#fff; }
.tvvt-price-player { display:flex; align-items:center; gap:.7rem; margin:.6rem 0; border:1px solid rgba(255,255,255,.1); border-radius:.85rem; padding:.7rem; background:rgba(255,255,255,.05); }
.tvvt-price-player::before { display:none; content:none; }
.tvvt-price-player-icon { display:grid; width:2rem; height:2rem; flex:0 0 2rem; place-items:center; border-radius:.6rem; padding:.38rem; background:rgba(240,56,0,.16); color:var(--tvvt-clay); }
.tvvt-price-player select { min-width:0; flex:1; border:0; background:transparent; color:#fff; font:600 .9rem 'Source Sans 3',sans-serif; outline:0; }
.tvvt-price-player option { background:var(--tvvt-blue); }
.tvvt-price-player button { display:grid; width:2rem; height:2rem; place-items:center; border:0; border-radius:50%; background:transparent; color:rgba(255,255,255,.55); cursor:pointer; } 
.tvvt-price-calculator-add { margin-top:.8rem; border:1px solid rgba(255,255,255,.15); border-radius:999px; padding:.55rem .85rem; background:transparent; color:rgba(255,255,255,.82); font:600 .85rem 'Source Sans 3',sans-serif; cursor:pointer; }
.tvvt-price-calculator-result { display:block; margin-top:1.5rem; border:1px solid rgba(201,80,43,.3); border-radius:1rem; padding:1rem; background:rgba(201,80,43,.1); }
.tvvt-price-calculator-result span { display:block; color:rgba(255,255,255,.58); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.tvvt-price-calculator-result strong { display:block; margin-top:.2rem; color:var(--tvvt-clay-muted); font-family:"Oswald",sans-serif; font-size:2rem; line-height:1; }
.tvvt-price-calculator-note { margin:1rem 0 0; color:rgba(255,255,255,.5); font-size:.76rem; line-height:1.5; }
.tvvt-gastro { padding-bottom:2.75rem; background:var(--tvvt-cream); }
.tvvt-gastro-photo { position:relative; }
.tvvt-gastro-photo > picture img,.tvvt-gastro-photo > img { display:block; width:100%; min-height:27rem; border-radius:1.3rem; object-fit:cover; box-shadow:0 20px 50px rgba(15,41,66,.17); }
.tvvt-monika { position:absolute; right:1.5rem; bottom:1.5rem; left:1.5rem; display:flex; align-items:center; gap:1rem; border-radius:.9rem; padding:1rem; background:rgba(255,255,255,.92); box-shadow:0 8px 20px rgba(15,41,66,.15); backdrop-filter:blur(10px); }
.tvvt-monika img { width:5rem; height:5rem; border:3px solid var(--tvvt-clay); border-radius:50%; object-fit:cover; }
.tvvt-monika strong { display:block; color:var(--tvvt-blue); font-family:'Oswald',sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.tvvt-monika span { color:rgba(28,28,30,.6); font-size:.83rem; }
.tvvt-gastro-points { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.tvvt-gastro-point { display:flex; align-items:center; gap:.75rem; border-radius:.8rem; padding:1rem; background:#fff; color:var(--tvvt-blue); font-weight:700; box-shadow:0 4px 12px rgba(15,41,66,.06); }
.tvvt-instagram { padding-top:2.75rem; background:#fff; }
.tvvt-instagram-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.5rem; }
.tvvt-instagram-card { position:relative; display:block; aspect-ratio:1; overflow:hidden; border-radius:.8rem; background:var(--tvvt-blue); }
.tvvt-instagram-card img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.tvvt-instagram-card:hover img { transform:scale(1.06); }
.tvvt-instagram-placeholder { display:grid; height:100%; place-items:center; padding:1rem; color:#fff; text-align:center; font-weight:700; }
.tvvt-follow { margin-top:1.7rem; text-align:center; }
.tvvt-contact { background:var(--tvvt-blue); color:#fff; }
.tvvt-contact .tvvt-title { color:#fff; }
.tvvt-contact .tvvt-title::after { margin-left:0; }
.tvvt-contact .tvvt-section-head { text-align:left; margin:0; }
.tvvt-contact-lines { margin-top:2rem; }
.tvvt-contact-line { display:flex; align-items:flex-start; gap:.8rem; margin:1rem 0; color:rgba(255,255,255,.78); }
.tvvt-contact-line b { color:#fff; }
.tvvt-contact-cta { margin-top:2.2rem; border-radius:1rem; padding:1.3rem; background:rgba(240,56,0,.13); }
.tvvt-contact-cta p { margin:.2rem 0 1rem; color:rgba(255,255,255,.75); }
.tvvt-map { overflow:hidden; min-height:26rem; border:1px solid rgba(255,255,255,.15); border-radius:1.2rem; background:rgba(255,255,255,.04); }
.tvvt-map iframe { display:block; width:100%; height:26rem; border:0; filter:saturate(.8) contrast(1.05); }
.tvvt-footer { padding:3.5rem 0 1.5rem; background:#091d30; color:rgba(255,255,255,.7); }
.tvvt-footer-grid { display:grid; grid-template-columns:1.3fr .75fr 1fr; gap:2rem; }
body.tvvt-footer-contact-first .tvvt-footer-grid>div:nth-child(1) { order:2; }
body.tvvt-footer-contact-first .tvvt-footer-grid>div:nth-child(2) { order:3; }
body.tvvt-footer-contact-first .tvvt-footer-grid>div:nth-child(3) { order:1; }
.tvvt-footer-logo { display:block; width:auto; height:2.1rem; margin-bottom:1rem; }
.tvvt-footer h3 { margin-top:0; color:#fff; font-size:1rem; text-transform:uppercase; }
.tvvt-footer ul { margin:0; padding:0; list-style:none; }
.tvvt-footer li { margin:.45rem 0; }
.tvvt-footer a:hover { color:#fff; }
.tvvt-footer-reservation { display:none; margin-top:1rem; align-items:center; gap:.45rem; width:max-content; border-radius:999px; padding:.7rem 1rem; background:var(--tvvt-clay); color:#fff!important; font:700 .76rem 'Oswald',sans-serif; letter-spacing:.06em; text-transform:uppercase; box-shadow:0 8px 18px rgba(240,56,0,.2); transition:transform .2s ease,background .2s ease; }
.tvvt-footer-reservation:hover { background:var(--tvvt-clay-light); transform:translateY(-2px); }
.tvvt-footer-bottom { display:flex; justify-content:space-between; gap:1rem; margin-top:2.5rem; border-top:1px solid rgba(255,255,255,.12); padding-top:1rem; font-size:.82rem; }
.tvvt-legal { overflow:hidden; padding:0 0 5.5rem; background:var(--tvvt-cream); }
.tvvt-legal-hero { position:relative; overflow:hidden; padding:10.5rem 0 5.2rem; background:linear-gradient(120deg,#071827 0%,var(--tvvt-blue) 58%,#1b3d5c 100%); color:#fff; isolation:isolate; }
.tvvt-legal-hero::before { position:absolute; z-index:-1; top:-10rem; right:-9rem; width:33rem; height:33rem; border:1px solid rgba(240,56,0,.35); border-radius:50%; content:''; box-shadow:0 0 0 3.5rem rgba(240,56,0,.045),0 0 0 8rem rgba(255,255,255,.025); }
.tvvt-legal-hero::after { position:absolute; z-index:-1; right:7%; bottom:-3.2rem; width:35%; height:8rem; border-top:1px solid rgba(240,56,0,.38); border-left:1px solid rgba(240,56,0,.38); border-radius:1.5rem 0 0; content:''; transform:skewX(-22deg); }
.tvvt-legal-hero-inner { max-width:52rem; }
.tvvt-legal-hero .tvvt-eyebrow { color:var(--tvvt-clay); }
.tvvt-legal-hero h1 { max-width:38rem; margin:.7rem 0 1rem; color:#fff; font-size:clamp(3.2rem,8vw,6.25rem); font-weight:700; letter-spacing:-.015em; line-height:.9; text-transform:uppercase; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.tvvt-legal-hero p { max-width:32rem; margin:0; color:rgba(255,255,255,.74); font-size:1.1rem; line-height:1.55; }
.tvvt-legal-content { position:relative; max-width:52rem; margin:-2rem auto 0; border:1px solid rgba(15,41,66,.08); border-radius:1.4rem; padding:clamp(1.5rem,4vw,3.25rem); background:rgba(255,255,255,.98); color:rgba(28,28,30,.78); line-height:1.72; box-shadow:0 22px 55px rgba(15,41,66,.1); }
.tvvt-legal-content::before { display:block; width:3.5rem; height:4px; margin:0 0 2rem; background:var(--tvvt-clay); content:''; }
.tvvt-legal-content h1 { display:none; }
.tvvt-legal-content h2,.tvvt-legal-content h3 { margin:2.3rem 0 .7rem; color:var(--tvvt-blue); font-size:clamp(1.25rem,3vw,1.65rem); line-height:1.08; text-transform:uppercase; }
.tvvt-legal-content h2:first-child,.tvvt-legal-content h3:first-child { margin-top:0; }
.tvvt-legal-content p { margin:.65rem 0; overflow-wrap:anywhere; }
.tvvt-legal-content a { color:var(--tvvt-clay); font-weight:700; text-decoration:underline; text-decoration-color:rgba(240,56,0,.4); text-underline-offset:3px; }
.tvvt-legal-content a:hover { color:var(--tvvt-clay-light); }
.tvvt-lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:1rem; visibility:hidden; background:rgba(3,11,19,.97); opacity:0; transition:opacity .2s ease,visibility .2s ease; backdrop-filter:blur(8px); }
.tvvt-lightbox.is-open { visibility:visible; opacity:1; }
.tvvt-lightbox figure { display:grid; grid-template-rows:minmax(0,1fr) auto; gap:.85rem; width:min(96vw,92rem); height:min(88dvh,58rem); margin:0; }
.tvvt-lightbox img { display:block; width:100%; height:100%; max-width:none; max-height:none; border:0; border-radius:.8rem; background:transparent; object-fit:contain; box-shadow:0 24px 72px rgba(0,0,0,.42); }
.tvvt-lightbox figcaption { justify-self:center; padding:0; background:transparent; color:rgba(255,255,255,.7); text-align:center; }
.tvvt-lightbox button { position:absolute; z-index:2; display:grid; width:2.75rem; height:2.75rem; place-items:center; border:0; border-radius:50%; padding:0; background:rgba(7,24,39,.32); color:rgba(255,255,255,.62); font-size:1.1rem; box-shadow:none; cursor:pointer; opacity:.78; transition:background .18s ease,color .18s ease,opacity .18s ease; }
.tvvt-lightbox-close { top:1rem; right:1rem; }
.tvvt-lightbox-prev { left:1rem; top:50%; transform:translateY(-50%); }
.tvvt-lightbox-next { right:1rem; top:50%; transform:translateY(-50%); }
.tvvt-floating-reservation { position:fixed; z-index:45; right:1.25rem; bottom:1.25rem; display:flex; width:3.25rem; height:3.25rem; align-items:center; justify-content:center; border-radius:50%; background:var(--tvvt-clay); color:#fff; font-size:0; box-shadow:0 10px 25px rgba(240,56,0,.38); transition:width .25s ease,border-radius .25s ease,transform .18s ease; }
.tvvt-floating-reservation-icon { display:block; width:1.22rem; height:1.22rem; flex:0 0 auto; }
.tvvt-floating-reservation span { display:none; font-size:.76rem; }
.tvvt-floating-reservation:hover { width:auto; padding:0 1rem; border-radius:999px; transform:translateY(-2px); }
.tvvt-floating-reservation:hover span { display:inline; margin-left:.45rem; font-family:'Oswald',sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.tvvt-reveal { opacity:0; transform:translateY(20px); transition:opacity .68s cubic-bezier(.23,1,.32,1) var(--tvvt-reveal-delay,0ms),transform .68s cubic-bezier(.23,1,.32,1) var(--tvvt-reveal-delay,0ms); will-change:opacity,transform; }
.tvvt-reveal.is-visible { opacity:1; transform:none; }
body.tvvt-contact-layout-cards .tvvt-contact-lines { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
body.tvvt-contact-layout-cards .tvvt-contact-line { min-height:100%; margin:0; border:1px solid rgba(255,255,255,.16); border-radius:.95rem; padding:1rem; background:rgba(255,255,255,.055); }
body.tvvt-contact-layout-minimal .tvvt-contact-lines { border-left:2px solid var(--tvvt-clay); padding-left:1rem; }
body.tvvt-contact-layout-minimal .tvvt-contact-line { margin:.72rem 0; }
body.tvvt-card-order-championship .tvvt-cards .tvvt-card:nth-child(3) { order:-3; }
body.tvvt-card-order-community .tvvt-cards .tvvt-card:nth-child(4) { order:-3; }
body.tvvt-card-order-championship .tvvt-cards .tvvt-card:nth-child(2),body.tvvt-card-order-community .tvvt-cards .tvvt-card:nth-child(2) { transform:none; }
body.tvvt-card-order-championship .tvvt-cards .tvvt-card:nth-child(2):hover,body.tvvt-card-order-community .tvvt-cards .tvvt-card:nth-child(2):hover { transform:translateY(-5px); }
@media(max-width:900px) { .tvvt-primary-nav,.tvvt-header-cta { display:none; } .tvvt-menu-toggle { display:block; } .tvvt-about-grid,.tvvt-gastro-grid,.tvvt-contact-grid { grid-template-columns:1fr; gap:3rem; } .tvvt-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .tvvt-pricing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .tvvt-instagram-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .tvvt-footer-grid { grid-template-columns:1fr 1fr; } body.tvvt-contact-layout-cards .tvvt-contact-lines { grid-template-columns:1fr; } }
@media(min-width:601px) and (max-width:900px) { .tvvt-hero::before { background-position:center,center,center 46%; background-size:100% 100%,100% 100%,cover; } .tvvt-hero-content { width:min(calc(100% - 2.5rem),29rem); margin-right:auto; margin-left:1.25rem; padding:8.5rem 0 2.5rem; text-align:left; } .tvvt-hero h1 { max-width:10.5ch; font-size:clamp(3.5rem,9vw,4.75rem); } .tvvt-hero-subtitle { max-width:23rem; margin-right:0; margin-left:0; } .tvvt-stats { margin-left:0; } }
@media(max-width:600px) { .tvvt-section { padding:4.25rem 0; } .tvvt-card-gallery { grid-column:auto; } .tvvt-card-gallery .tvvt-card-image { height:16rem; } .tvvt-hero::before { background-position:center,center,38% 46%; } .tvvt-hero::after { opacity:.55; } .tvvt-hero-content { max-width:17.5rem; margin-right:auto; margin-left:0; padding:7.75rem 1.25rem 2.5rem; text-align:left; } body.tvvt-season-notice-active .tvvt-hero-content { padding-top:9.85rem; } .tvvt-hero h1 { max-width:16rem; font-size:clamp(3.7rem,17vw,5rem); line-height:.9; } .tvvt-hero h1 span { margin-top:.28em; } .tvvt-hero-subtitle { max-width:15.5rem; margin:2.25rem 0 0; font-size:1.12rem; } .tvvt-hero-actions { align-items:stretch; margin-top:1.35rem; } .tvvt-hero .tvvt-reserve { gap:.42rem; padding:.72rem 1.1rem; font-size:.84rem; letter-spacing:.055em; } .tvvt-hero-secondary { justify-content:center; padding:.68rem .95rem; font-size:.78rem; } .tvvt-season-notice .tvvt-wrap { min-height:2.45rem; padding:.28rem 1rem; font-size:.68rem; line-height:1.25; } .tvvt-season-notice a { font-size:.64rem; } .tvvt-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; width:100%; max-width:22rem; margin-top:2.75rem; border:1px solid rgba(255,255,255,.15); border-radius:1rem; padding:.8rem .2rem; background:rgba(7,24,39,.45); } .tvvt-stat { min-width:0; overflow:hidden; padding:.1rem .2rem; text-align:center; } .tvvt-stat strong { font-size:1.8rem; } .tvvt-stat span { font-size:.51rem; letter-spacing:.02em; } .tvvt-cards,.tvvt-pricing-grid,.tvvt-price-meta,.tvvt-gastro-points { grid-template-columns:1fr; } .tvvt-card-image { height:13rem; } .tvvt-feature-image img,.tvvt-gastro-photo > picture img,.tvvt-gastro-photo > img { min-height:20rem; } .tvvt-year { left:.5rem; } .tvvt-footer-grid { grid-template-columns:1fr; } .tvvt-map,.tvvt-map iframe { min-height:19rem; height:19rem; } .tvvt-price-calculator-panel { padding:1.6rem 1.15rem; } .tvvt-price-calculator-result { gap:.6rem; } .tvvt-price-calculator-result strong { font-size:1.7rem; } }

@media(min-width:901px) { .tvvt-hero::before { background-image:radial-gradient(ellipse 30% 60% at 56% 51%,rgba(255,255,255,.26),transparent 74%),linear-gradient(98deg,#071827 0%,#071827 23%,rgba(7,24,39,.88) 35%,rgba(7,24,39,.32) 50%,rgba(7,24,39,.07) 66%,rgba(5,18,30,.12) 100%),linear-gradient(0deg,rgba(5,18,30,.89) 0%,rgba(5,18,30,.18) 38%,rgba(5,18,30,.03) 68%,rgba(5,18,30,.25) 100%),var(--tvvt-hero-image); background-position:center,center,center,76% center; background-size:100% 100%,100% 100%,100% 100%,cover; } .tvvt-hero-content { padding-top:6.25rem; padding-bottom:1.5rem; } body.tvvt-season-notice-active .tvvt-hero-content { padding-top:8.45rem; } .tvvt-hero-subtitle { margin-top:1.6rem; } .tvvt-stats { margin-top:1.8rem; border:1px solid rgba(255,255,255,.1); border-radius:1rem; padding:.85rem 1rem; background:rgba(7,24,39,.35); box-shadow:0 18px 45px rgba(3,11,19,.14); backdrop-filter:blur(2px); } }

/* Customizer-Erweiterung: eindeutige Hinweise und kontrollierte Varianten statt freiem CSS. */
.tvvt-social-extra { display:inline-flex; align-items:center; gap:.35rem; margin-top:.6rem; color:var(--tvvt-blue); font-weight:700; }
.tvvt-social-extra:hover { color:var(--tvvt-clay); }

/* Mitglied werden: Zahlungsdaten klar priorisiert, Hinweise kompakt und mobil lesbar. */
.tvvt-join-card { display:flex; flex-direction:column; }
.tvvt-join-card h3 { margin-bottom:1.1rem; }
.tvvt-join-intro,.tvvt-join-next,.tvvt-join-note,.tvvt-payment-reference { display:flex; align-items:flex-start; gap:.55rem; }
.tvvt-join-intro { margin:.1rem 0 .9rem; color:rgba(255,255,255,.84); }
.tvvt-info-icon { display:inline-flex; width:1.05rem; height:1.05rem; flex:0 0 auto; margin-top:.14rem; color:var(--tvvt-clay-light); }
.tvvt-info-icon svg { display:block; width:100%; height:100%; }
.tvvt-membership-payment { margin:0; border:1px solid rgba(255,174,133,.56); border-radius:1rem; padding:1rem 1.05rem; background:linear-gradient(135deg,rgba(240,56,0,.22),rgba(255,255,255,.08)); box-shadow:0 12px 26px rgba(0,0,0,.14); }
.tvvt-payment-head { display:flex; align-items:center; gap:.5rem; margin-bottom:.85rem; color:#fff; font:700 .76rem 'Oswald',sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.tvvt-payment-icon { display:grid; width:1.8rem; height:1.8rem; place-items:center; border-radius:.55rem; background:var(--tvvt-clay); color:#fff; }
.tvvt-payment-icon svg { width:1.1rem; height:1.1rem; }
.tvvt-membership-payment>strong { display:block; color:#fff; font-size:.97rem; line-height:1.4; }
.tvvt-payment-details { display:grid; grid-template-columns:1fr; gap:.55rem; margin:1rem 0; }
.tvvt-payment-details div { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; border-top:1px solid rgba(255,255,255,.18); padding-top:.55rem; }
.tvvt-payment-details dt { color:rgba(255,255,255,.6); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.tvvt-payment-details dd { margin:0; color:#fff; font-family:'Oswald',sans-serif; font-size:1rem; letter-spacing:.055em; }
.tvvt-payment-reference { margin:0; border-top:1px solid rgba(255,255,255,.18); padding-top:.75rem; color:rgba(255,255,255,.83); font-size:.81rem; line-height:1.45; }
.tvvt-payment-reference b { color:#fff; }
.tvvt-join-next { margin:1.15rem 0 0; color:rgba(255,255,255,.82); font-size:.91rem; line-height:1.55; }
.tvvt-join-note { margin:1.1rem 0 0; border-top:1px solid rgba(255,255,255,.14); padding-top:1rem; color:rgba(255,255,255,.63); font-size:.78rem; line-height:1.5; }
@media(max-width:600px) { .tvvt-membership-payment { padding:.9rem; } .tvvt-payment-details dd { font-size:.92rem; letter-spacing:.035em; } .tvvt-join-next { margin-top:1rem; } }

@media(min-width:901px) { .tvvt-price-calculator { display:flex; align-items:center; justify-content:center; padding:2rem; } .tvvt-price-calculator-panel { max-height:calc(100dvh - 4rem); margin:0; overflow-y:auto; } }

@media(max-width:600px) { .tvvt-floating-reservation.is-footer-near { opacity:0; transform:translateY(1rem); pointer-events:none; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }

:root { --tvvt-clay-muted:#c9502b; }

/* Audit refinements: lightweight local-first styling, keyboard-visible controls, court-line rhythm. */
.tvvt-site :focus-visible { outline:3px solid var(--tvvt-clay-light); outline-offset:3px; }
.tvvt-cards { position:relative; }
.tvvt-cards::before { position:absolute; z-index:-1; top:-1.6rem; right:8%; width:28%; height:5rem; border-top:1px solid rgba(240,56,0,.25); border-right:1px solid rgba(240,56,0,.25); border-radius:0 1.25rem 0 0; content:''; transform:skewX(-18deg); pointer-events:none; }
.tvvt-cards .tvvt-card:nth-child(2) { transform:translateY(1rem); }
.tvvt-cards .tvvt-card:nth-child(2):hover { transform:translateY(.55rem); }
.tvvt-map-placeholder { display:flex; min-height:26rem; height:100%; flex-direction:column; justify-content:center; padding:2rem; background:linear-gradient(145deg,rgba(15,41,66,.98),rgba(27,61,92,.92)); color:#fff; }
.tvvt-map-kicker { color:var(--tvvt-clay); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.tvvt-map-placeholder h3 { margin:.55rem 0 .65rem; font-size:clamp(1.65rem,3vw,2.2rem); text-transform:uppercase; }
.tvvt-map-placeholder p { margin:.25rem 0; color:rgba(255,255,255,.78); line-height:1.55; }
.tvvt-map-consent { max-width:27rem; margin-top:1.2rem!important; color:rgba(255,255,255,.58)!important; font-size:.82rem; }
.tvvt-map-activate { align-self:flex-start; margin-top:1.25rem; border:1px solid var(--tvvt-clay); border-radius:999px; padding:.75rem 1.05rem; background:var(--tvvt-clay); color:#fff; font:600 .84rem 'Oswald','Arial Narrow',sans-serif; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .18s ease,transform .18s ease; }
.tvvt-map-activate:hover { background:var(--tvvt-clay-light); transform:translateY(-2px); }
.tvvt-map-route { align-self:flex-start; margin-top:.85rem; color:rgba(255,255,255,.72)!important; font-size:.84rem; text-decoration:underline!important; text-underline-offset:3px; }
.tvvt-map-placeholder.is-activated { display:block; padding:0; }
.tvvt-map-placeholder.is-activated iframe { display:block; width:100%; height:26rem; border:0; filter:saturate(.8) contrast(1.05); }
.tvvt-mobile-nav a:focus-visible,.tvvt-mobile-social a:focus-visible,.tvvt-mobile-close:focus-visible { outline-color:var(--tvvt-clay-light); outline-offset:2px; }
.tvvt-mobile-menu.is-open .tvvt-mobile-panel { box-shadow:-18px 0 50px rgba(0,0,0,.2); }
.tvvt-lightbox button:focus-visible,.tvvt-price-calculator button:focus-visible,.tvvt-map button:focus-visible { outline-color:#fff; }
@media(max-width:600px) {
  .tvvt-cards::before { top:-1rem; right:2%; width:44%; height:3rem; }
  .tvvt-cards .tvvt-card:nth-child(2) { transform:none; }
  .tvvt-cards .tvvt-card:nth-child(2):hover { transform:translateY(-5px); }
  .tvvt-map-placeholder { min-height:19rem; padding:1.35rem; }
  .tvvt-map-placeholder.is-activated iframe { height:19rem; }
  .tvvt-legal { padding-bottom:3.5rem; }
  .tvvt-legal-hero { padding:7.75rem 0 3.8rem; }
  .tvvt-legal-hero::before { top:-13rem; right:-17rem; }
  .tvvt-legal-hero::after { right:4%; bottom:-2.6rem; width:55%; height:5rem; }
  .tvvt-legal-hero h1 { font-size:clamp(2.75rem,14vw,4rem); }
  .tvvt-legal-hero p { font-size:1rem; }
  .tvvt-legal-content { margin-top:-1.25rem; border-radius:1.1rem; padding:1.5rem 1.2rem; line-height:1.64; }
  .tvvt-legal-content::before { width:2.75rem; margin-bottom:1.45rem; }
  .tvvt-legal-content h2,.tvvt-legal-content h3 { margin-top:1.8rem; font-size:1.18rem; }
}
@media(prefers-reduced-motion:reduce) {
  .tvvt-cards .tvvt-card:nth-child(2),.tvvt-cards .tvvt-card:nth-child(2):hover { transform:none; }
}

.tvvt-lightbox button:hover { background:rgba(7,24,39,.72); color:#fff; opacity:1; }

/* Layout-Update: gleichmäßige Karten, klarer Vorstand und vollständige Social-Formate. */
.tvvt-contact-line>span { display:grid; width:3rem; height:3rem; flex:0 0 auto; place-items:center; border:1px solid rgba(255,154,120,.3); border-radius:.75rem; background:var(--tvvt-clay-muted); color:#fff; box-shadow:0 8px 18px rgba(201,80,43,.2); transition:transform .2s ease,box-shadow .2s ease; }
.tvvt-contact-line:hover>span { color:#fff; transform:translateY(-2px); box-shadow:0 12px 24px rgba(201,80,43,.32); }
.tvvt-instagram-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.tvvt-instagram-card { aspect-ratio:4/5; border:1px solid rgba(15,41,66,.1); border-radius:1.15rem; background:#fff; box-shadow:0 4px 14px rgba(15,41,66,.06); transition:box-shadow .25s ease; }
.tvvt-instagram-card img { object-fit:contain; }
.tvvt-instagram-card:hover { box-shadow:0 18px 35px rgba(15,41,66,.16); }
.tvvt-instagram-card:hover img { transform:scale(1.025); }
.tvvt-board { position:relative; overflow:hidden; border:1px solid rgba(15,41,66,.1); border-radius:2rem; padding:2.8rem; background:#fff; box-shadow:0 18px 45px rgba(15,41,66,.08); }
.tvvt-board::before { position:absolute; top:0; left:50%; width:5rem; height:4px; background:var(--tvvt-clay); content:''; transform:translateX(-50%); }
.tvvt-board h3 { margin:0; }
.tvvt-board-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; max-width:44rem; margin:2rem auto 0; }
.tvvt-person { display:flex; align-items:center; gap:1rem; border:1px solid rgba(15,41,66,.1); border-radius:1rem; padding:1.15rem; background:var(--tvvt-cream); text-align:left; transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease; }
.tvvt-person:hover { border-color:rgba(240,56,0,.35); background:#fff; box-shadow:0 12px 24px rgba(15,41,66,.1); transform:translateY(-3px); }
.tvvt-person img { width:5.75rem; height:5.75rem; flex:0 0 auto; margin:0; }
.tvvt-person strong { margin:0; }
.tvvt-person span { display:block; margin-top:.25rem; }
@media(min-width:901px) { .tvvt-cards .tvvt-card:nth-child(2) { transform:none; } .tvvt-cards .tvvt-card:nth-child(2):hover { transform:translateY(-5px); } }
@media(max-width:900px) { .tvvt-instagram-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .tvvt-board { padding:2.2rem 1.1rem; } .tvvt-board-list { grid-template-columns:1fr; } .tvvt-person { padding:1rem; } }
.tvvt-lightbox-prev,.tvvt-lightbox-next { opacity:.68; }

/* Schlichter Follow-CTA und ruhigerer Rechtsseiten-Feinschliff. */
.tvvt-instagram .tvvt-follow .tvvt-reserve { gap:.65rem; border:1px solid rgba(28,28,30,.2); background:#fff; color:#111!important; box-shadow:0 8px 20px rgba(15,41,66,.08); font-size:0; }
.tvvt-instagram .tvvt-follow .tvvt-reserve::before { display:block; width:1.45rem; height:1.45rem; background:#111; content:''; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='17.5' cy='6.5' r='1.2' fill='black'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='17.5' cy='6.5' r='1.2' fill='black'/%3E%3C/svg%3E") center/contain no-repeat; }
.tvvt-instagram .tvvt-follow .tvvt-reserve::after { content:'@tvvelden_tennis folgen'; font:700 .93rem 'Oswald',sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.tvvt-instagram .tvvt-follow .tvvt-reserve:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff!important; box-shadow:0 12px 24px rgba(240,56,0,.2); }
.tvvt-instagram .tvvt-follow .tvvt-reserve:hover::before { background:#fff; color:var(--tvvt-clay); }
.tvvt-legal-hero { background:linear-gradient(125deg,#0b2034 0%,var(--tvvt-blue) 100%); }
.tvvt-legal-hero::before { top:-14rem; right:-15rem; width:31rem; height:31rem; border-color:rgba(240,56,0,.22); box-shadow:none; }
.tvvt-legal-hero::after { right:8%; bottom:-2rem; width:18rem; height:4rem; border-color:rgba(240,56,0,.25); transform:none; }
.tvvt-legal-hero-inner { max-width:46rem; }
.tvvt-legal-content { max-width:46rem; border-color:rgba(15,41,66,.09); border-radius:1.15rem; box-shadow:0 18px 45px rgba(15,41,66,.08); }
.tvvt-legal-content::before { width:2.75rem; height:3px; }
.tvvt-legal-content h2,.tvvt-legal-content h3 { letter-spacing:.06em; }
.tvvt-legal-content h2:not(:first-child),.tvvt-legal-content h3:not(:first-child) { border-top:1px solid rgba(15,41,66,.1); padding-top:1.65rem; }
.tvvt-legal-hero h1.tvvt-legal-title--privacy { max-width:none; font-size:clamp(2.05rem,5vw,4.1rem); white-space:nowrap; }
@media(max-width:600px) { .tvvt-legal-hero h1.tvvt-legal-title--privacy { font-size:clamp(2rem,10vw,2.35rem); } }
@media(max-width:600px) { .tvvt-instagram .tvvt-follow .tvvt-reserve { padding:.75rem 1.05rem; } .tvvt-legal-hero::after { width:9rem; } }

.tvvt-footer-bottom button { border:0; padding:0; background:transparent; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.tvvt-external-media-note { display:block; max-width:38rem; margin:1rem auto 0; border:1px solid rgba(15,41,66,.12); border-radius:.8rem; padding:.8rem 1rem; background:rgba(255,255,255,.72); color:rgba(28,28,30,.7)!important; font-size:.8rem; line-height:1.55; }
.tvvt-external-media-note button { border:0; padding:0; background:transparent; color:var(--tvvt-clay); font:700 inherit; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.tvvt-cookie-consent { position:fixed; z-index:99999; right:1rem; bottom:1rem; left:auto; display:block; width:min(calc(100% - 2rem),30rem); padding:0; pointer-events:none; }
.tvvt-cookie-consent[hidden] { display:none; }
.tvvt-cookie-panel { width:100%; max-height:calc(100dvh - 2rem); margin:0; overflow-y:auto; overscroll-behavior:contain; border:1px solid rgba(15,41,66,.15); border-radius:.9rem; background:var(--tvvt-cream); color:var(--tvvt-ink); box-shadow:0 14px 38px rgba(4,18,30,.22); pointer-events:auto; }
.tvvt-cookie-panel header { position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:.65rem; padding:.75rem .9rem; background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-icon { display:grid; width:2rem; height:2rem; place-items:center; border-radius:50%; background:var(--tvvt-clay); font-size:1.1rem; }
.tvvt-cookie-panel header p { margin:0 0 .12rem; color:#ffb097; font-size:.66rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.tvvt-cookie-panel header h2 { margin:0; color:#fff; font-size:1rem; letter-spacing:.06em; text-transform:uppercase; }
.tvvt-cookie-body { padding:.85rem .9rem .95rem; }
.tvvt-cookie-body>p { margin:0; color:rgba(28,28,30,.8); font-size:.79rem; line-height:1.48; }
.tvvt-cookie-detail { margin-top:.5rem!important; color:rgba(28,28,30,.65)!important; font-size:.68rem!important; line-height:1.42!important; }
.tvvt-cookie-detail a { color:var(--tvvt-clay); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.tvvt-cookie-categories { display:grid; gap:.55rem; margin-top:.8rem; border-top:1px solid rgba(15,41,66,.12); padding-top:.8rem; }
.tvvt-cookie-categories[hidden] { display:none; }
.tvvt-cookie-categories label { display:flex; align-items:flex-start; gap:.7rem; border:1px solid rgba(15,41,66,.12); border-radius:.75rem; padding:.8rem; background:#fff; cursor:pointer; }
.tvvt-cookie-categories input { width:1.05rem; height:1.05rem; margin:.12rem 0 0; accent-color:var(--tvvt-blue); }
.tvvt-cookie-categories strong,.tvvt-cookie-categories small { display:block; }
.tvvt-cookie-categories strong { color:var(--tvvt-blue); font-size:.84rem; letter-spacing:.04em; text-transform:uppercase; }
.tvvt-cookie-categories small { margin-top:.22rem; color:rgba(28,28,30,.65); font-size:.76rem; line-height:1.45; }
.tvvt-cookie-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; margin-top:.85rem; }
.tvvt-cookie-actions button { min-height:2.5rem; border:2px solid var(--tvvt-blue); border-radius:99px; padding:.45rem .6rem; background:transparent; color:var(--tvvt-blue); font:700 .74rem 'Oswald',sans-serif; letter-spacing:.055em; text-transform:uppercase; cursor:pointer; transition:.2s ease; }
.tvvt-cookie-actions button[data-cookie-all] { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
.tvvt-cookie-actions button[data-cookie-save] { background:#fff; }
.tvvt-cookie-actions button:hover { background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-actions button[data-cookie-all]:hover { background:var(--tvvt-clay); border-color:var(--tvvt-clay); }
.tvvt-cookie-actions button[data-cookie-save],.tvvt-cookie-actions button[data-cookie-details] { grid-column:1 / -1; min-height:2.15rem; border-width:0; padding:.25rem .45rem; background:transparent; font-family:'Source Sans 3',sans-serif; font-size:.76rem; text-decoration:underline; text-underline-offset:3px; }
.tvvt-cookie-actions button[data-cookie-save] { border:1px solid rgba(15,41,66,.18); background:#fff; font-family:'Oswald',sans-serif; text-decoration:none; }
.tvvt-cookie-close { margin-top:.65rem; border:0; padding:0; background:transparent; color:rgba(28,28,30,.62); font:inherit; font-size:.7rem; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
@media(max-width:600px) { .tvvt-cookie-consent { right:.7rem; bottom:.7rem; width:calc(100% - 1.4rem); } .tvvt-cookie-panel { max-height:calc(100dvh - 1.4rem); border-radius:.8rem; } }

.tvvt-cookie-panel header { justify-content:space-between; }
.tvvt-cookie-panel header>div { min-width:0; }
.tvvt-cookie-panel header .tvvt-cookie-close { display:grid; width:1.75rem; height:1.75rem; margin:0 0 0 auto; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; padding:0; color:rgba(255,255,255,.78); font-size:1.15rem; line-height:1; text-decoration:none; }
.tvvt-cookie-panel header .tvvt-cookie-close[hidden] { display:none; }
.tvvt-cookie-panel header .tvvt-cookie-close:hover { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.1); color:#fff; }
.tvvt-cookie-summary { max-width:25rem; }
html.tvvt-cookie-settings-open,body.tvvt-cookie-settings-open { overflow:hidden; overscroll-behavior:none; }

/* Hero: Der Spieler bleibt als vollständige Silhouette rechts frei; Text und Aktionen erhalten eine eigene linke Zone. */
.tvvt-hero::before { background-position:center,center,right center; background-size:100% 100%,100% 100%,auto 100%; }
@media(min-width:901px) { .tvvt-hero-content { width:min(calc(100% - 2rem),30rem); max-width:30rem; } .tvvt-hero h1 { max-width:8.5ch; font-size:clamp(3.35rem,6.4vw,6.2rem); } .tvvt-hero-subtitle { max-width:23rem; } }

.tvvt-instagram-profile { display:inline-flex; align-items:center; gap:.75rem; margin:1.25rem auto 0; border-radius:999px; padding:.55rem .85rem .55rem .55rem; background:#fff; color:var(--tvvt-blue)!important; box-shadow:0 6px 16px rgba(15,41,66,.08); transition:transform .18s ease,box-shadow .18s ease; }
.tvvt-instagram-profile:hover { box-shadow:0 12px 24px rgba(15,41,66,.14); transform:translateY(-2px); }
.tvvt-instagram-profile img { display:block; width:2.75rem; height:2.75rem; border:2px solid #111; border-radius:50%; object-fit:cover; }
.tvvt-instagram-profile span { text-align:left; }
.tvvt-instagram-profile strong,.tvvt-instagram-profile small { display:block; }
.tvvt-instagram-profile strong { font-family:'Oswald',sans-serif; font-size:.92rem; letter-spacing:.055em; text-transform:uppercase; }
.tvvt-instagram-profile small { margin-top:.08rem; color:rgba(28,28,30,.56); font-size:.72rem; }
.tvvt-instagram-profile b { color:var(--tvvt-clay); font-size:1rem; }
.tvvt-instagram-more { margin:1.35rem 0 0; text-align:center; }
.tvvt-instagram-more a { color:var(--tvvt-blue); font-size:.9rem; font-weight:700; text-decoration:underline; text-decoration-color:rgba(240,56,0,.45); text-underline-offset:4px; }
.tvvt-instagram-more a:hover { color:var(--tvvt-clay); }
.tvvt-social-follow { display:flex; flex-direction:column; align-items:center; gap:.65rem; }
.tvvt-social-follow .tvvt-follow { margin:1.35rem 0 0; }
.tvvt-facebook-follow { color:rgba(28,28,30,.56)!important; font-size:.88rem; text-decoration:underline!important; text-underline-offset:4px; }
.tvvt-facebook-follow:hover { color:var(--tvvt-blue)!important; }

.tvvt-training { position:relative; overflow:hidden; background:radial-gradient(circle at 85% 12%,rgba(240,56,0,.24),transparent 26%),linear-gradient(112deg,#0f2942 0%,#0b2034 100%); color:#fff; }
.tvvt-training-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(18rem,.92fr); align-items:center; gap:5rem; }
.tvvt-training .tvvt-eyebrow { color:#ff9f7e; }
.tvvt-training .tvvt-title { color:#fff; text-align:left; }
.tvvt-training .tvvt-title::after { margin-left:0; }
.tvvt-training-copy>p { max-width:42rem; color:rgba(255,255,255,.78); font-size:1.12rem; line-height:1.65; }
.tvvt-training-points { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:2rem; }
.tvvt-training-points span { display:flex; align-items:center; gap:.65rem; min-height:3.8rem; border:1px solid rgba(255,255,255,.1); border-radius:.85rem; padding:.85rem; background:rgba(255,255,255,.06); color:rgba(255,255,255,.9); font-size:.86rem; font-weight:700; }
.tvvt-training-points i { display:grid; width:2rem; height:2rem; flex:0 0 auto; place-items:center; border-radius:.55rem; background:var(--tvvt-clay); color:#fff; font-style:normal; }
.tvvt-training-coach { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.15); border-radius:1.2rem; padding:2.25rem; background:rgba(7,24,39,.76); box-shadow:0 20px 44px rgba(0,0,0,.24); }
.tvvt-training-coach::after { position:absolute; top:0; right:0; width:8rem; height:8rem; border-radius:0 0 0 100%; background:rgba(240,56,0,.16); content:''; }
.tvvt-training-profile-preview { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.15); border-radius:1rem; background:#0b2034; }
.tvvt-training-profile-preview .tvvt-training-placeholder { display:block; width:100%; height:13rem; border:0; border-radius:0; padding:0; background:transparent; object-fit:cover; }
.tvvt-training-profile-preview span { position:absolute; left:.75rem; bottom:.75rem; border-radius:99px; padding:.3rem .55rem; background:rgba(7,24,39,.8); color:rgba(255,255,255,.84); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.tvvt-training-coach .tvvt-training-brand { display:block; position:relative; z-index:2; width:6rem; height:4.8rem; margin:-2.1rem 0 0 1rem; border-radius:.8rem; padding:.3rem; background:#fff; object-fit:contain; box-shadow:0 10px 24px rgba(0,0,0,.25); }
.tvvt-training-coach p { position:relative; z-index:1; margin:1.6rem 0 .35rem; color:#ff9f7e; font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.tvvt-training-coach h3 { position:relative; z-index:1; margin:0; font-size:2rem; text-transform:uppercase; }
.tvvt-training-coach>span { position:relative; z-index:1; display:block; margin-top:1rem; color:rgba(255,255,255,.72); line-height:1.6; }
.tvvt-training-coach a { position:relative; z-index:1; display:inline-block; margin-top:1.4rem; color:#fff; font-size:.9rem; font-weight:700; text-decoration:underline!important; text-decoration-color:var(--tvvt-clay)!important; text-decoration-thickness:2px!important; text-underline-offset:4px; }

@media(min-width:601px) and (max-width:900px) { .tvvt-hero::before { background-position:center,center,left center; background-size:100% 100%,100% 100%,auto 100%; } .tvvt-hero-content { max-width:22rem; } .tvvt-hero h1 { max-width:8.5ch; } }
@media(max-width:600px) { .tvvt-hero::before { background-position:center,center,left center; background-size:100% 100%,100% 100%,auto 100%; } .tvvt-hero-content { max-width:14.5rem; padding-right:0; } .tvvt-hero h1 { max-width:8.5ch; font-size:clamp(3.15rem,14vw,3.8rem); } .tvvt-hero-subtitle { max-width:13.5rem; font-size:1rem; } .tvvt-hero .tvvt-reserve { padding:.68rem .9rem; font-size:.78rem; } .tvvt-stats { max-width:14.5rem; } }

@media(max-width:900px) { .tvvt-training-grid { grid-template-columns:1fr; gap:2.5rem; } }
@media(max-width:600px) { .tvvt-training-points { grid-template-columns:1fr; } .tvvt-training-coach { padding:1.6rem; } .tvvt-footer-reservation { display:inline-flex; } }

/* Designreview: Desktop bleibt großzügig und asymmetrisch; Mobil folgt weiterhin der klaren Einspaltenordnung. */
@media(min-width:901px) {
  .tvvt-hero::before { background-image:radial-gradient(ellipse 30% 60% at 56% 51%,rgba(255,255,255,.26),transparent 74%),linear-gradient(98deg,#071827 0%,#071827 23%,rgba(7,24,39,.88) 35%,rgba(7,24,39,.32) 50%,rgba(7,24,39,.07) 66%,rgba(5,18,30,.12) 100%),linear-gradient(0deg,rgba(5,18,30,.89) 0%,rgba(5,18,30,.18) 38%,rgba(5,18,30,.03) 68%,rgba(5,18,30,.25) 100%),var(--tvvt-hero-image); background-position:center,center,center,76% 46%; background-size:100% 100%,100% 100%,100% 100%,auto 100%; }
  .tvvt-stats { width:auto; margin-top:2.05rem; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; backdrop-filter:none; }
  .tvvt-stat { min-width:8.25rem; padding-right:2.25rem; }
  .tvvt-stat+.tvvt-stat { padding-left:2.25rem; }
  .tvvt-about-grid { grid-template-columns:.82fr 1.18fr; gap:5rem; }
  .tvvt-feature-image { transform:translateY(2.5rem); }
  .tvvt-cards .tvvt-card:nth-child(2) { transform:translateY(2.35rem); }
  .tvvt-cards .tvvt-card:nth-child(3) { transform:translateY(-1.25rem); }
  .tvvt-cards .tvvt-card:nth-child(4) { transform:translateY(1rem); }
  .tvvt-cards .tvvt-card:nth-child(2):hover { transform:translateY(1.75rem); }
  .tvvt-cards .tvvt-card:nth-child(3):hover { transform:translateY(-1.8rem); }
  .tvvt-cards .tvvt-card:nth-child(4):hover { transform:translateY(.4rem); }
  .tvvt-training-grid { grid-template-columns:minmax(0,.92fr) minmax(18rem,1.08fr); }
  .tvvt-training-copy { padding-bottom:2.5rem; }
  .tvvt-training-coach { margin-top:-2.5rem; margin-left:1rem; }
  .tvvt-gastro-grid { grid-template-columns:1.12fr .88fr; gap:5rem; }
  .tvvt-gastro-photo { transform:translateY(-2.5rem); }
  .tvvt-gastro-grid>.tvvt-copy { padding-top:2.5rem; }
}

html.tvvt-lightbox-open,body.tvvt-lightbox-open { height:100%; overflow:hidden!important; }
.tvvt-lightbox { position:fixed; z-index:9999; display:grid; place-items:center; overflow:auto; overscroll-behavior:contain; }
.tvvt-lightbox figure { max-height:calc(100dvh - 2rem); }
.tvvt-lightbox-close { position:fixed; z-index:10000; }

/* Dialoge stehen auf einer eigenen, vom Dokumentfluss unabhängigen Ebene. */
html.tvvt-calculator-open,body.tvvt-calculator-open { height:100%; overflow:hidden!important; }
@media(min-width:901px) {
  .tvvt-price-calculator { position:fixed; z-index:9999; display:grid!important; place-items:center; overflow:auto; padding:2rem; }
  .tvvt-price-calculator-panel { max-height:calc(100dvh - 4rem); margin:0!important; overflow-y:auto; }
  .tvvt-hero::after { display:none; }
  .tvvt-training-profile-preview .tvvt-training-placeholder { height:17rem; object-position:center 28%; }
}
@media(max-width:600px) { .tvvt-training-profile-preview .tvvt-training-placeholder { height:15rem; object-position:center 27%; } }

.tvvt-legal-site-header { border-bottom:1px solid rgba(255,255,255,.1); background:rgba(7,24,39,.93); box-shadow:0 8px 28px rgba(4,18,30,.12); }
.tvvt-legal-header-actions { display:flex; align-items:center; gap:.65rem; }
.tvvt-legal-header-actions button { border:1px solid rgba(255,255,255,.15); border-radius:999px; padding:.58rem .8rem; background:rgba(255,255,255,.07); color:rgba(255,255,255,.88); font:600 .72rem 'Source Sans 3',sans-serif; cursor:pointer; transition:background .18s ease,border-color .18s ease,color .18s ease; }
.tvvt-legal-header-actions button:hover { border-color:rgba(240,56,0,.7); background:rgba(255,255,255,.13); color:#fff; }
.tvvt-legal-header-actions a { display:inline-flex; align-items:center; gap:.42rem; border-radius:999px; padding:.62rem .92rem; background:var(--tvvt-clay); color:#fff!important; box-shadow:0 7px 18px rgba(240,56,0,.24); font:700 .74rem 'Oswald',sans-serif; letter-spacing:.055em; text-transform:uppercase; transition:background .18s ease,transform .18s ease; }
.tvvt-legal-header-actions a:hover { background:var(--tvvt-clay-light); transform:translateY(-2px); }
@media(max-width:600px) { .tvvt-legal-site-header { padding:.65rem 0; } .tvvt-legal-site-header .tvvt-brand img { height:1.75rem; } .tvvt-legal-header-actions { gap:.4rem; } .tvvt-legal-header-actions button { padding:.5rem .58rem; font-size:.62rem; } .tvvt-legal-header-actions a { min-width:2.2rem; justify-content:center; padding:.56rem .68rem; } .tvvt-legal-header-actions a b { display:none; } }

/* Instagram carousel: native horizontal swipe track with consent-safe media cards. */
.tvvt-instagram-slider[hidden] { display:none; }
.tvvt-instagram-slider { position:relative; }
.tvvt-instagram-track { display:flex; gap:1rem; overflow-x:auto; overscroll-behavior-x:contain; padding:.25rem .25rem 1rem; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-color:rgba(15,41,66,.42) transparent; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
.tvvt-instagram-track:focus-visible { outline:2px solid var(--tvvt-clay); outline-offset:.35rem; }
.tvvt-instagram-card { position:relative; display:block; flex:0 0 84%; aspect-ratio:4/5; overflow:hidden; border:1px solid rgba(15,41,66,.12); border-radius:1.15rem; background:#fff; box-shadow:0 8px 22px rgba(15,41,66,.08); scroll-snap-align:start; scroll-snap-stop:always; transition:transform .36s cubic-bezier(.23,1,.32,1),box-shadow .36s cubic-bezier(.23,1,.32,1); }
.tvvt-instagram-card:hover { transform:translateY(-.16rem); box-shadow:0 14px 30px rgba(15,41,66,.12); }
.tvvt-instagram-card img { display:block; width:100%; height:100%; object-fit:contain; background:#fff; }
.tvvt-instagram-card-mark { position:absolute; right:.75rem; bottom:.75rem; display:grid; width:2.25rem; height:2.25rem; place-items:center; overflow:hidden; border-radius:999px; background:#111; color:#fff; opacity:0; transform:translateY(.35rem); transition:opacity .18s ease,transform .18s ease; }
.tvvt-instagram-card-mark img { display:block; width:100%; height:100%; border:0; border-radius:0; object-fit:cover; }
.tvvt-instagram-card:hover .tvvt-instagram-card-mark,.tvvt-instagram-card:focus-visible .tvvt-instagram-card-mark { opacity:1; transform:none; }
.tvvt-instagram-controls { display:flex; align-items:center; justify-content:center; gap:.75rem; margin-top:1.25rem; }
.tvvt-instagram-controls>button { display:grid; width:2.35rem; height:2.35rem; place-items:center; border:1px solid rgba(15,41,66,.18); border-radius:999px; background:#fff; color:var(--tvvt-blue); font-size:1.35rem; line-height:1; cursor:pointer; transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease; }
.tvvt-instagram-controls>button:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; transform:translateY(-1px); }
.tvvt-instagram-controls>button:active { transform:scale(.96); }
.tvvt-instagram-controls>button:disabled,.tvvt-instagram-edge-prev:disabled,.tvvt-instagram-edge-next:disabled { opacity:0; pointer-events:none; }
.tvvt-instagram-edge-prev,.tvvt-instagram-edge-next { position:absolute; z-index:2; top:calc(50% - 1.4rem); display:grid; width:2.8rem; height:2.8rem; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; background:rgba(7,24,39,.48); box-shadow:0 8px 22px rgba(7,24,39,.22); color:#fff; cursor:pointer; font-size:1.8rem; line-height:1; opacity:.9; transition:background .18s ease,transform .18s ease,opacity .18s ease; }
.tvvt-instagram-edge-prev { left:.45rem; }
.tvvt-instagram-edge-next { right:.45rem; }
.tvvt-instagram-edge-prev:hover { background:rgba(240,56,0,.88); transform:translateX(-2px); }
.tvvt-instagram-edge-next:hover { background:rgba(240,56,0,.88); transform:translateX(2px); }
.tvvt-instagram-dots { display:flex; align-items:center; gap:.35rem; }
.tvvt-instagram-dot { width:.45rem; height:.45rem; border:0; border-radius:999px; padding:0; background:rgba(15,41,66,.25); cursor:pointer; transition:width .18s ease,background .18s ease; }
.tvvt-instagram-dot.is-active { width:1.15rem; background:var(--tvvt-clay); }
.tvvt-instagram-profile-placeholder { display:grid; width:3rem; height:3rem; place-items:center; border-radius:50%; background:#111; color:#fff; font-size:1.25rem; }
.tvvt-instagram-profile img[hidden] { display:none; }
.tvvt-instagram-profile img:not([hidden]) { display:block; width:3rem; height:3rem; border:2px solid #111; border-radius:50%; object-fit:cover; }
@media(min-width:601px) { .tvvt-instagram-card { flex-basis:48%; } }
@media(min-width:901px) { .tvvt-instagram-track { padding-bottom:.25rem; scrollbar-width:none; } .tvvt-instagram-track::-webkit-scrollbar { display:none; } .tvvt-instagram-card { flex-basis:23.3%; } }

.tvvt-footer { font-size:1rem; }
.tvvt-footer h3 { font-size:1.1rem; }
.tvvt-footer p,.tvvt-footer li,.tvvt-footer a { font-size:.98rem; line-height:1.55; }
.tvvt-footer-bottom { align-items:center; font-size:.92rem; }
.tvvt-footer-bottom a,.tvvt-footer-bottom button { display:inline-flex; align-items:center; border:1px solid rgba(255,255,255,.15); border-radius:999px; padding:.4rem .7rem; background:rgba(255,255,255,.06); color:rgba(255,255,255,.88); font-weight:700; text-decoration:none; transition:background .18s ease,border-color .18s ease,color .18s ease; }
.tvvt-footer-bottom a:hover,.tvvt-footer-bottom button:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
@media(prefers-reduced-motion:reduce) { .tvvt-instagram-track { scroll-behavior:auto; } .tvvt-instagram-card,.tvvt-instagram-controls>button,.tvvt-instagram-card-mark { transition:none; } }
@media(max-width:600px) { .tvvt-instagram-card { flex-basis:88%; } }
@media(max-width:600px) { .tvvt-gastro { padding-bottom:2.25rem; } .tvvt-instagram { padding-top:2.25rem; } .tvvt-instagram-edge-prev,.tvvt-instagram-edge-next { display:none; } .tvvt-footer-bottom { gap:1rem; } .tvvt-footer-bottom a,.tvvt-footer-bottom button { min-height:2.6rem; margin:.1rem .2rem .1rem 0; } .tvvt-footer-bottom a:active,.tvvt-footer-bottom button:active { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; } }

/* Designreview: Der Datenschutz-Zustand erhält eigene Hierarchie, der mobile Footer größere Lesbarkeit und Treffflächen. */
.tvvt-external-media-note { max-width:34rem; border-color:rgba(240,56,0,.2); border-radius:1rem; padding:1rem 1.1rem; background:#fff; box-shadow:0 12px 28px rgba(15,41,66,.06); color:rgba(28,28,30,.68)!important; text-align:left; }
.tvvt-external-media-note::before { display:block; margin-bottom:.3rem; color:var(--tvvt-blue); content:'Geschützte Instagram-Einblicke'; font:700 .82rem 'Oswald',sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.tvvt-external-media-note button { display:inline-flex; min-height:2.4rem; align-items:center; margin-top:.6rem; border:1px solid rgba(240,56,0,.28); border-radius:999px; padding:.4rem .85rem; background:var(--tvvt-orange-soft); text-decoration:none; transition:background .18s ease,border-color .18s ease,color .18s ease; }
.tvvt-external-media-note button:hover { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
.tvvt-external-media-note .tvvt-external-media-activate { display:inline-flex; min-height:2.75rem; align-items:center; justify-content:center; margin:.9rem .45rem 0 0; border:1px solid var(--tvvt-clay); border-radius:999px; padding:.6rem 1.1rem; background:var(--tvvt-clay); color:#fff; font:700 .78rem 'Oswald',sans-serif; letter-spacing:.065em; text-transform:uppercase; box-shadow:0 9px 20px rgba(240,56,0,.24); transition:background .18s ease,transform .18s ease,box-shadow .18s ease; }
.tvvt-external-media-note .tvvt-external-media-activate:hover { border-color:var(--tvvt-clay-light); background:var(--tvvt-clay-light); color:#fff; box-shadow:0 13px 24px rgba(240,56,0,.3); transform:translateY(-2px); }
.tvvt-external-media-note .tvvt-external-media-activate:active { transform:scale(.97); }
.tvvt-external-media-note[hidden],.tvvt-external-media-status[hidden] { display:none!important; }
.tvvt-external-media-status { display:flex; align-items:center; justify-content:center; gap:.32rem; margin:.65rem auto 0; color:rgba(15,41,66,.48); font-size:.66rem; line-height:1.35; letter-spacing:.01em; }
.tvvt-external-media-status-icon { display:grid; width:.9rem; height:.9rem; flex:0 0 auto; place-items:center; color:rgba(15,41,66,.5); }
.tvvt-external-media-status-icon svg { display:block; width:.64rem; height:.64rem; }
.tvvt-external-media-status button { border:0; padding:0; background:transparent; color:inherit; font:600 inherit; text-decoration:underline; text-decoration-color:rgba(15,41,66,.24); text-underline-offset:2px; cursor:pointer; }
.tvvt-external-media-status button:hover { color:var(--tvvt-clay); }
.tvvt-footer-legal { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.45rem; }
@media(max-width:600px) {
  .tvvt-footer { padding:4rem 0 1.8rem; }
  .tvvt-footer p,.tvvt-footer li,.tvvt-footer a { font-size:1.02rem; line-height:1.62; }
  .tvvt-footer-grid { gap:2.5rem; }
  .tvvt-footer-bottom { align-items:stretch; margin-top:2.75rem; padding-top:1.25rem; text-align:center; }
  .tvvt-footer-bottom>span { color:rgba(255,255,255,.56); line-height:1.55; }
  .tvvt-footer-legal { display:grid; grid-template-columns:1fr; gap:.5rem; width:100%; }
  .tvvt-footer-bottom .tvvt-footer-legal a,.tvvt-footer-bottom .tvvt-footer-legal button { display:flex; width:100%; min-height:2.8rem; align-items:center; justify-content:center; margin:0; padding:.55rem .85rem; }
}

/* React-Parität: Hero, Icons, Kontraste und Bewegungszustände der WordPress-Ausgabe. */
@keyframes tvvt-reserve-glow {
  0%,100% { box-shadow:0 8px 22px rgba(240,56,0,.35),0 0 0 0 rgba(240,56,0,.36); }
  50% { box-shadow:0 8px 22px rgba(240,56,0,.35),0 0 0 14px rgba(240,56,0,0); }
}
.tvvt-reserve--pulse { animation:tvvt-reserve-glow 2.5s ease-in-out infinite; }
.tvvt-card,.tvvt-price-card,.tvvt-meta-card,.tvvt-gastro-point,.tvvt-map-activate,.tvvt-map-route { transition:transform .22s cubic-bezier(.23,1,.32,1),box-shadow .22s cubic-bezier(.23,1,.32,1),border-color .22s ease,background-color .22s ease,color .22s ease; }
.tvvt-card:hover { border-color:rgba(240,56,0,.3); }
.tvvt-card:hover .tvvt-icon { background:var(--tvvt-clay); color:#fff; transform:scale(1.05); }
.tvvt-icon { font-size:0; transition:transform .22s ease,background .22s ease,color .22s ease; }
.tvvt-icon::after,.tvvt-training-points i::after { display:block; width:1.22rem; height:1.22rem; background:center/contain no-repeat; content:''; }
.tvvt-card:nth-child(1) .tvvt-icon::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.tvvt-card:nth-child(2) .tvvt-icon::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.tvvt-card:nth-child(3) .tvvt-icon::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8M12 17v4M7 4h10v7a5 5 0 0 1-10 0V4Z'/%3E%3Cpath d='M7 7H4v2a3 3 0 0 0 3 3M17 7h3v2a3 3 0 0 1-3 3'/%3E%3C/svg%3E"); }
.tvvt-card:nth-child(4) .tvvt-icon::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78Z'/%3E%3C/svg%3E"); }
.tvvt-card:hover .tvvt-icon::after { filter:brightness(0) invert(1); }
.tvvt-card-overlay span { font-size:0; }
.tvvt-card-overlay span::after { color:var(--tvvt-blue); font:700 .72rem 'Source Sans 3',sans-serif; }
.tvvt-card-gallery .tvvt-card-overlay span::after { content:'10 Bilder ansehen'; }
.tvvt-card:nth-child(3) .tvvt-card-overlay span::after { content:'KTV-Vereinsseite'; }
.tvvt-training-points span { transition:transform .22s cubic-bezier(.23,1,.32,1),border-color .22s ease,background .22s ease,box-shadow .22s ease; }
.tvvt-training-points span:hover { border-color:rgba(240,56,0,.52); background:rgba(255,255,255,.1); box-shadow:0 12px 24px rgba(0,0,0,.15); transform:translateY(-3px); }
.tvvt-training-points i { font-size:0; }
.tvvt-training-points span:nth-child(1) i::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78Z'/%3E%3C/svg%3E"); }
.tvvt-training-points span:nth-child(2) i::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.48 12.89 17 22l-5-3-5 3 1.52-9.12'/%3E%3C/svg%3E"); }
.tvvt-training-points span:nth-child(3) i::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.tvvt-training-points span:nth-child(4) i::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8M12 17v4M7 4h10v7a5 5 0 0 1-10 0V4Z'/%3E%3Cpath d='M7 7H4v2a3 3 0 0 0 3 3M17 7h3v2a3 3 0 0 1-3 3'/%3E%3C/svg%3E"); }
.tvvt-training-coach h3 { color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.22); }
.tvvt-training-coach>span { color:rgba(255,255,255,.82); }
.tvvt-training-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-top:1.5rem; }
.tvvt-training-gallery button { position:relative; display:block; min-height:8rem; overflow:hidden; border:1px solid rgba(255,255,255,.16); border-radius:.8rem; padding:0; background:#0b2034; cursor:pointer; }
.tvvt-training-gallery img { display:block; width:100%; height:100%; min-height:8rem; object-fit:cover; transition:transform .24s cubic-bezier(.23,1,.32,1),filter .24s ease; }
.tvvt-training-gallery button>span { position:absolute; right:.55rem; bottom:.55rem; display:grid; width:2rem; height:2rem; place-items:center; border-radius:50%; background:rgba(7,24,39,.76); color:#fff; opacity:0; transform:translateY(.25rem); transition:opacity .18s ease,transform .18s ease; }
.tvvt-training-gallery button>span svg { display:block; width:1rem; height:1rem; }
.tvvt-training-gallery button:hover img,.tvvt-training-gallery button:focus-visible img { filter:brightness(.84); transform:scale(1.045); }
.tvvt-training-gallery button:hover>span,.tvvt-training-gallery button:focus-visible>span { opacity:1; transform:none; }
.tvvt-training-gallery button:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.tvvt-training-points i { display:grid!important; place-items:center!important; line-height:1!important; }
.tvvt-training-points i::after { margin:auto!important; }
.tvvt-card-icon svg,.tvvt-info-icon svg,.tvvt-payment-icon svg,.tvvt-reserve-icon { display:block; margin:auto; }

/* Trainingssymbole: Die SVG-Fläche wird unabhängig von Glyphenmetriken auf die exakte geometrische Mitte der orangenen Box gesetzt. */
.tvvt-training-points i { position:relative; display:block!important; overflow:hidden; }
.tvvt-training-points i::after { position:absolute; top:50%; left:50%; display:block; width:1.18rem; height:1.18rem; margin:0!important; background-position:center!important; transform:translate(-50%,-50%); }
.tvvt-price-card,.tvvt-meta-card { color:rgba(255,255,255,.82); }
.tvvt-price-card h3,.tvvt-meta-card h3 { color:#fff; }
.tvvt-price-card:hover,.tvvt-meta-card:hover { border-color:rgba(240,56,0,.46); background:rgba(255,255,255,.1); box-shadow:0 18px 34px rgba(0,0,0,.16); transform:translateY(-5px); }
.tvvt-price-card.is-popular:hover { background:var(--tvvt-clay-muted); }
.tvvt-price-list b,.tvvt-price { color:#ff9f7e; }
.tvvt-map-activate:hover,.tvvt-map-route:hover { transform:translateY(-2px); }
@media(min-width:901px) {
  .tvvt-hero::before { background-image:linear-gradient(98deg,#071827 0%,#071827 23%,rgba(7,24,39,.88) 35%,rgba(7,24,39,.32) 50%,rgba(7,24,39,.07) 66%,rgba(5,18,30,.12) 100%),linear-gradient(0deg,rgba(5,18,30,.89) 0%,rgba(5,18,30,.18) 38%,rgba(5,18,30,.03) 68%,rgba(5,18,30,.25) 100%),var(--tvvt-hero-image); background-position:center,center,76% center; background-size:100% 100%,100% 100%,cover; }
  .tvvt-hero::after { display:block; background:radial-gradient(ellipse 30% 60% at 56% 51%,rgba(255,255,255,.26),transparent 74%),radial-gradient(ellipse 62% 56% at 83% 18%,rgba(240,56,0,.2),transparent 62%),radial-gradient(ellipse 42% 42% at 72% 84%,rgba(255,167,103,.1),transparent 70%); mix-blend-mode:screen; opacity:.72; }
  .tvvt-hero-content { width:min(calc(100% - 2rem),30rem); margin-left:max(1rem,calc((100vw - var(--tvvt-max))/2)); padding-top:6.7rem; }
  .tvvt-hero h1 { max-width:8.5ch; }
  body.tvvt-site .tvvt-floating-reservation { display:none!important; }
}
@media(max-width:900px) { body.tvvt-site .tvvt-floating-reservation { display:flex; } }
@media(prefers-reduced-motion:reduce) { .tvvt-reserve--pulse { animation:none; } .tvvt-card,.tvvt-price-card,.tvvt-meta-card,.tvvt-gastro-point,.tvvt-map-activate,.tvvt-map-route,.tvvt-training-points span { transition:none; } }

/* Finaler React-Abgleich: klare Desktop-Anker, eindeutige Linksignale und ruhige Dialoghierarchie. */
.tvvt-price-calculator-icon { display:block; width:1rem; height:1rem; flex:0 0 auto; }
.tvvt-price-calculator-kicker { display:inline-flex; align-items:center; gap:.45rem; }
.tvvt-price-calculator-head { min-height:2.35rem; padding-right:4.1rem; gap:1.5rem; }
.tvvt-price-calculator-info-button { display:inline-flex; align-items:center; gap:.35rem; margin-left:auto; margin-right:.25rem; }
.tvvt-price-calculator-close { top:1.15rem; right:1.15rem; }
.tvvt-price-calculator-trigger { gap:.6rem; }
.tvvt-card-overlay span { display:inline-flex; align-items:center; gap:.42rem; }
.tvvt-card-overlay span::before { display:block; width:1rem; height:1rem; flex:0 0 auto; background:center/contain no-repeat; content:''; }
.tvvt-card-gallery .tvvt-card-overlay span::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9502b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E"); }
.tvvt-card:nth-child(3) .tvvt-card-overlay span::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9502b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7M10 14 21 3M5 5v14a2 2 0 0 0 2 2h14'/%3E%3C/svg%3E"); }
.tvvt-map-placeholder h3 { color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.28); }
.tvvt-map-placeholder p:not(.tvvt-map-consent) { color:rgba(255,255,255,.9); }
.tvvt-map-consent { color:rgba(255,255,255,.72)!important; }
.tvvt-footer-grid>div:nth-child(2),.tvvt-footer-grid>div:nth-child(3) { border-left:1px solid rgba(255,255,255,.11); padding-left:1.35rem; }
.tvvt-footer-grid h3 { position:relative; margin-bottom:1rem; padding-bottom:.6rem; }
.tvvt-footer-grid h3::after { position:absolute; bottom:0; left:0; width:2rem; height:2px; background:var(--tvvt-clay); content:''; }
.tvvt-footer-grid li a,.tvvt-footer-grid p a { transition:color .18s ease,transform .18s ease; }
.tvvt-footer-grid li a:hover,.tvvt-footer-grid p a:hover { color:#fff; transform:translateX(.18rem); }
.tvvt-footer-grid>div:nth-child(3) { border-radius:.9rem; background:rgba(255,255,255,.035); padding-top:.6rem; padding-bottom:.8rem; }
.tvvt-cookie-panel { border:1px solid rgba(15,41,66,.16); box-shadow:0 22px 52px rgba(15,41,66,.18); }
.tvvt-cookie-categories label { transition:border-color .18s ease,background .18s ease; }
.tvvt-cookie-categories label:hover { border-color:rgba(240,56,0,.35); background:rgba(240,56,0,.035); }
.tvvt-cookie-categories input { accent-color:var(--tvvt-clay); }
.tvvt-cookie-actions button { transition:transform .16s ease,background .18s ease,border-color .18s ease,color .18s ease; }
.tvvt-cookie-actions button:active { transform:scale(.97); }
@media(min-width:901px) {
  .tvvt-hero-content { margin-left:max(2rem,calc((100vw - 80rem)/2 + 2rem)); }
}
@media(max-width:900px) { .tvvt-footer-grid>div:nth-child(2),.tvvt-footer-grid>div:nth-child(3) { border-left:0; padding-left:0; } .tvvt-footer-grid>div:nth-child(3) { padding:.85rem 1rem; } }

/* Mobile React-Parität: runder Menüauslöser, kompaktere Karten und klare reservierungs-/Footeraktionen. */
@media(max-width:900px) {
  .tvvt-menu-toggle { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; padding:0; background:rgba(15,41,66,.35); color:#fff; font-size:1.22rem; box-shadow:0 8px 18px rgba(0,0,0,.18); backdrop-filter:blur(10px); transition:border-color .18s ease,background .18s ease,transform .18s ease; }
  .tvvt-menu-toggle-lines { display:grid; width:1.1rem; height:.9rem; align-content:space-between; justify-items:center; line-height:0; }
  .tvvt-menu-toggle-lines i { display:block; width:1.1rem; height:2px; border-radius:99px; background:currentColor; }
  .tvvt-menu-toggle:hover { border-color:var(--tvvt-clay); background:rgba(15,41,66,.7); transform:scale(.96); }
  .tvvt-mobile-panel { background:radial-gradient(circle at 100% 0,rgba(240,56,0,.18),transparent 32%),#0b2034; }
  .tvvt-mobile-panel,.tvvt-mobile-panel a,.tvvt-mobile-panel p { color:#fff!important; }
  .tvvt-mobile-nav a { color:rgba(255,255,255,.92)!important; font-size:1.25rem; }
  .tvvt-mobile-nav a:hover { color:#fff!important; }
  .tvvt-hero .tvvt-reserve { display:inline-flex; margin-top:1.65rem; }
  .tvvt-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
  .tvvt-card-gallery .tvvt-card-image,.tvvt-card-image { height:10.25rem; }
  .tvvt-card-body { padding:1rem; }
  .tvvt-card h3 { margin:.7rem 0 .28rem; font-size:1.05rem; }
  .tvvt-card p { font-size:.82rem; line-height:1.35; }
  .tvvt-icon { width:2.35rem; height:2.35rem; }
  .tvvt-card-overlay { padding:.7rem; }
  .tvvt-card-overlay span { padding:.4rem .55rem; }
  .tvvt-gastro-points { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .tvvt-gastro-point { min-height:5.4rem; justify-content:center; padding:.8rem; font-size:0; text-align:center; }
  .tvvt-gastro-point::before { display:block; width:2.2rem; height:2.2rem; flex:0 0 auto; border-radius:.65rem; background:rgba(15,41,66,.1) center/1.2rem no-repeat; content:''; }
  .tvvt-gastro-point::after { font:700 .8rem/1.25 'Source Sans 3',sans-serif; }
  .tvvt-gastro-point:nth-child(1)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8h1a4 4 0 0 1 0 8h-1'/%3E%3Cpath d='M3 8h14v5a7 7 0 0 1-14 0V8Z'/%3E%3Cpath d='M6 2v3M10 2v3M14 2v3'/%3E%3C/svg%3E"); }
  .tvvt-gastro-point:nth-child(1)::after { content:'Getränke & Café'; }
  .tvvt-gastro-point:nth-child(2)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 2v7M7 2v7M3 5h4M5 9v13M12 3v18M12 13h5a4 4 0 0 0 0-8h-5'/%3E%3C/svg%3E"); }
  .tvvt-gastro-point:nth-child(2)::after { content:'Indonesische Küche'; }
  .tvvt-floating-reservation,.tvvt-floating-reservation:hover { width:3.25rem; height:3.25rem; padding:0; border-radius:50%; transform:none; }
  .tvvt-floating-reservation span,.tvvt-floating-reservation:hover span { display:none!important; }
  .tvvt-footer-reservation { font-size:0; }
  .tvvt-footer-reservation::before { display:block; width:1rem; height:1rem; flex:0 0 auto; background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E"); content:''; }
  .tvvt-footer-reservation::after { content:'Platz reservieren ↗'; font:700 .76rem 'Oswald',sans-serif; letter-spacing:.06em; text-transform:uppercase; }
  .tvvt-footer-reservation span { display:none; }
  .tvvt-footer-bottom { flex-direction:column; justify-content:flex-start; }
  .tvvt-footer-bottom>span { width:100%; }
  .tvvt-footer-legal { order:2; }
}

/* Trainingsgalerie und mobile Präzisierung: optionaler Customizer-Inhalt, ruhige gemeinsame Lightbox und lückenlose Abschnittskante. */
@media(max-width:600px) {
  .tvvt-training-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }
  .tvvt-training-gallery button,.tvvt-training-gallery img { min-height:7.2rem; }
}
@media(prefers-reduced-motion:reduce) { .tvvt-training-gallery img,.tvvt-training-gallery button>span { transition:none; } }

/* Mobile Abschnittsnaht: Training und Preise überlappen um einen Pixel; Variantenlinien dürfen die dunkle Fläche nicht unterbrechen. */
@media(max-width:900px) {
  .tvvt-training { margin-bottom:0!important; }
  .tvvt-training + .tvvt-pricing { position:relative; z-index:1; margin-top:-1px!important; border-top:0!important; padding-top:calc(6rem + 1px); }
  .tvvt-training::after,.tvvt-training + .tvvt-pricing::before,body.tvvt-sections-lines .tvvt-training::after { display:none!important; border:0!important; content:none!important; }
}

/* Responsive Abschluss: keine horizontalen Überläufe, vollständiger Mobile-Drawer und React-parallele Kontaktaktionen. */
body.tvvt-site { overflow-x:hidden; }
.tvvt-contact-line>span { font-size:0; }
.tvvt-contact-line>span::after { display:block; width:1.3rem; height:1.3rem; background:center/contain no-repeat; content:''; }
.tvvt-contact-line:nth-child(1)>span::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.79 19.79 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.62 2.64a2 2 0 0 1-.45 2.11L8 9.75a16 16 0 0 0 6 6l1.28-1.28a2 2 0 0 1 2.11-.45c.86.29 1.74.5 2.64.62A2 2 0 0 1 22 16.92Z'/%3E%3C/svg%3E"); }
.tvvt-contact-line:nth-child(2)>span::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.tvvt-contact-line:nth-child(3)>span::after { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
@media(min-width:901px) {
  .tvvt-hero-content { width:min(calc(100% - 2rem),28rem); margin-left:max(1rem,calc((100vw - 80rem)/2 + 1rem)); }
  .tvvt-contact-line { margin:1.25rem 0; }
  .tvvt-contact-line>span { width:3rem; height:3rem; }
}
@media(max-width:900px) {
  .tvvt-site-header { left:0; right:0; width:100%; }
  .tvvt-header-inner { min-width:0; }
  .tvvt-brand { min-width:0; }
  .tvvt-brand img { max-width:9.5rem; }
  .tvvt-mobile-panel { width:min(calc(100vw - 1rem),24rem); height:100dvh; min-height:0; padding:1rem 1rem 1.1rem; }
  .tvvt-mobile-brand { flex:0 0 auto; }
  .tvvt-mobile-brand img { height:2.35rem; }
  .tvvt-mobile-nav { flex:0 0 auto; margin-top:.55rem; overflow:visible; }
  .tvvt-mobile-nav a { min-height:0; padding:.58rem .5rem; font-size:1.14rem; line-height:1.15; }
  .tvvt-mobile-social { margin-top:auto; padding-top:.75rem; }
  .tvvt-mobile-social p { margin-bottom:.45rem; }
  .tvvt-cards { grid-template-columns:1fr; gap:1rem; }
  .tvvt-card-gallery .tvvt-card-image,.tvvt-card-image { height:12.5rem; }
  .tvvt-gastro-points { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tvvt-gastro-point { flex-direction:column; gap:.45rem; min-height:6rem; padding:.8rem .55rem; }
  .tvvt-gastro-point::after { font-size:.77rem; }
  .tvvt-contact-line { align-items:center; gap:.9rem; }
  .tvvt-contact-line>span { width:3rem; height:3rem; }
  .tvvt-contact-line b { display:block; margin-bottom:.08rem; }
  .tvvt-floating-reservation,.tvvt-floating-reservation:hover { right:max(.85rem,env(safe-area-inset-right)); bottom:max(.85rem,env(safe-area-inset-bottom)); }
  .tvvt-footer { overflow:hidden; }
  .tvvt-footer .tvvt-wrap { width:calc(100% - 2rem); }
  .tvvt-footer-reservation { max-width:100%; overflow:hidden; }
}

/* CTA-Parität: dieselbe ruhige, sichtbare Reservierungsenergie im Desktop-Hero und im Header. */
@keyframes tvvt-reserve-glow {
  0%,100% { box-shadow:0 8px 22px rgba(240,56,0,.35),0 0 0 0 rgba(240,56,0,.28); }
  50% { box-shadow:0 12px 30px rgba(240,56,0,.48),0 0 0 10px rgba(240,56,0,0); }
}
.tvvt-reserve--pulse { animation:tvvt-reserve-glow 2.4s cubic-bezier(.23,1,.32,1) infinite; }
.tvvt-header-cta .tvvt-reserve--pulse { animation-delay:.35s; }
.tvvt-reserve--pulse:hover { animation-play-state:paused; }
@media(prefers-reduced-motion:reduce) { .tvvt-reserve--pulse { animation:none; } }

/* React-Endabgleich: voller Desktop-Hero, ruhige Footertrennung, sauber zentrierte Kontaktaktionen und identische Café-Symbole. */
.tvvt-gastro-icon { display:grid; width:2.5rem; height:2.5rem; flex:0 0 auto; place-items:center; border-radius:.65rem; background:rgba(15,41,66,.1) center/1.25rem no-repeat; }
.tvvt-gastro-icon--coffee { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8h1a4 4 0 0 1 0 8h-1'/%3E%3Cpath d='M3 8h14v5a7 7 0 0 1-14 0V8Z'/%3E%3Cpath d='M6 2v3M10 2v3M14 2v3'/%3E%3C/svg%3E"); }
.tvvt-gastro-icon--kitchen { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18h18'/%3E%3Cpath d='M5 18a7 7 0 0 1 14 0'/%3E%3Cpath d='M12 5v2M8.5 7l1 2M15.5 7l-1 2'/%3E%3C/svg%3E"); }
.tvvt-contact-line { align-items:center; margin:1.1rem 0; color:#fff; transition:transform .2s ease; }
.tvvt-contact-line:hover { transform:translateX(.2rem); }
.tvvt-contact-line>span { display:grid; place-items:center; }
.tvvt-contact-copy { display:grid; gap:.08rem; min-width:0; }
.tvvt-contact-copy small { color:rgba(255,255,255,.42); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.tvvt-contact-copy strong { color:#fff; font-family:'Oswald',sans-serif; font-size:1.12rem; font-weight:600; letter-spacing:.035em; line-height:1.25; overflow-wrap:anywhere; }
.tvvt-contact-copy em { color:rgba(255,255,255,.64); font-size:.9rem; font-style:normal; }
.tvvt-footer-grid>div:nth-child(3) { border-radius:0; background:transparent; }
@media(min-width:901px) {
  .tvvt-hero-content { width:100%; max-width:none; margin-right:0; margin-left:0; padding-left:max(2rem,calc((100vw - 80rem)/2 + 2rem)); }
  .tvvt-footer-grid>div:nth-child(2),.tvvt-footer-grid>div:nth-child(3) { border-left:1px solid rgba(255,255,255,.11); padding:0 0 0 1.35rem; }
  .tvvt-footer-reservation { display:none!important; }
}
@media(max-width:900px) {
  .tvvt-mobile-nav a { min-height:3.05rem; padding:.78rem .6rem; font-size:1.35rem; line-height:1.14; }
  .tvvt-gastro-point { font-size:.82rem; }
  .tvvt-gastro-point::before,.tvvt-gastro-point::after { display:none; }
  .tvvt-gastro-icon { width:2.25rem; height:2.25rem; background-size:1.15rem; }
  .tvvt-contact-line { width:100%; align-items:center; }
  .tvvt-contact-copy { padding-right:.25rem; }
  .tvvt-contact-copy strong { font-size:1.05rem; }
  .tvvt-footer-reservation { display:inline-flex!important; margin-top:1.2rem; font-size:.84rem; }
  .tvvt-footer-reservation::before,.tvvt-footer-reservation::after { display:none; content:none; }
  .tvvt-footer-reservation span { display:inline!important; margin:0!important; font:inherit!important; }
}

/* Der zweite Kontaktspan ist Textinhalt und darf nie die Icon-Abmessungen übernehmen. */
.tvvt-contact-line>.tvvt-contact-copy { display:grid; width:auto; height:auto; flex:1 1 auto; place-items:initial; border:0; border-radius:0; padding:0; background:transparent; box-shadow:none; color:inherit; }
.tvvt-contact-line>.tvvt-contact-copy::after { display:none; content:none; }
.tvvt-contact-line>span:first-child { display:grid; width:3rem; height:3rem; flex:0 0 auto; place-items:center; }

/* Footer- und Mobile-Feinschliff v1.8.27: klare Kontaktadresse, sichere Touch-Flächen und präziser Drawer-Rhythmus. */
.tvvt-footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; }
.tvvt-footer-address,.tvvt-footer-details { margin:0; }
.tvvt-footer-address a { display:inline-flex; align-items:flex-start; gap:.55rem; color:rgba(255,255,255,.72); line-height:1.45; }
.tvvt-footer-address a::before { display:block; width:1rem; height:1rem; flex:0 0 auto; margin-top:.2rem; background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); content:''; opacity:.72; }
.tvvt-footer-address strong,.tvvt-footer-address span { display:block; }
.tvvt-footer-address strong { color:rgba(255,255,255,.88); font-weight:600; }
.tvvt-footer-address span { color:rgba(255,255,255,.58); font-size:.93em; }
.tvvt-footer-details { display:grid; gap:.58rem; width:100%; }
.tvvt-footer-details a { display:inline-flex; align-items:center; gap:.55rem; width:max-content; max-width:100%; color:rgba(255,255,255,.78); line-height:1.45; }
.tvvt-footer-details a::before { display:none!important; content:none; }
.tvvt-footer-details a svg { display:block; width:1rem; height:1rem; flex:0 0 auto; color:#fff; opacity:.88; }

/* Kontrastabsicherung für die dynamischen Auswahl- und Ergebniswerte im Platzpreisrechner. */
.tvvt-price-player select { appearance:auto; border:1px solid rgba(255,255,255,.28); border-radius:.55rem; padding:.5rem .65rem; background:#102f49; color:#fff!important; color-scheme:dark; -webkit-text-fill-color:#fff; text-shadow:none; }
.tvvt-price-player select:focus { border-color:var(--tvvt-clay-light); box-shadow:0 0 0 3px rgba(240,56,0,.2); }
.tvvt-price-player option { background:#102f49; color:#fff!important; -webkit-text-fill-color:#fff; }
.tvvt-price-player option:checked { background:var(--tvvt-clay); color:#fff; }
.tvvt-price-calculator-result { border-color:rgba(255,143,97,.58); background:rgba(240,56,0,.18); }
.tvvt-price-calculator-result span { color:rgba(255,255,255,.82); }
.tvvt-price-calculator-result strong { color:#ffae85; text-shadow:0 1px 0 rgba(0,0,0,.28); }
.tvvt-price-calculator-note { color:rgba(255,255,255,.72); }

/* React-parallele Kartenbeschriftungen: feste SVG-Geometrie statt fragiler Pseudo-Icons. */
.tvvt-card-icon { display:grid; width:2.7rem; height:2.7rem; place-items:center; border-radius:.8rem; background:rgba(15,41,66,.09); color:var(--tvvt-blue); transition:transform .22s ease,background .22s ease,color .22s ease; }
.tvvt-card-icon svg { width:1.22rem; height:1.22rem; }
.tvvt-card:hover .tvvt-card-icon { background:var(--tvvt-clay); color:#fff; transform:scale(1.05); }
.tvvt-card-overlay .tvvt-card-overlay-label { display:inline-flex; align-items:center; gap:.42rem; border-radius:999px; padding:.48rem .7rem; background:rgba(255,255,255,.95); color:var(--tvvt-blue); font:700 .72rem 'Source Sans 3',sans-serif!important; letter-spacing:normal; text-transform:none; }
.tvvt-card-overlay .tvvt-card-overlay-label::before,.tvvt-card-overlay .tvvt-card-overlay-label::after { display:none; content:none; }
.tvvt-card-overlay-label svg { width:1rem; height:1rem; flex:0 0 auto; color:var(--tvvt-clay-muted); }
body.tvvt-cards-frame .tvvt-card-icon { border-radius:.25rem; background:var(--tvvt-blue); color:#fff; }
body.tvvt-cards-editorial .tvvt-card-icon { width:auto; height:auto; place-items:start; border-radius:0; background:transparent; color:var(--tvvt-clay); }
@media(max-width:600px) { .tvvt-card-icon { width:2.35rem; height:2.35rem; } .tvvt-card-overlay .tvvt-card-overlay-label { padding:.4rem .55rem; font-size:.7rem!important; } }

/* Mobile React-Parität: sichtbare, dezente Aktionspillen direkt im Kartenbild. */
@media(max-width:600px) {
  .tvvt-card-gallery .tvvt-card-overlay,.tvvt-card:nth-child(3) .tvvt-card-overlay { display:flex!important; align-items:flex-end; min-height:100%; padding:.75rem; opacity:1; visibility:visible; }
  .tvvt-card-gallery .tvvt-card-overlay-label,.tvvt-card:nth-child(3) .tvvt-card-overlay-label { display:inline-flex!important; visibility:visible!important; opacity:1!important; gap:.42rem; border:1px solid rgba(15,41,66,.08); padding:.42rem .62rem; background:rgba(255,255,255,.96); color:var(--tvvt-blue); font:700 .72rem 'Source Sans 3',sans-serif!important; box-shadow:0 4px 12px rgba(3,14,25,.18); }
  .tvvt-card-overlay-label svg { display:block!important; width:.95rem; height:.95rem; color:var(--tvvt-clay); }
}

/* Sichtbare Karteninhalte: Galerie und Meisterschaft behalten mobil Bildaktion UND vollständigen Kartenrumpf. */
@media(max-width:600px) {
  .tvvt-card-gallery .tvvt-card-body,.tvvt-cards .tvvt-card:nth-child(3) .tvvt-card-body { display:block!important; position:relative!important; z-index:2!important; min-height:9.45rem; padding:1rem!important; background:#fff!important; color:var(--tvvt-ink)!important; opacity:1!important; visibility:visible!important; }
  .tvvt-card-gallery .tvvt-card-body .tvvt-card-icon,.tvvt-cards .tvvt-card:nth-child(3) .tvvt-card-body .tvvt-card-icon { display:grid!important; visibility:visible!important; opacity:1!important; }
  .tvvt-card-gallery .tvvt-card-body h3,.tvvt-cards .tvvt-card:nth-child(3) .tvvt-card-body h3 { display:block!important; margin:.7rem 0 .28rem!important; color:var(--tvvt-blue)!important; font-size:1.05rem!important; line-height:1.1!important; visibility:visible!important; opacity:1!important; }
  .tvvt-card-gallery .tvvt-card-body p,.tvvt-cards .tvvt-card:nth-child(3) .tvvt-card-body p { display:block!important; margin:0!important; color:rgba(28,28,30,.65)!important; font-size:.82rem!important; line-height:1.35!important; visibility:visible!important; opacity:1!important; }
}

/* Preisrechner: Der Titel der aliquoten Aufteilung bleibt auf dem dunklen Untergrund klar als Aktion erkennbar. */
.tvvt-price-calculator-panel h3 { color:#ffae85!important; text-shadow:0 1px 14px rgba(240,56,0,.18); }

/* Cookie-Banner: eine ruhige, React-parallele Einstellungsfläche ohne dekorative Farbakzente. */
.tvvt-cookie-consent { right:1rem; bottom:1rem; width:min(calc(100% - 2rem),30rem); }
.tvvt-cookie-panel { border:1px solid rgba(15,41,66,.12); border-radius:.8rem; background:var(--tvvt-cream); box-shadow:0 10px 26px rgba(4,18,30,.14); }
.tvvt-cookie-panel header { gap:.6rem; border-bottom:1px solid rgba(15,41,66,.1); padding:.75rem .9rem; background:transparent; color:var(--tvvt-blue); }
.tvvt-cookie-icon { width:1.9rem; height:1.9rem; border:1px solid rgba(15,41,66,.18); border-radius:50%; background:transparent; color:var(--tvvt-blue); font-size:1rem; }
.tvvt-cookie-panel header p { color:rgba(15,41,66,.56); font-size:.6rem; }
.tvvt-cookie-panel header h2 { color:var(--tvvt-blue); font-size:.95rem; letter-spacing:.045em; }
.tvvt-cookie-panel header .tvvt-cookie-close { width:1.75rem; height:1.75rem; border:0; border-radius:50%; background:transparent; color:rgba(15,41,66,.58); }
.tvvt-cookie-panel header .tvvt-cookie-close:hover { border:0; background:rgba(15,41,66,.07); color:var(--tvvt-blue); }
.tvvt-cookie-body { padding:.9rem; }
.tvvt-cookie-body>p { color:rgba(28,28,30,.76); }
.tvvt-cookie-detail { color:rgba(28,28,30,.58)!important; }
.tvvt-cookie-detail a { color:var(--tvvt-blue); }
.tvvt-cookie-categories { gap:0; margin-top:.9rem; border-top:1px solid rgba(15,41,66,.1); padding-top:.35rem; }
.tvvt-cookie-categories label { gap:.7rem; border:0; border-bottom:1px solid rgba(15,41,66,.1); border-radius:0; padding:.8rem 0; background:transparent; }
.tvvt-cookie-categories label:hover { border-color:rgba(15,41,66,.18); background:transparent; }
.tvvt-cookie-categories input { accent-color:var(--tvvt-blue); }
.tvvt-cookie-actions { gap:.55rem; margin-top:.9rem; }
.tvvt-cookie-actions button { min-height:2.45rem; border:1px solid var(--tvvt-blue); border-radius:999px; padding:.45rem .65rem; background:transparent; color:var(--tvvt-blue); font-size:.72rem; transition:background .16s ease,color .16s ease,transform .16s ease; }
.tvvt-cookie-actions button[data-cookie-all] { border-color:var(--tvvt-blue); background:transparent; color:var(--tvvt-blue); }
.tvvt-cookie-actions button:hover,.tvvt-cookie-actions button[data-cookie-all]:hover { border-color:var(--tvvt-blue); background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-actions button[data-cookie-save] { border:1px solid rgba(15,41,66,.18); background:transparent; color:var(--tvvt-blue); }
.tvvt-cookie-actions button[data-cookie-save]:hover { border-color:var(--tvvt-blue); background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-actions button[data-cookie-details] { min-height:2rem; color:rgba(15,41,66,.76); }
@media(max-width:600px) { .tvvt-cookie-consent { right:.7rem; bottom:.7rem; width:calc(100% - 1.4rem); } .tvvt-cookie-panel { max-height:calc(100dvh - 1.4rem); border-radius:.75rem; } .tvvt-cookie-actions { gap:.45rem; } .tvvt-cookie-actions button { font-size:.68rem; letter-spacing:.04em; } }

/* Lightbox: deutliche, aber zurückhaltende Steuerung vor dunklem Bildhintergrund. */
.tvvt-lightbox button { width:3.1rem; height:3.1rem; border:1px solid rgba(255,255,255,.28); background:rgba(7,24,39,.78); color:#fff; font-size:1.5rem; font-weight:700; box-shadow:0 10px 26px rgba(0,0,0,.28); opacity:1; }
.tvvt-lightbox-close { top:1.1rem; right:1.1rem; font-size:1.7rem!important; }
.tvvt-lightbox-prev,.tvvt-lightbox-next { width:3.25rem!important; height:3.25rem!important; background:rgba(7,24,39,.72)!important; font-size:1.8rem!important; }
.tvvt-lightbox button:hover { border-color:rgba(255,255,255,.72); background:rgba(7,24,39,.96); color:#fff; box-shadow:0 14px 30px rgba(0,0,0,.4); opacity:1; }
.tvvt-lightbox button:focus-visible { outline:2px solid #fff; outline-offset:3px; }
@media(max-width:600px) { .tvvt-lightbox-close { top:.75rem; right:.75rem; } .tvvt-lightbox-prev { left:.7rem; } .tvvt-lightbox-next { right:.7rem; } .tvvt-lightbox-prev,.tvvt-lightbox-next { width:2.9rem!important; height:2.9rem!important; } }

@media(max-width:900px) {
  .tvvt-mobile-panel { overflow-y:auto; overscroll-behavior:contain; padding:1.1rem 1.15rem 1rem; }
  .tvvt-mobile-brand { align-items:center; padding-bottom:.8rem; border-bottom:1px solid rgba(255,255,255,.1); }
  .tvvt-mobile-nav { margin-top:.9rem; }
  .tvvt-mobile-nav ul { display:grid; gap:.28rem; }
  .tvvt-mobile-nav a { min-height:3.25rem; border:1px solid transparent; border-radius:.9rem; padding:.78rem .85rem; font-size:1.35rem; letter-spacing:.045em; line-height:1.1; }
  .tvvt-mobile-nav a:hover,.tvvt-mobile-nav a:focus-visible { border-color:rgba(240,56,0,.34); background:rgba(255,255,255,.09); transform:translateX(.14rem); }
  .tvvt-mobile-social { margin-top:1.05rem; padding-top:.9rem; }
  .tvvt-mobile-social>div { gap:.65rem; }
  .tvvt-mobile-social a { min-height:2.45rem; padding:.55rem .85rem; }

  .tvvt-footer-grid>div:nth-child(3),.tvvt-footer-grid>div:nth-child(3) * { text-align:left; }
  .tvvt-footer-grid>div:nth-child(3) { justify-self:stretch; }
  .tvvt-footer-grid>div:nth-child(3),.tvvt-footer-grid>div:nth-child(3) h3 { margin-left:0!important; padding-left:0!important; text-align:left!important; }
  .tvvt-footer-contact,.tvvt-footer-details { align-items:flex-start; width:100%; margin-left:0!important; text-align:left; }
  .tvvt-footer-details a { justify-content:flex-start; text-align:left; }
  .tvvt-footer-address a { max-width:100%; }

  /* Mobiler Reservierungsanker: klar erreichbar, jedoch ruhig genug für den Bildinhalt. */
  .tvvt-floating-reservation,.tvvt-floating-reservation:hover { position:fixed; right:max(1rem,env(safe-area-inset-right)); bottom:max(1rem,env(safe-area-inset-bottom)); width:3.3rem; height:3.3rem; overflow:hidden; border:1px solid rgba(255,255,255,.72); border-radius:50%; padding:0; background:var(--tvvt-clay-muted); box-shadow:0 8px 18px rgba(15,41,66,.26),0 2px 8px rgba(201,80,43,.22); transform:none; animation:tvvt-floating-reserve-breathe 3.6s ease-in-out infinite; }
  .tvvt-floating-reservation::after { display:none; }
  .tvvt-floating-reservation-icon { position:relative; z-index:1; width:1.22rem; height:1.22rem; stroke-width:2; }
  .tvvt-floating-reservation:active { transform:scale(.94); }
}
@keyframes tvvt-floating-reserve-breathe { 0%,100% { box-shadow:0 8px 18px rgba(15,41,66,.26),0 2px 8px rgba(201,80,43,.22); } 50% { box-shadow:0 10px 22px rgba(15,41,66,.3),0 3px 12px rgba(201,80,43,.3); } }
@media(prefers-reduced-motion:reduce) { .tvvt-floating-reservation { animation:none!important; } }
@media(max-width:360px) {
  .tvvt-mobile-panel { padding-right:1rem; padding-left:1rem; }
  .tvvt-mobile-nav a { min-height:3.08rem; padding:.7rem .7rem; font-size:1.22rem; }
  .tvvt-mobile-social { margin-top:.75rem; }
}

/* Galerieansicht: moderne, reduzierte Bühne für die Originalbilder. */
.tvvt-lightbox { padding:1.25rem; background:rgba(3,11,19,.985); backdrop-filter:none; }
.tvvt-lightbox figure { width:min(94vw,74rem); height:min(82dvh,48rem); gap:.7rem; }
.tvvt-lightbox img { border-radius:.65rem; box-shadow:0 20px 56px rgba(0,0,0,.42); }
.tvvt-lightbox figcaption { border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:.32rem .7rem; background:rgba(255,255,255,.06); color:rgba(255,255,255,.75); font-size:.74rem; letter-spacing:.025em; }
.tvvt-lightbox button { background:rgba(7,24,39,.72); box-shadow:0 8px 20px rgba(0,0,0,.25); }
.tvvt-lightbox button:hover { background:rgba(7,24,39,.96); box-shadow:0 12px 26px rgba(0,0,0,.36); }
@media(max-width:600px) { .tvvt-lightbox { padding:.75rem; } .tvvt-lightbox figure { width:100%; height:min(78dvh,42rem); } .tvvt-lightbox figcaption { font-size:.68rem; } }

/* Footer: rechtliche Links vor dem abschließenden Copyright; Reservierungsaktion bleibt bewusst leise. */
.tvvt-footer-reservation,.tvvt-footer-reservation.tvvt-reserve--pulse { border:1px solid rgba(255,255,255,.25); background:transparent; box-shadow:none!important; animation:none!important; }
.tvvt-footer-reservation:hover,.tvvt-footer-reservation.tvvt-reserve--pulse:hover { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.08); box-shadow:none!important; transform:translateY(-1px); }
@media(max-width:600px) { .tvvt-footer-bottom .tvvt-footer-legal { order:1; } .tvvt-footer-bottom>span { order:2; margin-top:.55rem; } }

/* Mobile Feinkorrektur: klare Textluft im Training, sichere Lightbox-Navigation innerhalb des Viewports. */
@media(max-width:600px) {
  .tvvt-training-copy>p { margin:1.1rem 0 0; }
  .tvvt-lightbox-prev,.tvvt-lightbox-next { position:fixed; z-index:10002; top:50%; transform:translateY(-50%); }
  .tvvt-lightbox-prev { left:max(.7rem,env(safe-area-inset-left)); }
  .tvvt-lightbox-next { right:max(.7rem,env(safe-area-inset-right)); }
}

/* Desktop- und Social-Feinschliff: prägnante, aber ruhige Handlungs- und Linksignale. */
@media(min-width:901px) {
  .tvvt-header-cta .tvvt-reserve { gap:.42rem; padding:.64rem 1rem; font-size:.78rem; letter-spacing:.06em; }
  .tvvt-primary-nav a[data-external="true"] { padding-right:1.35rem; }
  .tvvt-primary-nav a[data-external="true"]::before { position:absolute; top:50%; right:.35rem; color:var(--tvvt-clay-light); content:'↗'; font-family:'Source Sans 3',sans-serif; font-size:.72rem; font-weight:700; line-height:1; transform:translateY(-50%); }
  .tvvt-hero-content>.tvvt-reserve--pulse { animation:tvvt-hero-reserve-glow 2.6s cubic-bezier(.23,1,.32,1) infinite; }
  .tvvt-training-copy .tvvt-title { margin-bottom:1.2rem; }
  .tvvt-training-copy>p { margin-top:0; }
  .tvvt-footer-logo { height:2.7rem; margin-bottom:1.1rem; }
}
@keyframes tvvt-hero-reserve-glow { 0%,100% { box-shadow:0 9px 22px rgba(240,56,0,.34),0 0 0 0 rgba(240,56,0,.24); } 50% { box-shadow:0 12px 28px rgba(240,56,0,.46),0 0 0 9px rgba(240,56,0,0); } }
.tvvt-social-follow .tvvt-facebook-follow { display:inline-flex; min-height:2.7rem; align-items:center; justify-content:center; gap:.65rem; border:1px solid rgba(28,28,30,.2); border-radius:999px; padding:.65rem 1.05rem; background:#fff; color:#111!important; box-shadow:0 8px 20px rgba(15,41,66,.08); font-size:0; text-decoration:none!important; transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease; }
.tvvt-social-follow .tvvt-facebook-follow::before { display:block; width:1.25rem; height:1.25rem; background:#111; content:''; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.6 21v-8h2.7l.4-3h-3.1V8.1c0-.9.3-1.5 1.6-1.5h1.7V3.9c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.5-4 4.2v2H8v3h2.5v8h3.1Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.6 21v-8h2.7l.4-3h-3.1V8.1c0-.9.3-1.5 1.6-1.5h1.7V3.9c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.5-4 4.2v2H8v3h2.5v8h3.1Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat; }
.tvvt-social-follow .tvvt-facebook-follow::after { content:'Auf Facebook folgen'; font:700 .82rem 'Oswald',sans-serif; letter-spacing:.055em; text-transform:uppercase; }
.tvvt-social-follow .tvvt-facebook-follow:hover { border-color:rgba(28,28,30,.42); background:rgba(28,28,30,.04); color:#111!important; box-shadow:0 10px 22px rgba(15,41,66,.1); transform:translateY(-1px); }
.tvvt-footer-details a,.tvvt-footer-address a { transition:color .16s ease,opacity .16s ease; }
.tvvt-footer-details a:hover,.tvvt-footer-address a:hover { color:#fff!important; opacity:.92; transform:none!important; }
.tvvt-footer-details a:hover svg { color:rgba(255,255,255,.9); }
@media(prefers-reduced-motion:reduce) { .tvvt-hero-content>.tvvt-reserve--pulse { animation:none; } }

/* Cookie-Einstellungen: React-parallele Markenfläche mit klaren, vollständigen Aktionen. */
.tvvt-cookie-panel { border:1px solid rgba(15,41,66,.15); border-radius:.85rem; background:var(--tvvt-cream); box-shadow:0 14px 38px rgba(4,18,30,.22); }
.tvvt-cookie-panel header { gap:.65rem; border-bottom:0; padding:.75rem .9rem; background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-icon { width:2rem; height:2rem; border:0; border-radius:50%; background:var(--tvvt-clay); color:#fff; }
.tvvt-cookie-icon svg { display:block; width:1rem; height:1rem; }
.tvvt-cookie-panel header p { color:#ffb097; font-size:.66rem; }
.tvvt-cookie-panel header h2 { color:#fff; font-size:1rem; letter-spacing:.06em; }
.tvvt-cookie-panel header .tvvt-cookie-close { border:1px solid rgba(255,255,255,.2); background:transparent; color:rgba(255,255,255,.78); }
.tvvt-cookie-panel header .tvvt-cookie-close:hover { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.1); color:#fff; }
.tvvt-cookie-detail a { color:#c9502b; }
.tvvt-cookie-detail a:hover { color:var(--tvvt-clay); }
.tvvt-cookie-categories { gap:.55rem; margin-top:.8rem; padding-top:.8rem; }
.tvvt-cookie-categories label { border:1px solid rgba(15,41,66,.1); border-radius:.75rem; padding:.75rem; background:#fff; }
.tvvt-cookie-categories label:hover { border-color:rgba(15,41,66,.25); background:#fff; }
.tvvt-cookie-categories input { accent-color:var(--tvvt-blue); }
.tvvt-cookie-actions { gap:.5rem; margin-top:.9rem; }
.tvvt-cookie-actions button { min-height:2.5rem; border:2px solid var(--tvvt-blue); padding:.45rem .65rem; color:var(--tvvt-blue); font-size:.74rem; }
.tvvt-cookie-actions button[data-cookie-necessary]:hover { border-color:var(--tvvt-blue); background:var(--tvvt-blue); color:#fff; }
.tvvt-cookie-actions button[data-cookie-all] { border-color:var(--tvvt-clay); background:var(--tvvt-clay); color:#fff; }
.tvvt-cookie-actions button[data-cookie-all]:hover { border-color:#c9502b; background:#c9502b; color:#fff; }
.tvvt-cookie-actions button[data-cookie-save] { border:1px solid rgba(15,41,66,.2); background:#fff; color:var(--tvvt-blue); }
.tvvt-cookie-actions button[data-cookie-save]:hover { border-color:var(--tvvt-blue); background:#fff; color:var(--tvvt-blue); }
.tvvt-cookie-actions button[data-cookie-details] { display:inline-flex; grid-column:1 / -1; width:auto; min-height:2.15rem; align-items:center; justify-self:center; overflow:visible; border:0; padding:.42rem .75rem; background:transparent; box-shadow:none; color:var(--tvvt-blue); font:600 .78rem 'Source Sans 3',sans-serif; line-height:1.25; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; white-space:nowrap; }
.tvvt-cookie-actions button[data-cookie-details]:hover { color:var(--tvvt-blue); background:transparent; }
.tvvt-cookie-actions button[data-cookie-details]:focus-visible { outline:2px solid rgba(15,41,66,.58); outline-offset:3px; }
@media(max-width:600px) { .tvvt-cookie-actions button[data-cookie-details] { min-height:2.25rem; padding:.46rem .75rem; font-size:.78rem; } }

/* Mobile Cookie-Banner: neutralisiert fremde Button- und Fokusrahmen; nur Tastaturfokus bleibt sichtbar. */
.tvvt-cookie-actions button[data-cookie-details],.tvvt-cookie-actions button[data-cookie-details]:hover,.tvvt-cookie-actions button[data-cookie-details]:focus,.tvvt-cookie-actions button[data-cookie-details]:active { border:0!important; outline:0!important; background:transparent!important; box-shadow:none!important; -webkit-appearance:none; appearance:none; }
.tvvt-cookie-actions button[data-cookie-details]:focus-visible { outline:2px solid rgba(15,41,66,.68)!important; outline-offset:3px; }
@media(max-width:600px) { .tvvt-cookie-actions button[data-cookie-details],.tvvt-cookie-actions button[data-cookie-details]:hover,.tvvt-cookie-actions button[data-cookie-details]:focus,.tvvt-cookie-actions button[data-cookie-details]:active { border:0!important; outline:0!important; box-shadow:none!important; } .tvvt-cookie-actions button[data-cookie-details]:focus-visible { outline:2px solid rgba(15,41,66,.68)!important; } }

/* Startbanner: Der programmatisch fokussierte Dialogtitel erhält keinen fremden Fokusrahmen. */
.tvvt-cookie-panel #tvvt-cookie-title:focus,.tvvt-cookie-panel #tvvt-cookie-title:focus-visible { outline:0!important; border:0!important; box-shadow:none!important; }

/* Bewegungsrhythmus: eine gemeinsame, sparsame Interaktionssprache für die Startseite. */
:root { --tvvt-motion-out:cubic-bezier(.23,1,.32,1); --tvvt-motion-fast:180ms; --tvvt-motion-standard:260ms; --tvvt-motion-reveal:640ms; }
@media(prefers-reduced-motion:no-preference) {
  .tvvt-reveal { transform:translate3d(0,1.15rem,0); transition:opacity var(--tvvt-motion-reveal) var(--tvvt-motion-out) var(--tvvt-reveal-delay,0ms),transform var(--tvvt-motion-reveal) var(--tvvt-motion-out) var(--tvvt-reveal-delay,0ms); }
  .tvvt-cards.tvvt-reveal .tvvt-card,.tvvt-pricing-grid.tvvt-reveal .tvvt-price-card,.tvvt-board.tvvt-reveal .tvvt-person { opacity:0; transform:translate3d(0,.8rem,0); transition:opacity 420ms var(--tvvt-motion-out),transform 420ms var(--tvvt-motion-out); }
  .tvvt-cards.tvvt-reveal .tvvt-card:nth-child(2),.tvvt-pricing-grid.tvvt-reveal .tvvt-price-card:nth-child(2),.tvvt-board.tvvt-reveal .tvvt-person:nth-child(2) { transition-delay:60ms; }
  .tvvt-cards.tvvt-reveal .tvvt-card:nth-child(3),.tvvt-pricing-grid.tvvt-reveal .tvvt-price-card:nth-child(3) { transition-delay:120ms; }
  .tvvt-cards.tvvt-reveal .tvvt-card:nth-child(4),.tvvt-pricing-grid.tvvt-reveal .tvvt-price-card:nth-child(4) { transition-delay:180ms; }
  .tvvt-cards.tvvt-reveal.is-visible .tvvt-card,.tvvt-pricing-grid.tvvt-reveal.is-visible .tvvt-price-card,.tvvt-board.tvvt-reveal.is-visible .tvvt-person { opacity:1; transform:none; }
  .tvvt-gastro-point,.tvvt-training-points span,.tvvt-contact-line,.tvvt-parent-link,.tvvt-reserve,.tvvt-price-calculator-trigger,.tvvt-map-activate,.tvvt-footer-reservation { transition:transform var(--tvvt-motion-fast) var(--tvvt-motion-out); }
  .tvvt-gastro-icon { transition:transform var(--tvvt-motion-standard) var(--tvvt-motion-out); }
  .tvvt-feature-image img,.tvvt-gastro-photo > picture img,.tvvt-gastro-photo > img,.tvvt-card-image img,.tvvt-news-image img,.tvvt-instagram-card img { transition:transform 520ms var(--tvvt-motion-out); }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .tvvt-gastro-point:hover,.tvvt-training-points span:hover { transform:translate3d(0,-.2rem,0); }
  .tvvt-gastro-point:hover .tvvt-gastro-icon { transform:rotate(-4deg) scale(1.07); }
  .tvvt-feature-image:hover img,.tvvt-gastro-photo:hover > picture img,.tvvt-gastro-photo:hover > img { transform:scale(1.025); }
  .tvvt-cards.tvvt-reveal.is-visible .tvvt-card:hover,.tvvt-pricing-grid.tvvt-reveal.is-visible .tvvt-price-card:hover { transform:translate3d(0,-.35rem,0); }
}

/* Mobile Motion: ein Reveal pro Abschnitt, keine simultanen Unteranimationen oder Schattenpulse. */
@media(max-width:600px) and (prefers-reduced-motion:no-preference) {
  :root { --tvvt-motion-reveal:400ms; --tvvt-motion-standard:180ms; }
  .tvvt-reveal { transform:translate3d(0,.55rem,0); }
  .tvvt-cards.tvvt-reveal .tvvt-card,.tvvt-pricing-grid.tvvt-reveal .tvvt-price-card,.tvvt-board.tvvt-reveal .tvvt-person { opacity:1; transform:none; transition:none; }
  .tvvt-feature-image img,.tvvt-gastro-photo > picture img,.tvvt-gastro-photo > img,.tvvt-card-image img,.tvvt-news-image img,.tvvt-instagram-card img { transition-duration:300ms; }
  .tvvt-floating-reservation,.tvvt-hero-content>.tvvt-reserve--pulse { animation:none!important; }
  .tvvt-site-header.is-scrolled { backdrop-filter:none; }
}

/* Customizer: drei gezielt begrenzte Bewegungsprofile, ohne die mobile Ladeleistung zu gefährden. */
body.tvvt-motion-reduced .tvvt-reveal,body.tvvt-motion-reduced .tvvt-cards.tvvt-reveal .tvvt-card,body.tvvt-motion-reduced .tvvt-pricing-grid.tvvt-reveal .tvvt-price-card,body.tvvt-motion-reduced .tvvt-board.tvvt-reveal .tvvt-person { opacity:1; transform:none; transition:none!important; }
body.tvvt-motion-reduced .tvvt-reserve--pulse,body.tvvt-motion-reduced .tvvt-floating-reservation,body.tvvt-motion-reduced .tvvt-hero::before { animation:none!important; }
@media(min-width:601px) and (prefers-reduced-motion:no-preference) {
  body.tvvt-motion-expressive { --tvvt-motion-reveal:720ms; --tvvt-motion-standard:300ms; }
  body.tvvt-motion-expressive .tvvt-reveal { transform:translate3d(0,1.55rem,0); }
  body.tvvt-motion-expressive .tvvt-cards.tvvt-reveal .tvvt-card,body.tvvt-motion-expressive .tvvt-pricing-grid.tvvt-reveal .tvvt-price-card,body.tvvt-motion-expressive .tvvt-board.tvvt-reveal .tvvt-person { transform:translate3d(0,1.1rem,0); }
  body.tvvt-motion-expressive .tvvt-card:hover,body.tvvt-motion-expressive .tvvt-price-card:hover { transform:translate3d(0,-.5rem,0); }
}

/* Dezenter Reservierungsimpuls: ein ruhiger Clay-Glow nur für die mobile Floating-Aktion. */
@media(max-width:900px) { .tvvt-floating-reservation { animation:tvvt-floating-reserve-glow 3.5s cubic-bezier(.23,1,.32,1) infinite; } }
@keyframes tvvt-floating-reserve-glow { 0%,100% { box-shadow:0 8px 18px rgba(15,41,66,.26),0 2px 8px rgba(201,80,43,.22),0 0 12px rgba(240,56,0,.12),0 0 0 0 rgba(240,56,0,.18); } 50% { box-shadow:0 10px 22px rgba(15,41,66,.3),0 3px 12px rgba(201,80,43,.28),0 0 18px rgba(240,56,0,.18),0 0 0 5px rgba(240,56,0,0); } }

/* Abschlusskorrektur: ruhige Kartenfläche, klare lokale Social-Identität und präzise Interaktionen. */
@media(min-width:901px) { .tvvt-cards::before { display:none; } .tvvt-gastro-grid>.tvvt-copy>.tvvt-title { margin-bottom:1.15rem; } .tvvt-gastro-grid>.tvvt-copy>p:first-of-type { margin-top:0; } }
.tvvt-instagram-profile-placeholder { display:none!important; }
.tvvt-instagram-profile img { display:block!important; width:3rem; height:3rem; border:2px solid #111; border-radius:50%; object-fit:cover; }
.tvvt-contact-line>span { box-shadow:none; transition:transform .18s cubic-bezier(.23,1,.32,1); }
.tvvt-contact-line:hover>span { transform:scale(1.055); box-shadow:none; }
.tvvt-contact-line:hover { transform:none; }
.tvvt-lightbox-prev,.tvvt-lightbox-next { display:grid; place-items:center; padding:0!important; font-size:0!important; line-height:0; }
.tvvt-lightbox-prev svg,.tvvt-lightbox-next svg { display:block; width:1.35rem; height:1.35rem; pointer-events:none; }

/* Mobile Abschlusskorrektur: keine Kartenlinie, mehr Textluft und eine klare Reservierungsfarbe. */
.tvvt-cards::before { display:none!important; }
@media(max-width:600px) { .tvvt-gastro-grid>.tvvt-copy>.tvvt-title { margin-bottom:1.45rem; } }
@media(max-width:900px) { .tvvt-floating-reservation,.tvvt-floating-reservation:hover { background:var(--tvvt-clay); } }

/* Kontaktinteraktion: ausschließlich eine neutrale, sehr leichte Bewegungsrückmeldung. */
.tvvt-contact-line { transition:transform .2s ease; }
.tvvt-contact-line::after { display:none; content:none; }
.tvvt-contact-line:hover { transform:translateY(-1px); }
.tvvt-contact-line:hover>span:first-child { transform:none; }
@media(hover:none) { .tvvt-contact-line:hover { transform:none; } }

/* Desktop-Kontakt: Der Hover bewegt ausschließlich die komplette Zeile; Text und Symbol behalten ihre feste Hierarchie. */
@media(min-width:901px) { .tvvt-contact-line:hover>.tvvt-contact-copy { transform:none!important; } }

/* Customizer-Sichtbarkeit: Bereiche werden vollständig aus Layout und Tastaturreihenfolge entfernt. */
.tvvt-hide-about #ueber-uns,
.tvvt-hide-pricing #preise,
.tvvt-hide-gastro #gastro,
.tvvt-hide-instagram #instagram,
.tvvt-hide-contact #kontakt,
.tvvt-hide-board .tvvt-board,
.tvvt-hide-price-rates .tvvt-price-meta .tvvt-meta-card:first-child,
.tvvt-hide-membership-info .tvvt-price-meta .tvvt-meta-card:last-child,
.tvvt-hide-map .tvvt-map,
.tvvt-hide-card-courts .tvvt-card-gallery,
.tvvt-hide-card-for-all .tvvt-cards .tvvt-card:nth-child(2),
.tvvt-hide-card-championship .tvvt-cards .tvvt-card:nth-child(3),
.tvvt-hide-card-community .tvvt-cards .tvvt-card:nth-child(4) { display:none!important; }

/* React-Referenz v1.8.26: verbindliche Farb- und Typografieskala für Desktop und Mobil. */
body.tvvt-site h1,body.tvvt-site h2,body.tvvt-site h3,body.tvvt-site h4 { letter-spacing:.05em; }
.tvvt-eyebrow { font-size:.875rem; }
.tvvt-title { font-size:clamp(2.25rem,4vw,3rem); }
.tvvt-card h3 { font-size:1.125rem; }
.tvvt-card p { font-size:.875rem; line-height:1.5; }
.tvvt-board h3 { font-size:1.5rem; }

.tvvt-price-card h3 { font-size:1.125rem; }
.tvvt-price { color:var(--tvvt-clay); font-size:2.25rem; }
.tvvt-price small { font-size:.875rem; }
.tvvt-price-card ul { color:rgba(255,255,255,.7); font-size:.875rem; line-height:1.45; }
.tvvt-meta-card h3 { font-size:1.25rem; }
.tvvt-price-list li { color:rgba(255,255,255,.8); font-size:1rem; }
.tvvt-price-list b { color:var(--tvvt-clay); font-size:1.25rem; }
.tvvt-bank { color:rgba(255,255,255,.7); font-size:.875rem; line-height:1.5; }
.tvvt-meta-card>p { color:rgba(255,255,255,.7); font-size:.875rem; line-height:1.5; }
.tvvt-etennis-link { color:var(--tvvt-clay-muted)!important; }
.tvvt-price-extra { color:rgba(255,255,255,.55); font-size:.75rem; line-height:1.5; }
.tvvt-price-calculator-trigger { font-size:.875rem; }
.tvvt-price-calculator-panel h3 { font-size:1.5rem; }
.tvvt-price-calculator-intro,.tvvt-price-calculator-info { font-size:.875rem; }
.tvvt-price-player select { font-size:.875rem; }
.tvvt-price-calculator-add { font-size:.875rem; }
.tvvt-price-calculator-result strong { font-size:1.875rem; }
.tvvt-price-calculator-note { font-size:.75rem; }

.tvvt-contact-copy small { font-size:.75rem; }
.tvvt-contact-copy strong { font-size:1.125rem; }
.tvvt-contact-copy em { font-size:.875rem; }
.tvvt-map-kicker,.tvvt-map-consent,.tvvt-map-route { font-size:.75rem; }
.tvvt-map-placeholder h3 { font-size:1.5rem; }
.tvvt-map-placeholder p:not(.tvvt-map-consent) { font-size:.875rem; }
.tvvt-map-activate { font-size:.75rem; }

.tvvt-instagram { background:var(--tvvt-cream); }
.tvvt-instagram-profile strong { font-size:.875rem; }
.tvvt-instagram-profile small { font-size:.75rem; }
.tvvt-external-media-note { font-size:.75rem; line-height:1.67; }
.tvvt-external-media-note::before { font-size:.875rem; }
.tvvt-external-media-note button,.tvvt-external-media-note .tvvt-external-media-activate { font-size:.75rem; }
.tvvt-external-media-status { max-width:21rem; font-size:.65rem; text-align:center; }
.tvvt-instagram-more a,.tvvt-facebook-follow { font-size:.875rem; }
.tvvt-instagram .tvvt-follow .tvvt-reserve::after { font-size:.875rem; }

.tvvt-footer { background:var(--tvvt-ink); }
.tvvt-footer h3 { font-size:1rem; }
.tvvt-footer p,.tvvt-footer li,.tvvt-footer a { font-size:1rem; }
.tvvt-footer-bottom { font-size:.875rem; }

@media(min-width:601px) {
  .tvvt-title { font-size:3rem; }
  .tvvt-price-card h3 { font-size:1.25rem; }
  .tvvt-price { font-size:2.5rem; }
  .tvvt-price-calculator-panel h3 { font-size:1.875rem; }
}
@media(max-width:600px) {
  .tvvt-footer p,.tvvt-footer li,.tvvt-footer a { font-size:1.03rem; }
  .tvvt-price-calculator-result strong { font-size:1.875rem; }
}

.tvvt-legal-site-header { background:#0b2034; }
.tvvt-legal-hero h1 { font-size:clamp(2.25rem,5vw,3rem); }
.tvvt-legal-hero h1.tvvt-legal-title--privacy { font-size:clamp(2rem,5vw,3rem); }
.tvvt-legal-content { color:rgba(28,28,30,.75); font-size:.96rem; line-height:1.75; }
.tvvt-legal-content h2,.tvvt-legal-content h3 { font-size:1.125rem; letter-spacing:.08em; }
.tvvt-legal-content a { color:var(--tvvt-clay-muted); }
@media(max-width:600px) {
  .tvvt-legal-hero h1 { font-size:2.25rem; }
  .tvvt-legal-hero h1.tvvt-legal-title--privacy { font-size:2rem; }
  .tvvt-legal-content h2,.tvvt-legal-content h3 { font-size:1.125rem; }
}

/* Customizer: Hero-Kompositionen ohne zusätzliche Bilddateien oder Skripte. */
body.tvvt-hero-spotlight .tvvt-hero::before { background-image:linear-gradient(92deg,#071827 0%,rgba(7,24,39,.92) 36%,rgba(7,24,39,.36) 58%,rgba(5,18,30,.14) 78%,rgba(5,18,30,.34) 100%),linear-gradient(0deg,rgba(5,18,30,.76) 0%,rgba(5,18,30,.08) 62%,rgba(5,18,30,.2) 100%),var(--tvvt-hero-image); background-position:center,center,72% 45%; }
body.tvvt-hero-spotlight .tvvt-hero::after { opacity:.58; }
body.tvvt-hero-spotlight .tvvt-hero-content { max-width:64rem; }
body.tvvt-hero-spotlight .tvvt-stats { margin-top:2.25rem; }
@media(min-width:901px) { body.tvvt-hero-split .tvvt-hero::before { background-image:linear-gradient(90deg,#071827 0%,#071827 39%,rgba(7,24,39,.84) 47%,rgba(7,24,39,.14) 65%,rgba(5,18,30,.24) 100%),var(--tvvt-hero-image); background-position:center,74% 46%; background-size:100% 100%,cover; } body.tvvt-hero-split .tvvt-hero-content { width:min(calc(100% - 2rem),42rem); padding-top:8.4rem; } body.tvvt-hero-split .tvvt-stats { width:min(100%,32rem); padding-top:1rem; border-top:1px solid rgba(255,255,255,.18); } }

/* Customizer: Abschnittsrhythmus; ausschließlich statische Flächen und Linien. */
body.tvvt-sections-lines .tvvt-section:not(.tvvt-hero) { position:relative; }
body.tvvt-sections-lines .tvvt-section:not(.tvvt-hero)::after { position:absolute; right:0; bottom:0; left:0; height:1px; background:linear-gradient(90deg,transparent,rgba(15,41,66,.13),transparent); content:''; pointer-events:none; }
body.tvvt-sections-lines .tvvt-section-head { text-align:left; margin-right:0; margin-left:0; }
body.tvvt-sections-lines .tvvt-title::after { margin-left:0; }
body.tvvt-sections-gallery #ueber-uns { background:linear-gradient(110deg,#fff 0%,var(--tvvt-cream) 65%,#fff 100%); }
body.tvvt-sections-gallery .tvvt-gastro { background:linear-gradient(145deg,var(--tvvt-cream),#fff 62%,var(--tvvt-orange-soft)); }

/* Vorstand ohne Portraits: klare Funktionsübersicht mit ruhiger, gleichwertiger Hierarchie. */
.tvvt-board-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:52rem; }
.tvvt-person { display:grid!important; grid-template-columns:.32rem minmax(0,1fr); align-items:center; column-gap:.85rem; }
.tvvt-person::before { grid-row:1/3; width:.32rem; height:2.65rem; border-radius:99px; background:var(--tvvt-clay); content:''; }
.tvvt-person img { display:none!important; }
.tvvt-person strong { grid-column:2; margin:0!important; }
.tvvt-person span { grid-column:2; display:block; margin-top:.25rem; }

/* Training: unabhängige Tennisschule klar ausgewiesen, zwei optionale zusätzliche Trainerprofile bleiben responsiv kompakt. */
.tvvt-training-notice { display:flex; align-items:flex-start; gap:.7rem; max-width:42rem; margin:1.2rem 0 0; border-left:2px solid var(--tvvt-clay); padding:.7rem .85rem; background:rgba(255,255,255,.06); color:rgba(255,255,255,.78); font-size:.88rem; line-height:1.55; }
.tvvt-training-notice .tvvt-info-icon { flex:0 0 auto; margin-top:.05rem; color:#ff9f7e; }
.tvvt-training-coaches { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.tvvt-training-coaches.is-multiple { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tvvt-training-coaches.is-multiple .tvvt-training-coach.is-primary { grid-column:1/-1; }
.tvvt-training-coaches.is-multiple .tvvt-training-coach { padding:1.25rem; }
.tvvt-training-coaches.is-multiple .tvvt-training-profile-preview .tvvt-training-placeholder { height:9.5rem; }
.tvvt-training-coaches.is-multiple .tvvt-training-coach h3 { font-size:1.35rem; }
.tvvt-training-coaches.is-multiple .tvvt-training-coach p { margin-top:1rem; }
.tvvt-training-trainer-block { display:grid; min-width:0; align-content:start; gap:1rem; }
.tvvt-training-trainer-block .tvvt-training-notice--after-coaches { max-width:none; margin:.1rem 0 0; }
.tvvt-training-contacts { display:grid; gap:.55rem; margin-top:1.15rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.18); }
.tvvt-training-contact { display:grid; grid-template-columns:2.45rem minmax(0,1fr); align-items:center; gap:.75rem; min-width:0; border:1px solid rgba(255,255,255,.18); border-radius:.75rem; padding:.68rem .78rem; background:rgba(255,255,255,.055); color:#fff!important; text-decoration:none!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.06); transition:transform .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),border-color .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),background .18s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-training-contact:hover { border-color:rgba(255,159,126,.7); background:rgba(255,255,255,.085); color:#fff!important; text-decoration:none!important; transform:translateY(-.12rem); }
.tvvt-training-contact:focus-visible { outline:2px solid #ff9f7e; outline-offset:3px; color:#fff!important; text-decoration:none!important; }
.tvvt-training-contact svg { box-sizing:border-box; width:2.45rem; height:2.45rem; padding:.63rem; border:1px solid rgba(255,159,126,.38); border-radius:.58rem; background:rgba(240,56,0,.16); color:#ffb197; }
.tvvt-training-contact span { display:grid; min-width:0; gap:.1rem; }
.tvvt-training-contact small { color:rgba(255,255,255,.64); font-size:.67rem; letter-spacing:.08em; line-height:1.2; text-transform:uppercase; }
.tvvt-training-contact strong { overflow-wrap:anywhere; color:#fff; font:600 .94rem/1.28 'Source Sans 3',sans-serif; text-decoration:none!important; }
.tvvt-training-contact-note { display:flex; align-items:flex-start; gap:.5rem; margin:.75rem 0 0; color:rgba(255,255,255,.72); font-size:.79rem; line-height:1.45; }
.tvvt-training-contact-note svg { flex:0 0 auto; width:1rem; height:1rem; margin-top:.08rem; color:#ff9f7e; }
@media(max-width:600px) { .tvvt-training-contact { grid-template-columns:2.5rem minmax(0,1fr); gap:.8rem; padding:.72rem .78rem; } .tvvt-training-contact svg { width:2.5rem; height:2.5rem; } .tvvt-training-contact strong { font-size:.95rem; } }
/* Hanno Fürpass: Kontakt und Vereinsanfrage bilden bewusst eine ruhige, gemeinsame Handlungsfläche. */
.tvvt-training-coach .tvvt-training-contact-panel { position:relative; z-index:2; display:grid; gap:.85rem; margin-top:1.3rem; border:1px solid rgba(255,255,255,.18); border-radius:1rem; padding:1rem; background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.tvvt-training-contact-panel .tvvt-training-contact-panel-head { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:0; color:rgba(255,255,255,.72); font:.68rem/1.2 'Oswald','Arial Narrow',sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.tvvt-training-contact-panel .tvvt-training-contact-panel-head i { border:1px solid rgba(255,159,126,.38); border-radius:999px; padding:.22rem .48rem; color:#ffb197; font:inherit; letter-spacing:.08em; }
.tvvt-training-contact-panel .tvvt-training-contacts { gap:.5rem; margin:0; border:0; padding:0; }
.tvvt-training-coach .tvvt-training-contact-panel a,.tvvt-training-coach .tvvt-training-contact-panel a:hover,.tvvt-training-coach .tvvt-training-contact-panel a:focus-visible { color:#fff!important; text-decoration:none!important; text-decoration-line:none!important; text-decoration-color:transparent!important; background-image:none!important; }
.tvvt-training-contact-panel .tvvt-training-contact { border-color:rgba(255,255,255,.14); border-radius:.72rem; background:rgba(5,20,34,.28); }
.tvvt-training-contact-panel .tvvt-training-contact:hover { border-color:rgba(255,159,126,.55); background:rgba(255,255,255,.09); transform:translateY(-.1rem); }
.tvvt-training-contact-panel .tvvt-training-request-area { display:grid; gap:.65rem; border-top:1px solid rgba(255,255,255,.14); padding-top:.85rem; }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-contact-note { display:flex; align-items:flex-start; gap:.55rem; margin:0; color:rgba(255,255,255,.74); font:400 .82rem/1.45 'Source Sans 3',sans-serif; letter-spacing:0; text-transform:none; }
.tvvt-training-contact-panel .tvvt-training-contact-note svg { flex:0 0 auto; width:1rem; height:1rem; margin-top:.08rem; color:#ff9f7e; }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request { display:flex; align-items:center; justify-content:center; min-height:2.7rem; margin:0; border:1px solid rgba(255,159,126,.54); border-radius:.68rem; padding:.65rem .85rem; background:rgba(240,56,0,.18); color:#fff!important; font:700 .78rem/1.2 'Oswald','Arial Narrow',sans-serif; letter-spacing:.055em; text-align:center; text-decoration:none!important; text-transform:uppercase; transition:background .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),border-color .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),transform .18s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request:hover { border-color:#ffb197; background:var(--tvvt-clay); transform:translateY(-.1rem); }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request:focus-visible { outline:2px solid #ffb197; outline-offset:3px; }
@media(max-width:600px) { .tvvt-training-coach .tvvt-training-contact-panel { gap:.8rem; margin-top:1.15rem; padding:.9rem; } .tvvt-training-contact-panel .tvvt-training-contact-panel-head { font-size:.66rem; } .tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request { min-height:2.85rem; font-size:.8rem; } }

/* Kompakte Trainingshierarchie: Kontakt und rechtlicher Hinweis bleiben sichtbar, drängen sich aber nicht mehr in den Vordergrund. */
.tvvt-training-trainer-block { gap:.65rem; }
.tvvt-training-trainer-block .tvvt-training-notice--after-coaches { display:grid; grid-template-columns:1rem minmax(0,1fr); gap:.5rem; max-width:34rem; margin:0; border:0; padding:.15rem 0 0; background:transparent; color:rgba(255,255,255,.58); font-size:.72rem; line-height:1.42; }
.tvvt-training-trainer-block .tvvt-training-notice--after-coaches .tvvt-info-icon { width:1rem; height:1rem; margin:.05rem 0 0; color:rgba(255,159,126,.78); }
.tvvt-training-coach .tvvt-training-contact-panel { gap:.6rem; margin-top:.9rem; border-radius:.78rem; padding:.72rem; background:rgba(255,255,255,.045); box-shadow:none; }
.tvvt-training-contact-panel .tvvt-training-contact-panel-head { display:none; }
.tvvt-training-contact-panel .tvvt-training-contacts { gap:.38rem; }
.tvvt-training-contact-panel .tvvt-training-contact { grid-template-columns:1.95rem minmax(0,1fr); gap:.58rem; border-radius:.56rem; padding:.48rem .58rem; }
.tvvt-training-contact-panel .tvvt-training-contact svg { width:1.95rem; height:1.95rem; padding:.48rem; border-radius:.45rem; }
.tvvt-training-contact-panel .tvvt-training-contact small { font-size:.6rem; }
.tvvt-training-contact-panel .tvvt-training-contact strong { font-size:.82rem; line-height:1.18; }
.tvvt-training-contact-panel .tvvt-training-request-area { grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.55rem; padding-top:.58rem; }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-contact-note { gap:.38rem; font-size:.69rem; line-height:1.35; }
.tvvt-training-contact-panel .tvvt-training-contact-note svg { width:.82rem; height:.82rem; }
.tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request { min-height:2.2rem; padding:.48rem .6rem; font-size:.65rem; letter-spacing:.04em; white-space:nowrap; }
@media(min-width:901px) { .tvvt-training-grid { grid-template-columns:minmax(0,1.06fr) minmax(18rem,.94fr); align-items:start; gap:3.5rem; } .tvvt-training-copy { padding-bottom:0; } .tvvt-training-coach { margin-top:0; margin-left:0; padding:1.35rem; box-shadow:0 14px 30px rgba(0,0,0,.18); } .tvvt-training-profile-preview .tvvt-training-placeholder { height:14.25rem; } .tvvt-training-coach .tvvt-training-brand { width:4.8rem; height:3.8rem; margin:-1.55rem 0 0 .8rem; } .tvvt-training-coach p { margin:1rem 0 .2rem; font-size:.62rem; } .tvvt-training-coach h3 { font-size:1.65rem; } .tvvt-training-coach>span { margin-top:.65rem; font-size:.9rem; line-height:1.5; } }
@media(max-width:600px) { .tvvt-training-trainer-block { gap:.55rem; } .tvvt-training-trainer-block .tvvt-training-notice--after-coaches { gap:.45rem; padding-top:.1rem; font-size:.7rem; line-height:1.38; } .tvvt-training-coach .tvvt-training-contact-panel { gap:.56rem; margin-top:.8rem; padding:.68rem; } .tvvt-training-contact-panel .tvvt-training-request-area { grid-template-columns:1fr; gap:.5rem; padding-top:.55rem; } .tvvt-training-coach .tvvt-training-contact-panel .tvvt-training-request { width:100%; min-height:2.45rem; font-size:.72rem; white-space:normal; } }

/* Hanno Fürpass: reine Kontaktdaten, keine zusätzliche Box. */
.tvvt-training-coach .tvvt-training-contact-stack { position:relative; z-index:2; display:grid; gap:.32rem; margin-top:.78rem; }
.tvvt-training-contact-stack .tvvt-training-contacts { gap:.26rem; margin:0; border:0; padding:0; }
.tvvt-training-contact-stack .tvvt-training-contact small { display:none; }

/* Hanno-Profil als kompakter Teil der Trainingssektion statt als dominante Bildkarte. */
@media(min-width:901px) { .tvvt-training-grid { grid-template-columns:minmax(0,1.14fr) minmax(22rem,.86fr); gap:3.75rem; } .tvvt-training-coach.is-primary { display:grid; grid-template-columns:minmax(9.75rem,.82fr) minmax(0,1.18fr); grid-template-rows:auto auto auto auto; column-gap:1.15rem; row-gap:.35rem; align-items:start; padding:1.2rem; border-color:rgba(255,255,255,.13); border-radius:1rem; background:rgba(7,24,39,.64); box-shadow:0 16px 34px rgba(0,0,0,.18); } .tvvt-training-coach.is-primary::after { width:4.5rem; height:4.5rem; opacity:.75; } .tvvt-training-coach.is-primary .tvvt-training-profile-preview { grid-column:1; grid-row:1 / span 4; align-self:stretch; min-height:12.6rem; border-radius:.72rem; } .tvvt-training-coach.is-primary .tvvt-training-profile-preview .tvvt-training-placeholder { height:100%; min-height:12.6rem; object-position:center 24%; } .tvvt-training-coach.is-primary .tvvt-training-brand { grid-column:1; grid-row:1; z-index:3; align-self:start; width:3.65rem; height:2.85rem; margin:-.42rem 0 0 .45rem; border-radius:.5rem; } .tvvt-training-coach.is-primary>p { grid-column:2; grid-row:1; margin:.05rem 0 0; font-size:.59rem; } .tvvt-training-coach.is-primary>h3 { grid-column:2; grid-row:2; margin:.12rem 0 0; font-size:1.6rem; line-height:1.04; } .tvvt-training-coach.is-primary>span { grid-column:2; grid-row:3; margin:.3rem 0 0; font-size:.84rem; line-height:1.48; } .tvvt-training-coach.is-primary .tvvt-training-contact-stack { grid-column:2; grid-row:4; align-self:start; margin:.65rem 0 0; } }
@media(max-width:900px) { .tvvt-training-coach.is-primary { padding:1.35rem; } .tvvt-training-coach.is-primary .tvvt-training-profile-preview .tvvt-training-placeholder { height:12.25rem; object-position:center 24%; } .tvvt-training-coach.is-primary .tvvt-training-contact-stack { margin-top:.75rem; } }
@media(max-width:600px) { .tvvt-training-coach.is-primary { padding:1.2rem; } .tvvt-training-coach.is-primary .tvvt-training-profile-preview .tvvt-training-placeholder { height:11.5rem; } .tvvt-training-coach.is-primary .tvvt-training-brand { width:4.2rem; height:3.3rem; margin:-1.35rem 0 0 .72rem; } }

/* Präzise Kontaktzeilen: Icon links, Wert direkt rechts – ein einziger, konsistenter Stil für Desktop und Mobile. */
.tvvt-training-contact-stack .tvvt-training-contacts { display:grid; gap:.5rem; }
.tvvt-training-contact-stack .tvvt-training-contact { display:grid; grid-template-columns:1.5rem minmax(0,1fr); align-items:center; gap:.6rem; min-height:2.5rem; border:1px solid rgba(255,255,255,.12); border-radius:.58rem; padding:.52rem .6rem; background:rgba(255,255,255,.035); color:#fff!important; text-decoration:none!important; text-decoration-line:none!important; text-decoration-color:transparent!important; transition:transform .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),background .18s var(--ease-out,cubic-bezier(.23,1,.32,1)),border-color .18s var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.tvvt-training-contact-stack .tvvt-training-contact:hover { border-color:rgba(255,159,126,.42); background:rgba(255,255,255,.075); transform:translateY(-.08rem); }
.tvvt-training-contact-stack .tvvt-training-contact:focus-visible { outline:1px solid rgba(255,177,151,.8); outline-offset:3px; }
.tvvt-training-contact-stack .tvvt-training-contact svg { width:1.5rem; height:1.5rem; padding:.1rem; color:#ff9f7e; flex-shrink:0; }
.tvvt-training-contact-stack .tvvt-training-contact strong { overflow-wrap:anywhere; color:rgba(255,255,255,.94); font:600 .84rem/1.22 'Source Sans 3',sans-serif; text-decoration:none!important; text-decoration-line:none!important; }
.tvvt-training-contact-stack .tvvt-training-request-hint { margin:.5rem 0 0; color:rgba(255,255,255,.55); font:400 .68rem/1.35 'Source Sans 3',sans-serif; letter-spacing:0; text-transform:none; }
.tvvt-training-contact-stack .tvvt-training-request-hint a { color:rgba(255,177,151,.92)!important; text-decoration:none!important; text-decoration-line:none!important; }
.tvvt-training-contact-stack .tvvt-training-request-hint a:hover { color:#fff!important; }
@media(max-width:600px) { .tvvt-training-contact-stack .tvvt-training-contact { min-height:2.65rem; padding:.55rem .62rem; } .tvvt-training-contact-stack .tvvt-training-contact strong { font-size:.86rem; } }
@media(max-width:600px) { .tvvt-board-list,.tvvt-training-coaches.is-multiple { grid-template-columns:1fr; } .tvvt-training-coaches.is-multiple .tvvt-training-coach.is-primary { grid-column:auto; } .tvvt-training-coaches.is-multiple .tvvt-training-profile-preview .tvvt-training-placeholder { height:13rem; } }
body.tvvt-sections-gallery .tvvt-instagram { background:linear-gradient(165deg,#fff,var(--tvvt-cream)); }
body.tvvt-sections-gallery .tvvt-section-head { max-width:48rem; }

/* Customizer: Kartenbildsprache für Vereins-, Preis- und News-Karten. */
body.tvvt-cards-frame .tvvt-card,body.tvvt-cards-frame .tvvt-news-card { border:1px solid rgba(15,41,66,.24); border-top:4px solid var(--tvvt-clay); border-radius:.35rem; box-shadow:none; }
body.tvvt-cards-frame .tvvt-card:hover,body.tvvt-cards-frame .tvvt-news-card:hover { border-color:var(--tvvt-clay); box-shadow:0 15px 28px rgba(15,41,66,.12); }
body.tvvt-cards-frame .tvvt-icon { border-radius:.25rem; background:var(--tvvt-blue); color:#fff; }
body.tvvt-cards-frame .tvvt-price-card,body.tvvt-cards-frame .tvvt-meta-card { border-radius:.35rem; border-top:3px solid rgba(240,56,0,.7); }
body.tvvt-cards-editorial .tvvt-card,body.tvvt-cards-editorial .tvvt-news-card { border-radius:0; box-shadow:0 1rem 2rem rgba(15,41,66,.1); }
body.tvvt-cards-editorial .tvvt-card-image { height:11.5rem; }
body.tvvt-cards-editorial .tvvt-card-body { border-left:3px solid var(--tvvt-clay); padding:1.25rem 1.3rem 1.35rem; }
body.tvvt-cards-editorial .tvvt-icon { width:auto; height:auto; place-items:start; background:transparent; color:var(--tvvt-clay); font-size:1.35rem; }
body.tvvt-cards-editorial .tvvt-price-card,body.tvvt-cards-editorial .tvvt-meta-card { border-radius:0; background:rgba(255,255,255,.08); }
@media(max-width:900px) { body.tvvt-sections-lines .tvvt-section-head { text-align:center; margin-right:auto; margin-left:auto; } body.tvvt-sections-lines .tvvt-title::after { margin-right:auto; margin-left:auto; } body.tvvt-hero-spotlight .tvvt-hero::before { background-position:center,center,68% 48%; } body.tvvt-cards-editorial .tvvt-card-image { height:12rem; } }

/* Mobile Überschriften: dieselbe linke Achse und Akzentlinie in allen Inhaltsabschnitten. */
@media(max-width:600px) {
  .tvvt-section-head,.tvvt-news-head,body.tvvt-sections-lines .tvvt-section-head { margin-right:0; margin-left:0; text-align:left; }
  .tvvt-news-head { align-items:flex-start; justify-content:flex-start; }
  .tvvt-section-head .tvvt-title,.tvvt-news-head .tvvt-title { text-align:left; }
  .tvvt-section-head .tvvt-title::after,.tvvt-news-head .tvvt-title::after,.tvvt-gastro-grid>.tvvt-copy>.tvvt-title::after,body.tvvt-sections-lines .tvvt-title::after { margin-right:auto; margin-left:0; }
}

/* Sponsoren: eine zurückhaltende Partnerleiste ohne großflächige weiße Kacheln. */
body.home #main-content { display:flex; flex-direction:column; }
body.home #main-content>.tvvt-sponsors { order:20; }
body.home #main-content>.tvvt-contact { order:21; }
.tvvt-sponsors { position:relative; overflow:hidden; padding:4.75rem 0; background:radial-gradient(circle at 86% 10%,rgba(240,56,0,.08),transparent 24rem),var(--tvvt-cream); border-top:1px solid rgba(15,41,66,.1); color:var(--tvvt-blue); }
.tvvt-sponsors::before { position:absolute; inset:1.1rem 0 auto; height:1px; content:''; background:linear-gradient(90deg,transparent,rgba(15,41,66,.16),transparent); }
.tvvt-sponsors .tvvt-wrap { position:relative; z-index:1; }
.tvvt-sponsors-head { max-width:38rem; margin:0 auto 1.75rem; text-align:center; }
.tvvt-sponsors .tvvt-eyebrow { color:rgba(15,41,66,.64); }
.tvvt-sponsors .tvvt-title { color:var(--tvvt-blue); }
.tvvt-sponsors-head .tvvt-title::after { margin-right:auto; margin-left:auto; }
.tvvt-sponsors-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr)); gap:1px; overflow:hidden; border-top:1px solid rgba(15,41,66,.17); border-bottom:1px solid rgba(15,41,66,.17); background:rgba(15,41,66,.17); }
.tvvt-sponsor { position:relative; display:flex; min-height:6.45rem; align-items:center; justify-content:center; padding:1rem; background:var(--tvvt-cream); box-shadow:none; transition:background-color .18s ease,box-shadow .18s ease; }
.tvvt-sponsor::after { position:absolute; right:1rem; bottom:0; left:1rem; height:2px; border-radius:99px 99px 0 0; content:''; background:var(--tvvt-clay); opacity:0; transform:scaleX(.35); transition:opacity .18s ease,transform .18s cubic-bezier(.23,1,.32,1); }
.tvvt-sponsor img { display:block; width:100%; max-width:8.7rem; max-height:3.35rem; object-fit:contain; filter:grayscale(.14) saturate(.8); opacity:.78; transition:filter .18s ease,opacity .18s ease,transform .18s cubic-bezier(.23,1,.32,1); }
.tvvt-sponsor:hover { background:rgba(255,255,255,.42); box-shadow:inset 0 0 0 1px rgba(15,41,66,.05); }
.tvvt-sponsor:hover img { opacity:1; filter:none; transform:translateY(-.12rem) scale(1.035); }
.tvvt-sponsor:hover::after,.tvvt-sponsor:focus-visible::after { opacity:1; transform:scaleX(1); }
.tvvt-sponsor:focus-visible { z-index:1; outline:2px solid var(--tvvt-clay); outline-offset:-2px; }
.tvvt-sponsor:active img { transform:scale(.98); }
@media(max-width:900px) { .tvvt-sponsors-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .tvvt-sponsor { min-height:6.1rem; } }
@media(max-width:600px) { .tvvt-sponsors { padding:3.65rem 0; } .tvvt-sponsors-head { margin-bottom:1.35rem; text-align:left; } .tvvt-sponsors-head .tvvt-title::after { margin-left:0; } .tvvt-sponsors-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .tvvt-sponsor { min-height:5.7rem; padding:.8rem; } .tvvt-sponsor img { max-width:7.2rem; max-height:2.8rem; } }
@media(prefers-reduced-motion:reduce) { .tvvt-sponsor { transition:none; } }
