/* ================================================================
   Classic Template — Warm Traditional Hotel Aesthetic
   Loaded ONLY when site.template == "classic".
   Design language: warm earth tones, serif headings, editorial
   rhythm, bordered cards, ornamental accents, gentle motion.
   ================================================================ */

/* ================================= */
/* 1. TYPOGRAPHY & VISUAL CHARACTER  */
/* ================================= */

/* Warm, relaxed serif headings — editorial, traditional feel */
.pub-section h2 {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    letter-spacing: 0.01em;
    font-weight: 700;
    line-height: 1.25;
}
.pub-section h3 {
    letter-spacing: 0;
    font-weight: 600;
}

/* Eyebrow section tags — warm amber instead of cold primary */
.pub-section-tag {
    color: var(--accent, #b8860b);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
}

/* Classic heading ornament — small centered diamond below h2.
   Replaces Modern's 44px accent line with a traditional ornament. */
.pub-section:not(.pub-section-hero):not(.pub-section-cta_banner) h2::after {
    content: '\25C6';
    display: block;
    font-size: 8px;
    color: var(--accent, #b8860b);
    margin-top: 14px;
    letter-spacing: 0.3em;
    opacity: 0.5;
}
/* On dark/accent sections — lighter ornament */
.pub-section-dark h2::after,
.pub-section-accent h2::after {
    content: '\25C6';
    display: block;
    font-size: 8px;
    color: rgba(255, 255, 255, 0.35);
    margin-top: 14px;
    letter-spacing: 0.3em;
    opacity: 1;
}

/* ================================= */
/* 1b. SECTION SPACING & RHYTHM     */
/* ================================= */

/* Even, generous padding — no Modern-style rhythm variation */
.pub-section-about_snippet,
.pub-section-feature_cards,
.pub-section-testimonials,
.pub-section-rooms_preview,
.pub-section-rooms_list,
.pub-section-amenities,
.pub-section-stats,
.pub-section-faq,
.pub-section-checkin_lookup {
    padding: 5rem 0;
}

@media (max-width: 768px) {
    .pub-section-about_snippet,
    .pub-section-feature_cards,
    .pub-section-testimonials,
    .pub-section-rooms_preview,
    .pub-section-rooms_list,
    .pub-section-amenities,
    .pub-section-stats,
    .pub-section-faq,
    .pub-section-checkin_lookup { padding: 3rem 0; }
    .pub-section-hero { padding: 0; }
}

/* ================================= */
/* 1c. ORNAMENTAL SECTION DIVIDERS   */
/* ================================= */

/* Thin ornamental line between sections (replaces Modern's SVG waves).
   CSS-only: no JS injection needed. */
.classic-js .pub-section:not(.pub-section-hero):not(.pub-section-cta_banner):not(:last-child) {
    border-bottom: none;
    position: relative;
}
.classic-js .pub-section:not(.pub-section-hero):not(.pub-section-cta_banner):not(:last-child)::after {
    content: '\2014\00a0\00a0\25C6\00a0\00a0\2014';
    display: block;
    text-align: center;
    color: var(--accent, #b8860b);
    font-size: 12px;
    letter-spacing: 0.15em;
    opacity: 0.35;
    padding: 20px 0 0;
    margin: 0 auto;
}
/* Hide divider on dark/accent backgrounds where it won't read well */
.classic-js .pub-section-dark::after,
.classic-js .pub-section-accent::after {
    color: rgba(255, 255, 255, 0.25);
}

/* ================================= */
/* 2. WARM BACKGROUNDS               */
/* ================================= */

/* Warm cream for alternating sections (replaces cool blue-grey) */
.pub-section-rooms_preview,
.pub-section-rooms_list,
.pub-section-amenities {
    background: #faf8f4;
}

/* Alt-background override for Classic */
.pub-section-alt:not(.pub-section-cta_banner):not(.pub-section-book_now) {
    background: #faf8f4 !important;
}

/* ================================= */
/* 3. NAV — WARM, TRADITIONAL        */
/* ================================= */

/* Warm white nav with subtle bottom border — no dark glass */
.pub-header.nav-solid {
    background: #fdfcfa;
    border-bottom: 1px solid #e8e3da;
    box-shadow: none;
}
.pub-header.nav-solid .pub-logo {
    color: #2c2420;
}

/* Desktop nav links — warm, underline on hover */
@media (min-width: 769px) {
    .pub-header.nav-solid .pub-nav a {
        color: #5c534a;
        font-size: 15px;
        font-weight: 500;
        padding: 4px 0;
        border-bottom: 2px solid transparent;
        transition: color 0.25s ease, border-color 0.25s ease;
    }
    .pub-header.nav-solid .pub-nav a:hover {
        color: #2c2420;
        opacity: 1;
        border-bottom-color: var(--accent, #b8860b);
    }
    .pub-header.nav-solid .pub-nav a.active {
        color: #2c2420;
        opacity: 1;
        border-bottom-color: var(--accent, #b8860b);
    }
}
/* Mobile nav */
@media (max-width: 768px) {
    .pub-header.nav-solid .pub-nav a {
        color: #5c534a;
    }
    .pub-header.nav-solid .pub-nav a:hover,
    .pub-header.nav-solid .pub-nav a.active {
        color: #2c2420;
        opacity: 1;
    }
    .pub-header.nav-solid .pub-nav {
        background: #fdfcfa;
        border-bottom: 1px solid #e8e3da;
    }
}
.pub-header.nav-solid .pub-nav-toggle { color: #5c534a; }
.pub-header.nav-solid .pub-nav-admin-btn {
    background: rgba(44, 36, 32, 0.05);
    color: #5c534a;
    border-color: #e8e3da;
}
.pub-header.nav-solid .pub-nav-admin-btn:hover {
    background: rgba(44, 36, 32, 0.10);
    color: #2c2420;
}

/* Scrolled state for transparent nav — warm cream, no glass blur */
.nav-transparent.scrolled {
    background: rgba(253, 252, 250, 0.97);
    border-bottom: 1px solid #e8e3da;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 2px 12px rgba(44, 36, 32, 0.06);
}
.nav-transparent.scrolled .pub-logo { color: #2c2420; }
.nav-transparent.scrolled .pub-nav a { color: #5c534a; }
.nav-transparent.scrolled .pub-nav a:hover,
.nav-transparent.scrolled .pub-nav a.active { color: #2c2420; opacity: 1; }
.nav-transparent.scrolled .pub-nav-toggle { color: #5c534a; }
.nav-transparent.scrolled .pub-nav-admin-btn {
    background: rgba(44, 36, 32, 0.05);
    color: #5c534a;
    border-color: #e8e3da;
}
.nav-transparent.scrolled .pub-nav-admin-btn:hover {
    background: rgba(44, 36, 32, 0.10);
    color: #2c2420;
    opacity: 1;
}

/* ================================= */
/* 4. HERO — CENTERED, WARM OVERLAY  */
/* ================================= */

/* Hero sits flush below nav */
.pub-section-hero {
    margin-top: -1px;
    padding: 0;
    margin-bottom: 0;
}
.tpl-classic main {
    margin-top: 0;
    padding-top: 0;
}

/* Warm radial vignette — dark edges, center reveals image.
   Completely different from Modern's directional left-heavy gradient. */
.pub-hero-overlay {
    background: radial-gradient(
        ellipse at 50% 45%,
        rgba(30, 22, 16, 0.35) 0%,
        rgba(30, 22, 16, 0.55) 40%,
        rgba(30, 22, 16, 0.78) 75%,
        rgba(20, 14, 8, 0.88) 100%
    );
}

/* Classic hero headline — serif-feeling, relaxed tracking */
.pub-hero-content h1 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.15;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
}

/* Warmer, wider subtitle */
.pub-hero-content p {
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.8);
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
}

/* CTA — rounded, not pill. Warm white with subtle shadow */
.pub-section-hero .pub-btn {
    border-radius: 6px;
    padding: 14px 44px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.03em;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pub-section-hero .pub-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
    opacity: 1;
}

/* Hero badge — subtle, warm */
.pub-section-hero .pub-hero-badge {
    padding: 7px 18px;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    margin-bottom: 20px;
}

/* Hero gradient fallback */
.pub-section-hero .pub-hero:not([style*="background-image"]) {
    background: linear-gradient(135deg, #2c2420 0%, #4a3c32 50%, #2c2420 100%);
}

/* ================================= */
/* 5. BOOK NOW WIDGET — WARM CREAM   */
/* ================================= */

/* Warm cream instead of dark navy — completely different from Modern */
.pub-section.pub-section-book_now {
    padding: 2.5rem 0;
    background: #f5f1e8 !important;
}

.pub-book-now {
    background: transparent;
}
.pub-book-now-inner {
    background: #ffffff;
    border: 1px solid #e2ddd5;
    border-radius: 12px;
    padding: 32px 36px;
    max-width: 960px;
    margin: 0 auto;
    box-shadow: 0 2px 12px rgba(44, 36, 32, 0.06);
}
.pub-book-now-header { margin-bottom: 20px; }
.pub-book-now-header h2 {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 4px;
    color: #2c2420;
}
.pub-section-book_now h2 { font-size: 22px; color: #2c2420; }
.pub-book-now-header h2::after { display: none !important; }
.pub-book-now-header p {
    color: #8a7e72;
    font-size: 14px;
    margin: 0;
}
.pub-book-now-form { width: 100%; }
.pub-book-now-fields {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
}
.pub-book-now-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 130px;
}
.pub-book-now-field label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8a7e72;
    white-space: nowrap;
}
.pub-book-now .pub-input {
    border-radius: 6px;
    border: 1.5px solid #d6d0c7;
    padding: 11px 14px;
    font-size: 14px;
    background: #fdfcfa;
    color: #2c2420;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.pub-book-now .pub-input:focus {
    background: #fff;
    border-color: var(--accent, #b8860b);
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.12);
}
.pub-book-now-btn {
    flex-shrink: 0;
    white-space: nowrap;
    align-self: flex-end;
    border-radius: 6px;
    padding: 12px 32px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 8px rgba(44, 36, 32, 0.12);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pub-book-now-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(44, 36, 32, 0.18);
    opacity: 1;
}
@media (max-width: 680px) {
    .pub-section-book_now { padding: 1.5rem 0; }
    .pub-book-now-inner { padding: 24px 20px; border-radius: 10px; }
    .pub-book-now-header h2, .pub-section-book_now h2 { font-size: 18px; }
    .pub-book-now-fields { flex-direction: column; }
    .pub-book-now-field, .pub-book-now-btn { width: 100%; }
}

/* ================================= */
/* 6. ABOUT SECTION — WARM           */
/* ================================= */

.pub-about {
    gap: 3.5rem;
}
.pub-about-text h2 {
    font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    font-weight: 700;
    letter-spacing: 0;
}
/* Pull-quote first line — warm tone */
.pub-about-body {
    font-size: 16px;
    line-height: 1.85;
    color: #5c534a;
}
.pub-about-body::first-line {
    font-size: 1.1em;
    font-weight: 600;
    color: #2c2420;
}
.pub-about-text p {
    font-size: 16px;
    line-height: 1.85;
    color: #5c534a;
}
/* Warm fallback gradient */
.pub-about-image {
    background: linear-gradient(135deg, #ede8df 0%, #d6cfc2 100%);
    border-radius: 8px;
}
.pub-about-image img {
    max-height: 480px;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(44, 36, 32, 0.12);
}
.pub-about-image:hover img {
    transform: scale(1.015) translateY(-3px);
    box-shadow: 0 16px 48px rgba(44, 36, 32, 0.16);
}
/* Decorative corner — warm amber */
.pub-about-image::after {
    border-radius: 8px;
    border-width: 2px;
    border-color: var(--accent, #b8860b);
    opacity: 0.18;
    top: 18px;
    right: -14px;
    bottom: -14px;
    left: 18px;
}
.pub-about-image:hover::after { opacity: 0.3; }

/* ================================= */
/* 7. FEATURE CARDS — WARM BORDERED  */
/* ================================= */

/* Cards on white bg — bordered, warm cream, no dramatic shadows */
.pub-card {
    background: #fdfcfa;
    border: 1px solid #e8e3da;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(44, 36, 32, 0.04);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pub-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(44, 36, 32, 0.08);
}
.pub-card-title {
    font-weight: 700;
    color: #2c2420;
}
.pub-card-text {
    color: #5c534a;
    line-height: 1.75;
}

/* Cards on dark background — semi-transparent warm tones, not glass */
.pub-section-dark .pub-card {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 32px 24px 28px;
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
.pub-section-dark .pub-card:hover {
    background: rgba(255, 255, 255, 0.11);
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}
.pub-section-dark .pub-card-title {
    color: #f5f1e8;
    font-size: 1.15rem;
    font-weight: 700;
}
.pub-section-dark .pub-card-text {
    color: #c8bfb2;
    line-height: 1.75;
}
.pub-section-dark .pub-section-header {
    text-align: center;
}
.pub-section-dark .pub-section-subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* Feature cards section header — centered */
.pub-section-feature_cards .pub-section-header {
    text-align: center;
    margin-bottom: 2.5rem;
}
.pub-section-feature_cards .pub-section-subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* ================================= */
/* 7b. AMENITIES GRID — WARM         */
/* ================================= */

.pub-amenity-item {
    padding: 20px 12px 18px;
    border-radius: 10px;
    border: 1px solid #e8e3da;
    background: #fdfcfa;
    box-shadow: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.2s;
}
.pub-amenity-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(44, 36, 32, 0.07);
    background: #fff;
}
/* Warm amber icon box */
.pub-amenity-icon {
    width: 48px;
    height: 48px;
    background: rgba(184, 134, 11, 0.08);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent, #b8860b);
    transition: background 0.2s;
}
.pub-amenity-icon svg {
    width: 22px;
    height: 22px;
}
.pub-amenity-item:hover .pub-amenity-icon {
    background: rgba(184, 134, 11, 0.14);
}
.pub-amenity-item span {
    font-size: 12.5px;
    font-weight: 600;
    color: #4a3c32;
    letter-spacing: 0.01em;
    line-height: 1.4;
}

/* ================================= */
/* 8. ROOM CARDS — BORDERED, WARM    */
/* ================================= */

.pub-room-card {
    border-radius: 8px;
    box-shadow: none;
    border: 1px solid #e2ddd5;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.pub-room-card:hover {
    box-shadow: 0 6px 20px rgba(44, 36, 32, 0.08);
    transform: translateY(-3px);
}
/* Warm placeholder gradient */
.pub-room-image {
    background: linear-gradient(135deg, #ede8df 0%, #d6cfc2 100%);
    min-height: 220px;
}
.pub-room-image img {
    height: 220px;
    transition: transform 0.5s ease;
}
.pub-room-card:hover .pub-room-image img {
    transform: scale(1.03);
}
.pub-room-info { padding: 20px 20px 18px; }
.pub-room-info h3 {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 8px;
    color: #2c2420;
}
.pub-room-info p {
    font-size: 14px;
    color: #6b5e52;
    line-height: 1.65;
    margin-bottom: 14px;
}
.pub-room-meta { padding-top: 12px; }
.pub-room-price {
    font-size: 15px;
    font-weight: 700;
    color: #2c2420;
}
/* Flat warm badge — no gradient */
.pub-room-badge {
    background: var(--accent, #b8860b);
    border-radius: 6px;
    box-shadow: none;
    letter-spacing: 0.01em;
}
.pub-btn-room {
    border-radius: 6px;
    font-weight: 600;
    font-size: 13.5px;
    letter-spacing: 0.01em;
    padding: 10px 22px;
    margin-top: 14px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.2s;
}
.pub-btn-room:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(44, 36, 32, 0.12);
    opacity: 1;
}
.pub-view-all-rooms {
    border-radius: 6px;
    padding: 12px 36px;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: all 0.3s ease;
}
.pub-view-all-rooms:hover {
    background: var(--primary, #2563eb);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(44, 36, 32, 0.12);
}

/* ================================= */
/* 9. GALLERY — SHARP EDGES          */
/* ================================= */

.pub-gallery-item { border-radius: 6px; }
.pub-gallery-item img {
    height: 240px;
    border-radius: 6px;
    transition: transform 0.5s ease;
}
.pub-gallery-item:hover img { transform: scale(1.03); }

/* ================================= */
/* 10. TESTIMONIALS — LEFT BORDER    */
/* ================================= */

/* Classic blockquote style — no card, no float, warm accent border */
.pub-testimonial {
    background: transparent;
    border: none;
    border-left: 3px solid var(--accent, #b8860b);
    border-radius: 0;
    box-shadow: none;
    padding: 8px 0 8px 28px;
    transition: none;
}
.pub-testimonial:hover {
    box-shadow: none;
    transform: none;
}
.pub-testimonial-quote {
    color: var(--accent, #b8860b);
    font-size: 3.5rem;
    font-family: var(--font-heading);
    opacity: 0.25;
    top: -4px;
    left: 20px;
}
.pub-testimonial p {
    font-size: 15px;
    line-height: 1.85;
    font-style: italic;
    color: #5c534a;
}
.pub-testimonial-author {
    font-size: 14px;
    font-weight: 700;
    color: #2c2420;
    font-style: normal;
}
.pub-testimonial-avatar {
    width: 40px;
    height: 40px;
    font-size: 14px;
    font-weight: 700;
    box-shadow: none;
    background: var(--accent, #b8860b);
}
/* Stars — warm gold */
.pub-testimonial-stars svg {
    fill: var(--accent, #b8860b);
}

/* Testimonials on dark background */
.pub-section-dark .pub-testimonial {
    border-left-color: var(--accent, #b8860b);
    background: transparent;
}
.pub-section-dark .pub-testimonial:hover {
    background: transparent;
    box-shadow: none;
}
.pub-section-dark .pub-testimonial-quote {
    color: var(--accent, #b8860b);
    opacity: 0.3;
}
.pub-section-dark .pub-testimonial p {
    color: #d6cfc2;
    font-style: italic;
}
.pub-section-dark .pub-testimonial-author {
    color: #f5f1e8;
}
.pub-section-dark .pub-testimonial-avatar {
    background: var(--accent, #b8860b);
    box-shadow: none;
}
.pub-section-dark .pub-testimonial-stars svg {
    fill: var(--accent, #b8860b);
    filter: none;
}

/* ================================= */
/* 11. FAQ — WARM ACCORDION          */
/* ================================= */

.pub-faq {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}
.pub-faq-item {
    border-bottom: 1px solid #e2ddd5;
    padding: 0;
}
.pub-faq-item summary {
    font-size: clamp(0.95rem, 2vw, 1.05rem);
    font-weight: 600;
    letter-spacing: 0;
    padding: 20px 0;
    color: #2c2420;
}
.pub-faq-item summary::after {
    content: '';
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--accent, #b8860b);
    border-bottom: 2px solid var(--accent, #b8860b);
    transform: rotate(45deg);
    transition: transform 0.3s ease;
    flex-shrink: 0;
    font-size: 0;
}
.pub-faq-item[open] summary::after {
    transform: rotate(-135deg);
    content: '';
}
.pub-faq-item summary:hover {
    color: var(--accent, #b8860b);
}
.pub-faq-item .pub-faq-answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s ease, padding 0.25s ease;
    padding: 0;
}
.pub-faq-item[open] .pub-faq-answer {
    max-height: 500px;
    padding: 0 0 20px 0;
}
.pub-faq-item p {
    font-size: 14.5px;
    line-height: 1.8;
    color: #6b5e52;
    padding-right: 32px;
    margin: 0;
}
/* Dark FAQ */
.pub-section-dark .pub-faq-item {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
.pub-section-dark .pub-faq-item summary {
    color: #f5f1e8;
}
.pub-section-dark .pub-faq-item summary::after {
    border-color: var(--accent, #b8860b);
}
.pub-section-dark .pub-faq-item summary:hover {
    color: var(--accent, #b8860b);
}
.pub-section-dark .pub-faq-item p {
    color: #a89e92;
}

/* ================================= */
/* 12. CTA BANNER — WARM CREAM       */
/* ================================= */

/* Flat warm background — no gradient, no pseudo-element decorations */
.pub-cta {
    background: #f5f1e8;
    color: #2c2420;
    padding: 5rem 32px;
}
.pub-section-accent .pub-cta {
    background: #f5f1e8;
}
.pub-cta::before,
.pub-cta::after { display: none; }
.pub-cta h2 {
    font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    font-weight: 700;
    letter-spacing: 0;
    color: #2c2420;
}
.pub-cta h2::after { display: none !important; }
.pub-cta p {
    font-size: 16px;
    color: #6b5e52;
    line-height: 1.7;
}
.pub-cta .pub-btn {
    border-radius: 6px;
    background: var(--primary, #2563eb);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    padding: 14px 44px;
    letter-spacing: 0.02em;
    box-shadow: 0 3px 12px rgba(44, 36, 32, 0.12);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pub-cta .pub-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(44, 36, 32, 0.18);
    opacity: 1;
}
@media (max-width: 768px) {
    .pub-cta { padding: 3.5rem 20px; }
    .pub-cta .pub-btn { padding: 12px 36px; font-size: 14px; }
}

/* ================================= */
/* 13. STATS                         */
/* ================================= */

/* Clean, serif-feeling numbers — no text-shadow */
.pub-section-accent .pub-stats-grid {
    margin-top: 1.5rem;
}
.pub-stat-number {
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 700;
}
.pub-section-accent .pub-stat-number {
    text-shadow: none;
}
.pub-section-accent .pub-stat-label {
    font-size: 0.85rem;
    letter-spacing: 0.06em;
}

/* ================================= */
/* 14. PAGE HERO (sub-pages)         */
/* ================================= */

/* Warm dark — not navy. Traditional feel. */
.pub-page-hero {
    background: linear-gradient(180deg, #2c2420 0%, #3a302a 100%);
    margin-top: -1px;
    padding: 2.5rem 0 2rem;
}
.pub-page-hero::before {
    background: radial-gradient(ellipse at 50% 100%, rgba(184,134,11,0.06) 0%, transparent 65%);
}
.pub-page-hero-title {
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    font-weight: 700;
    letter-spacing: 0;
}
.pub-page-hero-subtitle {
    color: rgba(255,255,255,0.45);
    font-size: 0.9rem;
}

/* ================================= */
/* 14b. CONTACT SECTION — WARM       */
/* ================================= */

.pub-contact-channels {
    border-bottom: 1px solid #e2ddd5;
    gap: 2rem;
    padding: 1.25rem 0;
    margin-bottom: 1.5rem;
}
/* Warm amber icon background */
.pub-contact-channel-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(184, 134, 11, 0.06);
}
a.pub-contact-channel:hover .pub-contact-channel-icon {
    background: rgba(184, 134, 11, 0.12);
}

/* Form inputs */
.pub-contact-form-panel h2 {
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    font-weight: 700;
    letter-spacing: 0;
}
.pub-contact-layout .pub-input {
    border-radius: 6px;
    border: 1.5px solid #d6d0c7;
    padding: 11px 14px;
    background: #fdfcfa;
    font-size: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.pub-contact-layout .pub-input:focus {
    background: #fff;
    border-color: var(--accent, #b8860b);
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.1);
}
.pub-contact-layout .pub-input::placeholder {
    color: #a89e92;
}
.pub-contact-submit {
    border-radius: 6px;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: 0 2px 8px rgba(44, 36, 32, 0.1);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pub-contact-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(44, 36, 32, 0.16);
    opacity: 1;
}

/* Side map/info */
.pub-contact-map {
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(44, 36, 32, 0.06);
}
.pub-contact-info-card {
    background: #faf8f4;
    border-radius: 8px;
    border: 1px solid #e8e3da;
    padding: 1.25rem;
}

.pub-contact-success {
    border-radius: 8px;
    background: #f0f9e8;
    border: 1px solid #d4ecc0;
}

/* ================================= */
/* 15. FOOTER — WARM DARK            */
/* ================================= */

/* Warm dark brown — completely different from Modern's navy */
.pub-footer {
    background: #2c2420;
    border-top: 2px solid var(--accent, #b8860b);
    --footer-text: #d6cfc2;
    --footer-muted: #a89e92;
    --footer-border: rgba(255,255,255,0.08);
    --footer-social-bg: rgba(255,255,255,0.08);
}
.pub-footer-name { color: #f5f1e8; }
.pub-footer-link { color: #c8bfb2; }
.pub-footer-link:hover { color: var(--accent, #b8860b); }
.pub-footer-col-title { color: #8a7e72; }
.pub-footer-address { color: #a89e92; }
.pub-footer-legal-link { color: #8a7e72; }
.pub-footer-legal-link:hover { color: var(--accent, #b8860b); }
.pub-footer-copy { color: #5c534a; }
.pub-powered { color: #4a3c32; }

/* Footer Quick Links — single column for traditional feel */
.pub-footer-nav .pub-footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ================================= */
/* 16. CHECK-IN LOOKUP               */
/* ================================= */

.pub-checkin-lookup {
    text-align: center;
    max-width: 520px;
    margin: 0 auto;
    padding: 16px 0;
}
.pub-checkin-icon {
    width: 60px;
    height: 60px;
    background: var(--accent, #b8860b);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
    box-shadow: 0 4px 14px rgba(184, 134, 11, 0.2);
}
.pub-checkin-icon svg {
    width: 28px;
    height: 28px;
    stroke: #fff;
}
.pub-checkin-lookup h2 { margin-bottom: 10px; }
.pub-checkin-instructions {
    color: #5c534a;
    font-size: 14.5px;
    line-height: 1.7;
    margin-bottom: 22px;
}
.pub-checkin-btn {
    border-radius: 6px;
    padding: 13px 40px;
    font-size: 15px;
    font-weight: 600;
    box-shadow: 0 3px 12px rgba(44, 36, 32, 0.12);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pub-checkin-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(44, 36, 32, 0.18);
    opacity: 1;
}
.pub-checkin-note {
    margin-top: 12px;
    font-size: 12.5px;
    color: #a89e92;
}

/* ================================= */
/* 17. SCROLL REVEAL — GENTLE EASE   */
/* ================================= */

/* Override base's spring cubic-bezier with a gentle ease —
   more traditional, no bounce or spring motion. */
.pub-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.pub-reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}

.pub-reveal-stagger > * {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.pub-reveal-stagger.revealed > * {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger delays — 80ms intervals (faster than Modern's 100ms) */
.pub-reveal-stagger.revealed > *:nth-child(1) { transition-delay: 0ms; }
.pub-reveal-stagger.revealed > *:nth-child(2) { transition-delay: 80ms; }
.pub-reveal-stagger.revealed > *:nth-child(3) { transition-delay: 160ms; }
.pub-reveal-stagger.revealed > *:nth-child(4) { transition-delay: 240ms; }
.pub-reveal-stagger.revealed > *:nth-child(5) { transition-delay: 320ms; }
.pub-reveal-stagger.revealed > *:nth-child(6) { transition-delay: 400ms; }
.pub-reveal-stagger.revealed > *:nth-child(7) { transition-delay: 480ms; }
.pub-reveal-stagger.revealed > *:nth-child(8) { transition-delay: 560ms; }
.pub-reveal-stagger.revealed > *:nth-child(n+9) { transition-delay: 640ms; }

@media (prefers-reduced-motion: reduce) {
    .pub-reveal,
    .pub-reveal-stagger > * {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ================================= */
/* 18. GLOBAL BUTTON OVERRIDES       */
/* ================================= */

/* Classic uses slightly rounded buttons — not pill, not sharp */
.pub-btn {
    border-radius: 6px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.2s;
}

/* ================================= */
/* 19. DARK SECTION BACKGROUND       */
/* ================================= */

/* Classic dark = warm brown, not navy */
.pub-section-dark {
    background: #2c2420 !important;
}
.pub-section-dark h2 {
    color: #f5f1e8;
}
.pub-section-dark .pub-section-subtitle {
    color: #a89e92;
}
