/* ==========================================================================
   Brasa marketing layer — components added by the Sep 2026 growth plan.
   Dark theme tokens come from style.css (:root). Kept in one file so the
   campaign surfaces can evolve without touching the 14k-line base sheet.
   ========================================================================== */

/* ---- Footer contact ------------------------------------------------------ */
.footer_grid {
    grid-template-columns: 200px minmax(320px, 1fr) 240px;
    gap: 3.5rem;
    align-items: start;
}

.footer-contact {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.9rem;
}

.footer-contact li {
    list-style: none;
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 12px 16px;
    align-items: start;
    margin: 0;
    padding: 0;
}

.footer-contact span {
    font-family: var(--font-family);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--chinh);
    padding-top: 3px;
}

.footer-contact p,
.footer-contact a {
    margin: 0;
    font-family: var(--font-family);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
}

.footer-contact a:hover {
    color: var(--chinh);
}

@media (max-width: 1024px) {
    .footer-contact li {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* iOS Safari gives native date inputs a ~2x min-height. Match the 48px
   of the neighbouring text/select fields. */
.booking-modal__field input[type="date"],
.groups-form__field input[type="date"] {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    line-height: 1.2;
    color-scheme: dark;
}

.booking-modal__field input[type="date"]::-webkit-date-and-time-value,
.groups-form__field input[type="date"]::-webkit-date-and-time-value {
    min-height: 0;
    height: auto;
    text-align: left;
}

.booking-modal__field input[type="date"]::-webkit-datetime-edit,
.booking-modal__field input[type="date"]::-webkit-datetime-edit-fields-wrapper,
.groups-form__field input[type="date"]::-webkit-datetime-edit,
.groups-form__field input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
    margin: 0;
    display: block;
    line-height: 1.2;
}

.buffetNBCarousel_item_info_desc {
    margin-bottom: 0.75rem;
}

.hero-facts__mobile { display: none; }
@media (max-width: 767px) {
    .hero-facts .hero-facts__desktop { display: none; }
    .hero-facts .hero-facts__mobile { display: inline; }
    .video_intro_text .hero-facts, .hero-facts {
        flex-wrap: nowrap;
        max-width: 100%;
        gap: 0 12px;
        font-size: clamp(9px, 2.65vw, 12px);
        white-space: nowrap;
    }
    .hero-facts li + li::before { left: -8px; }
}
.booking-offer-deadline { display: block; flex-basis: 100%; margin-top: 8px; font-size: 13px; line-height: 1.5; color: #cfc5b8; }
.booking-savings {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 16px;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 24px;
    padding: 10px 0 10px 14px;
    border-left: 2px solid #e7a350;
    font-family: var(--font-family);
    line-height: 1.5;
}

.booking-savings__label {
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.booking-savings__amount {
    color: #ffc078;
    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
}

.booking-savings--hero {
    margin: 18px 0 0;
    padding-top: 4px;
    padding-bottom: 4px;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}

@media (max-width: 480px) {
    .booking-savings {
        gap: 2px 12px;
    }

    .booking-savings__label {
        font-size: 11px;
    }

    .booking-savings__amount {
        font-size: 16px;
    }
}

.booking-rate {
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid rgba(231, 163, 80, .35);
    border-radius: 16px;
    background: rgba(231, 163, 80, .08);
    text-align: left;
    line-height: 1.5;
}
.booking-rate__label {
    color: #ffc078;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.booking-rate__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin: 6px 0;
    color: #fff;
}
.booking-rate__price strong { font-size: clamp(26px, 5vw, 34px); line-height: 1.2; }
.booking-rate__original { display: block; margin-top: 10px; color: #bbb; font-size: 16px; }

.rodizio-fees {
    margin: 0 0 1.75rem;
    font-family: var(--font-family);
    font-size: 13.5px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.62);
}

/* ---- Rodízio card: single tier + included list ------------------------- */
.buffetNBCarousel_owl--single {
    display: block;
}

.buffetNBCarousel_item--hero {
    align-items: start;
}

.rodizio-explainer {
    margin-top: 4rem;
    padding: 3rem 2.5rem;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.rodizio-explainer__heading {
    text-align: center;
    margin-bottom: 2.5rem;
}

.rodizio-explainer__heading span,
.groups-section__heading span,
.groups-section__eyebrow,
.confirm-explainer__heading span,
.groups-hero__eyebrow,
.offer-hero__eyebrow,
.groups-teaser__eyebrow {
    display: inline-block;
    font-family: var(--second-family);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--chinh);
    margin-bottom: 0.75rem;
}

.rodizio-explainer__heading h3,
.groups-section__heading h2,
.confirm-explainer__heading h2 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: #fff;
    margin: 0;
}

.rodizio-explainer__steps,
.confirm-explainer__steps,
.groups-flow__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
    counter-reset: step;
}

.rodizio-explainer__steps li,
.groups-flow__steps li {
    position: relative;
    padding: 1.75rem 1.5rem 1.5rem;
    border-radius: 18px;
    background: rgb(28, 28, 28);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.rodizio-explainer__num,
.groups-flow__num,
.confirm-explainer__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(90deg, rgb(210, 94, 56) 0%, rgb(235, 139, 65) 100%);
    color: #fff;
    font-family: var(--second-family);
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 1rem;
}

.rodizio-explainer__steps h4,
.groups-flow__steps h3,
.confirm-explainer__steps h3 {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 17px;
    color: #fff;
    margin: 0 0 0.5rem;
}

.rodizio-explainer__steps p,
.groups-flow__steps p,
.confirm-explainer__steps p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.7);
}

/* ---- Groups teaser (homepage) ------------------------------------------ */
.groups-teaser {
    padding: 4rem 0;
    background: rgb(28, 28, 28);
}

.groups-teaser__card {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    align-items: center;
    gap: 2.5rem;
    padding: 3rem 3.25rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0%, rgba(253, 139, 15, 0.28), transparent 55%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
    border: 1px solid rgba(253, 139, 15, 0.3);
}

.groups-teaser__copy h2 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(1.8rem, 3.4vw, 2.75rem);
    color: #fff;
    margin: 0 0 1rem;
}

.groups-teaser__copy p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.78);
}

.groups-teaser__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    gap: 10px;
}

.groups-teaser__btn,
.groups-btn,
.offer-btn,
.confirm-actions__primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 54px;
    padding: 0 32px;
    border-radius: 40px;
    border: 0;
    background: linear-gradient(90deg, rgb(210, 94, 56) 0%, rgb(235, 139, 65) 100%);
    color: #fff !important;
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none !important;
    cursor: pointer;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.35s;
}

.groups-teaser__btn:hover,
.groups-btn--primary:hover,
.offer-btn--primary:hover,
.confirm-actions__primary:hover {
    transform: translateY(-4px);
    box-shadow: rgba(210, 94, 56, 0.45) 0 12px 30px;
}

.groups-btn--ghost,
.offer-btn--ghost,
.confirm-actions__secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 26px;
    border-radius: 40px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: transparent;
    color: #fff !important;
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none !important;
    transition: border-color 0.3s, background 0.3s;
}

.groups-btn--ghost:hover,
.offer-btn--ghost:hover,
.confirm-actions__secondary:hover {
    border-color: var(--chinh);
    background: rgba(253, 139, 15, 0.1);
}

.groups-teaser__hint {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.55);
}

/* ---- Social strip ------------------------------------------------------ */
.social-strip {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
}

.social-strip__lead {
    margin: 0;
    font-family: var(--third-family);
    font-size: 1.35rem;
    color: #fff;
}

.social-strip__links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.social-strip__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-radius: 40px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #fff !important;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none !important;
    transition: border-color 0.3s, background 0.3s;
}

.social-strip__link:hover {
    border-color: var(--chinh);
    background: rgba(253, 139, 15, 0.1);
}

.social-strip__icon {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

/* ---- Reservation confirmed page ---------------------------------------- */
.confirm-page {
    padding: 4rem 0 5rem;
    background: rgb(28, 28, 28);
}

.confirm-card {
    max-width: 1100px;
    margin: 0 auto;
    padding: 3rem 1.5rem 2.5rem;
    border-radius: 28px;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
    border: 1px solid rgba(253, 139, 15, 0.3);
    text-align: center;
}

.confirm-card__badge {
    color: var(--chinh);
    margin-bottom: 1rem;
}

.confirm-card__eyebrow {
    margin: 0 0 0.5rem;
    font-family: var(--second-family);
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

.confirm-card__title {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    color: #fff;
    margin: 0 0 1rem;
    line-height: 1.2;
}

.confirm-card__title span {
    display: block;
    font-family: var(--third-family);
    font-weight: 400;
    font-size: 0.7em;
    color: rgba(255, 255, 255, 0.8);
    margin-top: 0.4rem;
}

.confirm-card__lead {
    max-width: 620px;
    margin: 0 auto 2rem;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.75);
}

.confirm-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 2rem;
    text-align: left;
}

.confirm-summary > div {
    padding: 1rem 1.25rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.confirm-summary__wide {
    grid-column: 1 / -1;
}

.confirm-summary dt {
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 4px;
}

.confirm-summary dd {
    margin: 0;
    font-weight: 700;
    font-size: 16px;
    color: #fff;
}

.confirm-actions {
    width: 100%;
    border-collapse: separate;
    border-spacing: 8px 0;
    table-layout: auto;
    margin: 0 0 1.5rem;
}

.confirm-actions td {
    padding: 0;
    vertical-align: middle;
    width: 1%;
}

.confirm-actions a {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    min-height: 42px;
    padding: 0 12px;
    font-size: 12px;
    gap: 6px;
}

.confirm-actions a svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

.confirm-card__note {
    margin: 0;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.55);
}

.confirm-explainer {
    max-width: 1100px;
    margin: 3.5rem auto 0;
}

.confirm-explainer__heading {
    text-align: center;
    margin-bottom: 2rem;
}

.confirm-explainer__steps li {
    display: flex;
    gap: 14px;
    padding: 1.5rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.confirm-explainer__num {
    flex: 0 0 auto;
    margin-bottom: 0;
}

.confirm-share {
    margin-top: 3rem;
    text-align: center;
}

.confirm-share p {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.65);
}

.confirm-share__links {
    display: inline-flex;
    gap: 1.5rem;
}

.confirm-share__links a {
    color: var(--chinh) !important;
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 4px;
}

/* ---- Groups & Occasions page ------------------------------------------- */
.groups-hero {
    padding: 4rem 0 3rem;
    background:
        radial-gradient(circle at 0% 0%, rgba(253, 139, 15, 0.16), transparent 50%),
        rgb(28, 28, 28);
}

.groups-hero__grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    align-items: center;
    gap: 3rem;
}

.groups-hero__grid--solo {
    grid-template-columns: 1fr;
    max-width: 860px;
    margin: 0 auto;
}

.groups-hero__grid--solo .groups-hero__copy {
    text-align: center;
}

.groups-hero__grid--solo .groups-hero__lead {
    margin-left: auto;
    margin-right: auto;
}

.groups-hero__grid--solo .groups-hero__actions {
    justify-content: center;
}

.groups-hero__copy h1 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(2.2rem, 4.5vw, 3.6rem);
    line-height: 1.1;
    color: #fff;
    margin: 0 0 1.25rem;
}

.groups-hero__lead {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 2rem;
}

.groups-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 2.5rem;
}

.groups-hero__facts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.groups-hero__facts li {
    padding: 1rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.groups-hero__facts strong {
    display: block;
    font-family: var(--second-family);
    font-weight: 700;
    font-size: 1.8rem;
    color: var(--chinh);
    line-height: 1;
    margin-bottom: 6px;
}

.groups-hero__facts span {
    font-size: 13px;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.65);
}

.groups-hero__visual {
    border-radius: 28px;
    overflow: hidden;
}

.groups-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.groups-occasions,
.groups-flow,
.groups-enquiry,
.groups-faq,
.groups-body {
    padding: 3.5rem 0;
    background: rgb(28, 28, 28);
}

.groups-section__heading {
    text-align: center;
    margin-bottom: 2.5rem;
}

.groups-occasions__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.groups-occasion {
    display: flex;
    flex-direction: column;
    padding: 1.75rem 1.5rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: border-color 0.3s, transform 0.3s;
}

.groups-occasion:hover {
    border-color: rgba(253, 139, 15, 0.5);
    transform: translateY(-4px);
}

.groups-occasion h3 {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 19px;
    color: #fff;
    margin: 0 0 0.6rem;
}

.groups-occasion p {
    flex: 1 1 auto;
    margin: 0 0 1rem;
    font-size: 14.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.7);
}

.groups-occasion__link {
    color: var(--chinh) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.groups-enquiry__grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 3rem;
    align-items: start;
}

.groups-enquiry__copy h2 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    color: #fff;
    margin: 0 0 1rem;
}

.groups-enquiry__copy p {
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.75);
}

.groups-enquiry__contacts {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.groups-enquiry__contacts a {
    color: #fff !important;
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 4px;
    text-decoration-color: var(--chinh) !important;
}

.groups-form {
    padding: 2.25rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.groups-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.groups-form__promo {
    grid-column: 1 / -1;
    margin: 0 0 1rem;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid rgba(37, 211, 102, .35);
    background: rgba(37, 211, 102, .08);
    color: #d9ffe7;
}

.groups-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.groups-form__field label {
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}

.groups-form__field input,
.groups-form__field select,
.groups-form__field textarea {
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.06);
    padding: 12px 16px;
    font-family: var(--font-family);
    font-size: 15px;
    color: #fff;
    outline: 0;
    transition: border-color 0.3s;
}

.groups-form__field select option {
    background: rgb(28, 28, 28);
    color: #fff;
}

.groups-form__field input:focus,
.groups-form__field select:focus,
.groups-form__field textarea:focus {
    border-color: var(--chinh);
}

.groups-form__submit {
    width: 100%;
    margin-top: 1.25rem;
}

.groups-form__fine {
    margin: 12px 0 0;
    font-size: 12.5px;
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
}

.groups-faq__list {
    max-width: 860px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.groups-faq__item {
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    padding: 0 1.5rem;
}

.groups-faq__item summary {
    cursor: pointer;
    list-style: none;
    padding: 1.1rem 0;
    font-weight: 700;
    font-size: 16px;
    color: #fff;
    position: relative;
    padding-right: 2rem;
}

.groups-faq__item summary::-webkit-details-marker {
    display: none;
}

.groups-faq__item summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: var(--chinh);
}

.groups-faq__item[open] summary::after {
    content: "–";
}

.groups-faq__item p {
    margin: 0;
    padding: 0 0 1.25rem;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.72);
}

/* ---- Offer landing page ------------------------------------------------ */
.offer-page {
    padding: 4rem 0 5rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(253, 139, 15, 0.18), transparent 50%),
        rgb(28, 28, 28);
}

.offer-hero {
    display: grid;
    gap: 3rem;
    align-items: center;
    margin-bottom: 3rem;
}

.offer-hero--with-image {
    grid-template-columns: 1.1fr 1fr;
}

.offer-hero__copy h1 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: clamp(2rem, 4.2vw, 3.3rem);
    line-height: 1.12;
    color: #fff;
    margin: 0 0 1.25rem;
}

.offer-hero__lead {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 1.75rem;
}

.offer-hero__visual {
    border-radius: 28px;
    overflow: hidden;
}

.offer-hero__image {
    width: 100%;
    display: block;
}

.offer-status {
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    margin-bottom: 1.25rem;
}

.offer-status--expired {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.75);
}

.offer-status--upcoming {
    background: rgba(253, 139, 15, 0.12);
    color: #fff;
}

.offer-code {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    padding: 12px 18px;
    border-radius: 16px;
    border: 1px dashed rgba(253, 139, 15, 0.7);
    background: rgba(253, 139, 15, 0.08);
    margin-bottom: 1.75rem;
}

.offer-code__label {
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
}

.offer-code__value {
    font-family: var(--second-family);
    font-weight: 700;
    font-size: 1.6rem;
    letter-spacing: 3px;
    color: var(--chinh);
}

.offer-code__copy {
    padding: 8px 14px;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: transparent;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.offer-code__validity {
    flex-basis: 100%;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
}

.offer-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.offer-bullets {
    list-style: none;
    margin: 0 0 3rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
}

.offer-bullets li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 15px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.85);
}

.offer-bullets svg {
    flex: 0 0 auto;
    color: var(--chinh);
    margin-top: 2px;
}

.offer-body {
    max-width: 860px;
    margin: 0 auto 3rem;
}

.offer-how {
    max-width: 860px;
    margin: 0 auto;
    padding: 2rem 2.25rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.offer-how h2 {
    font-family: var(--font-family);
    font-weight: 800;
    font-size: 1.5rem;
    color: #fff;
    margin: 0 0 1rem;
}

.offer-how ol {
    margin: 0;
    padding-left: 1.25rem;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.8;
}

.offer-fine {
    margin: 1.25rem 0 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.5);
}

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 1024px) {
    .rodizio-explainer__steps,
    .confirm-explainer__steps,
    .groups-flow__steps,
    .groups-occasions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .groups-hero__grid,
    .groups-enquiry__grid,
    .offer-hero--with-image,
    .groups-teaser__card {
        grid-template-columns: 1fr;
    }

    /* Right-aligning the button only makes sense against the wide desktop
       card; once it stacks under the copy, keep it left-aligned like the
       rest of the section. */
    .groups-teaser__actions {
        align-items: flex-start;
        text-align: left;
    }

    .groups-hero__visual,
    .offer-hero__visual {
        order: -1;
        max-height: 360px;
    }
}

@media (max-width: 768px) {
    .rodizio-explainer {
        padding: 2rem 1.25rem;
    }

    .rodizio-explainer__steps,
    .confirm-explainer__steps,
    .groups-flow__steps,
    .groups-occasions__grid,
    .offer-bullets,
    .groups-form__grid,
    .confirm-summary {
        grid-template-columns: 1fr;
    }

    .groups-hero__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .groups-teaser__card,
    .confirm-card,
    .groups-form {
        padding: 2rem 1.25rem;
    }

    .confirm-actions,
    .confirm-actions tbody,
    .confirm-actions tr,
    .confirm-actions td {
        display: block;
        width: 100%;
    }

    .confirm-actions {
        border-spacing: 0;
    }

    .confirm-actions td {
        padding: 4px 0;
    }

    .confirm-actions a {
        min-height: 44px;
        padding: 0 16px;
        font-size: 13px;
    }

    .social-strip {
        justify-content: center;
        text-align: center;
    }
}

/* ---- "Come Hungry Leave Happy" pricing card: Reserve + View Menu ------- */
.buffetNBCarousel_item_info_more {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

.buffetNBCarousel_item_info_more .groups-btn--ghost {
    min-height: 52px;
    border-color: rgba(255, 255, 255, 0.35);
}

.js-imgq {
    background: #2a2a2a;
    min-height: 120px;
}

.productNB__item_icon img {
    width: 100%;
    height: auto;
    aspect-ratio: 380 / 320;
    object-fit: cover;
    display: block;
}

/* Booking modal WhatsApp help — dark green on charcoal was unreadable */
.booking-modal__help {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 1.25rem 0 0;
    padding: 4px 0 8px;
    color: #f4efe7;
    font-size: 14px;
    text-align: center;
}

.booking-modal__help-label {
    color: #f4efe7;
    font-weight: 600;
}

.booking-modal__help a.booking-modal__help-wa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 999px;
    background: #25d366;
    color: #062813;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-decoration: none;
}

.booking-modal__help a.booking-modal__help-wa:hover,
.booking-modal__help a.booking-modal__help-wa:focus-visible {
    background: #4ade80;
    color: #04210f;
}
.meat-showcase .productNB__item {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 440px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 24px;
    overflow: hidden;
    background: #241a12;
    cursor: default;
}
.meat-showcase .productNB__item_icon { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.meat-showcase .productNB__item_media,
.meat-showcase .productNB__item_icon picture { display: block; width: 100%; height: 100%; }
.meat-showcase .productNB__item_icon img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.meat-showcase .productNB__info {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 110px 24px 24px;
    margin: 0;
    text-align: left;
    background: linear-gradient(transparent, rgba(15,10,6,.82) 50%, rgba(15,10,6,.98));
}
.meat-showcase .productNB__info h3 { display: block; margin: 0 0 8px; font-size: 30px; line-height: 1.12; color: #fff; white-space: normal; }
.meat-showcase .productNB__info h3 span { color: inherit; }
.meat-showcase span.productNB__info_desc { display: block; font-size: 16px; line-height: 1.55; color: #ddd5ce; text-align: left; }
.meat-showcase .productNB__item:hover .productNB__info,
.meat-showcase .productNB__item:hover .productNB__item_icon { transform: none; }
.meat-showcase .productNB__price:empty { display: none; }
.meat-showcase .productNB__price { margin: 10px 0 0; }
@media (max-width: 599px) {
    .meat-showcase .productNB__item { min-height: 430px; border-radius: 20px; }
    .meat-showcase .productNB__info { padding: 100px 20px 22px; }
}
