/* Shared visual language, loaded after the legacy page bundles. */
:root {
    --csi-font-body: "Manrope", Arial, sans-serif;
    --csi-font-heading: "Cormorant Garamond", Georgia, serif;
    --csi-surface-border: rgba(29, 77, 61, 0.13);
}

html body.csi-page {
    font-family: var(--csi-font-body);
    -webkit-font-smoothing: antialiased;
}

html body.csi-page :is(h1, h2, .section-title) {
    font-family: var(--csi-font-heading);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.08;
}

html body.csi-page :is(h3, h4, h5, h6) {
    font-family: var(--csi-font-body);
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.35;
}

html body.csi-page :is(input, select, textarea, button) {
    font-family: var(--csi-font-body);
}

html body.csi-page .modern-header {
    background: rgba(250, 251, 247, 0.98);
    border-bottom: 1px solid var(--csi-surface-border);
    box-shadow: 0 4px 24px rgba(15, 45, 34, 0.06);
}

html body.csi-page .nav-container--header {
    max-width: 1440px;
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
}

html body.csi-page .nav-links {
    gap: clamp(0.6rem, 1.3vw, 1.25rem);
}

html body.csi-page .nav-links a,
html body.csi-page .nav-links .nav-submenu-toggle {
    font-family: var(--csi-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

html body.csi-page .nav-links > li > a.active,
html body.csi-page .nav-links > li > .nav-submenu-toggle.active {
    color: #8f542e;
}

html body.csi-page :is(.header-call, .header-cta) {
    min-height: 44px;
    padding: 0.8rem 1rem;
    border-radius: 10px;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

html body.csi-page .header-cta {
    background: #1d4d3d;
    color: #fff;
    box-shadow: 0 4px 12px rgba(29, 77, 61, 0.12);
}

html body.csi-page .header-cta:hover {
    background: #28634f;
    color: #fff;
}

html body.csi-page .header-call {
    background: transparent;
    border-color: var(--csi-surface-border);
}

html body.csi-page :is(.modern-form, .booking-form-card, .csi-shared-enquiry-card) {
    border-radius: 20px;
    border: 1px solid var(--csi-surface-border);
    box-shadow: 0 16px 40px rgba(15, 45, 34, 0.08);
}

html body.csi-page :is(.btn-modern, .csi-home-btn) {
    border-radius: 10px;
    letter-spacing: 0.01em;
}

html body.csi-page .site-footer .footer-col-heading {
    font-family: var(--csi-font-body);
    font-size: 0.875rem;
    letter-spacing: 0.03em;
    line-height: 1.4;
}

html body.csi-page .nav-links .nav-submenu a {
    font-size: 0.8125rem;
    letter-spacing: 0;
}

html body.csi-page :is(a, button, summary, [tabindex]):focus-visible {
    outline: 3px solid #b97845;
    outline-offset: 4px;
}

@media (min-width: 1181px) {
    html body.csi-page .mobile-nav-toggle { display: none; }
    html body.csi-page .nav-links .nav-submenu { top: 100%; }
}

@media (min-width: 1181px) and (max-width: 1320px) {
    html body.csi-page .header-call { display: none; }
}

@media (max-width: 1180px) {
    html body.csi-page.nav-open { overflow: hidden; }

    html body.csi-page.nav-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(5, 22, 16, 0.55);
        z-index: 998;
    }

    html body.csi-page.nav-open .modern-header {
        transform: none !important;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    html body.csi-page .mobile-nav-toggle {
        border-radius: 10px;
        padding-inline: 0.75rem;
        font-size: 0.8125rem;
        font-weight: 600;
        letter-spacing: 0;
        text-transform: none;
    }

    html body.csi-page .nav-links {
        padding-bottom: max(2rem, env(safe-area-inset-bottom));
        border-radius: 20px 0 0 20px;
    }

    html body.csi-page .nav-links a,
    html body.csi-page .nav-links .nav-submenu-toggle {
        font-size: 1rem;
        line-height: 1.4;
        white-space: normal;
    }

    html body.csi-page .nav-links > li > a.active,
    html body.csi-page .nav-links > li > .nav-submenu-toggle.active {
        color: #f7cfab;
    }

    html body.csi-page .nav-links .nav-submenu a {
        font-size: 0.875rem;
    }
}

@media (max-width: 768px) {
    html body.csi-page :is(input, select, textarea) { font-size: 16px; }
    html body.csi-page :is(.grid-container, .booking-layout, .taxi-layout, .stays-layout) {
        grid-template-columns: minmax(0, 1fr);
    }
    html body.csi-page :is(.modern-form, .booking-form-card, .csi-shared-enquiry-card) {
        padding: clamp(1rem, 4vw, 1.5rem);
    }
    html body.csi-page .section-title { max-width: 100%; }
    html body.page-index .csi-home-section { padding-block: 3.5rem; }
    html body.csi-page .site-footer { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }
}

/* Home reviews: native scrolling remains available with JavaScript disabled. */
html body.page-index .csi-home-reviews__shell { display: block; }
.csi-home-reviews__intro a {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.8rem;
    color: #1d4d3d;
    font-weight: 700;
}
.csi-review-carousel { min-width: 0; }
.csi-review-carousel__track {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    padding: 0.3rem 0 1.25rem;
    scrollbar-width: thin;
    scrollbar-color: #719281 transparent;
}
.csi-home-review {
    flex: 0 0 calc((100% - 2.5rem) / 3);
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: clamp(1.25rem, 2vw, 1.75rem);
    border: 1px solid var(--csi-surface-border);
    border-radius: 20px;
    background: #fffdf8;
    box-shadow: 0 6px 20px rgba(29, 77, 61, 0.04);
    scroll-snap-align: start;
    overflow-wrap: anywhere;
}
.csi-home-review__top { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem; }
.csi-home-review .csi-rv-stars { display: inline-flex; font-size: 1.15rem; letter-spacing: 0.1em; }
.csi-home-review .csi-rv-star { color: #ddd9cf; }
.csi-home-review .csi-rv-star--on { color: #9e652c; }
.csi-home-review__service { color: #506458; font-size: 0.75rem; }
html body.page-index .csi-home-review h3 { margin: 0 0 0.75rem; font-size: 1.0625rem; }
.csi-home-review blockquote { margin: 0 0 1.5rem; padding: 0; border: 0; color: #506458; font-size: 0.9375rem; line-height: 1.8; white-space: pre-line; }
.csi-home-review__author { display: flex; align-items: center; gap: 0.75rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--csi-surface-border); }
.csi-home-review__avatar { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: 50%; background: #eaf0e8; color: #1d4d3d; font-weight: 700; }
.csi-home-review__author strong { display: block; font-size: 0.875rem; }
.csi-home-review__author div > span { display: block; font-size: 0.75rem; color: #506458; }
.csi-review-carousel__controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 0.75rem; }
.csi-review-carousel__controls[hidden] { display: none; }
.csi-review-carousel__status { font-size: 0.8125rem; color: #506458; }
.csi-review-carousel__controls > div { display: flex; gap: 0.5rem; }
.csi-review-carousel__controls button { width: 46px; height: 46px; border: 1px solid var(--csi-surface-border); border-radius: 50%; background: #fffdf8; color: #1d4d3d; font-size: 1.25rem; cursor: pointer; }
.csi-review-carousel__controls button:hover { background: #eaf0e8; }
.csi-review-carousel__controls button:disabled { opacity: 0.4; cursor: default; }
.csi-home-reviews__empty { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--csi-surface-border); border-radius: 20px; background: #fffdf8; }
html body.page-index .csi-home-reviews__empty h3 { font-size: 1.25rem; margin-bottom: 0.75rem; }
.csi-home-reviews__empty p { max-width: 42rem; color: #506458; }
.csi-home-reviews__empty > a { flex-shrink: 0; }
@media (max-width: 1024px) {
    .csi-home-review { flex-basis: calc((100% - 1.25rem) / 2); }
}
@media (max-width: 640px) {
    .csi-home-review { flex-basis: 92%; }
    .csi-home-reviews__empty { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
}
