/* ============================================================
   HOTEL RIVEL — GROUP LODGING (ESTATE ZONE) PAGE STYLESHEET
   Scope: .rivel-group-lodging-template (body also carries
   .rivel-site for shared header/footer/modal styles defined in
   global.css). Reuses design tokens and section patterns already
   established across the site (full hero, eyebrow, section-header-
   split, faq accordion, proposal CTA, the Capacity & Floor Plans
   page's table styling, and the zone-amenities / zone-nearby /
   hero-breadcrumb components introduced on the Waterfall Terrace
   zone page), plus one new component specific to this page: a
   static Room Types grid (the six room types also shown as a
   carousel in the main estate page's "Stay Together" section,
   presented here fully visible instead of scrolling).

   File is organized to follow the order sections appear on the
   page:
     00. Reset & base
     01. Utility classes
     02. Shared section scaffolding
     03. Hero
     04. About This Space
     05. Room Types
     06. Amenities
     07. Capacity & Layouts
     08. Nearby On The Estate
     09. FAQ
     10. Group Proposal CTA
   ============================================================ */


/* ============================================================
   00 — RESET & BASE
   ============================================================ */
.rivel-group-lodging-template *,
.rivel-group-lodging-template *::before,
.rivel-group-lodging-template *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
.rivel-group-lodging-template a { text-decoration: none; color: inherit; }
.rivel-group-lodging-template ul { list-style: none; }
.rivel-group-lodging-template button { border: none; background: none; cursor: pointer; font-family: inherit; }
.rivel-group-lodging-template img { display: block; max-width: 100%; }


/* ============================================================
   01 — UTILITY CLASSES
   Small reusable helpers shared across multiple sections below.
   ============================================================ */
.rivel-group-lodging-template .editorial-italic {
    font-family: var(--font-editorial);
    font-style: italic;
    font-weight: 500;
}
.rivel-group-lodging-template .eyebrow-light-bg {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-primary);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 1rem;
    color: var(--clr-terracotta);
}
.rivel-group-lodging-template .eyebrow-dark-bg {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-primary);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 1rem;
    color: var(--clr-warm-ivory);
}
.rivel-group-lodging-template .section-index {
    color: var(--clr-terracotta);
    font-weight: 800;
    margin-right: 0.35em;
}
.rivel-group-lodging-template .eyebrow-dark-bg .section-index { color: var(--clr-soft-sage); }


/* ============================================================
   02 — SHARED SECTION SCAFFOLDING
   Every content section below (About, Room Types, Amenities,
   Capacity, Nearby, FAQ) is full-width with its own background,
   and centers its content through this single .container rule —
   this is the pattern every section must follow for widths to
   stay consistent across the page.
   ============================================================ */
.rivel-group-lodging-template section { padding: 5rem 1.5rem; }
.rivel-group-lodging-template .container { max-width: 1280px; margin: 0 auto; }
.rivel-group-lodging-template .section-header-split {
    display: flex; flex-direction: column; gap: 1.5rem;
    margin-bottom: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(32,36,31,0.1);
}
.rivel-group-lodging-template .section-heading { font-family: var(--font-primary); font-size: clamp(1.75rem, 3.2vw, 2.75rem); font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; color: var(--clr-text-primary); }
.rivel-group-lodging-template .section-desc { font-family: var(--font-primary); font-size: 1rem; line-height: 1.7; color: var(--clr-text-secondary); max-width: 480px; }
@media (min-width: 1024px) {
    .rivel-group-lodging-template section { padding: 7rem 2rem; }
    .rivel-group-lodging-template .section-header-split { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 3rem; }
}
.rivel-group-lodging-template .pill-btn {
    display: inline-flex; align-items: center; gap: 0.75rem;
    font-family: var(--font-primary); font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em; border-radius: 50px;
    padding: 0.375rem 0.375rem 0.375rem 1.5rem; text-decoration: none;
    background-color: var(--clr-primary-green); color: var(--clr-warm-ivory);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.rivel-group-lodging-template .pill-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,0.15); }
.rivel-group-lodging-template .pill-btn .btn-circle {
    width: 32px; height: 32px; border-radius: 50%; background-color: rgba(245,242,233,0.15);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    transition: transform var(--transition-fast);
}
.rivel-group-lodging-template .pill-btn:hover .btn-circle { transform: translateX(3px); }
.rivel-group-lodging-template .pill-btn-inverse { background-color: var(--clr-warm-ivory); color: var(--clr-primary-green); }
.rivel-group-lodging-template .pill-btn-inverse .btn-circle { background-color: rgba(24,58,43,0.1); }


/* ============================================================
   03 — HERO
   Full immersive hero + breadcrumb, copied 1:1 from the homepage
   hero (structure + classes) — only the content/copy differs.
   ============================================================ */
.rivel-group-lodging-template .hero-section {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    margin-top: 0 !important;
    display: flex;
    align-items: flex-end;
    padding: 8rem 2rem 4rem;
    overflow: hidden;
    color: var(--clr-warm-ivory);
    isolation: isolate;
}
.rivel-group-lodging-template .hero-bg-img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: -2;
}
.rivel-group-lodging-template .hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(210deg, rgba(16,42,32,0.10) 0%, rgba(16,42,32,0.75) 60%, rgba(10,26,20,0.95) 100%);
    z-index: -1;
}
.rivel-group-lodging-template .hero-container {
    width: 100%; max-width: 1280px; margin: 0 auto;
    display: flex; flex-direction: column; justify-content: space-between; gap: 4rem;
}
.rivel-group-lodging-template .hero-content-left { display: flex; flex-direction: column; max-width: 750px; padding-top: 0; }

/* Breadcrumb sits above the eyebrow on the full immersive hero
   (used on estate-zone pages, unlike the compact utility hero
   used on Plan Your Group pages) */
.rivel-group-lodging-template .hero-breadcrumb {
    display: flex; align-items: center; gap: 0.5rem;
    font-family: var(--font-primary); font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: rgba(245,242,233,0.65); margin-bottom: 1rem;
}
.rivel-group-lodging-template .hero-breadcrumb a { color: rgba(245,242,233,0.85); transition: color var(--transition-fast); }
.rivel-group-lodging-template .hero-breadcrumb a:hover { color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .hero-breadcrumb span:last-child { color: var(--clr-warm-ivory); }

.rivel-group-lodging-template .hero-eyebrow {
    font-family: var(--font-primary); font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.15em;
    margin-top: 1rem; margin-bottom: 1rem; color: var(--clr-warm-ivory);
}
.rivel-group-lodging-template .hero-title {
    font-family: var(--font-primary); font-size: clamp(1.8rem, 4vw, 3.5rem);
    font-weight: 700; text-transform: uppercase; line-height: 0.98;
    letter-spacing: -0.035em; margin-bottom: 1.25rem;
}
.rivel-group-lodging-template .text-ivory { color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .text-terracotta { color: var(--clr-terracotta); }
.rivel-group-lodging-template .hero-description {
    font-family: var(--font-primary); font-size: clamp(0.9rem, 1.2vw, 1rem);
    line-height: 1.6; color: rgba(245,242,233,0.85); max-width: 500px;
    margin-top: 0; margin-bottom: 2.25rem;
}
.rivel-group-lodging-template .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.rivel-group-lodging-template .hero-btn-primary,
.rivel-group-lodging-template .hero-btn-secondary {
    font-family: var(--font-primary); font-size: 0.8125rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em; border-radius: 50px;
    display: inline-flex; align-items: center; gap: 1rem; text-decoration: none;
}
.rivel-group-lodging-template .hero-btn-primary {
    background-color: var(--clr-warm-ivory); color: var(--clr-primary-green);
    padding: 0.375rem 0.375rem 0.375rem 1.5rem;
}
.rivel-group-lodging-template .hero-btn-primary:hover { background-color: #ffffff; }
.rivel-group-lodging-template .btn-icon-wrapper {
    background-color: rgba(24,58,43,0.1); border: 1px solid rgba(24,58,43,0.15);
    width: 36px; height: 36px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    transition: transform var(--transition-fast);
}
.rivel-group-lodging-template .hero-btn-primary:hover .btn-icon-wrapper { transform: translateX(4px); }
.rivel-group-lodging-template .hero-btn-secondary {
    background-color: transparent; color: var(--clr-warm-ivory);
    border: 1px solid rgba(245,242,233,0.4); padding: 0.375rem 1.5rem 0.375rem 0.375rem;
}
.rivel-group-lodging-template .hero-btn-secondary:hover { background-color: rgba(245,242,233,0.1); border-color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .btn-icon-wrapper-outline {
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(245,242,233,0.5);
    display: flex; align-items: center; justify-content: center;
}
.rivel-group-lodging-template .hero-features-right { display: flex; flex-direction: row; align-items: center; gap: 1.5rem; }
.rivel-group-lodging-template .hero-feature-item { display: flex; align-items: center; gap: 1rem; }
.rivel-group-lodging-template .feature-icon {
    width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(245,242,233,0.3);
    display: flex; align-items: center; justify-content: center; color: var(--clr-warm-ivory); flex-shrink: 0;
}
.rivel-group-lodging-template .feature-icon svg { width: 16px; height: 16px; }
.rivel-group-lodging-template .feature-text {
    font-family: var(--font-primary); font-size: 0.6875rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.4; color: var(--clr-warm-ivory);
}
@media (min-width: 768px) { .rivel-group-lodging-template .hero-features-right { flex-direction: row; gap: 2.5rem; } }
@media (min-width: 1024px) {
    .rivel-group-lodging-template .hero-section { padding: 8rem 2rem 4rem; }
    .rivel-group-lodging-template .hero-container { max-width: 1280px; flex-direction: row; align-items: flex-end; }
    .rivel-group-lodging-template .hero-content-left { max-width: 700px; }
    .rivel-group-lodging-template .hero-features-right { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding-bottom: 1rem; }
}
@media (min-width: 1440px) {
    .rivel-group-lodging-template .hero-section { padding: 10rem 4rem 5rem; }
    .rivel-group-lodging-template .hero-container { max-width: 1280px; }
}
@media (max-width: 767px) {
    .rivel-group-lodging-template .hero-section { min-height: 100svh; padding: 7rem 1.5rem 3rem; align-items: flex-end; }
    .rivel-group-lodging-template .hero-container { gap: 2.5rem; }
    .rivel-group-lodging-template .hero-content-left { max-width: 100%; }
    .rivel-group-lodging-template .hero-title { font-size: clamp(1.7rem, 8vw, 2.5rem); margin-top: 2rem; margin-bottom: 1rem; }
    .rivel-group-lodging-template .hero-description { font-size: 0.9rem; max-width: 100%; margin-bottom: 1.75rem; }
    .rivel-group-lodging-template .hero-actions { gap: 0.75rem; }
    .rivel-group-lodging-template .hero-features-right { width: 100%; gap: 1rem; flex-wrap: wrap; }
}
@media (max-width: 480px) {
    .rivel-group-lodging-template .hero-section { padding-left: 1.25rem; padding-right: 1.25rem; }
    .rivel-group-lodging-template .hero-title { font-size: 1.65rem; margin-top: 1.75rem; }
    .rivel-group-lodging-template .hero-description { font-size: 0.875rem; }
    .rivel-group-lodging-template .hero-btn-primary, .rivel-group-lodging-template .hero-btn-secondary { font-size: 0.7rem; }
}


/* ============================================================
   04 — ABOUT THIS SPACE
   Two-column intro (copy + stats on the left, image on the right).

   FIX: this section previously used leftover "arrival-*" class
   names and set `width:100%; max-width:1280px` directly on the
   <section> itself with no `margin:0 auto` and no inner .container
   — every other section instead stays full-width (for its
   background) and centers its content via the shared .container
   rule above. That mismatch is what made this section's width
   behave differently from the rest of the page. It's now wired
   into the same section + .container pattern as everything else,
   so its content column lines up exactly with Room Types,
   Amenities, etc.
   ============================================================ */
.rivel-group-lodging-template .about-section { background-color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .about-container { display: flex; flex-direction: column; gap: 2.5rem; }
.rivel-group-lodging-template .about-headline { font-family: var(--font-primary); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; margin-bottom: 1rem; }
.rivel-group-lodging-template .about-desc { font-size: 1rem; line-height: 1.7; color: var(--clr-text-secondary); max-width: 460px; margin-bottom: 1.75rem; }
.rivel-group-lodging-template .about-divider { border: none; border-top: 1px solid rgba(32,36,31,0.12); margin: 1.75rem 0; }
.rivel-group-lodging-template .about-stats { display: flex; flex-wrap: wrap; gap: 2rem; }
.rivel-group-lodging-template .about-stat { display: flex; flex-direction: column; gap: 0.35rem; }
.rivel-group-lodging-template .about-stat-value { font-family: var(--font-primary); font-size: 1.5rem; font-weight: 600; color: var(--clr-primary-green); }
.rivel-group-lodging-template .about-stat-label { font-family: var(--font-primary); font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--clr-text-muted); }
.rivel-group-lodging-template .about-fine-print { font-size: 0.8125rem; color: var(--clr-text-muted); line-height: 1.6; }
.rivel-group-lodging-template .about-image-wrap { border-radius: 18px; overflow: hidden; }
.rivel-group-lodging-template .about-image { width: 100%; display: block; }
@media (min-width: 1024px) {
    .rivel-group-lodging-template .about-container { flex-direction: row; align-items: center; gap: 4rem; }
    .rivel-group-lodging-template .about-left, .rivel-group-lodging-template .about-right { flex: 1; }
}


/* ============================================================
   05 — ROOM TYPES
   Static grid version of the "Stay Together" carousel slide —
   same room-card visual language, no carousel.
   ============================================================ */
.rivel-group-lodging-template .room-types-section { background-color: var(--clr-soft-cream); }
.rivel-group-lodging-template .room-types-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.rivel-group-lodging-template .room-type-card {
    background-color: #ffffff; border-radius: 16px; overflow: hidden;
    border: 1px solid rgba(32,36,31,0.08); box-shadow: 0 8px 24px rgba(16,42,32,0.05);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.rivel-group-lodging-template .room-type-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(16,42,32,0.1); }
.rivel-group-lodging-template .room-type-thumb { aspect-ratio: 4 / 3; overflow: hidden; }
.rivel-group-lodging-template .room-type-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.rivel-group-lodging-template .room-type-card:hover .room-type-thumb img { transform: scale(1.06); }
.rivel-group-lodging-template .room-type-body { padding: 1.5rem; }
.rivel-group-lodging-template .room-type-title { font-family: var(--font-editorial); font-size: 1.375rem; font-weight: 500; color: var(--clr-text-primary); margin-bottom: 0.5rem; }
.rivel-group-lodging-template .room-type-meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem;
    font-size: 0.875rem; color: var(--clr-text-secondary); margin-bottom: 1.1rem;
}
.rivel-group-lodging-template .room-type-sep { opacity: 0.5; }
.rivel-group-lodging-template .room-type-cta {
    display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem;
    font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--clr-text-primary);
    text-decoration: none; padding-bottom: 2px; border-bottom: 1px solid currentColor;
    transition: opacity var(--transition-fast), gap var(--transition-fast);
}
.rivel-group-lodging-template .room-type-cta svg { width: 14px; height: 14px; transition: transform var(--transition-fast); }
.rivel-group-lodging-template .room-type-cta:hover { opacity: 0.65; gap: 0.6rem; }
.rivel-group-lodging-template .room-type-cta:hover svg { transform: translateX(2px); }
@media (min-width: 640px) {
    .rivel-group-lodging-template .room-types-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .rivel-group-lodging-template .room-types-grid { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
}


/* ============================================================
   06 — AMENITIES
   ============================================================ */
.rivel-group-lodging-template .zone-amenities-section { background-color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .zone-amenities-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.rivel-group-lodging-template .zone-amenity-card { display: flex; flex-direction: column; align-items: flex-start; }
.rivel-group-lodging-template .zone-amenity-icon {
    width: 48px; height: 48px; border-radius: 12px; background-color: rgba(16,42,32,0.06);
    color: var(--clr-primary-green); display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem;
}
.rivel-group-lodging-template .zone-amenity-title { font-family: var(--font-primary); font-size: 1.0625rem; font-weight: 600; color: var(--clr-text-primary); margin-bottom: 0.5rem; }
.rivel-group-lodging-template .zone-amenity-text { font-size: 0.9375rem; line-height: 1.6; color: var(--clr-text-secondary); }
@media (min-width: 640px) {
    .rivel-group-lodging-template .zone-amenities-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .rivel-group-lodging-template .zone-amenities-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
}


/* ============================================================
   07 — CAPACITY & LAYOUTS
   Single-space table, same visual language as the Capacity &
   Floor Plans page's matrix table.
   ============================================================ */
.rivel-group-lodging-template .zone-capacity-section { background-color: var(--clr-soft-cream); }
.rivel-group-lodging-template .capacity-table-wrap {
    width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
    border-radius: 16px; border: 1px solid rgba(32,36,31,0.1);
    box-shadow: 0 8px 24px rgba(16,42,32,0.05);
}
.rivel-group-lodging-template .capacity-table {
    width: 100%; min-width: 480px; border-collapse: collapse;
    font-family: var(--font-primary); background-color: #ffffff;
}
.rivel-group-lodging-template .capacity-table thead th {
    text-align: left; padding: 1rem 1.25rem; font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em; color: var(--clr-warm-ivory);
    background-color: var(--clr-primary-green); white-space: nowrap;
}
.rivel-group-lodging-template .capacity-table thead th:first-child { border-top-left-radius: 16px; }
.rivel-group-lodging-template .capacity-table thead th:last-child { border-top-right-radius: 16px; }
.rivel-group-lodging-template .capacity-table tbody th,
.rivel-group-lodging-template .capacity-table tbody td {
    padding: 1rem 1.25rem; font-size: 0.9375rem; border-top: 1px solid rgba(32,36,31,0.08);
}
.rivel-group-lodging-template .capacity-table tbody th { text-align: left; font-weight: 600; color: var(--clr-text-primary); white-space: nowrap; }
.rivel-group-lodging-template .capacity-table tbody td { color: var(--clr-text-secondary); }
.rivel-group-lodging-template .capacity-table tbody tr:nth-child(even) { background-color: var(--clr-soft-cream); }
.rivel-group-lodging-template .capacity-table-note { margin-top: 1.5rem; font-size: 0.875rem; color: var(--clr-text-muted); }


/* ============================================================
   08 — NEARBY ON THE ESTATE
   ============================================================ */
.rivel-group-lodging-template .zone-nearby-section { background-color: var(--clr-warm-ivory); }
.rivel-group-lodging-template .zone-nearby-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.rivel-group-lodging-template .zone-nearby-card {
    display: block; border-radius: 16px; overflow: hidden; background-color: #ffffff;
    border: 1px solid rgba(32,36,31,0.08); box-shadow: 0 8px 24px rgba(16,42,32,0.05);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.rivel-group-lodging-template .zone-nearby-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(16,42,32,0.1); }
.rivel-group-lodging-template .zone-nearby-thumb { aspect-ratio: 16 / 10; overflow: hidden; }
.rivel-group-lodging-template .zone-nearby-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.rivel-group-lodging-template .zone-nearby-card:hover .zone-nearby-thumb img { transform: scale(1.06); }
.rivel-group-lodging-template .zone-nearby-body { padding: 1.25rem 1.5rem; }
.rivel-group-lodging-template .zone-nearby-title { font-family: var(--font-primary); font-size: 1.0625rem; font-weight: 600; color: var(--clr-text-primary); margin-bottom: 0.3rem; }
.rivel-group-lodging-template .zone-nearby-text { font-family: var(--font-editorial); font-style: italic; font-size: 0.9375rem; color: var(--clr-terracotta); }
@media (min-width: 768px) {
    .rivel-group-lodging-template .zone-nearby-grid { grid-template-columns: repeat(3, 1fr); }
}


/* ============================================================
   09 — FAQ
   ============================================================ */
.rivel-group-lodging-template .faq-section { background-color: var(--clr-soft-cream); }
.rivel-group-lodging-template .faq-list { display: flex; flex-direction: column; gap: 0.75rem; max-width: 100%; }
.rivel-group-lodging-template .faq-item { background-color: #ffffff; border-radius: 14px; overflow: hidden; border: 1px solid rgba(32,36,31,0.08); }
.rivel-group-lodging-template .faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; text-align: left; font-family: var(--font-primary); font-size: 1rem; font-weight: 600; color: var(--clr-text-primary); }
.rivel-group-lodging-template .faq-plus { font-size: 1.25rem; color: var(--clr-terracotta); transition: transform var(--transition-fast); flex-shrink: 0; }
.rivel-group-lodging-template .faq-item.active .faq-plus { transform: rotate(45deg); }
.rivel-group-lodging-template .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.rivel-group-lodging-template .faq-item.active .faq-answer { max-height: 260px; }
.rivel-group-lodging-template .faq-answer-inner { padding: 0 1.5rem 1.25rem; font-size: 0.9375rem; line-height: 1.65; color: var(--clr-text-secondary); }


/* ============================================================
   10 — GROUP PROPOSAL CTA
   Matches the sitewide proposal component.
   ============================================================ */
.rivel-group-lodging-template .rivel-proposal-section { background-color: var(--clr-soft-cream); padding: 5rem 1.5rem; }
.rivel-group-lodging-template .rivel-proposal-container { max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 2.5rem; }
.rivel-group-lodging-template .proposal-title { font-family: var(--font-primary); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.15; }
.rivel-group-lodging-template .proposal-italic { display: block; font-family: var(--font-editorial); font-style: italic; color: var(--clr-terracotta); }
.rivel-group-lodging-template .proposal-subtext { font-size: 1rem; line-height: 1.7; color: var(--clr-text-secondary); max-width: 420px; margin-top: 1.25rem; }
.rivel-group-lodging-template .proposal-form-box { background-color: #ffffff; border-radius: 18px; padding: 2rem; box-shadow: 0 16px 40px rgba(16,42,32,0.08); }
.rivel-group-lodging-template .form-box-header { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(32,36,31,0.1); }
.rivel-group-lodging-template .form-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; color: var(--clr-terracotta); text-transform: uppercase; }
.rivel-group-lodging-template .form-title { font-family: var(--font-primary); font-size: 1.375rem; font-weight: 600; }
.rivel-group-lodging-template .form-header-meta { display: flex; gap: 1rem; font-size: 0.75rem; color: var(--clr-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
@media (min-width: 1024px) {
    .rivel-group-lodging-template .rivel-proposal-container { flex-direction: row; gap: 4rem; }
    .rivel-group-lodging-template .rivel-proposal-left, .rivel-group-lodging-template .rivel-proposal-right { flex: 1; }
    .rivel-group-lodging-template .form-box-header { flex-direction: row; justify-content: space-between; align-items: flex-start; }
}
