.vvvh-place{--vvvh-green:#2f6b3f;--vvvh-ink:#172117;--vvvh-muted:#66706a;--vvvh-line:#dfe7df;--vvvh-soft:#f6f9f6;background:#fff;color:var(--vvvh-ink)}
.vvvh-place__article{max-width:1120px;margin:0 auto 64px}
.vvvh-place__hero{margin:0 20px;border-radius:18px;overflow:hidden;aspect-ratio:16/7;background:#eef2ee}
.vvvh-place__hero img{display:block;width:100%;height:100%;object-fit:cover}
.vvvh-place__wrap{max-width:900px;margin:0 auto;padding:34px 24px 0}
.vvvh-place__header{margin-bottom:24px}
.vvvh-place__eyebrow{font-size:.86rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vvvh-green);margin-bottom:8px}
.vvvh-place h1,.vvvh-place h2,.vvvh-place h3{font-family:inherit}
.vvvh-place h1{font-size:clamp(2.1rem,4.2vw,3.05rem);line-height:1.06;margin:0 0 14px}
.vvvh-place__teaser{font-size:1.15rem;line-height:1.55;color:#36413b;max-width:760px;margin:0 0 16px}
.vvvh-place__status{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;font-weight:700;font-size:.92rem}
.vvvh-place__status svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.vvvh-place__status--open{background:#e8f5eb;color:#226333}
.vvvh-place__status--closed{background:#f5eeee;color:#7c3535}
.vvvh-place__status--neutral{background:#f2f3f2;color:#505852}
.vvvh-place__status--seasonal{background:#eef3f8;color:#365b73}

.vvvh-place__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin:0 0 28px}
.vvvh-place__action{box-sizing:border-box;flex:0 0 190px;width:190px;min-height:56px;display:flex;justify-content:center;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--vvvh-line);border-radius:12px;text-decoration:none!important;color:var(--vvvh-ink)!important;background:#fff;font-weight:650}
.vvvh-place__action:hover{border-color:#aebdaf;background:var(--vvvh-soft)}
.vvvh-place__action svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.vvvh-place__info{display:grid;grid-template-columns:minmax(220px,35%) minmax(0,65%);border:1px solid var(--vvvh-line);border-radius:16px;background:var(--vvvh-soft);overflow:hidden;margin:0 0 30px}
.vvvh-place__info--single{grid-template-columns:1fr}
.vvvh-place__info-section{padding:24px 28px;min-width:0}
.vvvh-place__info-section+ .vvvh-place__info-section{border-left:1px solid var(--vvvh-line)}
.vvvh-place__info--single .vvvh-place__info-section+ .vvvh-place__info-section{border-left:0}
.vvvh-place__info-section h2,.vvvh-place__section h2{font-size:1.35rem;margin:0 0 18px}
.vvvh-place__address{font-size:1rem;line-height:1.55;margin:0;max-width:280px}
.vvvh-place__distance{display:flex;align-items:center;gap:7px;margin-top:12px;color:var(--vvvh-muted);font-size:.88rem;font-weight:600}
.vvvh-place__distance svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.vvvh-hours+.vvvh-hours{margin-top:22px;padding-top:18px;border-top:1px solid var(--vvvh-line)}
.vvvh-hours h3{font-size:1rem;margin:0 0 12px}
.vvvh-hours h3 span{display:block;font-weight:400;color:var(--vvvh-muted);font-size:.86rem;margin-top:3px}
.vvvh-hours dl{margin:0}
.vvvh-hours dl>div{display:grid;grid-template-columns:minmax(105px,1fr) auto;gap:18px;padding:5px 0}
.vvvh-hours dt{font-weight:650}
.vvvh-hours dd{margin:0;text-align:right;white-space:nowrap}
.vvvh-place__note{border-top:1px solid var(--vvvh-line);padding-top:12px;margin:14px 0 0;color:var(--vvvh-muted)}

.vvvh-place__section{padding:30px 0;border-top:1px solid var(--vvvh-line)}
.vvvh-place__section>p:first-of-type{margin-top:0}
.vvvh-place__offer-chips{display:flex;flex-wrap:wrap;gap:9px;margin:0}
.vvvh-place__offer-chip{display:inline-flex;align-items:center;min-height:36px;box-sizing:border-box;padding:7px 12px;border:1px solid var(--vvvh-line);border-radius:999px;background:var(--vvvh-soft);color:var(--vvvh-ink);font-size:.92rem;font-weight:600;line-height:1.35}
.vvvh-place__gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vvvh-place__gallery a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#eef2ee}
.vvvh-place__gallery img{width:100%;height:100%;object-fit:cover;display:block}
.vvvh-place__content{line-height:1.7}
.vvvh-place__content img{max-width:100%;height:auto}

@media (max-width:760px){
  .vvvh-place__article{margin-bottom:40px}
  .vvvh-place__hero{margin:0;border-radius:0;aspect-ratio:16/9}
  .vvvh-place__wrap{padding:26px 18px 0}
  .vvvh-place__info{grid-template-columns:1fr}
  .vvvh-place__info-section+ .vvvh-place__info-section{border-left:0;border-top:1px solid var(--vvvh-line)}
  .vvvh-place__gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .vvvh-place__actions{gap:8px}
  .vvvh-place__action{flex-basis:calc(50% - 4px);width:calc(50% - 4px);min-height:52px;padding:11px 8px;font-size:.92rem}
  .vvvh-place__action svg{width:18px;height:18px;flex-basis:18px}
  .vvvh-place__info-section{padding:22px 20px}
  .vvvh-hours dl>div{grid-template-columns:1fr auto;gap:12px}
}

/* 0.1.9: compact layout when only a location is available. */
.vvvh-place__info--location-only{width:min(100%,480px)}
.vvvh-place__info--hours-only{width:100%}
@media (max-width:760px){.vvvh-place__info--location-only{width:100%}}

/* 0.2.0: opening tied to The Events Calendar. */
.vvvh-event-opening__lead{margin:0 0 16px;color:var(--vvvh-muted);line-height:1.55}
.vvvh-event-list{display:flex;flex-direction:column;border-top:1px solid var(--vvvh-line)}
.vvvh-event-item{display:grid;grid-template-columns:115px minmax(0,1fr);gap:18px;padding:13px 0;border-bottom:1px solid var(--vvvh-line)}
.vvvh-event-item__date{display:flex;flex-direction:column;gap:2px;font-size:.9rem;color:var(--vvvh-muted)}
.vvvh-event-item__date strong{color:var(--vvvh-ink)}
.vvvh-event-item__body{align-self:center;min-width:0}
.vvvh-event-item__body a{font-weight:700;text-decoration:none}
.vvvh-event-item__body a:hover{text-decoration:underline}
.vvvh-event-opening__all{margin:14px 0 0;font-weight:650}
@media (max-width:520px){.vvvh-event-item{grid-template-columns:1fr;gap:5px}.vvvh-event-item__date{flex-direction:row;gap:8px}}

/* 0.2.2: aktuelle Zeitraum-Regel + Jahresübersicht */
.vvvh-current-period__label{font-size:.78rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--vvvh-green);margin:0 0 8px}
.vvvh-current-period .vvvh-hours{margin-top:0;padding-top:0;border-top:0}
.vvvh-hours-overview{margin-top:18px;padding-top:14px;border-top:1px solid var(--vvvh-line)}
.vvvh-hours-overview summary{cursor:pointer;font-weight:700;color:var(--vvvh-ink)}
.vvvh-hours-overview__body{margin-top:14px}
.vvvh-hours-overview__body .vvvh-hours:first-child{margin-top:0;padding-top:0;border-top:0}


/* 0.2.3: editorial renderer for linked WordPress pages. */
.vvvh-place__content--linked{padding-top:38px}
.vvvh-place__content--linked>.vvvh-place__editorial{color:var(--vvvh-ink)}
.vvvh-place__editorial> :first-child{margin-top:0}
.vvvh-place__editorial> :last-child{margin-bottom:0}
.vvvh-place__content--linked h2{font-size:clamp(1.65rem,3vw,2.15rem);line-height:1.2;margin:0 0 18px;max-width:780px}
.vvvh-place__content--linked h3{font-size:1.42rem;line-height:1.3;margin:38px 0 14px;max-width:760px}
.vvvh-place__content--linked h4{font-size:1.08rem;line-height:1.35;margin:30px 0 10px;max-width:760px}
.vvvh-place__content--linked h5,.vvvh-place__content--linked h6{font-size:.95rem;line-height:1.4;margin:26px 0 8px;max-width:760px}
.vvvh-place__content--linked p,.vvvh-place__content--linked ul,.vvvh-place__content--linked ol,.vvvh-place__content--linked blockquote{max-width:760px;line-height:1.75}
.vvvh-place__content--linked p{margin:0 0 1.15em}
.vvvh-place__content--linked ul,.vvvh-place__content--linked ol{margin:0 0 1.35em;padding-left:1.35em}
.vvvh-place__content--linked li+li{margin-top:.3em}
.vvvh-place__content--linked figure,.vvvh-place__content--linked .wp-block-image{margin:28px 0;max-width:100%}
.vvvh-place__content--linked figure img,.vvvh-place__content--linked .wp-block-image img{display:block;max-width:100%;height:auto;border-radius:14px}
.vvvh-place__content--linked figcaption{max-width:760px;margin:8px 0 0;color:var(--vvvh-muted);font-size:.84rem;line-height:1.45}
.vvvh-place__content--linked .wp-block-columns{gap:24px}
.vvvh-place__content--linked .wp-block-separator{border:0;border-top:1px solid var(--vvvh-line);margin:34px 0}
.vvvh-place__content--linked blockquote{margin:24px 0;padding:2px 0 2px 18px;border-left:3px solid var(--vvvh-line);color:#3d4741}
.vvvh-place__content--linked a{text-underline-offset:2px}
@media (max-width:760px){
  .vvvh-place__content--linked{padding-top:30px}
  .vvvh-place__content--linked h3{margin-top:30px}
  .vvvh-place__content--linked figure,.vvvh-place__content--linked .wp-block-image{margin:22px 0}
}

/* 0.2.7: optional payment methods. */
.vvvh-place__payment-methods{display:flex;flex-wrap:wrap;gap:9px}
.vvvh-place__payment-method{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border:1px solid var(--vvvh-line);border-radius:999px;background:var(--vvvh-soft);color:var(--vvvh-ink);font-size:.92rem;font-weight:650}
.vvvh-place__hours-unmaintained{margin:0;color:var(--vvvh-muted);font-size:.96rem;line-height:1.55}

/* 0.2.28: website-only breadcrumb based on a real WordPress parent page. */
.vvvh-place__breadcrumb{margin:0 0 22px;color:var(--vvvh-muted);font-size:.88rem;line-height:1.45}
.vvvh-place__breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.vvvh-place__breadcrumb li{display:flex;align-items:center;min-width:0}
.vvvh-place__breadcrumb li+li::before{content:'›';display:inline-block;margin:0 8px;color:#929b95}
.vvvh-place__breadcrumb a{color:inherit;text-decoration:none!important}
.vvvh-place__breadcrumb a:hover{text-decoration:underline!important;text-underline-offset:2px}
.vvvh-place__breadcrumb [aria-current='page']{color:var(--vvvh-ink);font-weight:650}
@media (max-width:760px){.vvvh-place__breadcrumb{margin-bottom:18px;font-size:.82rem}}

