/* Footer trigger for reopening Complianz preferences */
.footer-cookie-preferences {
    margin-left: 0.9rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
    text-decoration: none;
}

.footer-cookie-preferences:hover,
.footer-cookie-preferences:focus {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/*
Theme Name: Angelos Ristorante
Theme URI: http://example.com/angelos-ristorante
Author: Antigravity
Author URI: http://example.com/
Description: A custom WordPress theme for Angelos Ristorante, inspired by Fratelli Ponteland.
Version: 1.5.0
Text Domain: angelos-ristorante
*/

/* Design System */
:root {
    --primary-color: #252f38;
    --bg-dark: #0b1116;
    --text-white: #ffffff;
    --text-muted: #a0a0a0;
    --font-heading: 'Playfair Display', serif;
    --font-logo: 'Cormorant Garamond', serif;
    --font-title: 'Abril Fatface', serif;
    --font-body: 'Inter', sans-serif;
    --charcoal: #252f38;
    --light-gray: #f1f0ee;
}

@font-face {
    font-family: 'Bahij ASVCodar-Regular';
    src: url('https://static.wfonts.com/data/2016/04/19/bahij-asvcodar/Bahij%20ASVCodar-Regular.ttf') format('truetype');
    font-display: swap;
}

/* Base Overrides */
body {
    font-family: var(--font-body);
    overflow-x: hidden;
    background-color: var(--charcoal);
    color: var(--text-white);
    line-height: 1.625;
    -webkit-font-smoothing: antialiased;
}

h1,
.h1 {
    font-family: var(--font-title);
}

.letter-spacing-1 {
    letter-spacing: 1px;
}

.letter-spacing-2 {
    letter-spacing: 2px;
}

.letter-spacing-3 {
    letter-spacing: 3px;
}

.letter-spacing-5 {
    letter-spacing: 5px;
}

.max-w-600 {
    max-width: 600px;
    width: 100%;
}

.max-w-8xl {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

/* Header & Nav */
.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: transparent;
}

.top-bar {
    padding: 15px 0 0;
    font-size: 0.85rem;
    font-weight: 700;
}

.main-nav-container {
    padding: 0;
}

.logo-text {
    font-family: var(--font-logo);
    font-size: clamp(1.5rem, 4vw, 3.2rem);
    font-weight: 600;
    color: #fff;
    text-transform: lowercase;
    line-height: 1;
}

.header-logo img.custom-logo {
    max-height: 75px;
    width: auto;
    object-fit: contain;
}

.custom-footer-logo img.custom-logo {
    max-height: 80px;
    width: auto;
    object-fit: contain;
    margin-bottom: 20px;
}

.navbar-nav .nav-link {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2.2px;
    color: #fff !important;
    padding: 0.5rem 1.4rem !important;
}

.navbar-nav .nav-link:hover {
    color: var(--primary-color) !important;
}

.header-actions .btn {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 2px;
    border-width: 1px;
}

/* Always show Book a Table even on mobile */
.header-actions {
    flex-shrink: 0;
}

/* Hero Section */
.hero-section {
    position: relative;
    height: 100vh;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}

.hero-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0;
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover;
}

.hero-youtube-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;
    /* 16:9 Aspect Ratio (100 / 16 * 9) */
    min-height: 100vh;
    min-width: 177.77vh;
    /* 16:9 Aspect Ratio (100 * 16 / 9) */
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
    /* Prevent interacting with the YT player */
}

.hero-youtube-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

/* Wrapper shrinks to title width; subtitle right-aligns under "o's" (responsive, no spacer). */
.hero-branding {
    display: inline-block;
    text-align: center;
    /* Shared scale for both logo lines so proportions stay locked. */
    --hero-logo-scale: clamp(6rem, 15vw, 15rem);
}

.hero-branding h1 {
    font-family: var(--font-title);
    font-size: var(--hero-logo-scale);
    line-height: 0.9;
    color: #fff;
    margin-top: 10px;
    margin-bottom: 0.25rem;
    font-weight: 500;
    text-transform: uppercase;
}

.hero-welcome {
    font-family: 'Bahij ASVCodar-Regular', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: calc(var(--hero-logo-scale) * 0.14);
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #fff;
    margin-top: 0.55rem;
    margin-bottom: 0;
    width: 100%;
    display: block;
    text-align: justify;
    text-align-last: justify;
    text-justify: inter-character;
}

.hero-welcome::after {
    content: '';
    display: inline-block;
    width: 100%;
}

@media (max-width: 575.98px) {
    .hero-branding { --hero-logo-scale: clamp(3.6rem, 17.5vw, 6.1rem); }

    .hero-branding h1 {
        line-height: 0.92;
        margin-top: 0;
    }

    .hero-welcome {
        margin-top: 0.65rem;
    }
}

/* Hide hero subtitle on mobile to avoid iOS/WebKit spacing inconsistencies. */
@media (max-width: 767.98px) {
    .hero-welcome {
        display: none;
    }
}

@media (max-width: 360px) {
    .hero-branding { --hero-logo-scale: clamp(3.1rem, 19vw, 4.4rem); }

    .hero-welcome {
        white-space: normal;
    }
}

@media (max-width: 480px) {
    .hero-branding { --hero-logo-scale: clamp(3.3rem, 18.5vw, 5.6rem); }

    .hero-branding h1 {
        line-height: 0.92;
    }

    .hero-welcome {
        width: 100%;
        max-width: none;
        text-align: justify;
        text-align-last: justify;
        text-justify: inter-character;
    }
}

.hero-description {
    font-size: 1.1rem;
    font-weight: 400;
    font-family: 'Inter', sans-serif;
    color: #fff;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.8;
}

.hero-discover {
    position: absolute;
    bottom: clamp(36px, 7vw, 80px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    text-align: center;
    font-size: clamp(0.65rem, 1.2vw + 0.5rem, 0.75rem);
    letter-spacing: 5px;
    text-transform: uppercase;
    color: #fff;
    transition: opacity 0.2s ease;
}

.hero-discover:hover {
    color: #fff;
    opacity: 0.9;
}

@keyframes hero-chevron-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(6px); }
}

.hero-discover-chevron {
    animation: hero-chevron-bounce 2s ease-in-out infinite;
}

/* Hero Bottom Bar */
.hero-bottom-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 20;
    padding: clamp(20px, 4vw, 40px) 0 !important;
}

.hero-bottom-bar .col-md-4 {
    font-size: 0.82rem;
    letter-spacing: 2.5px;
}

/* Homepage section rhythm */
.home .site-main {
    --home-section-space: clamp(3rem, 5.5vw, 5.5rem);
}

.home .site-main > section:not(.hero-section) {
    padding-top: var(--home-section-space);
    padding-bottom: var(--home-section-space);
}

/* Prevent nested bootstrap spacing from doubling section gaps */
.home #welcome > .container,
.home .menus-section > .container,
.home #reservations > .container,
.home #newsletter > .container {
    padding-top: 0;
    padding-bottom: 0;
}

.bottom-dot {
    width: 7px;
    height: 7px;
    background: var(--primary-color);
    border-radius: 50%;
    display: inline-block;
}

/* Welcome Section – own section, no charcoal; full-width white block on mobile */
.welcome-section {
    position: relative;
    padding: 0;
    margin-top: 0;
    margin-bottom: 0;
    z-index: 1;
    background-color: #fff;
}

/* Tablet + mobile: same welcome layout as phone (768px–991px matches mobile) */
@media (max-width: 991.98px) {
    .welcome-section {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding: 0 !important;
        background-color: #fff;
        /* Section is its own full-width white block; no charcoal visible */
    }

    .welcome-card {
        padding: 0 !important;
        box-shadow: none !important;
        /* No card look on mobile – content sits on the white section */
    }

    /* Full-width stack: kill row side margins so content isn’t offset (fixes extra space on one side) */
    #welcome .welcome-inner-content .row {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }

    #welcome .welcome-inner-content .row > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
    }
}

.welcome-card {
    max-width: 100%;
    margin: 0 auto;
    box-shadow: none;
}

.welcome-inner-row {
    padding: clamp(1rem, 1.6vw, 1.75rem);
}

.welcome-card-img {
    width: 100%;
    max-height: 415px;
    object-fit: cover;
}

.welcome-editor-image .wp-block-image {
    margin: 0;
}

.welcome-editor-image .wp-block-image img {
    width: 100%;
    max-height: 415px;
    object-fit: cover;
    object-position: center;
    display: block;
}

.welcome-action-bar {
    background-color: #fff;
}

.dot-separator {
    color: #252f38;
    font-size: 0.5rem;
    vertical-align: middle;
}

@media (max-width: 991.98px) {
    .dot-separator {
        display: none !important;
    }

    .welcome-actions {
        flex-direction: column !important;
        gap: 15px !important;
    }

    .welcome-actions .btn {
        width: 100% !important;
        margin: 0 !important;
    }

    .welcome-card-img {
        max-height: 240px;
    }

    .welcome-editor-image .wp-block-image img {
        max-height: 240px;
    }

    .welcome-inner-row {
        padding: 1rem;
    }
}

.welcome-inner-content h2 {
    font-family: var(--font-logo);
    line-height: 1.1;
}

@media (max-width: 991.98px) {
    .welcome-inner-content h2,
    .welcome-to-title {
        font-size: 2.2rem !important;
    }
}

.welcome-card p {
    font-size: clamp(0.85rem, 1.2vw + 0.75rem, 0.9rem);
    line-height: 1.8;
}

/* Events Split */
.events-split-section {
    overflow: hidden;
}

.event-box {
    height: 650px !important;
}

.event-box .overlay h3 {
    font-family: var(--font-title);
    font-size: clamp(1.5rem, 4vw, 3.2rem);
    line-height: 1;
    font-weight: 500;
}

/* Menus & Section Headings */
.menu-section-title {
    font-family: var(--font-title);
    font-size: clamp(2.4rem, 6vw, 5rem);
    font-weight: 400;
    line-height: 1;
    color: var(--charcoal);
}

@media (max-width: 767.98px) {
    .menu-section-title {
        font-size: 2.8rem !important;
    }
}

@media (max-width: 575.98px) {
    .menu-section-title {
        font-size: 2.4rem !important;
    }

    .venue-showcase-section {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

.menu-food-card h4 {
    font-family: var(--font-logo);
    font-size: clamp(1.1rem, 2vw, 1.8rem);
    font-weight: 400;
}

/* Menus section: all text charcoal */
.menus-section,
.menus-section .section-title,
.menus-section .section-title .text-muted,
.menus-section .max-w-600,
.menus-section .menu-list .menu-item,
.menus-section .menu-list .menu-item h4,
.menus-section .menu-list .menu-item .text-muted,
.menus-section .menu-list .menu-item p {
    color: var(--charcoal);
}

/* Instagram */
.instagram-sidebar {
    background: #1a2228 !important;
}

.instagram-sidebar p {
    font-size: 0.85rem;
    letter-spacing: 3px;
}

/* Reviews */
.reviews-section .review-quote h2 {
    font-family: var(--font-logo);
    font-weight: 400;
    font-size: clamp(1.5rem, 3.5vw, 2.8rem);
    line-height: 1.2;
}

/* Footer Redesign (1:1 Parity) */
.site-footer,
.site-footer .footer-title,
.site-footer .footer-text,
.site-footer .footer-text p,
.site-footer .footer-text strong,
.site-footer a,
.site-footer .site-info,
.site-footer .site-info a {
    color: var(--charcoal) !important;
}
.site-footer a:hover {
    color: var(--charcoal);
    opacity: 0.85;
}
.site-footer {
    background-color: #f0f0ee !important;
    padding-top: clamp(40px, 6vw, 60px) !important;
    padding-bottom: clamp(16px, 2vw, 20px) !important;
    border-top: none;
}

.footer-logo {
    text-align: center;
}

.footer-logo .logo-text {
    font-family: var(--font-logo);
    font-size: 5rem;
    color: #252f38;
    font-weight: 500;
}

.footer-logo .subtitle {
    color: #252f38;
    opacity: 0.8;
}

.footer-main-row {
    margin-top: 40px;
}

.footer-col {
    position: relative;
    padding-bottom: 40px;
}

.footer-title {
    font-family: var(--font-body);
    font-size: clamp(0.75rem, 1.2vw + 0.7rem, 0.85rem);
    font-weight: 800;
    letter-spacing: 2px;
    margin-bottom: 0;
    color: #252f38;
}

.footer-text {
    font-size: clamp(0.75rem, 1vw + 0.7rem, 0.82rem);
    line-height: 1.8;
    color: #252f38;
}

.footer-text strong {
    font-weight: 700;
}

.status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.status-dot.status-open {
    background-color: #28a745;
    box-shadow: 0 0 5px rgba(40, 167, 69, 0.5);
}

.status-dot.status-closed {
    background-color: #dc3545;
    box-shadow: 0 0 5px rgba(220, 53, 69, 0.5);
}

.border-start-md {
    border-left: 1px solid rgba(37, 47, 56, 0.1);
}

.border-top-light {
    border-top: none !important;
}

.site-info {
    font-size: 0.65rem;
    letter-spacing: 1px;
}

/* Keep the legal menu truly centered regardless of side text lengths */
@media (min-width: 768px) {
    .site-info {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        column-gap: 1.25rem;
    }

    .site-info > div:first-child {
        justify-self: start;
    }

    .site-info > .footer-legal-nav {
        justify-self: center;
    }

    .site-info > div:last-child {
        justify-self: end;
        text-align: right;
    }
}

.footer-legal-nav {
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-legal-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.9rem;
}

.footer-legal-menu li {
    margin: 0;
    padding: 0;
}

.footer-legal-menu li + li {
    position: relative;
}

.footer-legal-menu li + li::before {
    content: '';
    position: absolute;
    left: -0.45rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 0.85em;
    background: rgba(37, 47, 56, 0.35);
}

.footer-legal-menu a {
    text-decoration: none;
}

.footer-legal-menu a:hover,
.footer-legal-menu a:focus {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Responsive Separators */
@media (max-width: 991.98px) {
    .footer-col {
        padding-bottom: 25px;
    }

    .border-start-md {
        border-left: none;
        border-top: 1px solid rgba(37, 47, 56, 0.1);
        padding-top: 25px;
        margin-top: 10px;
    }
}

.footer-map-section {
    line-height: 0;
    width: 100%;
    position: relative;
    overflow: hidden;
}

.footer-map-section iframe {
    width: 100% !important;
    display: block;
    transition: filter 0.3s ease;
}

.footer-map-section:hover iframe {
    filter: grayscale(0.2) contrast(1) opacity(1) !important;
}

/* Menu Tab Section */
.menus-section .nav-pills .nav-link {
    background-color: #f1f0ee;
    color: #252f38;
    padding: 15px 10px;
    font-size: 0.85rem;
    transition: all 0.3s ease;
}

.menu-tab-section .nav-pills .nav-link.active,
.menus-section .nav-pills .nav-link.active {
    background-color: #cfb890 !important;
    color: var(--charcoal) !important;
    border-color: #cfb890;
}

/* Menu columns: match single-column layout (first screenshot) – tight gutter, same vertical spacing */
.menus-section .menu-list.row {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 0;
}

.menu-list .menu-item:first-child {
    padding-top: 0 !important;
}

/* Same vertical padding for single-column (with image) layout so it matches grid layout */
.menu-list .menu-item {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.menu-list .menu-item h4 {
    font-size: 1rem;
    color: #252f38;
}

.menu-list .menu-item .text-muted p {
    margin-bottom: 0;
}

.menu-cat-image {
    background-color: #f1f0ee;
}

@media (max-width: 991.98px) {
    .menus-section .nav-pills {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        width: 100%;
    }

    .menus-section .nav-pills .nav-item {
        margin: 0 !important;
    }

    .menus-section .nav-pills .nav-link {
        font-size: 0.75rem;
        padding: 12px 10px;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 575.98px) {
    .menus-section .nav-pills {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Inline Style Externalization Utilities */
.hero-swirl {
    width: 40px;
    opacity: 0.8;
}

.welcome-title {
    font-size: 3.5rem;
}

.welcome-swirl {
    width: 50px;
    opacity: 0.3;
}

.welcome-swirl-flipped {
    transform: scaleX(-1);
}

.event-box-overlay-title,
.events-carousel .event-box .overlay h3.event-box-overlay-title {
    font-family: var(--font-title) !important;
    max-width: min(450px, 90vw);
    background: rgba(37, 47, 56, 0.85);
    padding: clamp(15px, 2.5vw, 25px) clamp(15px, 2vw, 20px);
    letter-spacing: 1px;
}



.menu-cat-image img {
    height: clamp(280px, 40vw, 500px);
    object-fit: cover;
}

.instagram-grid img {
    aspect-ratio: 1.2;
    object-fit: cover;
}

.footer-google-map {
    border: 0;
    filter: grayscale(1) contrast(0.8) opacity(0.6);
    display: block;
}

.charcoal-bg {
    background-color: var(--charcoal) !important;
}

/* Gold accent for Book a Table and menu tab buttons */
.gold-bg,
.btn-gold {
    background-color: #cfb890 !important;
    color: var(--charcoal) !important;
    border-color: #cfb890 !important;
}

.gold-bg:hover,
.btn-gold:hover {
    background-color: #b8a078 !important;
    color: var(--charcoal) !important;
    border-color: #b8a078 !important;
}

/* Slick Carousel Overrides */
.events-carousel .slick-track {
    display: flex !important;
}

.events-carousel .slick-slide {
    height: inherit !important;
    display: flex !important;
}

.events-carousel .slick-list {
    margin: 0;
}

.events-carousel .event-box {
    margin: 0;
    aspect-ratio: 1.5;
    height: auto;
    background-size: cover;
    background-position: center;
}

.events-carousel .slick-prev,
.events-carousel .slick-next {
    z-index: 100;
    width: 60px;
    height: 60px;
    background: rgba(37, 47, 56, 0.8) !important;
    transition: all 0.3s ease;
}

.events-carousel .slick-prev {
    left: 30px;
}

.events-carousel .slick-next {
    right: 30px;
}

.events-carousel .slick-prev:hover,
.events-carousel .slick-next:hover {
    background: #252f38 !important;
}

@media (max-width: 767.98px) {
    .events-carousel .event-box {
        aspect-ratio: 4/5;
    }

    .events-carousel .event-box .overlay {
        padding: 2rem !important;
    }

    .events-carousel .event-box .overlay h3 {
        font-size: 2.2rem !important;
        margin-bottom: 1.5rem !important;
    }

    .event-box-overlay-title {
        padding: 15px 15px !important;
    }

    .events-carousel .slick-prev,
    .events-carousel .slick-next {
        width: 40px;
        height: 40px;
    }
}

@media (max-width: 991.98px) {
    .event-box {
        aspect-ratio: 1 !important;
    }
}

/* ------------------------------------- */
/* Instagram Section: Charcoal Asymmetric */
/* ------------------------------------- */

.editorial-section {
    padding: clamp(2rem, 4vw, 3rem) 0;
    background-color: var(--charcoal);
    color: #fff;
    overflow: hidden;
}

/* Structural layout: 4 images + Share the moment as 5th square (bottom-right) */
.editorial-section--grid .editorial-section__inner {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: 0.85fr 0.85fr;
    gap: 0.75rem;
    align-items: stretch;
    min-height: clamp(400px, 70vh, 80vh);
    height: clamp(400px, 70vh, 80vh);
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
}

.editorial-section--grid .editorial-gallery--4 {
    display: contents;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img--large {
    grid-column: 1;
    grid-row: 1 / -1;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(3) {
    grid-column: 3;
    grid-row: 1;
}

.editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(4) {
    grid-column: 2;
    grid-row: 2;
}

.editorial-section--grid .editorial-text--cell {
    grid-column: 3;
    grid-row: 2;
    height: 100%;
    min-height: 0;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: #cfb890;
    color: var(--charcoal);
}

.editorial-section--grid .editorial-text--cell .editorial-tag {
    color: var(--charcoal);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    margin: 0 0 0.5rem 0;
}

.editorial-section--grid .editorial-text--cell .editorial-title {
    color: var(--charcoal);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    line-height: 1.2;
    margin: 0 0 0.5rem 0;
}

.editorial-section--grid .editorial-text--cell .editorial-handle {
    color: var(--charcoal);
    border-color: var(--charcoal);
    padding: 0.5rem 0.75rem;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

.editorial-section--grid .editorial-text--cell .editorial-handle:hover {
    background-color: var(--charcoal);
    color: #cfb890;
}

.editorial-section--grid .editorial-text {
    height: 100%;
    min-height: 0;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.editorial-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    padding-left: 100px;
    /* Increased spacing from gallery */
}

.editorial-tag {
    font-family: var(--font-body);
    text-transform: uppercase;
    letter-spacing: 5px;
    font-size: 0.8rem;
    color: #a0a0a0;
    margin-bottom: 20px;
}

.editorial-title {
    font-family: var(--font-title);
    font-size: 5rem;
    line-height: 1;
    color: #fff;
    margin-bottom: 30px;
}

.welcome-to-title {
    font-family: var(--font-title);
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1;
    color: var(--charcoal);
    margin-bottom: 16px;
}

.welcome-desc-wrap p {
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: 1rem;
}

.welcome-desc-wrap p:last-child {
    margin-bottom: 0;
}

.welcome-desc-wrap .wp-block-image {
    margin: 0 0 1.5rem;
}

.welcome-desc-wrap .wp-block-image img {
    width: 100%;
    max-height: 415px;
    object-fit: cover;
    object-position: center;
    display: block;
}

.welcome-desc-wrap .wp-block-buttons {
    margin-top: 1.5rem;
}

.welcome-desc-wrap .wp-block-button__link {
    background-color: #cfb890;
    color: var(--charcoal);
    border: 1px solid #cfb890;
    border-radius: 0;
    padding: 0.75rem 1.5rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    font-family: var(--font-body);
    transition: all 0.2s ease;
}

.welcome-desc-wrap .wp-block-button__link:hover,
.welcome-desc-wrap .wp-block-button__link:focus {
    background-color: #b8a078;
    border-color: #b8a078;
    color: var(--charcoal);
}

.editorial-handle {
    display: inline-block;
    padding: 15px 20px;
    border: 1px solid #fff;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.editorial-handle:hover {
    background: #fff;
    color: var(--charcoal);
}

/* Responsive: 4 images + Share the moment – tablet stacked, mobile 2x2 + text row */
@media (max-width: 991.98px) {
    .editorial-section--grid .editorial-section__inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto auto auto;
        height: auto;
        min-height: 0;
        gap: 0.75rem;
    }

    .editorial-section--grid .editorial-gallery--4 {
        display: contents;
    }

    .editorial-section--grid .editorial-gallery--4 .editorial-img--large {
        grid-column: 1;
        grid-row: 1;
        min-height: 40vh;
    }

    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(2),
    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(3),
    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(4) {
        grid-column: 1;
        min-height: 25vh;
    }

    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(2) { grid-row: 2; }
    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(3) { grid-row: 3; }
    .editorial-section--grid .editorial-gallery--4 .editorial-img--small:nth-child(4) { grid-row: 4; }

    .editorial-section--grid .editorial-text--cell {
        grid-column: 1;
        grid-row: 5;
        min-height: 200px;
    }

    .editorial-section--grid .editorial-text {
        text-align: center;
        padding: 2rem 1.5rem;
    }
}

/* Mobile: 2 cols x 3 rows – row1: img1 img2, row2: img3 img4, row3: Share the moment (full width) */
@media (max-width: 767.98px) {
    .editorial-section--grid .editorial-section__inner {
        display: block;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
        min-height: 0;
        height: auto;
    }

    .editorial-section--grid .editorial-gallery--4 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: clamp(150px, 42vw, 210px);
        gap: 0.75rem;
    }

    .editorial-section--grid .editorial-gallery--4 > .editorial-img {
        position: relative;
        width: 100%;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
        display: block;
        overflow: hidden;
    }

    .editorial-section--grid .editorial-gallery--4 > .editorial-img:nth-child(1) {
        grid-column: auto;
        grid-row: auto;
    }

    .editorial-section--grid .editorial-gallery--4 > .editorial-img:nth-child(2) {
        grid-column: auto;
        grid-row: auto;
    }

    .editorial-section--grid .editorial-gallery--4 > .editorial-img:nth-child(3) {
        grid-column: auto;
        grid-row: auto;
    }

    .editorial-section--grid .editorial-gallery--4 > .editorial-img:nth-child(4) {
        grid-column: auto;
        grid-row: auto;
    }

    .editorial-section--grid .editorial-gallery--4 .editorial-img--large,
    .editorial-section--grid .editorial-gallery--4 .editorial-img--small {
        grid-column: auto !important;
        grid-row: auto !important;
        min-height: 0 !important;
        height: 100% !important;
    }

    .editorial-section--grid .editorial-text--cell {
        margin-top: 0.75rem;
        grid-column: auto;
        grid-row: auto;
        min-height: 140px;
        padding: 1.5rem 1rem;
    }

    .editorial-section--grid .editorial-text--cell .editorial-tag,
    .editorial-section--grid .editorial-text--cell .editorial-title {
        display: none;
    }

    .editorial-section--grid .editorial-text--cell > div {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
    }

    .editorial-section--grid .editorial-text--cell .editorial-handle {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.35rem;
        margin: 0;
        padding: 0;
        border: none;
        font-size: 0.65rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--charcoal);
    }

    .editorial-section--grid .editorial-text--cell .editorial-handle i {
        font-size: 1.75rem;
    }

    .editorial-section--grid .editorial-text--cell .editorial-handle .me-2 {
        margin-right: 0 !important;
    }
}

/* ------------------------------------- */
/* Reviews Section (Concept 1)         */
/* ------------------------------------- */

.review-split,
.review-split .split-author,
.review-split .split-quote,
.review-split .split-label {
    color: var(--charcoal);
}
.review-split {
    background: #fff;
    padding: clamp(50px, 10vw, 100px) 0;
    position: relative;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.split-title {
    font-family: var(--font-title);
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1;
    color: var(--charcoal);
}

.split-content {
    border-left: 2px solid #d4af37;
    padding-left: 40px;
    margin-left: 20px;
}

.split-quote {
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 3vw, 2.2rem);
    line-height: 1.4;
    font-style: italic;
    margin-bottom: 30px;
    color: var(--charcoal);
    display: -webkit-box;
    -webkit-line-clamp: 5;
    line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.split-author {
    font-family: var(--font-body);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.85rem;
    font-weight: 600;
}

.split-date {
    color: var(--charcoal);
    font-size: 0.8rem;
    font-style: italic;
}

.split-label {
    font-family: var(--font-body);
    text-transform: uppercase;
    letter-spacing: 5px;
    font-size: 0.8rem;
    color: var(--charcoal);
    margin-bottom: 20px;
    display: block;
}

@media (max-width: 991.98px) {
    .review-split {
        padding: 80px 0;
        text-align: center;
    }

    .split-content {
        border-left: none;
        border-top: 2px solid #d4af37;
        padding-left: 0;
        padding-top: 40px;
        margin-left: 0;
        margin-top: 20px;
    }

    .split-quote {
        font-size: 1.8rem;
    }

    .review-meta {
        justify-content: center !important;
        text-align: center;
        margin-bottom: 30px;
    }

    .review-controls {
        justify-content: center;
        margin-top: 20px;
    }
}

.review-controls {
    position: absolute;
    bottom: 0;
    right: 0;
}

.review-controls .review-nav-btn,
.review-controls .review-prev,
.review-controls .review-next {
    border-color: #cfb890 !important;
    color: #cfb890 !important;
}

.review-controls .review-nav-btn:hover,
.review-controls .review-prev:hover,
.review-controls .review-next:hover {
    background-color: #cfb890 !important;
    border-color: #cfb890 !important;
    color: var(--charcoal) !important;
}

@media (max-width: 991.98px) {
    .review-controls {
        position: static;
        margin-top: 30px;
    }
}

/* ------------------------------------- */
/* Single Event Template                 */
/* ------------------------------------- */

.single-event-hero {
    position: relative;
    padding: clamp(80px, 15vw, 150px) 0 clamp(60px, 10vw, 100px);
    /* Top padding to clear the fixed header */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--charcoal);
    min-height: 40vh;
    display: flex;
    align-items: center;
}

.single-event-hero .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(37, 47, 56, 0.85);
    /* Charcoal tint overlay */
    z-index: 1;
}

.single-event-hero .entry-title,
.single-event-hero .single-event-hero-title {
    font-family: var(--font-title);
    font-size: clamp(2rem, 5vw, 4rem);
    letter-spacing: -1px;
}

.single-event-content-section {
    position: relative;
    padding: 0;
    margin-top: -100px;
    /* Pulls container up to overlap hero */
    margin-bottom: -150px;
    z-index: 50;
    /* Ensure it floats above the hero and next section */
}

.single-event-card {
    max-width: 1000px;
    margin: 0 auto;
    border: 1px solid #e5e5e5 !important;
}

.single-event-card p {
    margin-bottom: 1.5rem;
}

.single-event-content p {
    margin-bottom: 1.5rem;
}

/* Single Event: full-width white section (no floating) */
.single-event-content-section--fullwidth {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 4rem 0 !important;
    z-index: auto !important;
    position: relative;
    width: 100%;
    background-color: #fff;
}

.single-event-content-section--fullwidth .single-event-content-inner {
    max-width: none;
    box-shadow: none;
    border: none;
    background: transparent;
}

.single-event-content-section--fullwidth .entry-content,
.single-event-content-section--fullwidth .entry-content p,
.single-event-content-section--fullwidth .entry-content a,
.single-event-content-section--fullwidth .entry-content li {
    color: var(--charcoal);
    font-family: var(--font-body);
    line-height: 1.8;
    font-size: 1.1rem;
}

.single-event-content-section .entry-content .wp-block-buttons {
    margin-top: 2rem;
}

.single-event-content-section .entry-content .wp-block-button__link {
    display: inline-block;
    background-color: #cfb890;
    color: var(--charcoal) !important;
    border: 1px solid #cfb890;
    border-radius: 0;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-body);
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
}

.single-event-content-section .entry-content .wp-block-button__link:hover,
.single-event-content-section .entry-content .wp-block-button__link:focus {
    background-color: #b8a078;
    border-color: #b8a078;
    color: var(--charcoal) !important;
}

/* Venue / Reservations section – layout in CSS; background-image set inline (dynamic) */
.venue-showcase-section {
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
    min-height: clamp(400px, 70vh, 500px);
    display: flex;
    align-items: center;
}

.venue-showcase-section .menu-section-title {
    font-size: clamp(1.85rem, 9.5vw, 5rem) !important;
    line-height: 1.05;
    overflow-wrap: anywhere;
}

@media (min-width: 992px) {
    .venue-showcase-section {
        background-attachment: fixed;
    }
}

@media (max-width: 320px) {
    .venue-showcase-section .menu-section-title {
        font-size: clamp(1.55rem, 11.5vw, 2rem) !important;
    }
}

.venue-showcase-overlay {
    opacity: 0.6;
    z-index: 1;
}

.venue-showcase-section .container.position-relative {
    z-index: 2;
}

/* Reservations title: use the exact same heading scale as other sections */
.venue-showcase-section .menu-section-title {
    font-size: clamp(2.4rem, 6vw, 5rem);
}

#resos-booking-script-3.resos-booking-fallback {
    text-align: center;
    opacity: 0.6;
    font-size: 70%;
}

/* Single event hero – container and subtitle; background-image set inline (dynamic) */
.single-event-hero .container.position-relative {
    z-index: 2;
}

.single-event-hero-subtitle {
    letter-spacing: 0.2em;
    font-size: 0.8rem;
    color: #d4af37;
}

/* Generic entry content (single, page, archive, index, search, 404) */
.entry-content {
    font-family: var(--font-body);
    line-height: 1.8;
    color: var(--charcoal);
    font-size: clamp(0.95rem, 1.5vw + 0.8rem, 1.1rem);
}

/* Single post / page / archive / index / search content section (no overlap, with bottom margin) */
.single-event-content-section--standard {
    margin-top: 0;
    margin-bottom: 80px;
}

.single-event-card.max-w-800 {
    max-width: 800px;
}

.single-event-content-section .search-form-wrap {
    max-width: 500px;
}

.post-meta {
    letter-spacing: 2px;
    font-size: 0.8rem;
    color: #d4af37;
}

.archive-description {
    font-family: var(--font-body);
    font-size: 1.1rem;
}

@media (max-width: 767.98px) {
    .single-event-hero {
        padding: 120px 0 60px;
    }

    .single-event-hero .entry-title {
        font-size: 2.5rem;
    }

    .single-event-content-section {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding: 50px 0 !important;
    }

    .single-event-card {
        padding: 30px 20px !important;
    }

    .single-event-content-section--fullwidth {
        padding: 2.5rem 0 !important;
    }
}

.resos-booking-widget {
    min-height: 450px !important
}

/* ==========================================
   Newsletter Section (floating image + signup)
   ========================================== */
.newsletter-section {
    padding: 0;
    background-color: var(--charcoal);
}

@media (max-width: 1199.98px) {
    .newsletter-section {
        padding: 0;
    }
}

@media (max-width: 767.98px) {
    .newsletter-section {
        padding: 0;
    }
}

@media (max-width: 575.98px) {
    .newsletter-section {
        padding: 0;
    }
}

.newsletter-container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 1rem;
}

.newsletter-inner {
    min-height: 280px;
    border-radius: 0;
    overflow: visible;
    position: relative;
    background-color: var(--charcoal);
}

/* Image column: contained, no overlap */
.newsletter-image-col {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-left: 1rem;
    padding-right: 1.5rem;
}

.newsletter-image-wrap {
    position: relative;
    z-index: 1;
    margin-top: 0;
    margin-bottom: 0;
    flex-shrink: 0;
    box-shadow: none;
    width: min(100%, 415px);
}

.newsletter-floating-img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: cover;
}

/* Content column: block centered, text left-aligned */
.newsletter-content-col {
    padding: 1.5rem 0.5rem 1.5rem 1.5rem;
}

.newsletter-content-inner {
    width: 100%;
    max-width: 460px;
    text-align: left;
}

.newsletter-heading {
    color: var(--text-muted);
    font-family: var(--font-title);
    font-size: 2.4em;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.newsletter-desc {
    color: var(--text-white);
    font-size: 1rem;
    line-height: 1.6;
}

.newsletter-disclaimer {
    font-size: 0.8rem;
    color: var(--text-muted);
}

/* Two-column grid for CF7: wrap form row in a div with this class (input left, button right) */
.cf7-two-col {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.75rem;
    align-items: baseline;
}

.cf7-two-col > * {
    margin: 0;
}

/* Contact Form 7 styling inside newsletter */
.newsletter-form-wrap .wpcf7-form-control-wrap {
    display: block;
}

.newsletter-form-wrap p {
    margin-bottom: 0;
}

.newsletter-form-wrap input[type="email"],
.newsletter-form-wrap input[type="text"] {
    min-width: 200px;
    padding: 0.75rem 1rem;
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--text-white);
    font-family: var(--font-body);
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.newsletter-form-wrap input[type="email"]::placeholder,
.newsletter-form-wrap input[type="text"]::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.newsletter-form-wrap input[type="submit"] {
    padding: 0.75rem 1.5rem;
    background-color: #cfb890 !important;
    color: var(--charcoal) !important;
    border: none;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.newsletter-form-wrap input[type="submit"]:hover {
    background-color: #b8a078 !important;
    color: var(--charcoal) !important;
}

.newsletter-form-wrap .wpcf7-not-valid-tip {
    color: #e0a0a0;
    font-size: 0.85rem;
    margin-top: 0.25rem;
}

.newsletter-form-wrap .wpcf7-response-output {
    margin: 0.75rem 0 0;
    padding: 0.5rem;
    border: none;
    border-radius: 0;
    font-size: 0.9rem;
}

.newsletter-recaptcha-note {
    margin-top: 0.65rem;
    margin-bottom: 0;
    font-size: 0.76rem;
    line-height: 1.5;
    font-family: var(--font-body);
    color: rgba(255, 255, 255, 0.78);
    display: block;
}

.grecaptcha-badge {
    visibility: hidden;
}

/* Hide only Complianz floating manage tab; footer button stays available */
#cmplz-manage-consent {
    display: none !important;
}

/* Newsletter: tablet – slightly less overlap so layout stays balanced */
@media (max-width: 1199.98px) {
    .newsletter-image-col {
        padding-left: 0.75rem;
        padding-right: 1.25rem;
    }

    .newsletter-content-col {
        padding: 1.25rem 0.5rem 1.25rem 1.25rem;
    }

    .newsletter-content-inner {
        max-width: 380px;
    }
}

/* Newsletter: stacked layout (content first, image below) */
@media (max-width: 991.98px) {
    .newsletter-inner {
        display: flex;
        flex-direction: column;
        min-height: auto;
        padding-top: 0.5rem;
        padding-bottom: 2rem;
        gap: 1rem;
    }

    .newsletter-content-col {
        order: 1;
    }

    .newsletter-image-col {
        order: 2;
    }

    .newsletter-image-col {
        padding: 0 1.5rem;
        justify-content: center;
        width: 100%;
    }

    .newsletter-image-wrap {
        margin-top: 0;
        margin-bottom: 0;
    }

    .newsletter-floating-img {
        max-width: clamp(260px, 62vw, 420px);
        width: 100%;
        margin: 0 auto;
    }

    .newsletter-content-col {
        padding: 1.5rem 1.5rem 2rem;
        text-align: left;
        width: 100%;
    }

    .newsletter-content-inner {
        max-width: 560px;
    }

    /* Tablet + down: stack email + submit to avoid cramped layout */
    .cf7-two-col {
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 0.75rem;
    }

    .newsletter-form-wrap input[type="email"],
    .newsletter-form-wrap input[type="text"] {
        min-width: 0;
        width: 100%;
    }

    .newsletter-form-wrap input[type="submit"] {
        width: 100%;
        padding: 0.75rem 1rem;
    }
}

/* Homepage spacing normalization: enforce uniform section rhythm */
.home .site-main {
    --home-section-space: clamp(2.5rem, 5vw, 5rem);
}

.home #welcome.welcome-section,
.home .menus-section,
.home .editorial-section,
.home .review-split,
.home #reservations.venue-showcase-section,
.home #newsletter.newsletter-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: var(--home-section-space) !important;
    padding-bottom: var(--home-section-space) !important;
}

@media (max-width: 991.98px) {
    .home .site-main {
        --home-section-space: clamp(2rem, 6vw, 3rem);
    }
}

/* Newsletter: small mobile */
@media (max-width: 575.98px) {
    .newsletter-container {
        padding: 0 0.75rem;
    }

    .newsletter-image-col {
        padding: 0 0.75rem;
    }

    .newsletter-image-wrap {
        margin-top: 0;
        margin-bottom: 0;
    }

    .newsletter-floating-img {
        max-width: clamp(220px, 86vw, 360px);
        width: 100%;
        margin: 0 auto;
    }

    .newsletter-content-col {
        padding: 1.25rem 0.75rem 1.5rem;
    }

    /* Mobile: stack field + button full-width */
    .cf7-two-col {
        grid-template-columns: 1fr;
        gap: 0.6rem;
    }

    .newsletter-form-wrap input[type="submit"] {
        width: 100%;
        padding: 0.75rem 1rem;
    }
}