/* ──────────────────────────────────────────────────────
   Page Builder Frontend Styles
   Rendered output from the Page Builder
   ────────────────────────────────────────────────────── */

/* Page Wrapper (meta background) */
.pb-page-wrapper {
    min-height: 100%;
}

/* Sections */
.pb-section {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-bottom: 40px;
}

.pb-section:last-child {
    margin-bottom: 0;
}

.pb-section--full-width {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

/* Constrain content inside full-width sections to container width */
.pb-section--full-width > .pb-row {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
    width: 100%;
}

/* Content also full-width: remove container constraint */
.pb-section--content-full-width > .pb-row {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* Sections with background images (cover-style) */
.pb-section--has-bg {
    display: flex;
    align-items: center;
    aspect-ratio: auto 21/9;
    color: #fff;
    margin-bottom: 0;
}

.pb-section__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

/* Row (flex container for columns) */
.pb-row {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
    gap: 24px;
}

/* Columns */
.pb-column {
    min-width: 0;
    box-sizing: border-box;
}

.pb-column--100 { flex: 0 0 100%; max-width: 100%; }
.pb-column--50  { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); }
.pb-column--66  { flex: 0 0 calc(66.666% - 12px); max-width: calc(66.666% - 12px); }
.pb-column--33  { flex: 0 0 calc(33.333% - 12px); max-width: calc(33.333% - 12px); }
.pb-column--25  { flex: 0 0 calc(25% - 18px); max-width: calc(25% - 18px); }

/* Layout helpers (override column widths) */
.pb-row--full .pb-column { flex: 0 0 100%; max-width: 100%; }
.pb-row--two-equal .pb-column { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); }
.pb-row--two-left .pb-column:first-child { flex: 0 0 calc(66.666% - 12px); max-width: calc(66.666% - 12px); }
.pb-row--two-left .pb-column:last-child { flex: 0 0 calc(33.333% - 12px); max-width: calc(33.333% - 12px); }
.pb-row--two-right .pb-column:first-child { flex: 0 0 calc(33.333% - 12px); max-width: calc(33.333% - 12px); }
.pb-row--two-right .pb-column:last-child { flex: 0 0 calc(66.666% - 12px); max-width: calc(66.666% - 12px); }
.pb-row--three-equal .pb-column { flex: 0 0 calc(33.333% - 16px); max-width: calc(33.333% - 16px); }
.pb-row--four-equal .pb-column { flex: 0 0 calc(25% - 18px); max-width: calc(25% - 18px); }

/* Blocks */
.pb-block {
    margin-bottom: 16px;
}

.pb-block:last-child {
    margin-bottom: 0;
}

/* Ensure inline color on text/heading blocks overrides global p/h* color rules */
.pb-text[style*="color"] p,
.pb-text[style*="color"] h1,
.pb-text[style*="color"] h2,
.pb-text[style*="color"] h3,
.pb-text[style*="color"] h4,
.pb-text[style*="color"] h5,
.pb-text[style*="color"] h6,
.pb-text[style*="color"] li,
.pb-heading[style*="color"] {
    color: inherit;
}

/* Text and heading blocks have tighter spacing */
.pb-block--text + .pb-block--text,
.pb-block--heading + .pb-block--text,
.pb-block--heading + .pb-block--heading {
    margin-top: 0;
}

/* Images */
.pb-image {
    margin: 0;
}

.pb-image__img {
    max-width: 100%;
    height: auto;
    display: block;
}

.pb-image__caption {
    font-size: 0.875rem;
    color: #666;
    margin-top: 0.5rem;
    text-align: center;
}

.pb-align-center { text-align: center; }
.pb-align-center .pb-image__img { margin: 0 auto; }
.pb-align-left { text-align: left; }
.pb-align-right { text-align: right; }
.pb-align-right .pb-image__img { margin-left: auto; }

/* Cover Block */
.pb-cover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}

.pb-cover__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.pb-cover__content {
    position: relative;
    z-index: 1;
    padding: 2rem;
    width: 100%;
    text-align: center;
}

/* Card Block */
.pb-card {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s;
}

a.pb-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    text-decoration: none;
    color: inherit;
}

.pb-card__image {
    width: 100%;
    height: auto;
    display: block;
}

.pb-card__body {
    padding: 1rem;
}

.pb-card__title {
    margin: 0 0 0.25rem;
}

.pb-card__text {
    margin: 0;
    color: #666;
}

.pb-card--text-in-card .pb-card__body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    color: #fff;
}

.pb-card--text-in-card .pb-card__text {
    color: rgba(255, 255, 255, 0.85);
}

/* Separator */
.pb-block--separator hr {
    border: none;
    border-top: 1px solid #ddd;
    margin: 0;
}

/* Spacer */
.pb-block--spacer {
    line-height: 0;
}

/* Quote */
.pb-block--quote blockquote {
    border-left: 4px solid #ddd;
    padding-left: 1rem;
    margin: 0;
    font-style: italic;
    color: #555;
}

/* Blockquote inside text blocks */
.pb-block blockquote {
    border-left: 3px solid var(--color-primary, #4a6cf7);
    padding: 8px 16px;
    margin: 8px 0;
    color: #555;
    font-style: italic;
}

/* Table inside text blocks */
.pb-block table {
    width: 100%;
    border-collapse: collapse;
    margin: 8px 0;
}

.pb-block table td,
.pb-block table th {
    border: 1px solid #e2e8f0;
    padding: 8px 12px;
    vertical-align: top;
}

.pb-block table th {
    background: #f8fafc;
    font-weight: 600;
}

/* Button — uses design system tokens from store style.css */
.pb-button {
    display: inline-block;
    padding: var(--button-padding-y) var(--button-padding-x);
    border-radius: var(--button-radius);
    border-width: var(--button-border-width);
    border-style: solid;
    border-color: var(--button-border-color, transparent);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.2s;
}

.pb-button:hover {
    opacity: 0.85;
    text-decoration: none;
    color: var(--button-hover-text, var(--color-buttontexthover));
}

.pb-button--primary {
    background: var(--button-bg, var(--color-buttonbackground, var(--color-primary)));
    color: var(--button-text, var(--color-buttontext, #fff));
}

.pb-button--secondary {
    background: var(--color-secondary);
    color: #fff;
}

.pb-button--outline {
    background: transparent;
    border: 2px solid var(--button-bg, var(--color-buttonbackground, var(--color-primary)));
    color: var(--button-bg, var(--color-buttonbackground, var(--color-primary)));
}

/* Embed */
.pb-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.pb-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Video */
.pb-video video {
    max-width: 100%;
    height: auto;
}

/* News Block (Swiper Carousel / Grid) */
.pb-news { width: 100%; overflow: hidden; background: var(--pb-news-bg, transparent); }
.pb-news--empty { display: none; }
.pb-news--grid { overflow: visible; }

/* Cover Layout (background image with text overlay, scales with container size) */
.pb-news__cover {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #1e293b;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    container-type: inline-size;
}
.pb-news__cover-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent 30%, rgba(0, 0, 0, 0.75));
}
.pb-news__cover-content {
    position: relative;
    z-index: 1;
    padding: clamp(1rem, 3cqi, 5rem);
    color: #fff;
    width: 50%;
}
.pb-news__grid .pb-news__cover {
    height: 100%;
    aspect-ratio: auto;
}
.pb-news__grid .pb-news__cover-content {
    width: 100%;
    max-height: 100%;
    overflow: hidden;
    box-sizing: border-box;
}
.pb-news__grid .pb-news__cover-excerpt {
    -webkit-line-clamp: 1;
}
.pb-news__cover-date { font-size: clamp(0.7rem, 1.4cqi, 2rem); opacity: 0.85; margin-bottom: 0.5rem; }
.pb-news__cover-title { font-family: var(--pb-news-title-font, inherit); font-size: var(--pb-news-title-size, clamp(1.2rem, 3.3cqi, 5rem)); font-weight: var(--pb-news-title-weight, 700); line-height: 1.2; margin: 0 0 0.75rem; color: var(--pb-news-title-color, inherit); text-transform: var(--pb-news-title-transform, none); }
.pb-news__cover-excerpt {
    font-size: clamp(0.85rem, 2.8cqi, 4rem); line-height: 1.4; margin: 0; opacity: 0.9; max-width: 60ch;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
a.pb-news__cover { text-decoration: none; color: #fff; display: flex; }
a.pb-news__cover:hover { text-decoration: none; color: #fff; }

/* Grid Layout (2+ per slide) */
.pb-news__grid { display: grid; gap: var(--pb-news-card-gap, 1.5rem); }
.pb-news__grid--2 { grid-template-columns: repeat(2, 1fr); }
.pb-news__grid--3 { grid-template-columns: repeat(3, 1fr); }
.pb-news__grid--4 { grid-template-columns: repeat(4, 1fr); }

.pb-news__card {
    display: block;
    border-radius: var(--pb-news-card-radius, 8px);
    overflow: hidden;
    box-shadow: var(--pb-news-card-shadow, 0 2px 8px rgba(0, 0, 0, 0.1));
    text-decoration: none;
    color: var(--pb-news-text, inherit);
    background: var(--pb-news-card-bg, #fff);
    border: var(--pb-news-card-border-width, 0) solid var(--pb-news-card-border-color, transparent);
    transition: box-shadow 0.2s;
}
.pb-news__card:hover { box-shadow: var(--pb-news-card-shadow, 0 4px 16px rgba(0, 0, 0, 0.15)); text-decoration: none; color: var(--pb-news-text, inherit); }

.pb-news__card-image-wrap { background: #f1f5f9; }
.pb-news__card-image { width: 100%; aspect-ratio: var(--pb-news-image-ratio, 16/9); object-fit: cover; display: block; }
.pb-news__card-image-wrap--empty { aspect-ratio: var(--pb-news-image-ratio, 16/9); }
.pb-news__card { container-type: inline-size; }
.pb-news__card-body { padding: var(--pb-news-card-padding, 1rem); }
.pb-news__card-title { margin: 0.25rem 0 0.5rem; font-family: var(--pb-news-title-font, inherit); font-size: var(--pb-news-title-size, 1.1rem); font-weight: var(--pb-news-title-weight, inherit); color: var(--pb-news-title-color, inherit); text-transform: var(--pb-news-title-transform, none); }
.pb-news__card-text { margin: 0; font-family: var(--pb-news-excerpt-font, inherit); color: var(--pb-news-excerpt-color, #6b7280); font-size: var(--pb-news-excerpt-size, 0.9rem); font-weight: var(--pb-news-excerpt-weight, normal); line-height: 1.5; }
.pb-news__date { font-size: 0.85rem; color: var(--pb-news-excerpt-color, #6b7280); }
.pb-news__cover--no-image { background: linear-gradient(135deg, #334155 0%, #1e293b 100%); }
div.pb-news__cover { display: flex; color: #fff; }

/* Card container query scaling for displays */
@container (min-width: 400px) {
    .pb-news__card-body { padding: clamp(1rem, 3cqi, 2.5rem); }
    .pb-news__card-title { font-size: clamp(1.1rem, 3cqi, 3rem); }
    .pb-news__card-text { font-size: clamp(0.9rem, 2cqi, 2rem); }
    .pb-news__date { font-size: clamp(0.85rem, 1.5cqi, 1.8rem); }
}

@media (max-width: 768px) {
    .pb-news__grid--3,
    .pb-news__grid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* Hours Block */
.pb-hours {
    padding: var(--pb-hours-padding, 1rem);
    border-radius: var(--pb-hours-radius, 0);
    background: var(--pb-hours-bg, transparent);
    border: var(--pb-hours-border-width, 0) solid var(--pb-hours-border-color, transparent);
    box-shadow: var(--pb-hours-shadow, none);
}
.pb-hours__title {
    font-family: var(--pb-hours-title-font, inherit);
    font-size: var(--pb-hours-title-size, 1.25rem);
    font-weight: var(--pb-hours-title-weight, 600);
    color: var(--pb-hours-title-color, inherit);
    margin: 0 0 0.75rem;
    line-height: 1.3;
}
.pb-hours__table {
    width: 100%;
    border-collapse: collapse;
}
.pb-hours__row td {
    padding: 0.5rem 0;
    border-bottom: var(--pb-hours-separator, 1px solid rgba(0, 0, 0, 0.08));
}
.pb-hours__row:last-child td {
    border-bottom: none;
}
.pb-hours__day {
    white-space: nowrap;
    padding-right: 1.5rem;
    font-family: var(--pb-hours-day-font, inherit);
    font-size: var(--pb-hours-day-size, inherit);
    font-weight: var(--pb-hours-day-weight, 500);
    color: var(--pb-hours-day-color, inherit);
}
.pb-hours__time {
    text-align: right;
    font-family: var(--pb-hours-time-font, inherit);
    font-size: var(--pb-hours-time-size, inherit);
    font-weight: var(--pb-hours-time-weight, normal);
    color: var(--pb-hours-time-color, #6b7280);
}
.pb-hours__row--closed .pb-hours__time {
    opacity: 0.5;
    font-style: italic;
}

/* Gallery Block */
.pb-gallery .row {
    gap: var(--pb-gallery-gap, 15px);
}
.pb-gallery img {
    border-radius: var(--pb-gallery-radius, 0);
}

/* Storefront Block card gap */
.pb-storefront__items {
    gap: var(--card-gap, 0);
}

/* HTML Block */
.pb-block--html img {
    max-width: 100%;
    height: auto;
}

.pb-block--html table {
    width: 100%;
    border-collapse: collapse;
}

.pb-block--html table td,
.pb-block--html table th {
    padding: 0.5rem;
    border: 1px solid #ddd;
}

/* Form Block */
.pb-form form {
    position: relative;
}

.pb-form label {
    display: block;
    margin-bottom: 4px;
    font-family: var(--pb-form-label-font, inherit);
    font-weight: var(--pb-form-label-weight, 500);
    font-size: var(--pb-form-label-size, inherit);
    color: var(--pb-form-label-color, inherit);
}

.pb-form input[type="text"],
.pb-form input[type="email"],
.pb-form input[type="tel"],
.pb-form input[type="number"],
.pb-form input[type="date"],
.pb-form textarea,
.pb-form select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--pb-form-field-border, #d1d5db);
    border-radius: var(--pb-form-field-radius, 4px);
    font-size: 1rem;
    line-height: 1.5;
    box-sizing: border-box;
    background: var(--pb-form-field-bg, #fff);
}

.pb-form input[type="text"]:focus,
.pb-form input[type="email"]:focus,
.pb-form input[type="tel"]:focus,
.pb-form input[type="number"]:focus,
.pb-form input[type="date"]:focus,
.pb-form textarea:focus,
.pb-form select:focus {
    outline: none;
    border-color: var(--color-primary, #4a6cf7);
    box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.15);
}

.pb-form textarea {
    min-height: 120px;
    resize: vertical;
}

.pb-form .pb-button--primary {
    background: var(--pb-form-btn-bg, var(--color-primary, #3b82f6));
    color: var(--pb-form-btn-color, #fff);
}

.pb-form__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    flex-wrap: wrap;
}

.pb-form__dsgvo {
    flex: 1;
    min-width: 0;
    position: relative;
}

.pb-form__dsgvo label {
    font-weight: 400 !important;
    font-size: 0.875rem;
    line-height: 1.4;
}

.pb-form__actions {
    flex-shrink: 0;
}

/* Slider Block */
.pb-slider {
    width: 100%;
    overflow: hidden;
}

.pb-slider--empty {
    display: none;
}

.pb-slider__slide {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
}

.pb-slider__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-slider__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2rem;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    color: #fff;
}

.pb-slider__title {
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    line-height: 1.2;
}

.pb-slider__excerpt {
    font-size: 1rem;
    margin: 0;
    opacity: 0.9;
    line-height: 1.5;
}

/* ──────────────────────────────────────────────────────
   Calendar Block
   ────────────────────────────────────────────────────── */

.pb-calendar--empty { padding: 2rem; text-align: center; color: #999; }

/* Cards Layout */
.pb-calendar__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.pb-calendar__card { border-radius: var(--pb-cal-card-radius, 0.5rem); padding: var(--pb-cal-card-pt, 1.25rem) var(--pb-cal-card-pr, 1.25rem) var(--pb-cal-card-pb, 1.25rem) var(--pb-cal-card-pl, 1.25rem); container-type: inline-size; color: var(--pb-cal-card-color, inherit); }
.pb-calendar__card-name { font-size: clamp(1rem, 3cqi, 2.5rem); font-weight: 700; }
.pb-calendar__card-time { font-size: clamp(0.85rem, 2cqi, 1.5rem); margin-top: 0.25rem; }
.pb-calendar__card-meta { font-size: clamp(0.75rem, 1.5cqi, 1.2rem); opacity: 0.85; margin-top: 0.25rem; }
.pb-calendar__card-countdown { font-size: clamp(0.8rem, 1.8cqi, 1.4rem); margin-top: 0.5rem; font-weight: 600; }

/* List Layout */
.pb-calendar__list { display: flex; flex-direction: column; gap: 0.25rem; }
.pb-calendar__list-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; }
.pb-calendar__list-bar { width: 4px; align-self: stretch; border-radius: 2px; flex-shrink: 0; }
.pb-calendar__list-time { min-width: 5em; font-weight: 600; white-space: nowrap; }
.pb-calendar__list-name { flex: 1; font-weight: 500; }
.pb-calendar__list-meta { color: #666; font-size: 0.9em; white-space: nowrap; }

/* Week Grid */
.pb-calendar__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.pb-calendar__week-day { font-weight: 600; text-align: center; padding: 0.5rem; background: var(--pb-cal-week-header-bg, #f8fafc); color: var(--pb-cal-week-header-color, inherit); border-radius: 4px 4px 0 0; }
.pb-calendar__week-day small { font-weight: 400; color: #6b7280; display: block; }
.pb-calendar__week-col { display: flex; flex-direction: column; gap: 2px; min-height: 200px; padding: var(--pb-cal-week-day-pt, 4px) var(--pb-cal-week-day-pr, 4px) var(--pb-cal-week-day-pb, 4px) var(--pb-cal-week-day-pl, 4px); margin: var(--pb-cal-week-day-mpt, 0) var(--pb-cal-week-day-mpr, 0) var(--pb-cal-week-day-mpb, 0) var(--pb-cal-week-day-mpl, 0); background: var(--pb-cal-week-day-bg, transparent); color: var(--pb-cal-week-day-color, inherit); }
.pb-calendar__week-event { padding: var(--pb-cal-week-evt-pt, 0.25rem) var(--pb-cal-week-evt-pr, 0.5rem) var(--pb-cal-week-evt-pb, 0.25rem) var(--pb-cal-week-evt-pl, 0.5rem); margin: var(--pb-cal-week-evt-mpt, 0) var(--pb-cal-week-evt-mpr, 0) var(--pb-cal-week-evt-mpb, 0) var(--pb-cal-week-evt-mpl, 0); border-radius: var(--pb-cal-week-evt-radius, 0.25rem); font-size: 0.8rem; }
.pb-calendar__week-event-time { font-weight: 600; }
.pb-calendar__week-event-name { font-weight: 500; }

.pb-calendar__no-events {
    text-align: center;
    color: #9ca3af;
    padding: 1rem 0;
    font-size: 0.875rem;
}

/* Legend */
.pb-calendar__legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid rgba(128,128,128,0.2); }
.pb-calendar__legend-item { display: flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; }
.pb-calendar__legend-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.pb-calendar__legend-label { white-space: nowrap; }

@media (max-width: 768px) {
    .pb-calendar__week {
        grid-template-columns: 1fr;
    }

    .pb-calendar__week-col {
        min-height: auto;
        border-bottom: 1px solid #e5e7eb;
        padding-bottom: 8px;
        margin-bottom: 8px;
    }

    .pb-calendar__week-col:last-child {
        border-bottom: none;
    }

    .pb-calendar__cards {
        grid-template-columns: 1fr;
    }
}

/* ──────────────────────────────────────────────────────
   Display Carousel
   ────────────────────────────────────────────────────── */

.pb-display-carousel {
    width: 100%;
    height: 100%;
}

.pb-display-slide {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.pb-display-slide .pb-section {
    flex: 1;
    min-height: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.pb-display-slide .pb-section > .pb-row {
    width: 100%;
    flex: 1;
    min-height: 0;
}

.pb-display-slide .pb-column {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.pb-display-slide .pb-block {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Propagate height through news/slider inner Swiper to grid covers */
.pb-display-slide .pb-block--news .pb-news,
.pb-display-slide .pb-block--news .swiper-wrapper,
.pb-display-slide .pb-block--news .swiper-slide {
    height: 100%;
}
.pb-display-slide .pb-block--news .pb-news__grid {
    height: 100%;
    grid-template-rows: 1fr;
}
.pb-display-slide .pb-block--news .pb-news__grid .pb-news__card {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.pb-display-slide .pb-block--news .pb-news__grid .pb-news__card-image-wrap {
    flex: 1;
    min-height: 0;
}
.pb-display-slide .pb-block--news .pb-news__grid .pb-news__card-image {
    height: 100%;
    aspect-ratio: auto;
}

/* ──────────────────────────────────────────────────────
   Responsive: Stack columns on mobile
   ────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .pb-row {
        flex-direction: column;
        gap: 0;
    }

    .pb-column--50,
    .pb-column--66,
    .pb-column--33,
    .pb-column--25,
    .pb-row--two-equal .pb-column,
    .pb-row--two-left .pb-column:first-child,
    .pb-row--two-left .pb-column:last-child,
    .pb-row--two-right .pb-column:first-child,
    .pb-row--two-right .pb-column:last-child,
    .pb-row--three-equal .pb-column,
    .pb-row--four-equal .pb-column {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/* Weather Block */
.pb-weather {
    background: var(--pb-weather-bg, linear-gradient(135deg, #667eea 0%, #3b49df 50%, #1e3a8a 100%));
    color: #fff;
    padding: var(--pb-weather-padding, 2rem);
    border-radius: var(--pb-weather-radius, 0.5rem);
    container-type: inline-size;
}

.pb-weather--empty {
    padding: 2rem;
    text-align: center;
    color: #999;
    background: none;
}

.pb-weather__city {
    font-size: var(--pb-weather-city-size, clamp(1rem, 3cqi, 3rem));
    font-weight: var(--pb-weather-city-weight, 700);
    font-family: var(--pb-weather-city-family, inherit);
    line-height: var(--pb-weather-city-lh, 1.2);
    color: var(--pb-weather-city-color, inherit);
    text-transform: var(--pb-weather-city-transform, none);
    text-align: center;
    margin-bottom: 0.5rem;
}

.pb-weather__main {
    text-align: center;
}

.pb-weather__icon {
    display: block;
    margin: 0 auto;
    width: clamp(48px, 12cqi, 120px);
}

.pb-weather__desc {
    font-size: var(--pb-weather-desc-size, clamp(0.8rem, 1.8cqi, 1.5rem));
    font-weight: var(--pb-weather-desc-weight, 600);
    font-family: var(--pb-weather-desc-family, inherit);
    line-height: var(--pb-weather-desc-lh, 1.4);
    color: var(--pb-weather-desc-color, inherit);
    text-transform: var(--pb-weather-desc-transform, uppercase);
    letter-spacing: 0.1em;
}

.pb-weather__temp {
    font-size: clamp(2rem, 6cqi, 7rem);
    font-weight: 700;
    text-align: center;
    color: var(--pb-weather-values-color, inherit);
    font-family: var(--pb-weather-values-family, inherit);
}

.pb-weather__details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 24rem;
    margin: 1rem auto 0;
    font-size: var(--pb-weather-values-size, clamp(0.85rem, 2cqi, 2rem));
    font-weight: var(--pb-weather-values-weight, 400);
    font-family: var(--pb-weather-values-family, inherit);
    line-height: var(--pb-weather-values-lh, 1.4);
    color: var(--pb-weather-values-color, inherit);
    text-transform: var(--pb-weather-values-transform, none);
}

.pb-weather__row {
    display: flex;
    justify-content: space-between;
}

/* ──────────────────────────────────────────────────────
   Storefront Block
   ────────────────────────────────────────────────────── */

.pb-storefront {
    font-family: var(--font-family-body, initial);
    color: var(--color-bodytext);
    font-size: var(--font-size-body, 1rem);
    line-height: var(--line-height-body);
    text-transform: var(--text-transform-body, none);
}

.pb-storefront h2,
.pb-storefront h3,
.pb-storefront h4 {
    font-family: var(--font-family-heading, initial);
    color: var(--color-headertext);
    line-height: var(--line-height-heading, 1.2);
    text-transform: var(--text-transform-heading, none);
}

.pb-storefront .pb-storefront__title {
    font-size: var(--font-size-title, var(--font-size-heading, 1.75rem));
    color: var(--color-title, var(--color-headertext));
    font-family: var(--font-family-title, var(--font-family-heading, initial));
    line-height: var(--line-height-title, var(--line-height-heading, 1.2));
    text-transform: var(--text-transform-title, var(--text-transform-heading, none));
}

.pb-storefront .pb-storefront__category-title {
    font-size: var(--font-size-category, calc(var(--font-size-heading, 1.75rem) * 0.857));
    color: var(--color-category, var(--color-headertext));
    font-family: var(--font-family-category, var(--font-family-heading, initial));
    line-height: var(--line-height-category, var(--line-height-heading, 1.2));
    text-transform: var(--text-transform-category, var(--text-transform-heading, none));
}

.pb-storefront h2 {
    font-size: var(--font-size-heading, 1.75rem);
}

.pb-storefront h3 {
    font-size: calc(var(--font-size-heading, 1.75rem) * 0.857);
}

.pb-storefront h4 {
    font-size: calc(var(--font-size-heading, 1.75rem) * 0.714);
}

@media (min-width: 992px) {
    .pb-storefront h2 {
        font-size: var(--font-size-heading, 2.8rem);
    }
    .pb-storefront .pb-storefront__title {
        font-size: var(--font-size-title, var(--font-size-heading, 2.8rem));
    }
    .pb-storefront h3 {
        font-size: calc(var(--font-size-heading, 2.8rem) * 0.78);
    }
    .pb-storefront .pb-storefront__category-title {
        font-size: var(--font-size-category, calc(var(--font-size-heading, 2.8rem) * 0.78));
    }
}

/* Header */
.pb-storefront__header-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.pb-storefront__description {
    max-width: 70ch;
    font-size: var(--font-size-intro, inherit);
    color: var(--color-intro, var(--color-bodytext));
    line-height: var(--line-height-intro, inherit);
    text-transform: var(--text-transform-intro, none);
}

/* Navigation */
.pb-storefront__nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--filter-gap, 0.5rem);
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.pb-storefront__nav-item {
    display: inline-block;
    color: var(--color-cardtext);
    background: var(--color-cardbackground);
    margin: var(--filter-margin, 0);
    padding: var(--filter-padding, 0.25rem 0.75rem);
    border-radius: var(--filter-border-radius, 999px);
    border: var(--filter-border-width, 0px) solid var(--filter-border-color, transparent);
    text-decoration: none;
    font-size: 0.9rem;
}

.pb-storefront__nav-item:hover {
    text-decoration: none;
}

.pb-storefront__nav-item--active {
    color: var(--color-buttontext, #fff);
    background: var(--color-buttonbackground, var(--gradient-primary));
    border-radius: 999px;
}

/* Categories */
.pb-storefront__category {
    margin: 4rem 0;
}

.pb-storefront__category-desc {
    max-width: 70ch;
}

/* Items Grid */
.pb-storefront__items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: var(--card-gap, 1.5rem);
    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0;
}

.pb-storefront__item {
    display: flex;
    flex-direction: column;
    color: var(--color-cardtext);
    background: var(--color-cardbackground);
    margin: var(--card-margin, 0);
    padding: var(--card-padding, 1rem);
    border-radius: var(--card-border-radius, 0.5rem);
    border: var(--card-border-width, 0px) solid var(--card-border-color, transparent);
}

.pb-storefront__item--price-bold .pb-storefront__item-price {
    font-weight: 700;
}

.pb-storefront__item-name {
    font-size: var(--font-size-card-title, 1.125em);
    line-height: var(--line-height-card-title, 1.25);
    text-transform: var(--text-transform-card-title, none);
    color: var(--color-cardtext);
    font-weight: 700;
}

.pb-storefront__item-name .pb-storefront__dietary-attrs {
    display: inline-flex;
    margin: 0 0 0 0.25rem;
    vertical-align: middle;
}

.pb-storefront__item-image {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.pb-storefront__item-image img {
    max-width: 100%;
    height: auto;
    border-radius: 0.25rem;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.pb-storefront__item-info {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.pb-storefront__item-price {
    display: block;
}

.pb-storefront__item-desc,
.pb-storefront__prices {
    color: var(--color-cardbodytext, var(--color-cardtext));
}

.pb-storefront__item-desc {
    font-size: var(--font-size-card-body, 90%);
    line-height: var(--line-height-card-body, normal);
    text-transform: var(--text-transform-card-body, none);
    margin-bottom: 0.25rem;
}

.pb-storefront__prices {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

.pb-storefront__variants {
    width: 100%;
}

.pb-storefront__variants .pb-storefront__item-price {
    text-align: right;
}

.pb-storefront__variant {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
}

.pb-storefront__variant-name {
    flex: 1;
    display: flex;
}

.pb-storefront__variant-name::after {
    content: "";
    display: block;
    flex: 1;
    border-bottom: 1px dotted;
    margin: 0 0.25rem;
    opacity: 0.4;
    transform: translateY(-0.25em);
}

/* Dietary Attribute Icons */
.pb-storefront__dietary-attrs {
    margin: 0.5rem 0;
    padding: 0;
    list-style: none;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pb-storefront__dietary-attrs img {
    width: 1.5em;
    height: 1.5em;
}

/* Superscript */
.pb-storefront__sup {
    color: #6b7280;
    font-weight: 400;
}

/* Legend */
.pb-storefront__legend {
    margin: 4rem 0;
}

.pb-storefront__legend h2 {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

.pb-storefront__legend-list {
    list-style: none;
    padding: 0;
    color: #6b7280;
    font-size: 0.875rem;
}

.pb-storefront__legend-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: none;
    border: none;
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--color-headertext, inherit);
    cursor: pointer;
    padding: 0.5rem 0;
}

.pb-storefront__legend-toggle i {
    font-size: 0.75rem;
    transition: transform 0.15s ease;
}

.pb-storefront__legend-link {
    color: #6b7280;
    font-size: 0.875rem;
}

.pb-storefront__tax-info {
    color: #6b7280;
    font-size: 0.875rem;
}

/* Language Selector */
.pb-storefront__lang-select {
    list-style: none;
    display: flex;
    gap: 0.25rem;
    padding: 0;
    margin: 0;
}

.pb-storefront__lang {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-cardtext);
    background: var(--color-cardbackground);
    border-radius: 4px;
}

.pb-storefront__lang:hover {
    text-decoration: none;
}

.pb-storefront__lang--active {
    color: var(--color-buttontext, #fff);
    background: var(--color-buttonbackground, var(--gradient-primary));
}

/* ──────────────────────────────────────────────────────
   Legacy Storefront (mc-storefront) — used by the
   Blade-based storefront.frontend.index template
   ────────────────────────────────────────────────────── */

.mc-storefront {
    font-family: var(--font-family-body, initial);
    color: var(--color-bodytext);
    font-size: calc(var(--font-size-body, 1) * 1rem);
    padding: 2rem 0;
    background-color: var(--color-background, transparent);
    background-image: var(--background-image-url, none);
    background-repeat: no-repeat;
    background-position: center center;
    background-attachment: fixed;
    background-size: cover;
}

.mc-storefront h2,
.mc-storefront h3,
.mc-storefront h4 {
    font-family: var(--font-family-heading, initial);
    color: var(--color-headertext);
    line-height: 1.2;
}

.mc-storefront h2 { font-size: calc(var(--font-size-heading, 1) * 36px); }
.mc-storefront h3 { font-size: calc(var(--font-size-heading, 1) * 34px); }
.mc-storefront h4 { font-size: calc(var(--font-size-heading, 1) * 1.5rem); }

.mc-storefront .text-muted {
    color: var(--color-bodytext) !important;
    opacity: 0.7;
}

@media (min-width: 992px) {
    .mc-storefront h2 { font-size: calc(var(--font-size-heading, 1) * 45px); }
    .mc-storefront h3 { font-size: calc(var(--font-size-heading, 1) * 35px); }
}

.mc-storefront-items {
    display: flex;
    flex-direction: column;
    margin-bottom: 2rem;
}

.mc-storefront-item {
    display: flex;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    color: var(--color-cardtext, var(--color-bodytext));
}

.mc-storefront-item:last-child { border-bottom: none; }

.mc-storefront-item--price-bold .mc-storefront-item-price { font-weight: 700; }

.mc-storefront-item-content { flex: 1; min-width: 0; }

.mc-storefront-item-header {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.mc-storefront-item-header::after {
    content: "";
    flex: 1;
    border-bottom: 1px dotted rgba(0, 0, 0, 0.2);
    min-width: 1rem;
    position: relative;
    bottom: 0.25em;
}

.mc-storefront-item-header > .mc-storefront-item-price {
    white-space: nowrap;
    font-weight: 600;
}

.mc-storefront-item-name {
    font-size: calc(var(--font-size-body, 1) * 1.0625rem);
    line-height: 1.4;
    font-weight: 600;
}

.mc-storefront-item-icons {
    display: inline-flex;
    vertical-align: middle;
    gap: 0.25rem;
    margin-left: 0.25rem;
}

.mc-storefront-item-icons img {
    width: 1.125rem;
    height: 1.125rem;
    vertical-align: middle;
}

.mc-storefront-item-image {
    flex-shrink: 0;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 0.375rem;
    overflow: hidden;
    background-color: #f5f5f5;
}

.mc-storefront-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mc-storefront-item-price { white-space: nowrap; }

.mc-storefront-item-variations { margin-top: 0.25rem; }

.mc-storefront-variant {
    display: flex;
    align-items: baseline;
    gap: 4px;
    font-size: 0.9375rem;
}

.mc-storefront-variant-name { flex: 1; display: flex; }

.mc-storefront-variant-name::after {
    content: "";
    display: block;
    flex: 1;
    border-bottom: 1px dotted rgba(0, 0, 0, 0.2);
    margin: 0 4px;
    align-self: baseline;
    position: relative;
    bottom: 0.25em;
}

.mc-storefront-variant .mc-storefront-item-price { font-weight: 600; }

.mc-storefront-category { margin: 3rem 0; }

.mc-storefront-category + .mc-storefront-category {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    padding-top: 1rem;
}

.mc-storefront-nav ul {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 0.5rem;
}

.mc-storefront-nav-item {
    display: inline-block;
    color: var(--color-bodytext);
    padding: 0.375rem 1rem;
    border-radius: 2rem;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: background 0.2s ease, color 0.2s ease;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.mc-storefront-nav-item:hover {
    background: rgba(0, 0, 0, 0.04);
    color: var(--color-bodytext);
    text-decoration: none;
}

.mc-storefront-nav-item--active {
    color: var(--color-buttontext, #fff);
    background: var(--color-buttonbackground, var(--gradient-primary));
    border-color: transparent;
}

.mc-storefront-nav-item--active:hover {
    color: var(--color-buttontext, #fff);
}

.mc-storefront-category-title { margin-top: 0; margin-bottom: 0.5rem; }

.mc-storefront-category-description {
    max-width: 70ch;
    font-size: 0.9375rem;
    opacity: 0.8;
    margin-bottom: 0.5rem;
}

.mc-storefront-item-description {
    font-size: 0.875rem;
    margin-top: 0.25rem;
    opacity: 0.7;
}

.mc-storefront-item-description p:first-child { margin-top: 0; }
.mc-storefront-item-description p:last-child { margin-bottom: 0; }

.mc-storefront-item-description,
.mc-storefront-item-variations {
    color: var(--color-cardbodytext, var(--color-cardtext, var(--color-bodytext)));
}

.mc-storefront-legend {
    margin: 4rem 0;
    padding-top: 2rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.mc-storefront-legend .container {
    display: flex;
    gap: 2rem;
    margin: 1rem auto;
    align-items: baseline;
}

@media (max-width: 768px) {
    .mc-storefront-legend .container {
        flex-direction: column;
        gap: 0.5rem;
    }
}

.mc-storefront-legend .container--allergen-info {
    flex-direction: column;
    gap: 0.5rem;
}

.mc-storefront-legend .container--allergen-info a { text-decoration: underline; }

.mc-storefront-legend h2 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    margin: 0;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    opacity: 0.7;
}

.mc-storefront-legend ul {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.mc-storefront-dietary-attributes {
    margin: 0.5rem 0;
    padding: 0;
    list-style: none;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.mc-storefront-dietary-attributes li {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
}

.mc-storefront-dietary-attributes li img { width: 1.5rem; height: 1.5rem; }

.mc-storefront-header-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

@media (max-width: 768px) {
    .mc-storefront-header-title {
        flex-direction: column-reverse;
        margin-bottom: 1rem;
    }
}

.lang-select {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    border: 1px solid var(--color-cardbackground);
    border-radius: 0.5rem;
    overflow: hidden;
}

.lang-select-language {
    display: block;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.5rem;
}

.lang-select-language:first-child {
    border-right: 1px solid var(--color-cardbackground);
}

.lang-select-language:hover { text-decoration: none; }

.lang-select-language--active { background: var(--color-cardbackground); }

/* Background video */
.pb-bg-video {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
}

.pb-bg-video iframe,
.pb-bg-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pb-section--has-video {
    position: relative;
}

.pb-section--has-video > .pb-row {
    position: relative;
    z-index: 1;
}

/* Map Block */
.pb-map {
    width: 100%;
    line-height: 0;
}

.pb-map iframe {
    width: 100%;
    height: 400px;
    border: 0;
}

.pb-map--full-width {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

/* Cross-block category filter */
.pb-category--hidden {
    display: none !important;
}

/* ──────────────────────────────────────────────────────
   Responsive: Tablet (max 992px)
   ────────────────────────────────────────────────────── */
@media (max-width: 992px) {
    /* Four-column rows → 2 columns on tablet */
    .pb-row--four-equal .pb-column {
        flex: 0 0 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }

    /* Cover sections: friendlier aspect ratio */
    .pb-section--has-bg {
        aspect-ratio: auto 16/9;
    }

    /* Storefront grid: allow narrower cards */
    .pb-storefront__items {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }

    /* Slider text overlay: tighter padding */
    .pb-slider__overlay {
        padding: 1.25rem;
    }

    .pb-slider__title {
        font-size: 1.35rem;
    }
}

/* ──────────────────────────────────────────────────────
   Responsive: Mobile (max 768px) — additions to
   the existing column-stacking rule above
   ────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    /* Sections: less spacing between sections */
    .pb-section {
        margin-bottom: 24px;
    }

    /* Cover sections: even taller on mobile for readability */
    .pb-section--has-bg {
        aspect-ratio: auto 4/3;
    }

    /* Cover content: reduce padding */
    .pb-cover__content {
        padding: 1rem;
    }

    /* Slider overlay: tighter on mobile */
    .pb-slider__overlay {
        padding: 1rem;
    }

    .pb-slider__title {
        font-size: 1.15rem;
        margin-bottom: 0.25rem;
    }

    .pb-slider__excerpt {
        font-size: 0.875rem;
    }

    /* Calendar cards: already 1fr at 768px (above) */

    /* Calendar list: tighter on mobile */
    .pb-calendar__list-item {
        gap: 0.5rem;
        padding: 0.5rem;
    }

    .pb-calendar__list-time {
        min-width: auto;
        font-size: 0.85rem;
    }

    .pb-calendar__list-meta {
        display: none;
    }

    /* News cover: full-width text */
    .pb-news__cover-content {
        width: 100%;
    }

    /* Storefront grid: smaller cards */
    .pb-storefront__items {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }

    /* Storefront header: stack title + lang selector */
    .pb-storefront__header-title {
        flex-direction: column;
        gap: 0.5rem;
    }

    /* Storefront category: less vertical spacing */
    .pb-storefront__category {
        margin: 2rem 0;
    }

    /* Storefront legend */
    .pb-storefront__legend {
        margin: 2rem 0;
    }

    /* Tables: horizontal scroll */
    .pb-block table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Map: shorter on mobile */
    .pb-map iframe {
        height: 250px;
    }

    /* Hours block: tighter */
    .pb-hours__day {
        padding-right: 0.75rem;
    }
}

/* ──────────────────────────────────────────────────────
   Responsive: Small phones (max 576px)
   ────────────────────────────────────────────────────── */
@media (max-width: 576px) {
    /* News grid: always 1 column on small phones */
    .pb-news__grid--2,
    .pb-news__grid--3,
    .pb-news__grid--4 {
        grid-template-columns: 1fr;
    }

    /* Storefront: single column on small phones */
    .pb-storefront__items {
        grid-template-columns: 1fr;
    }

    /* Storefront nav: allow scroll on tiny screens */
    .pb-storefront__nav ul {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .pb-storefront__nav ul::-webkit-scrollbar {
        display: none;
    }

    /* Cover: remove aspect ratio constraint, use min-height */
    .pb-section--has-bg {
        aspect-ratio: auto;
        min-height: 50vw;
    }

    /* Form footer: stack vertically */
    .pb-form__footer {
        flex-direction: column;
        align-items: stretch;
    }

    .pb-form__actions {
        text-align: center;
    }

    /* Legacy storefront nav: scrollable */
    .mc-storefront-nav ul {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .mc-storefront-nav ul::-webkit-scrollbar {
        display: none;
    }
}
