/* ==========================================================================
   VB CONVENTIONS - AVENTURA STYLE STYLESHEET (SPLIT SCREEN CLARIFIED)
   Primary Theme: Dark Premium Luxury with Olive/Sage Green Palette
   Colors: 50:#F4F6F2  100:#E7EBE3  200:#D3DACD  300:#BDC7B5
           400:#A2AE97  500:#7A8466  600:#667053  700:#525B43
           800:#3F4735  900:#2A2F24
   ========================================================================== */

/* --- Custom Variables & Reset --- */
*, *::before, *::after {
    box-sizing: border-box;
}
:root {
    /* Palette */
    --p50:  #F4F6F2;
    --p100: #E7EBE3;
    --p200: #D3DACD;
    --p300: #BDC7B5;
    --p400: #A2AE97;
    --p500: #7A8466;
    --p600: #667053;
    --p700: #525B43;
    --p800: #3F4735;
    --p900: #2A2F24;

    /* Semantic aliases */
    --color-primary:      #7A8466;  /* 500 — brand */
    --color-primary-dark: #525B43;  /* 700 */
    --color-bg:           #3F4735;  /* 800 — dark backgrounds */
    --color-bg-alt:       #2A2F24;  /* 900 — darker panel */
    
    --color-light-bg:  #F4F6F2;  /* 50 */
    --color-light-text: #2A2F24; /* 900 */
    
    --color-text:     #F4F6F2;   /* 50 — on dark surfaces */
    --color-text-rgb: 244, 246, 242;
    --color-gold:     #A2AE97;   /* 400 — accent / highlight */
    --color-gold-gradient: linear-gradient(270deg, #A2AE97, #BDC7B5);
    --color-muted:    #BDC7B5;   /* 300 — subdued text */
    --color-border:   rgba(162, 174, 151, 0.25);  /* 400 @ 25% */
    
    /* Logo Sizes - Edit here to change logo size globally */
    --logo-size-nav: 165px;
    --logo-size-nav-mobile: 135px;
    --logo-size-footer: 44px;
    
    --font-serif: 'Instrument Serif', Georgia, serif;
    --font-sans: 'Inter Tight', sans-serif;
    
    --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-menu: cubic-bezier(0.6, 0.14, 0, 1);
    --transition-smooth: all 0.45s var(--ease-out-quint);
    
    --shadow-soft: 0 10px 30px rgba(42, 47, 36, 0.15);
    --shadow-dark: 0 20px 50px rgba(42, 47, 36, 0.45);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 100px;
    background-color: var(--color-bg);
}

body {
    font-family: var(--font-sans);
    font-size: 15px;
    line-height: 1.4;
    color: var(--color-text);
    background-color: var(--color-bg);
    overflow-x: hidden;
}

/* --- Font Hierarchies --- */
.h0, .h0_italic {
    font-family: var(--font-serif);
    font-size: clamp(3.5rem, 10vw, 9.5rem);
    font-weight: 400;
    line-height: 0.82;
    letter-spacing: -0.04em;
}
.h0 i, .h0_italic {
    font-style: italic;
}

.h1, .h1_italic {
    font-family: var(--font-serif);
    font-size: clamp(3rem, 7vw, 6.5rem);
    font-weight: 400;
    line-height: 0.88;
    letter-spacing: -0.03em;
}
.h1 i, .h1_italic {
    font-style: italic;
}

.h2, .h2_italic {
    font-family: var(--font-serif);
    font-size: clamp(2.2rem, 5.5vw, 4.2rem);
    font-weight: 400;
    line-height: 0.92;
    letter-spacing: -0.02em;
}
.h2 i, .h2_italic {
    font-style: italic;
}

.h3, .h3_italic {
    font-family: var(--font-serif);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.01em;
}
.h3 i, .h3_italic {
    font-style: italic;
}

.h4, .h4_italic {
    font-family: var(--font-serif);
    font-size: clamp(1.4rem, 2.5vw, 2.1rem);
    font-weight: 400;
    line-height: 1.1;
}

.h5, .h5_italic {
    font-family: var(--font-serif);
    font-size: clamp(1.15rem, 1.8vw, 1.55rem);
    font-weight: 400;
    line-height: 1.25;
}
.h5_italic {
    font-style: italic;
}

.p1 {
    font-family: var(--font-sans);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.p2 {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
}

.p3-gallery-description {
    color: #3F4735;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.5;
}

.p3-visual-pf{
    color: #525B43;
    font-weight: 600;

}
.p3 {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.5;
    color: rgba(244, 246, 242, 0.7);
}

.c1 {
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.c2 {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.c3 {
    font-family: var(--font-sans);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-gold);
}

.text-gold {
    color: var(--color-bg);
}

.gold-hover-link {
    transition: var(--transition-smooth);
}
.gold-hover-link:hover {
    color: var(--color-gold);
}

a {
    color: inherit;
    text-decoration: none;
    transition: var(--transition-smooth);
}

/* --- Preloader Screen --- */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--color-bg);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}

.loader-wrap {
    height: 150px;
    width: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.loader-circle {
    width: 60px;
    height: 60px;
    border: 2px solid var(--color-border);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.preloader-text-wrapper {
    position: absolute;
    bottom: 10%;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.preloader-text {
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text);
    opacity: 0;
    transform: translateY(15px);
    transition: all 0.5s ease;
    position: absolute;
}

.preloader-text.active {
    opacity: 0.7;
    transform: translateY(0);
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* --- Transparent Split Header Navigation --- */
.header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 95px;
    background: transparent;
    border-bottom: 1px solid rgba(42, 47, 36, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 40px;
    z-index: 100;
    transition: var(--transition-smooth);
}

/* Sticky Solid State */
.header.sticky {
    position: fixed;
    background-color: #2A2F24;
    border-bottom: 1px solid rgba(42, 47, 36, 0.2);
    box-shadow: var(--shadow-soft);
    height: 85px;
}

.left-part, .right-part {
    display: flex;
    align-items: center;
}

.left-part {
    gap: 60px;
    width: 50%;
}

.right-part {
    gap: 40px;
    width: 50%;
    justify-content: flex-end;
}

/* Logo Design (Adapts dynamically to stickiness) */
.logo-icon {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wrap-logo-icon {
    width: var(--logo-size-nav);
    height: auto;
    display: flex;
    align-items: center;
}

.footer .wrap-logo-icon {
    width: var(--logo-size-nav);
}

@media (max-width: 1024px) {
    .footer .wrap-logo-icon {
        width: var(--logo-size-nav-mobile);
    }
}

.inner-img-logo {
    width: 100%;
    height: auto;
}

.wrap-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.logo-name-top {
    font-family: var(--font-serif);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--color-primary); /* Brand green on light side */
    letter-spacing: -0.02em;
    transition: var(--transition-smooth);
}

.logo-name-sub {
    font-family: var(--font-sans);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-muted);
    transition: var(--transition-smooth);
}

/* Sticky state colors */
.header.sticky .logo-icon {
    color: var(--color-primary);
}

/* Header Controls */
.header-controls {
    display: flex;
    gap: 16px;
}

#phoneToggleBtn {
    display: none;
}

.header-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border: 1.5px solid rgba(244, 246, 242, 0.35);
    border-radius: 50px;
    background: rgba(244, 246, 242, 0.10);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #F4F6F2;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.header-btn:hover {
    border-color: rgba(244, 246, 242, 0.7);
    color: #F4F6F2;
    background: rgba(244, 246, 242, 0.18);
}

/* Sticky states for header buttons */
.header.sticky .header-btn {
    border-color: rgba(122, 132, 102, 0.35);
    color: var(--color-primary);
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.header.sticky .header-btn:hover {
    border-color: var(--color-primary-dark);
    color: var(--color-primary-dark);
    background-color: rgba(122, 132, 102, 0.08);
}

/* Sticky states for desktop links */
.header.sticky .desk-nav-link {
    color: #BDC7B5;
}
.header.sticky .desk-nav-link:hover {
    color: var(--color-primary);
}

/* Default state over video: all nav links white */
.desk-nav-link {
    font-weight: 600;
}

/* Sticky states for phone link */
.header.sticky .phone-link {
    color: #BDC7B5;
}
.header.sticky .phone-link:hover {
    color: var(--color-primary);
}

/* Sticky state: mobile buttons revert to solid dark */
.header.sticky #menuToggleBtn {
    background: rgba(122, 132, 102, 0.08) !important;
    border-color: rgba(122, 132, 102, 0.25) !important;
    color: var(--color-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.header.sticky #menuToggleBtn:hover {
    background: rgba(122, 132, 102, 0.15) !important;
    border-color: var(--color-primary) !important;
}
.header.sticky #phoneToggleBtn {
    background: rgba(122, 132, 102, 0.08) !important;
    border-color: rgba(122, 132, 102, 0.25) !important;
    color: var(--color-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
.header.sticky #phoneToggleBtn:hover {
    background: rgba(122, 132, 102, 0.15) !important;
    border-color: var(--color-primary) !important;
}

/* Sticky states for enquire button */
.header.sticky .wrap-btn {
    background-color: var(--color-primary);
    color: var(--color-text);
}
.header.sticky .header-btn-book:hover .wrap-btn {
    background-color: var(--color-primary-dark);
    color: var(--color-text);
}

/* Video Active states (when scrolling over video hero) */
.header.video-active .header-btn {
    border-color: rgba(244, 246, 242, 0.35);
    color: #F4F6F2;
    background: rgba(244, 246, 242, 0.10);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.header.video-active .header-btn:hover {
    border-color: rgba(244, 246, 242, 0.7);
    color: #F4F6F2;
    background: rgba(244, 246, 242, 0.18);
}

.menu-icon svg {
    width: 12px;
    height: 12px;
}
.menu-icon svg path {
    transition: var(--transition-smooth);
}

.menu-toggle-btn:hover .menu-icon svg path.n1 { transform: translateY(2px); }
.menu-toggle-btn:hover .menu-icon svg path.n3 { transform: translateY(-2px); }

.chevron-icon svg {
    transition: var(--transition-smooth);
}
.services-dropdown-btn:hover .chevron-icon svg {
    transform: translateY(2px);
}

/* Desktop right links (always on dark background) */
.desk-nav {
    display: flex;
    gap: 24px;
}

.desk-nav-link {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(244, 246, 242, 0.8);
    padding: 6px 0;
    position: relative;
}

.desk-nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-gold);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s var(--ease-out-quint);
}

.desk-nav-link:hover {
    color: var(--color-gold);
}
.desk-nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.phone-link {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--color-text);
}
.phone-link:hover {
    color: var(--color-gold);
}

/* Enquire Now pill button */
.wrap-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 24px;
    background-color: var(--color-text);
    border-radius: 50px;
    color: var(--color-bg);
    transition: var(--transition-smooth);
}

.wrap-btn .text {
    display: block;
    height: 16px;
    overflow: hidden;
    position: relative;
}

.btn-slider-txt {
    display: block;
    transition: var(--transition-smooth);
}
.btn-slider-txt:nth-child(2) {
    position: absolute;
    top: 100%;
    left: 0;
}

.icon-wrap {
    width: 14px;
    height: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-smooth);
}

.header-btn-book:hover .wrap-btn,
.show-more-gallery-btn:hover .wrap-btn {
    background-color: var(--color-primary);
    color: var(--color-text);
}

.header-btn-book:hover .btn-slider-txt:nth-child(1),
.show-more-gallery-btn:hover .btn-slider-txt:nth-child(1) { transform: translateY(-100%); }

.header-btn-book:hover .btn-slider-txt:nth-child(2),
.show-more-gallery-btn:hover .btn-slider-txt:nth-child(2) { transform: translateY(-100%); }

.header-btn-book:hover .icon-wrap,
.show-more-gallery-btn:hover .icon-wrap { transform: rotate(45deg); }

/* --- Overlay Menu Navigation --- */
.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 2000;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
    transition: visibility 0.8s var(--ease-menu);
}

.menu-overlay-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-bg);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.8s var(--ease-menu);
}

.menu-overlay.active {
    visibility: visible;
    pointer-events: auto;
}

.menu-overlay.active .menu-overlay-bg {
    transform: scaleY(1);
}

.menu-overlay-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    padding: 120px 80px;
    opacity: 0;
    transform: translateY(-30px);
    transition: opacity 0.4s ease-in, transform 0.5s var(--ease-menu);
}

.menu-overlay.active .menu-overlay-content {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.7s ease-out 0.2s, transform 0.8s var(--ease-menu) 0.1s;
}

.left-top-overlay {
    position: absolute;
    top: 40px;
    left: 80px;
    right: 80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.btn-close-menu {
    background: transparent;
    border: none;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}
.btn-close-menu:hover { color: var(--color-gold); }

.icon-cross {
    font-size: 2rem;
    line-height: 1;
    font-weight: 300;
    transition: var(--transition-smooth);
}
.btn-close-menu:hover .icon-cross { transform: rotate(180deg); }

.nav-overlay-links {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.overlay-nav-title {
    color: var(--color-muted);
    margin-bottom: 24px;
}

.warp-page-links {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.overlay-link {
    display: block;
    width: max-content;
}
.overlay-link span {
    display: inline-block;
    transition: var(--transition-smooth);
}
.overlay-link:hover span {
    color: var(--color-gold);
    transform: translateX(12px);
}

.overlay-contacts {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid var(--color-border);
    padding-left: 60px;
}

.overlay-contact-title {
    color: var(--color-muted);
    margin-bottom: 16px;
}

.overlay-phone {
    font-size: 2.2rem;
    color: var(--color-text);
    margin-bottom: 20px;
}
.overlay-phone:hover { color: var(--color-gold); }

.overlay-address { margin-bottom: 30px; }

.overlay-socials {
    display: flex;
    gap: 16px;
}
.overlay-socials a {
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    transition: var(--transition-smooth);
}
.overlay-socials a:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    transform: translateY(-4px);
}

/* --- Services Dropdown Overlay Menu --- */
.services-dropdown-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1500;
    visibility: hidden;
    pointer-events: none;
    transition: var(--transition-smooth);
}

.dropdown-backdrop {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(42, 47, 36, 0.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 0.5s ease;
}

.dropdown-menu-box {
    position: absolute;
    top: 95px;
    left: 180px;
    width: 600px;
    background-color: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 24px;
    padding: 40px;
    transform: translateY(-20px);
    opacity: 0;
    transition: var(--transition-smooth);
    box-shadow: var(--shadow-dark);
}

.services-dropdown-overlay.active {
    visibility: visible;
    pointer-events: auto;
}
.services-dropdown-overlay.active .dropdown-backdrop { opacity: 1; }
.services-dropdown-overlay.active .dropdown-menu-box {
    transform: translateY(0);
    opacity: 1;
}

.btn-close-dropdown { display: none; }

.dropdown-title {
    color: var(--color-muted);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 12px;
    margin-bottom: 20px;
}

.dropdown-services-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dropdown-service-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-radius: 12px;
    transition: var(--transition-smooth);
}
.dropdown-service-item:hover {
    background-color: var(--color-bg);
    color: var(--color-gold);
}

.small-arrow {
    font-size: 1.2rem;
    transition: var(--transition-smooth);
    opacity: 0;
    transform: translateX(-10px);
}
.dropdown-service-item:hover .small-arrow {
    opacity: 1;
    transform: translateX(0);
}

/* ==========================================================================
   HERO — Cinematic Full-Bleed Design
   ========================================================================== */


/* ---- Ken Burns zoom keyframe on the video ---- */
@keyframes kenBurns {
    0%   { transform: scale(1.0) translate(0, 0); }
    50%  { transform: scale(1.06) translate(-1%, 1%); }
    100% { transform: scale(1.0) translate(0, 0); }
}

/* ---- Text reveal (clip-path slide up) ---- */
@keyframes heroLineReveal {
    from { clip-path: inset(0 0 100% 0); transform: translateY(30px); opacity: 0; }
    to   { clip-path: inset(0 0 0% 0);   transform: translateY(0);    opacity: 1; }
}

/* ---- Subtle fade+rise for secondary elements ---- */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---- Scroll cue line drop ---- */
@keyframes scrollLineDrop {
    0%   { transform: scaleY(0); transform-origin: top; }
    50%  { transform: scaleY(1); transform-origin: top; }
    51%  { transform: scaleY(1); transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ---- Location dot pulse ---- */
@keyframes locationPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(122, 132, 102, 0.5); }
    50%       { box-shadow: 0 0 0 6px rgba(122, 132, 102, 0); }
}

/* ---- Hero shell ---- */
.hero {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
}

/* ---- Video background ---- */
.hero-video-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.hero-video-element {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    animation: kenBurns 22s ease-in-out infinite;
}

/* ---- Multi-layer gradient overlay ---- */
.hero-overlay {
    position: absolute;
    inset: 0;
    background:
        /* Dark vignette top for nav legibility */
        linear-gradient(to bottom, rgba(42, 47, 36, 0.72) 0%, transparent 32%),
        /* Rich branded bottom for text legibility */
        linear-gradient(to top,   rgba(42, 47, 36, 0.9) 0%, rgba(63, 71, 53, 0.45) 45%, transparent 75%),
        /* Slight left shadow to frame text */
        linear-gradient(to right, rgba(42, 47, 36, 0.5) 0%, transparent 55%);
    z-index: 2;
}

/* ---- Main content wrapper ---- */
.hero-content {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0 72px 60px;
    /* Offset for the fixed navbar */
    padding-top: 95px;
}

/* ---- Top bar: location + est ---- */
.hero-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    opacity: 0;
    animation: heroFadeUp 0.7s cubic-bezier(0.25,1,0.5,1) 1.1s forwards;
}

.hero-location-tag {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(244, 246, 242, 0.75);
}

.hero-location-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--color-primary);
    flex-shrink: 0;
    animation: locationPulse 2.5s ease-in-out infinite 2s;
}

.hero-est-tag {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(244, 246, 242, 0.9);
    background: rgba(244, 246, 242, 0.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1.5px solid rgba(244, 246, 242, 0.3);
    border-radius: 20px;
    padding: 7px 16px;
}

/* ---- Headline block ---- */
.hero-headline {
    display: flex;
    flex-direction: column;
    gap: 0;
    /* Centred vertically, lives in flex column */
    margin: auto 0;
}

/* Each line is a clip-path container */
.hero-line-wrap {
    overflow: hidden;
    line-height: 0.88;
}

.hero-line {
    display: block;
    font-family: var(--font-serif);
    font-size: clamp(5rem, 12vw, 11.5rem);
    font-weight: 400;
    line-height: 0.88;
    letter-spacing: -0.035em;
    color: #F4F6F2;
    font-style: italic;
    clip-path: inset(0 0 100% 0);
    transform: translateY(30px);
    opacity: 0;
}

.hl-1 { animation: heroLineReveal 0.85s cubic-bezier(0.16,1,0.3,1) 1.3s forwards; }
.hl-2 { animation: heroLineReveal 0.85s cubic-bezier(0.16,1,0.3,1) 1.55s forwards; }
.hl-3 {
    animation: heroLineReveal 0.95s cubic-bezier(0.16,1,0.3,1) 1.8s forwards;
    /* Celebrations gets the brand accent */
    color: #BDC7B5; /* 300 — lighter sage so it reads on dark video */
}

/* Celebrations slightly larger / extra weight visually */
.hero-line-celebrations .hero-line {
    font-size: clamp(5rem, 13vw, 12.5rem);
}

/* ---- Bottom bar ---- */
.hero-bottom-bar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    opacity: 0;
    animation: heroFadeUp 0.8s cubic-bezier(0.25,1,0.5,1) 2.3s forwards;
}

/* Tagline */
.hero-tagline-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.hero-rule {
    width: 48px;
    height: 1px;
    background: rgba(244, 246, 242, 0.45);
}

.hero-tagline {
    font-family: var(--font-serif);
    font-size: clamp(0.95rem, 1.3vw, 1.2rem);
    font-weight: 400;
    line-height: 1.55;
    color: rgba(244, 246, 242, 0.72);
    font-style: normal;
    max-width: 280px;
}

.hero-tagline em {
    font-style: italic;
    color: rgba(244, 246, 242, 0.9);
}

/* Category tags */
.hero-categories {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.hero-cat {
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(244, 246, 242, 0.55);
    white-space: nowrap;
}

.hero-cat-sep {
    color: rgba(244, 246, 242, 0.25);
    font-size: 1rem;
}

/* ---- Scroll cue ---- */
.hero-scroll-cue {
    position: absolute;
    bottom: 44px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    z-index: 4;
    opacity: 0;
    animation: heroFadeUp 0.7s ease 2.7s forwards;
}

.scroll-cue-line {
    width: 1px;
    height: 52px;
    background: rgba(244, 246, 242, 0.35);
    position: relative;
    overflow: hidden;
}

.scroll-cue-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #F4F6F2;
    animation: scrollLineDrop 1.8s ease-in-out infinite 3s;
    transform: scaleY(0);
    transform-origin: top;
}

.scroll-cue-label {
    font-family: var(--font-sans);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(244, 246, 242, 0.4);
}

/* ---- Scroll-driven parallax (applied via JS) ---- */
.hero-content {
    will-change: transform, opacity;
}

/* ---- Hide old split-screen classes if still referenced ---- */
.hero-split-container,
.hero-left-col,
.hero-right-col,
.video-preview-wrapper,
.video-overlay-gradient,
.video-description,
.video-bottom-tips,
.hero-title-left,
.hero-title-right {
    display: none !important;
}

/* ==========================================================================
   HERO RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
    .hero-content {
        padding: 95px 32px 56px;
    }

    .hero-categories {
        display: none; /* Too crowded on tablet */
    }
}

@media (max-width: 768px) {
    .hero-content {
        padding: 80px 24px 48px;
    }

    .hero-top-bar {
        justify-content: flex-start;
        gap: 16px;
    }

    .hero-est-tag {
        display: none;
    }

    .hero-bottom-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .hero-tagline {
        max-width: 100%;
        font-size: clamp(0.9rem, 3.8vw, 1.05rem);
    }

    .hero-categories {
        display: none;
    }

    .hero-scroll-cue {
        bottom: 28px;
    }

    /* Header controls gap and alignment on mobile */
    .header-controls {
        display: flex;
        gap: 12px;
        align-items: center;
    }

    /* Circular Mobile Phone Toggle Button — frosted glass on video */
    #phoneToggleBtn {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 48px !important;
        height: 48px !important;
        border-radius: 50% !important;
        background: rgba(244, 246, 242, 0.18) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
        border: 1.5px solid rgba(244, 246, 242, 0.35) !important;
        color: #F4F6F2 !important;
        padding: 0 !important;
        cursor: pointer !important;
        transition: background 0.2s, border-color 0.2s !important;
        aspect-ratio: 1/1 !important;
    }
    
    #phoneToggleBtn:hover {
        background: rgba(244, 246, 242, 0.28) !important;
        border-color: rgba(244, 246, 242, 0.6) !important;
    }

    #phoneToggleBtn .icon {
        font-size: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Circular Mobile Menu Toggle Button — frosted pill on video */
    #menuToggleBtn {
        width: 48px !important;
        height: 48px !important;
        border-radius: 50% !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: rgba(244, 246, 242, 0.18) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
        border: 1.5px solid rgba(244, 246, 242, 0.35) !important;
        color: #F4F6F2 !important;
        aspect-ratio: 1/1 !important;
        transition: background 0.2s, border-color 0.2s !important;
    }
    
    #menuToggleBtn:hover {
        background: rgba(244, 246, 242, 0.28) !important;
        border-color: rgba(244, 246, 242, 0.6) !important;
    }

    #menuToggleBtn > span:not(.menu-icon) {
        display: none !important;
    }

    .menu-icon svg {
        width: 16px !important;
        height: 16px !important;
    }
}

/* --- Our Goal Section (Scroll Text Fill with Pin & Slide) --- */
@media (min-width: 1025px) {
    .our-goal-pin-wrapper {
        position: relative;
        height: 250vh; /* Scroll volume for pinning */
    }
    
    .our-goal {
        position: sticky;
        top: 0;
        height: 100vh;
        padding: 100px 80px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        background-color: #2A2F24;
        border-top: 1px solid rgba(122, 132, 102, 0.2);
        border-bottom: 1px solid rgba(122, 132, 102, 0.2);
        color: var(--color-primary);
        overflow: hidden;
    }

    .goal-header {
        text-align: center;
        margin-bottom: 50px;
    }

    .goal-content-grid {
        display: grid;
        grid-template-columns: 1.5fr 1fr;
        gap: 80px;
        align-items: center;
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
    }
}

@media (max-width: 1024px) {
    .our-goal-pin-wrapper {
        position: relative;
        height: auto;
    }
    
    .our-goal {
        position: relative;
        height: auto;
        padding: 80px 24px;
        display: flex;
        flex-direction: column;
        gap: 40px;
        background-color: #2A2F24;
        border-top: 1px solid rgba(122, 132, 102, 0.2);
        border-bottom: 1px solid rgba(122, 132, 102, 0.2);
        color: var(--color-primary);
    }

    .goal-header {
        text-align: center;
    }

    .goal-content-grid {
        display: flex;
        flex-direction: column;
        gap: 40px;
        width: 100%;
    }
}

.our-goal .description.p3 {
    color: var(--color-primary) !important;
    opacity: 0.9;
}

.our-goal .h2,
.our-goal .c3,
.our-goal .experience-counter {
    color: var(--color-primary);
}

.our-goal .decor-image-pill {
    border: 2px solid var(--color-primary);
}

.our-goal .plus-icon {
    color: var(--color-primary);
}

.our-goal .scroll-reveal-paragraph {
    color: rgba(162, 174, 151, 0.3);
}

.our-goal .reveal-word.highlight {
    color: var(--color-primary);
}

.goal-left-content {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.goal-right-content {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 1024px) {
    .goal-right-content {
        justify-content: center;
    }
}

.about-team-info {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 40px;
    align-items: start;
}

.wrap-avatars-box {
    display: flex;
    align-items: center;
    gap: 16px;
}

.decor-image-pill {
    width: 90px;
    height: 90px;
    border-radius: 100px;
    overflow: hidden;
    border: 2px solid var(--color-primary);
    box-shadow: var(--shadow-soft);
}

.pill-decor-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.experience-counter {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.plus-icon {
    color: var(--color-primary);
    font-size: 0.8rem;
    margin-bottom: 4px;
}

/* Paragraph with scroll-reveal classes */
.scroll-reveal-paragraph {
    line-height: 1.15;
    color: rgba(244, 246, 242, 0.22);
    transition: var(--transition-smooth);
}

.reveal-word {
    display: inline-block;
    transition: color 0.4s ease;
}

.reveal-word.highlight {
    color: var(--color-text);
}

/* --- Services List Section (Aventura Minimal Grid) --- */
.services-list-section {
    padding: 120px 80px;
    background-color: var(--color-bg);
}

.services-section-header {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 80px;
}

.section-tag-gold {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 16px;
}

.services-section-header .h2 {
    margin-bottom: 20px;
}

.services-minimal-grid {
    display: flex;
    flex-direction: column;
    max-width: 1100px;
    margin: 0 auto;
}

.minimal-service-row {
    display: grid;
    grid-template-columns: 1.2fr 1.8fr 0.5fr;
    align-items: center;
    padding: 40px 0;
    border-top: 1px solid var(--color-border);
    transition: var(--transition-smooth);
}

.minimal-service-row:last-child {
    border-bottom: 1px solid var(--color-border);
}

.service-meta {
    display: flex;
    align-items: center;
    gap: 30px;
}

.service-num {
    font-weight: 700;
}

.service-explanation {
    padding-right: 40px;
}

.service-arrow-link {
    display: flex;
    justify-content: flex-end;
}

.arrow-circle {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: var(--color-text);
    transition: var(--transition-smooth);
}

/* Hover triggers */
.minimal-service-row:hover {
    color: var(--color-gold);
}

.minimal-service-row:hover .arrow-circle {
    background-color: var(--color-gold);
    border-color: var(--color-gold);
    color: var(--color-bg);
    transform: rotate(45deg);
}

/* --- Gallery Section --- */
.gallery-section {
    padding: 120px 80px;
    background-color: #2A2F24;
    border-top: 1px solid rgba(122, 132, 102, 0.2);
    border-bottom: 1px solid rgba(122, 132, 102, 0.2);
    color: var(--color-primary);
}

.gallery-section .section-tag-gold,
.gallery-section .h2 {
    color: var(--color-primary);
}

.gallery-filters {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 60px;
}

.gallery-filter-btn {
    background: transparent;
    border: 1px solid rgba(162, 174, 151, 0.35);
    border-radius: 50px;
    padding: 12px 28px;
    color: var(--color-muted);
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.gallery-filter-btn.active, .gallery-filter-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-text);
    background-color: var(--color-primary);
}

.new-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.new-gallery-card {
    position: relative;
    aspect-ratio: 1/1;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
    cursor: pointer;
    transition: var(--transition-smooth);
}

.img-zoom-wrap {
    width: 100%;
    height: 100%;
    overflow: hidden;
    transition: var(--transition-smooth);
}

.g-card-img, .g-card-video-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-smooth);
}

.g-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(42, 47, 36, 0.92);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    padding: 24px;
    text-align: center;
    transition: var(--transition-smooth);
}

.g-card-icon {
    font-size: 1.5rem;
    color: var(--color-gold);
    margin-bottom: 12px;
    transform: translateY(-10px);
    transition: var(--transition-smooth);
}

.play-overlay-icon {
    width: 46px;
    height: 46px;
    border: 2px solid var(--color-gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 3px;
}

.g-card-title {
    font-family: var(--font-serif);
    font-size: 1.8rem;
    font-weight: 500;
    color: var(--color-text);
}

.g-card-cat {
    margin-top: 6px;
}

/* Show More Button Container */
.gallery-more-btn-wrap {
    display: flex;
    justify-content: center;
    margin-top: 50px;
}

.show-more-gallery-btn {
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

/* Full Gallery Popup Modal */
.gallery-popup-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(42, 47, 36, 0.97);
    backdrop-filter: blur(15px);
    z-index: 1100;
    overflow-y: auto;
    padding: 60px 40px;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.gallery-popup-modal.active {
    display: block;
    opacity: 1;
}

.gallery-modal-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.gallery-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    border-bottom: 1px solid rgba(244, 246, 242, 0.1);
    padding-bottom: 24px;
}

.gallery-modal-header h2 {
    margin: 0;
    color: #F4F6F2;
}

.btn-close-gallery-modal {
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid rgba(244, 246, 242, 0.2);
    color: #F4F6F2;
    border-radius: 50px;
    padding: 10px 20px;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.btn-close-gallery-modal:hover {
    border-color: #F4F6F2;
    background: rgba(244, 246, 242, 0.1);
}

.btn-close-gallery-modal .icon-cross {
    font-size: 1.2rem;
    line-height: 1;
}

.modal-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    padding-bottom: 60px;
}

@media (max-width: 1024px) {
    .modal-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .gallery-popup-modal {
        padding: 40px 24px;
    }
    .gallery-modal-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }
    .btn-close-gallery-modal {
        align-self: flex-end;
    }
}

@media (max-width: 600px) {
    .modal-gallery-grid {
        grid-template-columns: 1fr;
    }
}

/* Card Hover Styles */
.new-gallery-card:hover .g-card-overlay {
    opacity: 1;
}
.new-gallery-card:hover .g-card-img,
.new-gallery-card:hover .g-card-video-preview {
    transform: scale(1.08);
}
.new-gallery-card:hover .g-card-icon {
    transform: translateY(0);
}

/* Lightbox Modal */
.lightbox-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(42, 47, 36, 0.98);
    z-index: 3000;
    align-items: center;
    justify-content: center;
    padding: 40px;
}

.close-lightbox {
    position: absolute;
    top: 30px;
    right: 40px;
    color: var(--color-text);
    font-size: 3rem;
    font-weight: 200;
    cursor: pointer;
    transition: var(--transition-smooth);
}
.close-lightbox:hover { color: var(--color-gold); }

.lightbox-content {
    max-width: 900px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.lightbox-content img,
.lightbox-content video {
    max-width: 100%;
    max-height: 70vh;
    border-radius: 16px;
    box-shadow: var(--shadow-dark);
    outline: none;
}

.lightbox-caption {
    font-family: var(--font-serif);
    color: var(--color-text);
    font-size: 1.8rem;
    margin-top: 20px;
    text-align: center;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 8px;
    width: 100%;
}

/* --- Testimonials Section (Centered Quote Block) --- */
.testimonials-section {
    padding: 120px 80px;
    background-color: var(--color-bg);
}

.slider-box {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    overflow: hidden;
    padding: 40px 20px;
}

.slider-track {
    display: flex;
    transition: transform 0.6s var(--ease-out-quint);
}

.slider-slide {
    min-width: 100%;
    flex-shrink: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stars-gold {
    font-size: 0.95rem;
    color: var(--color-gold);
    margin-bottom: 30px;
}

.quote-text {
    font-family: var(--font-serif);
    font-size: clamp(1.25rem, 3.8vw, 2.6rem); /* Reduced minimum size from 2rem to 1.25rem for mobile */
    font-style: italic;
    line-height: 1.2;
    color: var(--color-text);
    margin-bottom: 30px;
    max-width: 800px;
}

.quote-author {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.author-label { margin-bottom: 4px; }

/* Slider Controls */
.slide-control {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-color: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    box-shadow: var(--shadow-soft);
    transition: var(--transition-smooth);
    z-index: 10;
}
.slide-control:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    background-color: var(--color-bg);
}

.prev-slide { left: 0; }
.next-slide { right: 0; }

.slide-dots-indicator {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 30px;
}

.s-dot {
    width: 6px;
    height: 6px;
    background-color: rgba(162, 174, 151, 0.25);
    border-radius: 50%;
    cursor: pointer;
    transition: var(--transition-smooth);
}
.s-dot.active {
    background-color: var(--color-gold);
    width: 20px;
    border-radius: 10px;
}

/* --- Booking & Enquiry Form Section --- */
.booking-section {
    padding: 120px 80px;
    background-color: #2A2F24;
    border-top: 1px solid rgba(122, 132, 102, 0.2);
}

.booking-split-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
}

/* --- Form Card --- */
.booking-form-box {
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    padding: 60px;
    border-radius: 28px;
    position: relative;
    box-shadow: var(--shadow-soft);
}

.form-intro-text { margin-bottom: 40px; }

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Pill Input Styles */
.input-container-pill {
    position: relative;
    margin-bottom: 24px;
    width: 100%;
}

/* ---- Sage Glassmorphic Input Fields ---- */
.pill-input {
    width: 100%;
    padding: 24px 24px 10px;
    border: 1.5px solid rgba(162, 174, 151, 0.3);
    border-radius: 100px;
    background: rgba(63, 71, 53, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--color-text);
    outline: none;
    transition: var(--transition-smooth);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 500;
}

.pill-input-select {
    width: 100%;
    padding: 17px 24px;
    border: 1.5px solid rgba(162, 174, 151, 0.3);
    border-radius: 100px;
    background: rgba(63, 71, 53, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgba(244, 246, 242, 0.55);
    outline: none;
    transition: var(--transition-smooth);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 500;
    appearance: none;
    -webkit-appearance: none;
}

.pill-input-date {
    width: 100%;
    padding: 17px 24px;
    border: 1.5px solid rgba(162, 174, 151, 0.3);
    border-radius: 100px;
    background: rgba(63, 71, 53, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgba(244, 246, 242, 0.55);
    outline: none;
    transition: var(--transition-smooth);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 500;
    color-scheme: dark;
}

.pill-textarea {
    width: 100%;
    height: 120px;
    padding: 22px 24px 10px;
    border: 1.5px solid rgba(162, 174, 151, 0.3);
    border-radius: 20px;
    background: rgba(63, 71, 53, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--color-text);
    outline: none;
    resize: none;
    transition: var(--transition-smooth);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 500;
}

.pill-placeholder {
    position: absolute;
    top: 50%;
    left: 24px;
    transform: translateY(-50%);
    transform-origin: top left;
    transition: var(--transition-smooth);
    color: rgba(244, 246, 242, 0.5);
    pointer-events: none;
    font-size: 0.9rem;
    font-family: var(--font-sans);
}

.textarea-lbl {
    top: 24px;
    transform: none;
}

/* Focus glow on sage glass inputs */
.pill-input:focus, .pill-textarea:focus, .pill-input-select:focus, .pill-input-date:focus {
    border-color: rgba(162, 174, 151, 0.7);
    box-shadow: 0 0 0 4px rgba(122, 132, 102, 0.12);
    background: rgba(63, 71, 53, 0.6);
}

.pill-input-select:focus, .pill-input-select:valid,
.pill-input-date:focus, .pill-input-date:valid {
    color: var(--color-text);
}

.pill-input:focus + .pill-placeholder,
.pill-input:not(:placeholder-shown) + .pill-placeholder {
    transform: scale(0.75) translateY(-20px);
    color: rgba(189, 199, 181, 0.9);
}

.pill-textarea:focus + .pill-placeholder,
.pill-textarea:not(:placeholder-shown) + .pill-placeholder {
    transform: scale(0.75) translateY(-20px);
    color: rgba(189, 199, 181, 0.9);
}

/* Submit button */
.submit-pill-btn {
    width: 100%;
    border: none;
    border-radius: 100px;
    background: linear-gradient(135deg, var(--color-primary) 0%, #525B43 100%);
    color: #F4F6F2;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: var(--transition-smooth);
    box-shadow: 0 8px 24px rgba(42, 47, 36, 0.4);
}

.btn-icon { transition: var(--transition-smooth); }
.submit-pill-btn:hover {
    background: linear-gradient(135deg, #525B43 0%, var(--color-primary) 100%);
    box-shadow: 0 12px 32px rgba(42, 47, 36, 0.5);
    transform: translateY(-1px);
}
.submit-pill-btn:hover .btn-icon { transform: translateX(5px); }

/* Success Toast */
.success-toast {
    display: none;
    align-items: center;
    gap: 16px;
    background-color: var(--color-bg-alt);
    color: var(--color-text);
    padding: 24px;
    border-radius: 20px;
    box-shadow: var(--shadow-dark);
    border-left: 4px solid var(--color-gold);
    position: absolute;
    bottom: 30px;
    left: 30px;
    right: 30px;
    z-index: 100;
    animation: slideInUp 0.3s ease-out;
}

.toast-check-icon {
    font-size: 2rem;
    color: var(--color-gold);
}

.toast-body-text strong {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    display: block;
    line-height: 1.2;
}

.toast-body-text p {
    font-size: 0.85rem;
    color: rgba(244, 246, 242, 0.7);
    margin-top: 4px;
}

/* Directions Box */
.booking-directions-box {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.directions-card {
    background-color: #E7EBE3;
    border: 1px solid rgba(122, 132, 102, 0.2);
    padding: 40px;
    border-radius: 28px;
    box-shadow: var(--shadow-soft);
    color: var(--color-primary);
}

.directions-card .h3 {
    font-size: 1.8rem;
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(122, 132, 102, 0.2);
    padding-bottom: 12px;
    color: var(--color-primary);
}

.address-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}
.address-row:last-child { margin-bottom: 0; }

.address-row.align-top {
    align-items: flex-start;
}

.card-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--color-primary);
    flex-shrink: 0;
}

.address-row.align-top .card-icon {
    margin-top: 3px;
}
.card-details p { margin: 0; color: var(--color-primary-dark); }
.card-details a { color: var(--color-primary); }
.card-details a:hover { color: var(--color-primary-dark); }

.minimal-map-card {
    background-color: #E7EBE3;
    border: 1px solid rgba(122, 132, 102, 0.2);
    border-radius: 28px;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}

.minimal-map-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    background-color: rgba(122, 132, 102, 0.08);
    border-bottom: 1px solid rgba(122, 132, 102, 0.2);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-primary);
}
.minimal-map-header i { color: var(--color-primary); }

.map-action-link {
    color: var(--color-primary);
    font-weight: 700;
}
.map-action-link:hover { color: var(--color-primary-dark); }

.map-wrapper iframe { display: block; }

/* --- Footer Section --- */
.footer {
    background-color: #2A2F24;
    color: rgba(244, 246, 242, 0.75);
    padding: 100px 80px 0;
    border-top: 1px solid rgba(162, 174, 151, 0.12);
}

.footer-columns {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto 60px;
}

.footer-brand-para {
    margin-top: 24px;
    margin-bottom: 24px;
}

.brand-social-list {
    display: flex;
    gap: 12px;
}
.brand-social-list a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: rgba(244, 246, 242, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
}
.brand-social-list a:hover {
    background-color: var(--color-gold);
    color: var(--color-bg);
    transform: translateY(-3px);
}

.footer-column-title {
    margin-bottom: 24px;
    position: relative;
    padding-bottom: 8px;
}
.footer-column-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 1px;
    background-color: var(--color-gold);
}

.footer-column-links ul li { margin-bottom: 12px; }
.footer-column-links ul li a { font-size: 0.88rem; }
.footer-column-links ul li a:hover {
    color: var(--color-gold);
    padding-left: 4px;
}

.footer-column-contact p {
    margin-bottom: 16px;
    display: flex;
    gap: 12px;
}
.footer-column-contact p i {
    color: var(--color-gold);
    margin-top: 3px;
}

.footer-bottom-bar {
    border-top: 1px solid var(--color-border);
    padding: 24px 0;
    font-size: 0.75rem;
}

.footer-bottom-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    color: rgba(244, 246, 242, 0.4);
}

.footer-legal-links a {
    margin-left: 20px;
    color: rgba(244, 246, 242, 0.4);
}
.footer-legal-links a:hover { color: var(--color-gold); }

/* --- Responsive Adjustments --- */
@media (max-width: 1024px) {
    .header:not(.sticky) {
        padding: 0 24px;
        position: absolute;
        background-color: transparent;
        border-bottom: none;
    }
    
    .header .wrap-logo-icon {
        width: var(--logo-size-nav-mobile);
    }
    
    .header .logo-icon {
        color: var(--color-primary);
    }
    .header .header-btn {
        border-color: rgba(122, 132, 102, 0.3);
        color: var(--color-primary);
    }
    

    
    .our-goal {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 80px 24px;
    }
    
    .goal-left { padding-right: 0; }
    .about-team-info {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .services-list-section {
        padding: 100px 24px;
    }
    
    .services-section-header {
        margin-bottom: 35px;
    }
    
    .minimal-service-row {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 30px 0;
    }
    
    .service-arrow-link {
        justify-content: flex-start;
    }
    
    .gallery-section {
        padding: 100px 24px;
    }
    
    .new-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    
    .testimonials-section {
        padding: 100px 24px;
    }
    
    .booking-section {
        padding: 80px 20px;
    }

    .booking-split-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .booking-form-box {
        padding: 36px 28px;
        border-radius: 20px;
    }

    .booking-form-box .h2 {
        font-size: clamp(1.8rem, 6vw, 2.4rem);
    }

    .directions-card {
        padding: 28px 24px;
        border-radius: 20px;
    }

    .minimal-map-card {
        border-radius: 20px;
    }
    
    .footer {
        padding: 80px 24px 0;
    }
    
    .footer-columns {
        grid-template-columns: 1.5fr 1fr 1fr;
        gap: 40px;
    }
    
    .footer-column-contact { grid-column: span 3; }
}

@media (max-width: 768px) {
    .header {
        height: 80px;
    }
    
    
    
    /* Hide Enquire Now and secondary links on mobile header to prevent crowding */
    .right-part {
        display: none;
    }
    
    .services-dropdown-btn {
        display: none;
    }
    
    .left-part {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .wrap-logo-icon {
        width: 115px; /* Optimised larger size for small phone screens */
    }
    
    .menu-overlay-content {
        grid-template-columns: 1fr;
        padding: 120px 24px 40px;
    }
    
    .left-top-overlay {
        top: 24px;
        left: 24px;
        right: 24px;
    }
    
    .overlay-contacts {
        border-left: none;
        padding-left: 0;
        margin-top: 40px;
        border-top: 1px solid var(--color-border);
        padding-top: 30px;
    }
    
    .dropdown-menu-box {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        border-radius: 0;
        border: none;
        padding: 100px 24px 40px;
        transform: translateY(100%);
    }
    
    .btn-close-dropdown {
        display: flex;
        align-items: center;
        gap: 8px;
        background: transparent;
        border: none;
        color: var(--color-text);
        cursor: position;
        position: absolute;
        top: 24px;
        right: 24px;
    }
    
    .btn-close-dropdown .wrap-cross {
        font-size: 2rem;
        line-height: 1;
    }
    
    .services-dropdown-overlay.active .dropdown-menu-box {
        transform: translateY(0);
    }
    
    .booking-form-box {
        padding: 28px 20px;
        border-radius: 16px;
    }

    .booking-section {
        padding: 60px 16px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .pill-input,
    .pill-input-select,
    .pill-input-date,
    .pill-textarea {
    box-sizing: border-box; /* 👈 Forces padding inside the width */
    width: 100%;            /* Ensure they don't exceed their parent container */
    }
    .pill-input,
    .pill-input-select,
    .pill-input-date {
        font-size: 0.88rem;
        padding: 15px 20px;
    }

    .pill-input {
        padding: 22px 20px 8px;
    }

    .pill-textarea {
        font-size: 0.88rem;
        padding: 18px 20px 8px;
    }

    .pill-placeholder {
        left: 20px;
        font-size: 0.85rem;
    }

    .directions-card {
        padding: 24px 20px;
    }
    .new-gallery-grid {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 8px !important;
    }
    
    /* Hide text labels on compact main grid thumbnails to prevent overlap */
    .new-gallery-grid .g-card-title,
    .new-gallery-grid .g-card-cat {
        display: none !important;
    }
    
    .new-gallery-grid .g-card-icon {
        font-size: 1.1rem !important;
        margin-bottom: 0 !important;
        transform: none !important;
    }
    
    .new-gallery-grid .play-overlay-icon {
        width: 32px !important;
        height: 32px !important;
    }
    
    .gallery-filters {
        margin-bottom: 35px;
        gap: 8px;
    }
    
    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
    
    /* Testimonials Google Reviews mobile optimizations */
    .testimonials-section {
        padding: 80px 20px;
    }
    
    .testimonials-section .slide-control {
        display: flex !important;
        position: absolute !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        background-color: rgba(42, 47, 36, 0.65) !important;
        backdrop-filter: blur(5px) !important;
        border: 1px solid rgba(162, 174, 151, 0.25) !important;
        color: #F4F6F2 !important;
        z-index: 10 !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 50% !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        box-shadow: 0 4px 15px rgba(42, 47, 36, 0.3) !important;
    }
    
    .testimonials-section .prev-slide {
        left: 12px !important;
    }
    
    .testimonials-section .next-slide {
        right: 12px !important;
    }
    
    .testimonials-section .slide-control:active {
        background-color: var(--color-primary) !important;
    }
    
    .testimonials-section .slide-dots-indicator {
        display: flex !important;
        justify-content: center !important;
        gap: 8px !important;
        margin-top: 24px !important;
    }
    
    .slider-box {
        overflow: hidden !important;
        padding: 20px 0 !important;
    }
    
    .slider-track {
        display: flex !important;
        flex-direction: row !important;
    }
    
    .slider-slide {
        min-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
        background-color: var(--color-bg-alt) !important;
        border: 1px solid rgba(162, 174, 151, 0.12) !important;
        padding: 40px 24px !important;
        border-radius: 16px !important;
        box-shadow: 0 8px 30px rgba(42, 47, 36, 0.12) !important;
    }
    
    .stars-gold {
        margin-bottom: 20px;
        font-size: 0.85rem;
    }
    
    .quote-text {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 45px !important;
        box-sizing: border-box !important;
        font-size: clamp(1rem, 4.4vw, 1.25rem) !important;
        margin-bottom: 24px !important;
        line-height: 1.45 !important;
    }
    
    .quote-author .p1 {
        font-size: 0.9rem;
    }
    
    .quote-author .c3 {
        font-size: 0.65rem;
    }
    
    .footer-columns {
        grid-template-columns: 1fr;
        gap: 45px;
    }
    
    .footer-column-contact { grid-column: span 1; }
    
    .footer-bottom-container {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
    
    .footer-legal-links a {
        margin: 0 10px;
    }
}

/* ==========================================================================
   PHONE DROPDOWN — Navbar
   ========================================================================== */

.phone-dropdown-wrap {
    position: relative;
}

/* Trigger button — inherits .phone-link base styles */
.phone-dropdown-trigger {
    display: flex;
    align-items: center;
    gap: 7px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--color-text);
    padding: 0;
    transition: var(--transition-smooth);
}

.phone-dropdown-trigger:hover {
    color: var(--color-gold);
}

/* Sticky header state */
.header.sticky .phone-dropdown-trigger {
    color: #BDC7B5;
}
.header.sticky .phone-dropdown-trigger:hover {
    color: var(--color-primary);
}

.phone-chevron {
    font-size: 0.6rem;
    transition: transform 0.3s var(--ease-out-quint);
}

/* Rotates chevron when open */
.phone-dropdown-wrap.open .phone-chevron {
    transform: rotate(180deg);
}

/* Dropdown panel */
.phone-dropdown-panel {
    position: absolute;
    top: calc(100% + 14px);
    right: 0;
    min-width: 200px;
    background-color: var(--p900);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 8px;
    box-shadow: var(--shadow-dark);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.3s var(--ease-out-quint),
                transform 0.3s var(--ease-out-quint),
                visibility 0.3s var(--ease-out-quint);
    z-index: 500;
    pointer-events: none;
}

/* Open state */
.phone-dropdown-wrap.open .phone-dropdown-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

/* Individual phone number rows */
.phone-dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 9px;
    color: var(--p300);
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: var(--transition-smooth);
}

.phone-dropdown-item i {
    font-size: 0.75rem;
    color: var(--color-primary);
    flex-shrink: 0;
}

.phone-dropdown-item:hover {
    background-color: var(--p800);
    color: var(--p50);
}

.phone-dropdown-item:hover i {
    color: var(--color-gold);
}

/* Divider between the two numbers */
.phone-dropdown-item + .phone-dropdown-item {
    border-top: 1px solid var(--color-border);
    margin-top: 2px;
}

/* On sticky header — lighter panel background */
.header.sticky .phone-dropdown-panel {
    background-color: var(--p900);
    border-color: var(--color-border);
}
