/*
Theme Name: Ehrenfelder Weihnachtsmarkt
Theme URI: https://ehrenfelder-weihnachtsmarkt.de/
Author: Bumann & Sohn
Description: Adventskalender-Design für den Ehrenfelder Weihnachtsmarkt. Texte, Bilder, Aussteller, Essensstände, Getränke und Programm lassen sich im WordPress-Backend pflegen.
Version: 1.6.5
Requires at least: 5.8
Requires PHP: 7.4
Text Domain: ewm
*/

:root{
    --cream:#14213D;      /* Hintergrund: Mitternachtsblau */
    --cream-2:#1C2C50;    /* Karten / Flächen: etwas heller */
    --red:#B8923E;        /* ehemals Rot, jetzt Gold */
    --red-dark:#9A7A30;   /* Hover-Zustand */
    --gold:#B8923E;
    --gold-light:#D9C48F;
    --ink:#FBF6ED;        /* Text: Cremeweiß */
    --ink-soft:#E3DBC9;   /* Sekundärtext: gedämpftes Cremeweiß */
    --on-gold:#14213D;    /* Text auf Gold-Flächen */
    --snow:#FFFFFF;       /* Schneeflocken */
    --gold-rgb:184,146,62;
    --gold-light-rgb:217,196,143;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    line-height:1.6;
  }
  h1,h2,.serif{
    font-family:'Fraunces', serif;
    font-weight:600;
    margin:0;
  }
  header{
    padding:16px 20px 24px;
    text-align:center;
    position:relative;
  }
  .header-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:none;
    margin:0 auto 24px;
  }
  .header-bar .logo-small{
    height:34px;
    width:auto;
  }
  .header-bar a{
    display:inline-flex;
    line-height:0;
    text-decoration:none;
  }
  .menu-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    background:var(--red);
    color:var(--on-gold);
    border:none;
    border-radius:999px;
    padding:9px 16px 9px 14px;
    font-family:'Work Sans', sans-serif;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
    transition:background 0.15s ease;
  }
  .menu-toggle:hover, .menu-toggle:focus-visible{
    background:var(--red-dark);
  }
  .menu-toggle svg{width:18px; height:18px; flex-shrink:0;}
  .site-menu{
    position:absolute;
    top:64px;
    right:20px;
    z-index:20;
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,0.45);
    padding:8px;
    display:none;
    flex-direction:column;
    min-width:220px;
    text-align:left;
  }
  .site-menu.open{display:flex;}
  .site-menu a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 14px;
    border-radius:8px;
    color:var(--ink);
    text-decoration:none;
    font-size:15px;
    font-weight:500;
  }
  .site-menu a svg{
    width:20px;
    height:20px;
    flex-shrink:0;
    color:var(--red);
  }
  .site-menu a:hover, .site-menu a:focus-visible{
    background:var(--cream);
    color:var(--red);
  }
  .landmarks-frame{
    max-width:920px;
    margin:0 auto;
    padding:34px 20px 0;
    position:relative;
  }
  .sky-decor{
    position:absolute;
    top:-6px;
    left:20px;
    right:20px;
    height:44px;
    pointer-events:none;
  }
  .sky-decor svg{
    position:absolute;
    color:var(--gold-light);
  }
  .landmarks-row{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
  }
  .lm{
    height:56px;
    width:auto;
    color:var(--gold);
    flex-shrink:0;
  }
  .skyline-img{ display:block; height:auto; max-height:200px; width:auto; max-width:100%; margin:0 auto; }
  .lm-dom{ height:78px; }
  .lm-bahnbogen{ height:34px; }
  .lm-helios{ height:64px; }
  .title-block{
    text-align:center;
    padding-top:6px;
  }
  @media (max-width:760px){
    .lm{ height:38px; }
    .skyline-img{ max-height:150px; }
    .lm-dom{ height:52px; }
    .lm-bahnbogen{ height:23px; }
    .lm-helios{ height:44px; }
    .landmarks-row{ gap:9px; }
    .sky-decor{ height:32px; }
  }
  header h1{
    font-size:clamp(34px, 7vw, 56px);
    line-height:1.1;
    color:var(--ink);
    letter-spacing:-0.01em;
  }
  header p.dates{
    margin:12px 0 0;
    color:var(--gold);
    font-size:clamp(17px, 4.6vw, 28px);
    font-weight:600;
    line-height:1.3;
  }
  header p.dates .dates-range, header p.dates .dates-info{ white-space:nowrap; }
  header p.dates .dates-info::before{ content:"· "; }
  header .open-info{
    margin:10px auto 0;
    color:var(--ink);
    font-size:14px;
    font-weight:500;
    line-height:1.5;
  }
  header .open-info .open-row{ display:inline-block; margin:0 10px; white-space:nowrap; }
  .sub-decor-wrap{
    position:relative;
    max-width:520px;
    margin:24px auto 0;
    padding:0 20px;
  }
  .sub-decor{
    position:absolute;
    top:-14px;
    left:0;
    right:0;
    bottom:-10px;
    pointer-events:none;
  }
  .sub-decor svg{
    position:absolute;
    color:var(--gold-light);
  }
  .sub-text{
    margin:0;
    padding:0;
    color:var(--ink-soft);
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:500;
    font-size:17px;
    line-height:1.5;
    text-align:center;
    position:relative;
    z-index:1;
  }
  .hero-strip{
    position:relative;
    max-width:920px;
    margin:0 auto 0;
    padding:0 20px;
  }
  .hero-strip .frame{
    position:relative;
    height:220px;
    border-radius:10px;
    border:1px solid var(--gold-light);
    overflow:hidden;
  }
  .hero-strip .hero-item{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity 1.2s ease;
  }
  .hero-strip .hero-item.active{opacity:1;}
  @media (min-width:640px){
    .hero-strip .frame{height:420px;}
  }
  main{
    max-width:920px;
    margin:0 auto;
    padding:40px 20px 80px;
  }
  .grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:16px;
    align-items:start;
  }
  @media (min-width:640px){
    .grid{grid-template-columns:repeat(3, 1fr); gap:20px;}
  }
  .door{
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:10px;
    overflow:hidden;
    transition:box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
    min-width:0;
  }
  .door[data-open="true"]{
    border-color:var(--red);
    box-shadow:0 10px 24px rgba(0,0,0,0.4);
    transform:translateY(-2px);
  }
  .door-toggle{
    width:100%;
    background:none;
    border:none;
    padding:22px 16px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    cursor:pointer;
    font-family:inherit;
    color:inherit;
    text-align:center;
  }
  .door-toggle:focus-visible{
    outline:2px solid var(--red);
    outline-offset:-2px;
  }
  .icon{
    width:32px;
    height:32px;
    color:var(--red);
  }
  .icon svg{width:100%; height:100%; display:block;}
  .icon-group{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    height:32px;
    color:var(--red);
  }
  .icon-group svg{width:23px; height:23px; display:block; flex-shrink:0;}
  .door-title{
    font-family:'Fraunces', serif;
    font-weight:500;
    font-size:16px;
  }
  .chevron{
    width:16px; height:16px;
    color:var(--gold);
    transition:transform 0.2s ease;
  }
  .door[data-open="true"] .chevron{transform:rotate(180deg);}
  .door-panel{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.25s ease;
    border-top:1px solid transparent;
  }
  .door[data-open="true"] .door-panel{
    max-height:1100px;
    border-top:1px solid var(--gold-light);
  }
  .door-panel-inner{
    padding:16px 18px 22px;
    font-size:14px;
    line-height:1.5;
    color:var(--ink-soft);
    hyphens:auto;
    -webkit-hyphens:auto;
    overflow-wrap:break-word;
  }
  .door-panel-inner p{margin:0 0 12px;}
  .door-photo{
    width:100%;
    height:150px;
    object-fit:cover;
    border-radius:8px;
    margin-bottom:12px;
    display:block;
    border:1px solid var(--gold-light);
  }
  .door-panel-inner a{
    color:var(--red);
    font-weight:500;
    text-decoration:none;
    border-bottom:1px solid var(--red);
  }
  .calendar-cta{margin-top:12px; display:inline-block;}
  .fact-list{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin:0 0 12px;
    padding:0;
    list-style:none;
  }
  .fact-list li{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:9px 11px;
    background:var(--cream);
    border:1px solid var(--gold-light);
    border-radius:8px;
    font-size:13px;
  }
  .fact-list .fact-label{color:var(--ink); font-weight:600;}
  .fact-list .fact-value{color:var(--ink-soft);}
  .door-note{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin:0 0 12px;
    font-size:13px;
    color:var(--ink-soft);
  }
  .door-note:last-child{margin-bottom:0;}
  .door-note svg{width:14px; height:14px; flex-shrink:0; margin-top:2px; color:var(--red);}
  .door-panel-inner a.door-note{
    align-items:flex-start;
    gap:7px;
    color:var(--red);
    font-weight:400;
    border-bottom:none;
  }
  .door-panel-inner a.door-note svg{width:14px; height:14px; margin-top:2px;}
  .door-panel-inner a.door-note .link-label{
    text-decoration:underline;
    min-width:0;
    overflow-wrap:break-word;
  }
  .door[data-open="true"] #p-programm{
    max-height:620px;
  }
  .calendar-widget{
    margin-top:2px;
    background:var(--cream);
    border:1px solid var(--gold-light);
    border-radius:14px;
    padding:14px 8px 16px;
  }
  .cal-header{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    margin-bottom:10px;
  }
  .cal-month{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:11px;
    color:var(--ink);
    white-space:nowrap;
    text-align:center;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .cal-nav{
    background:none;
    border:none;
    color:var(--red);
    font-size:16px;
    line-height:1;
    cursor:pointer;
    padding:4px 2px;
    border-radius:6px;
    flex-shrink:0;
  }
  .cal-nav:hover{background:var(--cream-2);}
  .cal-nav:disabled{color:var(--gold-light); cursor:default; background:none;}
  .cal-weekdays{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    text-align:center;
    font-size:11px;
    font-weight:600;
    color:var(--ink-soft);
    margin-bottom:4px;
  }
  .cal-grid{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:2px;
  }
  .cal-day{
    aspect-ratio:1/1;
    width:100%;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    background:none;
    border-radius:50%;
    font-size:13px;
    font-weight:500;
    color:var(--ink-soft);
    font-family:'Work Sans', sans-serif;
    padding:0;
    margin:0;
  }
  .cal-day.is-empty{visibility:hidden;}
  .cal-day.is-market{color:var(--gold); opacity:1; cursor:pointer; text-decoration:none;}
  .cal-day.is-market:hover{background:var(--cream-2);}
  .cal-day.is-today{background:var(--red); color:var(--on-gold); opacity:1;}
  .cal-day.is-outside{color:var(--gold); opacity:.32; cursor:default;}
  .cal-hint{
    font-size:11px;
    color:var(--ink-soft);
    margin:10px 0 0;
    text-align:center;
  }
  footer{
    text-align:center;
    padding:32px 20px 48px;
    font-size:13px;
    color:var(--ink-soft);
    border-top:1px solid var(--gold-light);
    position:relative;
    overflow:hidden;
  }
  footer a{color:var(--ink-soft);}
  footer .social{margin-top:14px;}
  footer .social a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--red);
    font-weight:600;
    text-decoration:none;
  }
  footer .social a:hover, footer .social a:focus-visible{
    text-decoration:underline;
  }
  footer .social svg{width:18px; height:18px;}


  .snow{
    position:fixed;
    inset:0;
    pointer-events:none;
    overflow:hidden;
    z-index:50;
  }
  .flake-fall{
    position:absolute;
    top:-12px;
    animation:snow-fall linear infinite;
  }
  .flake-sway{
    display:block;
    color:var(--snow);
    line-height:1;
    user-select:none;
    animation:snow-sway ease-in-out infinite alternate;
  }
  @keyframes snow-fall{
    to{ transform:translateY(112vh) rotate(80deg); }
  }
  @keyframes snow-sway{
    from{ transform:translateX(-14px) rotate(-15deg); }
    to{ transform:translateX(14px) rotate(15deg); }
  }

/* ---------- Unterseiten ---------- */
  .topbar{
    max-width:920px;
    margin:0 auto;
    padding:24px 20px 0;
  }
  .back-link{
    display:inline-flex;text-decoration:underline;text-underline-offset:3px;
    align-items:center;
    gap:6px;
    color:var(--red);
    font-size:14px;
    font-weight:500;
  }
  .back-link svg{width:16px; height:16px;}
  .page-header{
    padding:24px 24px 36px;
    text-align:center;
    border-bottom:1px solid var(--gold-light);
    max-width:920px;
    margin:0 auto;
  }
  .page-header .logo{
    width:100px;
    max-width:40%;
    height:auto;
    margin-bottom:12px;
  }
  .page-header h1{
    font-size:clamp(26px, 5vw, 38px);
    color:var(--ink);
  }
  .page-header p.sub{
    max-width:520px;
    margin:12px auto 0;
    color:var(--ink-soft);
    font-size:15px;
  }
  .card{
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:10px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .card img{
    width:100%;
    height:130px;
    object-fit:cover;
    display:block;
  }
  .card .card-body{
    padding:16px 16px 18px;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .card-toggle{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:none;
    border:none;
    padding:0;
    margin-top:2px;
    font-family:'Work Sans', sans-serif;
    font-size:13px;
    font-weight:500;
    color:var(--red);
    cursor:pointer;
  }
  .card-toggle:focus-visible{outline:2px solid var(--red); outline-offset:2px;}
  .card-toggle .chevron{
    width:14px; height:14px;
    transition:transform 0.2s ease;
  }
  .card[data-open="true"] .card-toggle .chevron{transform:rotate(180deg);}
  .card-panel{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.25s ease;
  }
  .card[data-open="true"] .card-panel{max-height:420px;}
  .card-panel p{
    font-size:13px;
    color:var(--ink-soft);
    margin:8px 0 0;
  }
  .card .tag{
    font-size:12px;
    color:var(--gold);
    text-transform:none;
    font-weight:500;
  }
  .card h2{
    font-size:18px;
    font-weight:500;
  }
  .card p{
    font-size:13px;
    color:var(--ink-soft);
    margin:0;
  }

/* ---------- Programm-Tag ---------- */
  .day-card{
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:14px;
    padding:28px 26px;
  }
  .day-card .weekday{
    color:var(--red);
    font-weight:600;
    font-size:14px;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .day-card h1{
    font-size:clamp(26px, 5vw, 34px);
    margin:6px 0 18px;
  }
  .hours{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    background:var(--cream);
    border:1px solid var(--gold-light);
    border-radius:10px;
    font-weight:500;
    margin-bottom:18px;
  }
  .hours svg{width:20px; height:20px; color:var(--red); flex-shrink:0;}
  .day-card p{color:var(--ink-soft); margin:0 0 12px;}
  .note{
    font-size:13px;
    color:var(--ink-soft);
    border-top:1px solid var(--gold-light);
    margin-top:18px;
    padding-top:14px;
  }

/* ---------- Listen, Rechtstexte, Hinweise ---------- */
  .draft-note{
    border:1px dashed var(--gold);
    border-radius:10px;
    padding:12px 14px;
    margin:0 0 24px;
    font-size:13px;
    color:var(--ink-soft);
    background:var(--cream-2);
  }
  .draft-note strong{color:var(--gold-light);}
  .ph{ color:var(--gold-light); background:rgba(var(--gold-rgb),.16); border-radius:4px; padding:0 4px; }
  .empty-card{
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:10px;
    padding:28px 22px;
    text-align:center;
    color:var(--ink-soft);
  }
  .empty-card h2{font-size:20px; margin-bottom:8px; color:var(--ink);}
  .empty-card p{margin:0; font-size:15px;}
  .menu-block{ margin:0 0 32px; }
  .menu-block h2{
    font-size:20px;
    margin:0 0 4px;
    color:var(--ink);
  }
  .menu-block .menu-sub{
    margin:0 0 14px;
    font-size:13px;
    color:var(--gold);
  }
  .menu-list{
    list-style:none;
    margin:0;
    padding:0;
    background:var(--cream-2);
    border:1px solid var(--gold-light);
    border-radius:10px;
  }
  .menu-list li{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:14px;
    padding:14px 18px;
    border-bottom:1px solid rgba(var(--gold-light-rgb),.35);
  }
  .menu-list li:last-child{border-bottom:none;}
  .menu-list .m-name{font-family:'Fraunces', serif; font-weight:500; font-size:17px; color:var(--ink);}
  .menu-list .m-desc{display:block; font-family:'Work Sans', sans-serif; font-size:13px; color:var(--ink-soft); margin-top:2px;}
  .menu-list .m-price{white-space:nowrap; font-size:14px; color:var(--gold-light); font-weight:500;}
  .legal h2{font-size:20px; margin:30px 0 8px; color:var(--ink);}
  .legal h2:first-of-type{margin-top:0;}
  .legal p{margin:0 0 10px; color:var(--ink-soft); font-size:15px;}
  .legal a{color:var(--gold-light);}
  .narrow{max-width:680px;}
  .legal ul{color:var(--ink-soft); font-size:15px; padding-left:20px;}
  .admin-bar .snow{top:0;}

  .legal mark{ color:var(--gold-light); background:rgba(var(--gold-rgb),.22); border-radius:4px; padding:0 4px; }
  .program-list{ list-style:none; margin:0 0 12px; padding:0; }
  .program-list li{ display:flex; gap:14px; padding:12px 0; border-top:1px solid rgba(var(--gold-light-rgb),.35); }
  .program-list li:first-child{ border-top:none; }
  .program-list .p-time{ flex:0 0 auto; min-width:70px; color:var(--gold-light); font-weight:500; font-size:14px; }
  .program-list .p-body strong{ font-family:'Fraunces', serif; font-weight:500; color:var(--ink); }
  .program-list .p-text, .program-list .p-text p{ display:block; margin:4px 0 0; color:var(--ink-soft); font-size:14px; }
  .error-card{ background:var(--cream-2); border:1px solid var(--gold-light); border-radius:14px; padding:28px 26px; text-align:center; color:var(--ink-soft); }
  .day-card + .day-card{ margin-top:16px; }
  .day-title{ font-size:clamp(22px, 4.5vw, 28px); margin:6px 0 14px; font-weight:600; }
  .day-title a{ color:var(--ink); text-decoration:none; }
  .day-title a:hover, .day-title a:focus-visible{ color:var(--gold-light); text-decoration:underline; }

/* ---------- Freie Inhalte (Block-Editor): Text, Bilder, Videos ---------- */
  .extra-content{ max-width:920px; margin:0 auto; padding:32px 20px 0; }
  main > .extra-above{ margin:0 0 28px; }
  main > .extra-below{ margin:28px 0 0; }
  .entry-content{ color:var(--ink-soft); font-size:16px; line-height:1.65; overflow-wrap:break-word; }
  .entry-content > *:first-child{ margin-top:0; }
  .entry-content > *:last-child{ margin-bottom:0; }
  .entry-content p{ margin:0 0 1em; }
  .entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4{ font-family:'Fraunces', serif; font-weight:600; color:var(--ink); line-height:1.25; margin:1.6em 0 .5em; }
  .entry-content h2{ font-size:clamp(22px, 4.5vw, 28px); }
  .entry-content h3{ font-size:20px; }
  .entry-content a{ color:var(--gold-light); }
  .entry-content strong{ color:var(--ink); }
  .entry-content ul, .entry-content ol{ padding-left:22px; margin:0 0 1em; }
  .entry-content img, .entry-content video, .entry-content iframe, .entry-content embed{ max-width:100%; height:auto; border-radius:10px; }
  .entry-content figure{ margin:1.4em 0; }
  .entry-content figcaption, .entry-content .wp-element-caption{ font-size:13px; color:var(--ink-soft); text-align:center; margin-top:8px; }
  .entry-content .wp-block-image img{ display:block; }
  .entry-content .wp-block-video video{ width:100%; display:block; background:#000; }
  .entry-content .wp-block-embed__wrapper{ position:relative; }
  .entry-content .wp-has-aspect-ratio iframe{ border:0; }
  .entry-content blockquote{ margin:1.4em 0; padding:4px 0 4px 18px; border-left:3px solid var(--gold); color:var(--ink); font-family:'Fraunces', serif; }
  .entry-content hr{ border:0; border-top:1px solid var(--gold-light); margin:2em 0; opacity:.6; }
  .entry-content .wp-block-button__link{ background:var(--gold); color:var(--on-gold); border-radius:999px; padding:10px 22px; text-decoration:none; font-weight:600; }
  .entry-content .wp-block-columns{ gap:20px; }
  .entry-content table{ width:100%; border-collapse:collapse; }
  .entry-content th, .entry-content td{ border:1px solid var(--gold-light); padding:8px 10px; }

.special-hours{list-style:none;margin:12px 0 0;padding:0;}
.special-hours li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid rgba(var(--gold-light-rgb),.25);}

/* Karte, Kontakt */
.map-preview,.map-embed{display:block;margin:12px 0 0;border:1px solid var(--gold-light);border-radius:12px;overflow:hidden;position:relative;background:var(--cream);}
.map-preview img{display:block;width:100%;height:auto;}
.map-cta{position:absolute;left:8px;bottom:8px;background:var(--gold);color:var(--on-gold);padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:600;}
.map-embed{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;}
.map-embed small{color:var(--ink-soft);font-size:.8rem;}
.map-embed iframe{display:block;width:100%;height:260px;border:0;}
.map-embed:has(iframe){padding:0;display:block;}
.map-load{white-space:nowrap;background:var(--gold);color:var(--on-gold);border:0;border-radius:999px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;}
.ewm-contact{margin:16px 0;}
.ewm-contact .door-note{display:flex;margin-top:10px;}

/* ---------- Version 1.3: Bauchbinde, Schnee-Schalter ---------- */
.ewm-banner-wrap{max-width:880px;margin:24px auto 24px;padding:0 20px;}
.ewm-banner-wrap.is-full{max-width:920px;margin:24px auto 0;}
.ewm-banner-wrap.is-full ~ main{padding-top:24px;}
.ewm-banner-wrap.is-full ~ .extra-content{margin-top:24px;}
main > .ewm-banner-wrap{padding:0;margin:0 auto 20px;max-width:none;}
.ewm-banner{background:var(--gold);color:var(--on-gold);border-radius:999px;overflow:hidden;font-size:.95rem;line-height:1.35;font-weight:500;}
.ewm-banner-track{display:flex;width:max-content;min-width:100%;}
.ewm-banner:not(.is-moving) .ewm-banner-track{width:auto;justify-content:center;text-align:center;}
.ewm-banner-item{flex:0 0 auto;padding:10px 24px;white-space:nowrap;}
.ewm-banner:not(.is-moving) .ewm-banner-item{white-space:normal;}
.ewm-banner.is-moving .ewm-banner-item{min-width:100vw;max-width:none;}
@media (min-width:920px){.ewm-banner.is-moving .ewm-banner-item{min-width:880px;}}
.ewm-banner.is-moving .ewm-banner-track{animation:ewm-marquee var(--ewm-dur,20s) linear infinite;}
.ewm-banner.is-moving:hover .ewm-banner-track{animation-play-state:paused;}
.ewm-banner a{color:var(--on-gold);font-weight:700;text-decoration:underline;}
@keyframes ewm-marquee{from{transform:translateX(-50%);}to{transform:translateX(0);}}
@media (prefers-reduced-motion: reduce){
  .ewm-banner.is-moving .ewm-banner-track{animation:none;width:auto;justify-content:center;}
  .ewm-banner.is-moving .ewm-banner-item{white-space:normal;min-width:0;text-align:center;}
  .ewm-banner.is-moving .ewm-banner-item[aria-hidden="true"]{display:none;}
}
.snow-toggle{margin-left:auto;margin-right:8px;width:38px;height:38px;border-radius:50%;border:1px solid var(--gold-light);background:transparent;color:var(--gold-light);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.snow-toggle:hover,.snow-toggle:focus-visible{background:var(--cream-2);}
.snow-toggle.is-off{opacity:.55;text-decoration:line-through;}

/* ---------- Listen: Aktuell / Demnächst, Zeitraum, Links ---------- */
.list-heading{font-size:22px;margin:30px 0 14px;color:var(--ink);}
.list-heading:first-child{margin-top:0;}
.card .period{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--gold-light);font-weight:500;}
.card .period svg{width:14px;height:14px;flex-shrink:0;}
.link-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;}
.link-list a{color:var(--gold-light);font-size:13px;font-weight:500;}
.card-panel .link-list{margin-top:10px;}

/* ---------- Programm: Kalender breit, Vorschaukarten, Eventseite ---------- */
.calendar-widget.calendar-wide{padding:18px 18px 20px;border-radius:14px;margin:0 0 24px;background:var(--cream-2);}
.calendar-wide .cal-month{font-size:18px;}
.calendar-wide .cal-nav{font-size:26px;padding:4px 14px;}
.calendar-wide .cal-weekdays{font-size:13px;margin-bottom:6px;}
.calendar-wide .cal-grid{gap:6px;}
.calendar-wide .cal-day{aspect-ratio:auto;height:46px;border-radius:12px;font-size:16px;}
.calendar-wide .cal-day.is-market{border:1px solid rgba(var(--gold-light-rgb),.35);}
.calendar-wide .cal-day.is-market:hover{background:var(--cream);}
.event-list{display:flex;flex-direction:column;gap:18px;}
.event-card{background:var(--cream-2);border:1px solid var(--gold-light);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;}
.event-card .event-img{display:block;}
.event-card .event-ph{display:flex;align-items:center;justify-content:center;width:100%;height:200px;background:linear-gradient(135deg,#14213D,#22345c);color:var(--gold);}
.event-card .event-ph svg{width:64px;height:64px;}
.event-card .event-img img{display:block;width:100%;height:auto;}
.event-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;}
.event-when{white-space:nowrap;font-size:clamp(14px,4.7vw,22px);line-height:1.2;color:var(--ink);font-weight:700;font-family:'Fraunces',serif;}
.event-when .weekday{color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.85em;margin-right:4px;}
.event-time{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;color:var(--gold-light);font-weight:500;font-size:14px;}
.event-time svg{width:16px;height:16px;flex-shrink:0;}
.event-card h2{font-size:22px;font-weight:500;margin:2px 0 0;}
.event-card h2 a{color:var(--ink);text-decoration:none;}
.event-card h2 a:hover{text-decoration:underline;}
.event-kurz{margin:2px 0 0;color:var(--ink-soft);font-size:15px;}
.event-prices{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;}
.event-price,.event-ticket{display:inline-block;margin:0;padding:6px 14px;border:1px solid var(--gold-light);border-radius:999px;color:var(--gold-light);font-size:14px;line-height:1.3;font-weight:500;text-decoration:none;}
.event-ticket{background:var(--gold);border-color:var(--gold);color:var(--on-gold);font-weight:600;}
.event-ticket:hover{filter:brightness(1.08);}
.event-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.btn{display:inline-block;background:var(--gold);color:var(--on-gold);border:1px solid var(--gold);border-radius:999px;padding:9px 20px;font-weight:600;font-size:14px;text-decoration:none;}
.btn:hover{background:var(--red-dark);border-color:var(--red-dark);}
.btn.btn-ghost{background:transparent;color:var(--gold-light);border-color:var(--gold-light);}
.btn.btn-ghost:hover{background:var(--cream);}
@media (min-width:640px){
  .event-card.has-image{flex-direction:row;}
  .event-card.has-image{min-height:220px;}
  .event-card.has-image .event-img{flex:0 0 auto;align-self:stretch;max-width:48%;aspect-ratio:var(--r, 4 / 3);overflow:hidden;}
  .event-card.has-image .event-img img{width:100%;height:100%;object-fit:contain;}
  .event-card .event-ph{height:100%;min-height:220px;width:260px;}
}
.event-single .event-hero{margin:0 0 18px;}
.event-single .event-hero img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;margin:0 auto;border:1px solid var(--gold-light);border-radius:12px;}
.event-lead{font-size:17px;color:var(--ink);font-weight:500;}
.event-buy{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;margin:14px 0 18px;}
.event-buy .event-prices{margin:0;margin-left:auto;justify-content:flex-end;}
.event-time-single{display:flex;flex-wrap:nowrap;justify-content:center;gap:6px;margin:6px 0 16px;font-size:clamp(12px,3.7vw,16px);color:var(--gold-light);font-weight:500;white-space:nowrap;}
.event-time-single svg{width:1.2em;height:1.2em;flex-shrink:0;}
@media (max-width:520px){.event-time-single{font-size:clamp(10px,3.15vw,14px);justify-content:flex-start;}}
.link-heading{font-size:18px;margin:22px 0 4px;color:var(--ink);}
.event-more{margin:22px 0 0 !important;}

/* ---------- Getränkekarte: Pfand, Details ---------- */
.pfand-note{display:flex;align-items:center;gap:10px;margin:0 0 24px;padding:12px 16px;background:var(--cream-2);border:1px solid var(--gold-light);border-radius:12px;color:var(--ink);font-weight:500;}
.pfand-note svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;}
.m-details{margin-top:6px;}
.m-details summary{cursor:pointer;color:var(--gold);font-size:13px;font-weight:500;list-style:none;display:inline-flex;align-items:center;gap:4px;}
.m-details summary::-webkit-details-marker{display:none;}
.m-details summary::after{content:"\25BE";font-size:11px;transition:transform .2s;}
.m-details[open] summary::after{transform:rotate(180deg);}
.m-details-text{display:block;margin-top:6px;font-size:13px;color:var(--ink-soft);}

/* ---------- Medien: Bildrahmen, Seitenhintergrund ---------- */
.entry-content .wp-block-image{text-align:center;}
.entry-content .wp-block-image img{max-height:85vh;width:auto;max-width:100%;height:auto;margin-left:auto;margin-right:auto;}
.entry-content .wp-block-image.alignleft,.entry-content .wp-block-image.alignright{max-width:50%;}
.ewm-frames .entry-content .wp-block-image img,
.ewm-frames .entry-content .wp-block-gallery img,
.ewm-frames .entry-content .wp-block-media-text__media img,
.entry-content .is-style-ewm-rahmen img{border:1px solid var(--gold-light);border-radius:12px;}
.ewm-frames .entry-content .is-style-ewm-ohne img,
.entry-content .is-style-ewm-ohne img{border:0;border-radius:0;}
.entry-content .wp-block-gallery{gap:14px;}
.ewm-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--cream);}
.ewm-bg video,.ewm-bg .ewm-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ewm-bg video + .ewm-bg-img{display:none;}
.ewm-bg-dim{position:absolute;inset:0;background:var(--cream);}
body.has-ewm-bg > *:not(.ewm-bg):not(.snow){position:relative;z-index:1;}
@media (prefers-reduced-motion: reduce){
  .ewm-bg video{display:none;}
  .ewm-bg video + .ewm-bg-img{display:block;}
}

/* ---------- Version 1.5.1 ---------- */
header.bar-only{padding:16px 20px 0;position:relative;}
header.bar-only .header-bar{margin-bottom:0;}
.event-lines{display:flex;flex-direction:column;gap:3px;margin:4px 0 0;}
.event-lines .event-time{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:7px;}
.event-lines .event-time svg{margin-top:2px;}
.event-buy{align-items:flex-start;}
.event-lines-right{margin:0 0 0 auto;align-items:flex-end;}
.back-link{text-decoration:underline;text-underline-offset:3px;}

/* ---------- Version 1.5.2 ---------- */
.page-header.no-rule{border-bottom:none;padding-bottom:20px;}
hr.gold-rule{border:0;border-top:1px solid var(--gold-light);margin:28px 0;}
.event-actions-right{justify-content:flex-end;}
.event-buy{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:14px;}
.event-body{flex:1;min-width:0;}
.event-actions-right{align-self:stretch;}

/* ---------- Version 1.5.3 ---------- */
.header-bar .skyline-small{height:44px;width:auto;max-width:60vw;}
.page-header h1.is-oneline{white-space:nowrap;font-size:clamp(16px,5.2vw,38px);}
.page-header.no-rule{padding-bottom:0;}
.page-header.no-rule + main{padding-top:16px;}

/* ---------- Version 1.5.4 ---------- */
header p.dates{white-space:nowrap;font-size:clamp(10px,3.3vw,28px);}
header .open-info{white-space:nowrap;font-size:clamp(9.5px,3vw,14px);color:var(--ink-soft);font-weight:400;}
header .open-info .open-row{margin:0 7px;}
main.has-note{padding-bottom:0;}
.note.note-info{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;margin-top:28px;padding:34px 0;font-size:14px;}
.note.note-info svg{width:20px;height:20px;flex-shrink:0;color:var(--gold);}

/* ---------- Version 1.5.5 ---------- */
header p.dates,header .open-info{display:flex;align-items:center;justify-content:center;gap:.4em;}
header .hd-icon{width:1.15em;height:1.15em;flex-shrink:0;}
header .open-info{color:var(--gold);font-weight:500;}
.fact-list .fact-value,.special-hours .fact-value{white-space:nowrap;}

/* ---------- Version 1.5.6 ---------- */
header p.dates,header .open-info{font-size:clamp(10px,3.1vw,18px);font-weight:500;line-height:1.4;}
header .open-info{margin-top:8px;}
header .open-info .open-row{margin:0;}
header .open-info .open-row + .open-row{margin-left:.9em;padding-left:.9em;border-left:1px solid var(--gold-light);}

/* ---------- Version 1.6.5: FAQ, Impressionen, Galerie ---------- */
.faq-list{display:flex;flex-direction:column;gap:10px;}
.faq-item{background:var(--cream-2);border:1px solid var(--gold-light);border-radius:12px;overflow:hidden;}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;font-weight:600;color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
.faq-chev{width:20px;height:20px;flex-shrink:0;color:var(--gold);transition:transform .2s ease;}
.faq-item[open] .faq-chev{transform:rotate(180deg);}
.faq-a{padding:0 18px 16px;color:var(--ink-soft);}
.faq-a p{margin:0 0 .6em;}
.faq-a p:last-child{margin-bottom:0;}

.gallery-page{padding-top:28px;}
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
@media (min-width:720px){.ig-grid{gap:10px;}}
.ig-item{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border:1px solid var(--gold);border-radius:10px;background:var(--cream-2);}
.ig-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease;}
.ig-item:hover img,.ig-item:focus-visible img{transform:scale(1.04);}
.ig-item:focus-visible{outline:2px solid var(--gold-light);outline-offset:2px;}
.ig-badge{position:absolute;top:8px;right:8px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(10,16,32,.65);color:#fff;}
.ig-badge svg{width:14px;height:14px;margin-left:2px;}

.lb{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(8,12,24,.98);}
.lb.open{display:flex;}
.lb-lock{overflow:hidden;}
.lb-stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:56px 12px 40px;box-sizing:border-box;}
.lb-media{max-width:100%;max-height:100%;width:auto;height:auto;border:1px solid var(--gold);border-radius:14px;background:#000;object-fit:contain;}
.lb-btn{position:absolute;z-index:2;background:rgba(20,33,61,.8);color:var(--gold-light);border:1px solid var(--gold);border-radius:50%;width:44px;height:44px;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-family:inherit;}
.lb-btn:hover,.lb-btn:focus-visible{background:var(--gold);color:var(--on-gold);}
.lb-close{top:10px;right:10px;font-size:30px;}
.lb-prev{left:10px;top:50%;margin-top:-22px;}
.lb-next{right:10px;top:50%;margin-top:-22px;}
.lb-count{position:absolute;top:18px;left:0;right:0;text-align:center;color:var(--gold-light);font-size:14px;pointer-events:none;}
@media (max-width:640px){
  .lb-prev,.lb-next{top:auto;bottom:10px;margin:0;width:40px;height:40px;}
  .lb-prev{left:calc(50% - 56px);}
  .lb-next{right:calc(50% - 56px);}
  .lb-stage{padding:56px 8px 60px;}
}

/* Bauchbinde mit mehreren Meldungen */
.ewm-banner:not(.is-moving) .ewm-banner-track{flex-direction:column;}
.ewm-banner.is-rotating .ewm-banner-item{display:none;}
.ewm-banner.is-rotating .ewm-banner-item.is-active{display:block;animation:ewm-fade .5s ease;}
.ewm-banner.is-rotating .ewm-banner-item[aria-hidden="true"]{display:none;}
@keyframes ewm-fade{from{opacity:0;}to{opacity:1;}}
@media (prefers-reduced-motion: reduce){
  .ewm-banner.is-moving.is-multi .ewm-banner-track{flex-direction:column;}
  .ewm-banner.is-rotating .ewm-banner-item.is-active{animation:none;}
}

/* Handy: Großansicht als Karussell wie bei Instagram */
.lb-carousel{display:none;}
@media (max-width:640px){
  .lb.is-carousel .lb-stage,.lb.is-carousel .lb-prev,.lb.is-carousel .lb-next{display:none;}
  .lb.is-carousel .lb-carousel{display:flex;flex-direction:column;justify-content:center;width:100%;height:100%;padding:52px 0 18px;box-sizing:border-box;}
  .lb-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;outline:none;touch-action:pan-x;}
  .lb-track::-webkit-scrollbar{display:none;}
  .lb-slide{flex:0 0 100%;width:100%;scroll-snap-align:center;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;padding:0 10px;box-sizing:border-box;}
  .lb.is-carousel{background:#080c18;}
  .lb-slide{height:calc(100vh - 150px);height:calc(100dvh - 150px);}
  .lb-slide .lb-media{max-width:100%;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);}
  .lb-dots{display:flex;align-items:center;justify-content:center;gap:6px;height:22px;margin-top:14px;}
  .lb-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35);flex-shrink:0;transition:background .2s ease,transform .2s ease;}
  .lb-dot.is-active{background:var(--gold);transform:scale(1.15);}
  .lb-dot.is-small{transform:scale(.7);}
  .lb-dot.is-hidden{display:none;}
  .lb.is-carousel .lb-count{top:18px;left:auto;right:64px;width:auto;text-align:right;background:rgba(20,33,61,.85);border:1px solid var(--gold);border-radius:999px;padding:3px 10px;font-size:13px;}
}

/* 1.6.5: Beschreibung gekürzt auf 3 Zeilen + "Mehr lesen" */
.card .card-desc{font-size:13px;color:var(--ink-soft);margin:2px 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;}
.card[data-open="true"] .card-desc{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible;}
.card-more{align-self:flex-start;background:none;border:none;padding:0;font-family:'Work Sans',sans-serif;font-size:13px;font-weight:500;color:var(--red);cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.card-more[hidden]{display:none;}
.card-more:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.door-panel-inner .cal-day,.door-panel-inner .cal-nav{border-bottom:0;}
