/*
Theme Name: St. Pauli Darts
Theme URI: https://stpaulidarts.de/
Author: St. Pauli Darts
Description: Eigenes WordPress-Theme für St. Pauli Darts – One Page, Videos, Reservierung, Kontakt, Presse.
Version: 1.4.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: st-pauli-darts
*/

    :root{--ink:#13110f;--bg:#151310;--bg2:#211b17;--paper:#f1e8d8;--muted:#bcae9c;--red:#ed3d36;--red2:#b82120;--line:rgba(255,255,255,.14);--max:1220px;--sans:Arial,Helvetica,sans-serif;--display:Impact,'Arial Black','Franklin Gothic Heavy',sans-serif}
    *,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:82px}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.lock{overflow:hidden}
    button,input,textarea,select{font:inherit}button,a{outline-offset:4px}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed}
    .screenreader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:14px;top:-100px;background:var(--paper);color:#111;padding:10px;z-index:50}.skip:focus{top:14px}
    .demo{position:relative;z-index:25;padding:7px 16px;background:#b92b27;color:white;text-align:center;font-size:10px;font-weight:800;letter-spacing:.15em}
    header{position:sticky;top:0;z-index:24;background:rgba(20,18,16,.96);border-bottom:1px solid rgba(255,255,255,.11);backdrop-filter:blur(18px)}.nav{max-width:1500px;margin:auto;min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:18px}
    .brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.brand img{width:56px;height:56px;object-fit:contain}.brandword{font-family:var(--display);font-stretch:condensed;font-size:21px;line-height:1;letter-spacing:.02em;color:var(--paper);text-shadow:1px 1px 0 #000}.brandword em{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.27em;font-style:normal;color:var(--red);margin-top:6px}
    .navlinks{display:flex;align-items:center;gap:24px}.navlinks a{font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.13em;transition:color .15s}.navlinks a:hover{color:#ff7972}.nav-actions{display:flex;align-items:center;gap:10px}
    .button{display:inline-flex;justify-content:center;align-items:center;gap:9px;text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.13em;padding:16px 23px;border:1px solid transparent;transition:transform .15s,background .15s,color .15s;color:white;background:var(--red);border-radius:2px}.button:hover{transform:translateY(-2px);background:#fc5049}.button-outline{border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.28);color:#fff}.button-outline:hover{background:var(--paper);color:var(--ink)}.button-sm{padding:13px 18px;font-size:10px}.menu-toggle{display:none;background:none;color:var(--paper);border:1px solid var(--line);padding:10px 13px;font-size:21px;border-radius:2px}
    .hero{position:relative;min-height:min(790px,85vw);display:flex;align-items:center;overflow:hidden;background:#0c0907}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,10,10,.95) 3%,rgba(12,10,10,.72) 37%,rgba(12,10,10,.2) 70%),linear-gradient(0deg,#171310 1%,rgba(0,0,0,0) 43%);z-index:1}.hero .hero-bg{position:absolute;inset:0;background:url('assets/hero.jpg') center 40%/cover;filter:saturate(.95) contrast(1.04);transform:scale(1.015)}.hero-content{position:relative;z-index:2;width:100%;max-width:1400px;padding:110px 6% 125px;margin:auto}.eyebrow{color:#ff6660;font-size:12px;font-weight:900;letter-spacing:.3em;text-transform:uppercase;display:inline-flex;align-items:center;gap:14px}.eyebrow:before{content:'';width:31px;height:3px;background:var(--red)}.eyebrow.light{color:#e85953}.hero h1,.section h2,.cta h2{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.95;letter-spacing:.005em}.hero h1{font-size:clamp(68px,9.2vw,148px);margin:23px 0 22px;max-width:920px;text-shadow:0 5px 35px rgba(0,0,0,.25)}.hero h1 .red{color:#fa4942}.hero .intro{max-width:510px;font-size:17px;line-height:1.65;color:#e5dccc;margin-bottom:35px}.hero-buttons{display:flex;gap:13px;flex-wrap:wrap}.hero-bar{position:absolute;bottom:0;left:0;right:0;z-index:2;border-top:1px solid rgba(255,255,255,.17);background:rgba(12,11,11,.7)}.hero-bar .inner{max-width:1400px;margin:auto;display:flex;gap:30px;align-items:center;padding:17px 6%;font-size:11px;letter-spacing:.18em;font-weight:900;color:#dfd4c6;text-transform:uppercase}.hero-bar i{width:5px;height:5px;background:var(--red);border-radius:50%}
    .section{padding:105px 5%;position:relative}.container{max-width:var(--max);margin:auto}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:30px}.section h2{font-size:clamp(47px,6.5vw,95px);margin:13px 0 0}.section .subheading{max-width:450px;color:var(--muted);line-height:1.7;font-size:15px}.kicker{font-size:11px;font-weight:900;letter-spacing:.27em;text-transform:uppercase;color:#f35850}.section-dark{background:var(--bg)}.section-brown{background:#211a15}.rule{height:1px;background:var(--line)}
    .video-scroller{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:14px;scrollbar-color:#79372f transparent}.video-card{flex:0 0 min(66vw,480px);scroll-snap-align:start;position:relative;min-height:300px;overflow:hidden;border:1px solid rgba(255,255,255,.17);background:#251812}.video-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55);transition:transform .3s}.video-card:hover img{transform:scale(1.04)}.video-card .chip{position:absolute;top:17px;left:17px;border:1px solid rgba(255,255,255,.7);padding:8px 11px;background:#111a;font-size:10px;font-weight:900;letter-spacing:.15em}.video-card .play{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);height:67px;width:67px;border:2px solid rgba(255,255,255,.75);border-radius:100%;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);font-size:25px;color:white}.video-card .play:hover{background:var(--red)}.video-card .video-meta{position:absolute;bottom:0;left:0;right:0;padding:30px;background:linear-gradient(0deg,rgba(0,0,0,.9),transparent)}.video-card .video-meta strong{display:block;font-family:var(--display);font-size:32px;text-transform:uppercase;letter-spacing:.02em}.video-card .video-meta small{font-size:11px;color:#d6c8b4;letter-spacing:.13em}.carousel-arrows{display:flex;gap:8px}.arrow{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);background:#211a16;color:#fff;font-size:22px}.arrow:hover{background:var(--red)}
    .event-strip{margin-top:40px;background:linear-gradient(105deg,#b72a27 2%,#8e1816 70%,#631412);padding:29px 35px;display:flex;align-items:center;justify-content:space-between;gap:20px}.event-strip strong{font-family:var(--display);text-transform:uppercase;font-size:clamp(24px,3vw,42px);display:block}.event-strip p{margin:8px 0 0;color:#ffe1db;font-size:14px}.event-strip .button{background:#fff;color:#7e1715}.event-strip .button:hover{background:#f8e3d1}
    .location-grid{display:grid;grid-template-columns:1.14fr .86fr;grid-template-rows:270px 270px;gap:12px}.photo{overflow:hidden;position:relative;background:#251b16}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.photo:hover img{transform:scale(1.025)}.photo.large{grid-row:span 2}.photo-label{position:absolute;bottom:16px;left:17px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:900;padding:9px 11px;background:rgba(19,17,15,.7)}.photo.note:after{content:'VISUALISIERUNG';position:absolute;top:15px;right:15px;font-size:9px;font-weight:900;color:#fff8;letter-spacing:.13em}.location-bottom{margin-top:27px;display:flex;gap:30px;align-items:center;justify-content:space-between}.location-bottom p{margin:0;max-width:710px;line-height:1.7;color:var(--muted)}
    .pizza-panel{display:grid;grid-template-columns:1.08fr .92fr;min-height:510px;max-width:1400px;margin:auto}.pizza-photo{background:url('assets/pizza.jpg') center/cover;min-height:470px}.pizza-copy{background:#ed413b;color:#fff;display:flex;align-items:center;padding:10%}.pizza-copy .kicker{color:#ffe4d9}.pizza-copy h2{font-size:clamp(62px,7vw,110px);margin:24px 0}.pizza-copy p{line-height:1.7;max-width:370px;color:#ffede7}.pizza-copy .button{background:#1b1614}
    .social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.social-grid img{height:330px;width:100%;object-fit:cover}.social-caption{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.social-caption p{color:var(--muted);font-size:13px;margin:0}
    .reservation-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:stretch}.reserve-text h2{font-size:clamp(50px,6vw,88px)}.reserve-text p{line-height:1.8;color:var(--muted);max-width:410px}.embed-box{min-height:330px;display:flex;align-items:center;justify-content:center;padding:25px;background:#f1e9dc;color:#241b17;text-align:center;border:8px solid #b8a998}.embed-box .inner-embed{border:1px dashed #917f6b;padding:36px;max-width:390px}.embed-box strong{display:block;font-family:var(--display);font-size:32px;text-transform:uppercase;margin:17px 0 10px}.embed-box p{color:#62564b;font-size:14px;line-height:1.6}
    .contact-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:44px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.14em}.field input,.field select,.field textarea{width:100%;background:#191511;color:var(--paper);border:1px solid #65594e;padding:15px;min-height:52px;border-radius:0;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#ff756d}.field textarea{resize:vertical;min-height:125px}.field .hint{font-size:11px;color:var(--muted);line-height:1.5}.aside-box{border-top:4px solid var(--red);background:#2b241e;padding:30px}.aside-box h3{font-family:var(--display);font-size:35px;margin:4px 0 8px}.aside-box p{line-height:1.7;color:var(--muted)}.aside-box + .aside-box{margin-top:15px}.map-preview{height:235px;margin-top:16px;background-color:#37332f;background-image:linear-gradient(40deg,transparent 20%,rgba(191,176,156,.33) 20%,rgba(191,176,156,.33) 23%,transparent 23%,transparent 55%,rgba(191,176,156,.26) 55%,rgba(191,176,156,.26) 58%,transparent 58%),linear-gradient(140deg,transparent 14%,rgba(191,176,156,.35) 14%,rgba(191,176,156,.35) 17%,transparent 17%,transparent 48%,rgba(191,176,156,.25) 48%,rgba(191,176,156,.25) 51%,transparent 51%);position:relative;display:flex;justify-content:center;align-items:center}.map-preview:before{content:'●';color:var(--red);font-size:44px;text-shadow:0 0 0 12px #f4433666}.map-preview span{position:absolute;bottom:14px;background:rgba(0,0,0,.75);padding:7px 11px;font-size:10px;letter-spacing:.1em}
    .press{background:#ebe3d5;color:#211916}.press .kicker{color:#bc2b27}.press .section-head p{color:#66594f}.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.press-item{border:1px solid #c5b5a0;padding:28px;min-height:175px;display:flex;flex-direction:column;gap:17px;background:#f4ece0}.press-item .download{font-size:31px;color:#c92e29}.press-item strong{font-weight:900;font-size:16px}.press-item small{font-size:12px;color:#7c6e61;line-height:1.5}.press-note{color:#6c5c4e;font-size:13px;margin-top:23px;line-height:1.6}.press .button-outline{color:#231914;border-color:#7d6d5f;background:none}.press .button-outline:hover{color:#fff;background:#231914}
    footer{padding:36px 5% 20px;background:#0d0c0b;color:#d6cabc;border-top:1px solid #43352e}.foot{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:var(--max);margin:auto}.foot img{width:80px}.footlinks{display:flex;gap:22px;flex-wrap:wrap;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.footlinks button{background:none;border:0;padding:0;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:inherit}.copy{text-align:center;color:#8d8378;font-size:11px;margin:28px auto 0;max-width:var(--max)}
    dialog{max-width:620px;width:calc(100% - 32px);border:1px solid #766355;background:#1e1915;color:var(--paper);padding:38px;box-shadow:0 20px 70px #0009}dialog::backdrop{background:#000b}dialog h3{font-family:var(--display);font-size:36px;margin:0 0 12px}dialog p{font-size:15px;line-height:1.6;color:#d2c3b2}dialog .close{float:right;color:white;background:transparent;border:1px solid #a18e80;padding:7px 12px}dialog .modal-body{clear:both;padding-top:16px}
    .notice{position:fixed;z-index:50;bottom:22px;right:22px;max-width:420px;padding:18px 24px;background:#f6e9d5;color:#2b1f19;box-shadow:0 8px 32px #0008;font-size:14px;line-height:1.5;display:none}.notice.visible{display:block}
    @media(max-width:1100px){.navlinks{gap:14px}.navlinks a{font-size:10px}.nav{padding:0 3%}.section{padding:80px 4%}}
    @media(max-width:840px){.nav{min-height:70px}.menu-toggle{display:inline-block}.navlinks{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 5%;background:#191512;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line);gap:0}.navlinks.open{display:flex}.navlinks a{padding:14px 0;font-size:13px;border-bottom:1px solid var(--line)}.nav .button-sm{font-size:10px;padding:12px}.hero{min-height:670px}.hero-content{padding:95px 6% 110px}.hero h1{font-size:clamp(66px,12vw,105px)}.hero-bar .inner{font-size:10px;gap:14px}.location-grid{grid-template-rows:220px 220px}.pizza-panel{grid-template-columns:1fr}.pizza-photo{min-height:420px}.pizza-copy{padding:60px 6%}.contact-grid{grid-template-columns:1fr}.reservation-wrap{grid-template-columns:1fr}.social-grid img{height:240px}}
    @media(max-width:560px){.nav{padding:0 14px;gap:7px}.brand img{width:44px;height:44px}.brandword{font-size:15px}.brandword em{font-size:7px}.nav-actions{gap:7px}.nav .button-sm{font-size:9px;padding:11px 10px}.demo{font-size:8px}.hero{min-height:630px}.hero:before{background:linear-gradient(90deg,rgba(12,10,10,.9),rgba(12,10,10,.32)),linear-gradient(0deg,#171310,transparent 50%)}.hero .hero-bg{background-position:59% 50%}.hero-content{padding:70px 20px 105px}.hero h1{font-size:clamp(64px,15vw,91px)}.hero .intro{font-size:14px}.button{padding:14px 17px;font-size:11px}.hero-bar .inner{justify-content:center;gap:10px;flex-wrap:wrap}.hero-bar .inner span{font-size:9px}.section{padding:65px 17px}.section-head{align-items:flex-start;flex-direction:column}.section h2{font-size:56px}.video-card{flex-basis:85vw;min-height:265px}.video-card .video-meta{padding:22px}.video-card .video-meta strong{font-size:26px}.event-strip{flex-direction:column;align-items:flex-start;padding:25px}.location-grid{grid-template-columns:1fr 1fr;grid-template-rows:190px 165px}.photo.large{grid-column:1/-1;grid-row:span 1}.photo-label{font-size:8px;bottom:8px;left:9px}.location-bottom{display:block}.location-bottom .button{margin-top:20px}.pizza-photo{min-height:330px}.pizza-copy{padding:50px 19px}.pizza-copy h2{font-size:69px}.social-grid{grid-template-columns:repeat(2,1fr);gap:8px}.social-grid img{height:170px}.social-grid img:last-child{display:none}.contact-form{grid-template-columns:1fr}.contact-form .field{grid-column:1/-1}.press-grid{grid-template-columns:1fr}.press-item{min-height:135px}.foot{flex-direction:column;align-items:flex-start}.footlinks{gap:15px}.map-preview{height:200px}dialog{padding:23px}.aside-box{padding:22px}}
  
.map-shell{min-height:310px;background:linear-gradient(140deg,#433a31,#26211e);border:1px solid rgba(255,255,255,.16);display:flex;align-items:stretch;justify-content:center;overflow:hidden;margin-top:14px}.map-shell iframe{width:100%;height:350px;border:0;display:block}.map-cover{padding:34px 25px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:15px}.map-cover p{font-size:15px;line-height:1.5;margin:0;color:#f5e6d7}.map-cover small{font-size:11px;color:#d2c7bf}.map-cover .kicker{line-height:1.7}.directions{color:#ff8179;text-decoration:underline;text-underline-offset:4px}.hero h1{max-width:950px}@media(max-width:560px){.map-shell{min-height:285px}.map-shell iframe{height:285px}}

.page-inner{padding-top:75px;min-height:68vh}.page-inner .wp-block-image img{max-width:100%;height:auto}.page-inner a:not(.button){color:#f27065;text-decoration:underline}.page-inner ul{line-height:1.9}.content-wrap{max-width:950px;margin:auto}.contact-alert{padding:13px 17px;border-left:4px solid #de3d36;background:#2b221d;color:#fff;margin:0 0 20px}.contact-alert.success{border-color:#81b68a}.consent-notice{margin-top:9px;font-size:11px;color:#cebdac}.map-cover .button{background:#ee423a}.embedded{width:100%}.embedded iframe{max-width:100%}.footlinks a:hover{color:#ff6960}.video-card .play.pending{opacity:.8;font-size:12px;width:95px;height:45px;border-radius:2px;background:#1d1713}.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.social-integrated{margin-top:25px}.social-integrated iframe{max-width:100%}

.video-lightbox[hidden]{display:none}.video-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:200;display:flex;align-items:center;justify-content:center;padding:70px 6%}.video-lightbox #video-close{position:absolute;right:24px;top:24px;border:1px solid white;color:white;background:none;font-size:22px;padding:8px 16px}.video-frame{width:min(100%,1000px);aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0}.map-shell iframe{height:350px}

/* V1.2 - Gastronovi wide booking layout (two-column widget). */
#reservieren .reservation-wrap {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: stretch;
}
#reservieren .reserve-text {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
}
#reservieren .reserve-text h2 { margin: 12px 0 0; line-height: .94; }
#reservieren .reserve-details { width: min(100%, 390px); flex-shrink: 0; }
#reservieren .reserve-details p { margin: 0 0 20px; max-width: none; }
#booking-box {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 650px;
    padding: 20px;
    border: 8px solid #b8a998;
    text-align: left;
    overflow: visible;
}
#booking-box .inner-embed { max-width: 540px; margin: 70px auto; text-align: center; }
#booking-box .embedded {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    overflow-y: visible;
}
/* The iframe dimensions from Gastronovi may be fixed; prefer the full available width. */
#booking-box .embedded iframe {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 690px;
    border: 0;
}
@media(max-width: 840px) {
    #reservieren .reserve-text { flex-direction: column; align-items: start; gap: 15px; }
    #reservieren .reserve-details { width: 100%; max-width: 550px; }
    #booking-box { min-height: 650px; padding: 12px; border-width: 5px; }
    #booking-box .embedded iframe { min-height: 760px; }
}
@media(max-width: 560px) {
    #reservieren .reservation-wrap { gap: 24px; }
    #booking-box { padding: 4px; border-width: 3px; min-height: 650px; }
    #booking-box .inner-embed { padding: 25px 14px; margin: 25px auto; }
    #booking-box .embedded iframe { min-height: 820px; }
}

/* V1.3: Wide Gastronovi widget layout and automatic cache invalidation via functions.php */
#reservieren .reservation-container { max-width: 1360px; }
#reservieren .reservation-wrap { display: flex; flex-direction: column; gap: 32px; }
#reservieren .reserve-text { width: 100%; }
#reservieren #booking-box { width: 100%; max-width: 100%; min-width: 0; }
#reservieren #booking-box .embedded { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; }
#reservieren #booking-box .embedded iframe { box-sizing: border-box; width: 100% !important; max-width: 100% !important; min-height: 760px; }
@media (max-width: 840px) {
  #reservieren .reservation-container { max-width: 100%; }
  #reservieren #booking-box .embedded iframe { min-height: 850px; }
}

/* V1.4 — Compact Gastronovi booking section once the widget has loaded.
   Removes the artificial 650–850 px empty background on the booking frame.
   Allow the provider to supply its own iframe height rather than force 760px+. */
#reservieren { padding-top: 76px; padding-bottom: 82px; }
#reservieren .reservation-wrap { gap: 24px; }
#reservieren #booking-box.is-loaded {
    width: 100%;
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    min-height: 0;
    height: auto;
    padding: 12px;
    border-width: 6px;
}
#reservieren #booking-box.is-loaded .embedded { min-height: 0; height: auto; }
#reservieren #booking-box.is-loaded .embedded iframe {
    min-height: 0;
    max-width: 100% !important;
}
@media (max-width: 840px) {
    #reservieren { padding-top: 60px; padding-bottom: 66px; }
    #reservieren #booking-box.is-loaded { padding: 8px; border-width: 4px; }
}
@media (max-width: 560px) {
    #reservieren #booking-box.is-loaded { padding: 4px; border-width: 3px; }
}
