        :root {
            --pfl-ink: #2A1132;
            --pfl-green: #3F1D46;
            --pfl-forest: #2A1132;
            --pfl-accent: #B89768;
            --pfl-cream: #faf8fb;
            --pfl-base: #ffffff;
            --pfl-surface: #F4F4F4;
            --pfl-muted: #1A1A1A;
            --pfl-label: #9a7b5e;
            --pfl-border: #E0E0E0;
        }
        body {
            background-color: #FFFFFF;
            color: #1A1A1A;
            /* overflow-x: clip lets us hide horizontal overflow WITHOUT creating
               a scroll container that would break position: sticky on the footer. */
            overflow-x: clip;
        }

        /* Curtain-reveal footer pattern:
           The page content wrapper sits ABOVE the sticky-bottom footer in the
           stacking order with a solid background, so the content scrolls UP
           and reveals the footer from beneath. */
        .page-curtain {
            position: relative;
            z-index: 10;
            background-color: #FFFFFF;
        }
        #footer {
            position: -webkit-sticky;
            position: sticky;
            bottom: 0;
            z-index: 0;
            margin-bottom: 0;
        }
        html, body {
            margin-bottom: 0;
        }
        /* --- Animations & Utilities --- */
        .fade-up {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }
        .fade-up.visible {
            opacity: 1;
            transform: translateY(0);
        }
        /* Hero: gradient background + cinematic grade (no photography) */
        .hero-bg-stack {
            transform-origin: center center;
            background-color: #120a16;
            background-image: linear-gradient(155deg, #1a0f1f 0%, #2a1430 40%, #0d060f 100%);
        }
        /* Cinematic overlays: readable copy left, depth bottom, soft gold lift */
        .hero-overlay {
            background:
                linear-gradient(to top, rgba(8, 4, 12, 0.92) 0%, rgba(8, 4, 12, 0.35) 28%, transparent 52%),
                linear-gradient(to right, rgba(18, 10, 22, 0.92) 0%, rgba(26, 26, 26, 0.45) 45%, rgba(42, 20, 48, 0.25) 100%),
                radial-gradient(ellipse 100% 70% at 75% 0%, rgba(184, 151, 104, 0.14), transparent 52%);
        }
        /* Ultra-fine grain — reads as "film / editorial" on large displays */
        .hero-grain {
            position: absolute;
            inset: 0;
            pointer-events: none;
            opacity: 0.045;
            mix-blend-mode: overlay;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
        }
        @media (prefers-reduced-motion: reduce) {
            .hero-grain {
                opacity: 0.03;
            }
        }
        /* Hero — layered parallax + CTAs (GSAP + Lucide + Tailwind) */
        #hero .hero-title-mask {
            display: block;
            overflow: hidden;
            padding-bottom: 0.12em;
        }
        #hero .hero-title-shift {
            display: inline-block;
            transform-origin: 50% 100%;
            will-change: transform;
        }
        .hero-cta-primary {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            border-radius: 9999px;
            padding: 0.85rem 1.35rem;
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s ease, background-color 0.25s ease, color 0.25s ease;
        }
        .hero-cta-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 40px rgba(0, 0, 0, 0.25);
        }
        .hero-cta-ghost {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            border-radius: 9999px;
            padding: 0.85rem 1.35rem;
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            border: 1px solid rgba(255, 255, 255, 0.45);
            background: rgba(255, 255, 255, 0.08);
            backdrop-filter: blur(10px);
            transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
        }
        .hero-cta-ghost:hover {
            transform: translateY(-2px);
            border-color: rgba(184, 151, 104, 0.85);
            background: rgba(255, 255, 255, 0.14);
        }
        .hero-stats {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        .hero-stat {
            display: inline-flex;
            align-items: center;
            gap: 0.55rem;
            color: rgba(255, 255, 255, 0.92);
            font-size: 0.875rem;
            font-weight: 400;
            letter-spacing: 0.02em;
            line-height: 1.35;
            text-transform: none;
            background: none;
            border: none;
            border-radius: 0;
            padding: 0;
            backdrop-filter: none;
        }
        .hero-stat__icon {
            flex-shrink: 0;
            width: 1.05rem;
            height: 1.05rem;
            color: #B89768;
        }
        @media (min-width: 768px) {
            .hero-stat {
                font-size: 0.9375rem;
                gap: 0.65rem;
            }
            .hero-stat__icon {
                width: 1.15rem;
                height: 1.15rem;
            }
        }

        .hero-scroll-hint {
            will-change: transform, opacity;
        }
        @keyframes hero-scroll-nudge {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(6px); }
        }
        .hero-scroll-hint__icon {
            animation: hero-scroll-nudge 2.2s ease-in-out infinite;
        }
        @media (prefers-reduced-motion: reduce) {
            .hero-scroll-hint__icon {
                animation: none;
            }
        }

        /* === Hero creative layer (GSAP-driven): aurora, embers, sheen, curtain === */
        #hero-aurora {
            position: absolute;
            inset: -12%;
            z-index: 0;
            pointer-events: none;
            overflow: hidden;
            filter: blur(40px);
            opacity: 0.8;
            will-change: transform;
            transform: translateZ(0);
        }
        .hero-aurora__blob {
            position: absolute;
            border-radius: 50%;
            mix-blend-mode: screen;
            will-change: transform;
            transform: translateZ(0);
            backface-visibility: hidden;
        }
        .hero-aurora__blob--gold {
            width: 46vw; height: 46vw;
            top: -10%; right: 0%;
            background: radial-gradient(circle at 50% 50%, rgba(184, 151, 104, 0.55), rgba(184, 151, 104, 0.06) 58%, transparent 70%);
        }
        .hero-aurora__blob--plum {
            width: 54vw; height: 54vw;
            bottom: -18%; left: -8%;
            background: radial-gradient(circle at 50% 50%, rgba(99, 46, 110, 0.6), rgba(63, 29, 70, 0.08) 58%, transparent 70%);
        }
        .hero-aurora__blob--rose {
            width: 32vw; height: 32vw;
            top: 32%; left: 42%;
            background: radial-gradient(circle at 50% 50%, rgba(160, 95, 125, 0.42), transparent 66%);
        }
        #hero-particles {
            position: absolute;
            inset: 0;
            z-index: 2;
            pointer-events: none;
            overflow: hidden;
        }
        .hero-particle {
            position: absolute;
            bottom: 0;
            width: 3px; height: 3px;
            border-radius: 50%;
            background: rgba(184, 151, 104, 0.9);
            box-shadow: 0 0 6px rgba(184, 151, 104, 0.85);
            opacity: 0;
            will-change: transform, opacity;
        }
        /* Opening greeting curtain */
        #hero-curtain {
            position: fixed;
            inset: 0;
            z-index: 9999;
            background: #0d060f;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 1.35rem;
            pointer-events: none;
            will-change: transform;
            backface-visibility: hidden;
            transform: translateZ(0);
            /* Safety net: if GSAP/JS never runs, the curtain still lifts and never blocks the page */
            animation: hero-curtain-fallback 0.8s ease 3.4s forwards;
        }
        /* When JS drives the lift, disable the CSS fallback to avoid a double animation */
        #hero-curtain.is-controlled {
            animation: none;
        }
        #hero-curtain.is-lifted {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }
        @keyframes hero-curtain-fallback {
            to {
                transform: translateY(-100%);
                visibility: hidden;
                pointer-events: none;
            }
        }
        @media (prefers-reduced-motion: reduce) {
            #hero-curtain {
                animation: hero-curtain-fallback 0.01s linear 0.2s forwards;
            }
        }
        .hero-curtain__brand {
            font-family: "Playfair Display", Georgia, serif;
            font-weight: 400;
            font-size: clamp(1.65rem, 4.4vw, 3.1rem);
            letter-spacing: 0.16em;
            text-transform: uppercase;
            color: #f5ecdc;
            opacity: 0;
            will-change: transform, opacity;
        }
        .hero-curtain__brand b {
            color: #B89768;
            font-weight: 400;
        }
        .hero-curtain__line {
            width: min(260px, 56vw);
            height: 1px;
            transform: scaleX(0);
            transform-origin: 50% 50%;
            background: linear-gradient(to right, transparent, #B89768 42%, #f6e7c6 50%, #B89768 58%, transparent);
            box-shadow: 0 0 22px rgba(184, 151, 104, 0.5);
            will-change: transform;
        }

        /* === Hero content reveal — CSS-driven & bulletproof ===
           Content is fully visible if JS never runs. JS adds `.hero-js` to arm the hidden
           start state (while the opaque curtain covers it), then `.hero-lit` when the curtain
           lifts to play the staggered reveal. No GSAP tween can ever leave content stranded. */
        #hero.hero-js .hero-kicker,
        #hero.hero-js .hero-stat,
        #hero.hero-js .hero-copy-line,
        #hero.hero-js .hero-tagline,
        #hero.hero-js .hero-scroll-hint {
            opacity: 0;
            transform: translateY(28px);
            transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
        }
        #hero.hero-js .hero-title-shift {
            transform: translateY(120%);
            transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
        }
        #hero.hero-js .hero-cta-row a,
        #hero.hero-js .hero-cta-row button {
            opacity: 0;
            transition: opacity 0.8s ease;
        }
        /* Lit — settle everything into place */
        #hero.hero-js.hero-lit .hero-kicker,
        #hero.hero-js.hero-lit .hero-stat,
        #hero.hero-js.hero-lit .hero-copy-line,
        #hero.hero-js.hero-lit .hero-tagline,
        #hero.hero-js.hero-lit .hero-scroll-hint {
            opacity: 1;
            transform: none;
        }
        #hero.hero-js.hero-lit .hero-title-shift {
            transform: translateY(0);
        }
        #hero.hero-js.hero-lit .hero-cta-row a,
        #hero.hero-js.hero-lit .hero-cta-row button {
            opacity: 1;
        }
        /* Staggered cadence as the hero lights up */
        #hero.hero-js.hero-lit .hero-title-shift { transition-delay: 0.05s; }
        #hero.hero-js.hero-lit .hero-tagline { transition-delay: 0.45s; }
        #hero.hero-js.hero-lit .hero-kicker { transition-delay: 0.34s; }
        #hero.hero-js.hero-lit .hero-stat:nth-child(1) { transition-delay: 0.46s; }
        #hero.hero-js.hero-lit .hero-stat:nth-child(2) { transition-delay: 0.53s; }
        #hero.hero-js.hero-lit .hero-stat:nth-child(3) { transition-delay: 0.60s; }
        #hero.hero-js.hero-lit .hero-copy-line:nth-child(1) { transition-delay: 0.60s; }
        #hero.hero-js.hero-lit .hero-copy-line:nth-child(2) { transition-delay: 0.67s; }
        #hero.hero-js.hero-lit .hero-copy-line:nth-child(3) { transition-delay: 0.74s; }
        #hero.hero-js.hero-lit .hero-cta-row a,
        #hero.hero-js.hero-lit .hero-cta-row button { transition-delay: 0.82s; }
        #hero.hero-js.hero-lit .hero-scroll-hint { transition-delay: 0.95s; }
        @media (prefers-reduced-motion: reduce) {
            #hero.hero-js .hero-kicker,
            #hero.hero-js .hero-stat,
            #hero.hero-js .hero-copy-line,
            #hero.hero-js .hero-tagline,
            #hero.hero-js .hero-scroll-hint,
            #hero.hero-js .hero-cta-row a,
            #hero.hero-js .hero-cta-row button,
            #hero.hero-js .hero-title-shift {
                opacity: 1;
                transform: none;
                transition: none;
            }
        }
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
        .gallery-item img {
            transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        .gallery-item:hover img {
            transform: scale(1.1);
        }

        /* --- Gallery: 3-row infinite sliders --- */
        .gallery-sliders-bleed {
            width: 100vw;
            max-width: 100vw;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
        }
        .gallery-marquee {
            overflow: hidden;
            width: 100%;
            -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 3%, #000 97%, transparent 100%);
            mask-image: linear-gradient(to right, transparent 0%, #000 3%, #000 97%, transparent 100%);
        }
        .gallery-marquee:hover .gallery-marquee__track {
            animation-play-state: paused;
        }
        .gallery-marquee__track {
            display: flex;
            width: max-content;
            gap: 1.25rem;
            animation: gallery-marquee-scroll linear infinite;
        }
        .gallery-marquee--reverse .gallery-marquee__track {
            animation-direction: reverse;
        }
        .gallery-marquee__set {
            display: flex;
            gap: 1.25rem;
        }
        @keyframes gallery-marquee-scroll {
            from { transform: translateX(0); }
            to { transform: translateX(-50%); }
        }
        .gallery-marquee-slide {
            position: relative;
            flex-shrink: 0;
            width: clamp(300px, 52vw, 640px);
            height: clamp(200px, 32vw, 360px);
            border-radius: 1.125rem;
            overflow: hidden;
            cursor: pointer;
            border: 1px solid rgba(255, 255, 255, 0.12);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
            transition: transform 0.35s ease, box-shadow 0.35s ease;
        }
        .gallery-marquee-slide:focus-visible {
            outline: 2px solid #B89768;
            outline-offset: 4px;
        }
        .gallery-marquee-slide:hover {
            transform: scale(1.03);
            box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
        }
        @media (min-width: 1024px) {
            .gallery-marquee-slide {
                width: clamp(380px, 42vw, 720px);
                height: clamp(240px, 26vw, 400px);
            }
        }
        .info-marquee-slide,
        .info-text-card__body,
        .amenity-text-slide__inner,
        .spec-text-header {
            box-sizing: border-box;
        }
        /* Highlight cards — slightly smaller than gallery-marquee-slide default */
        .info-marquee-slide {
            width: clamp(260px, 44vw, 520px) !important;
            height: clamp(168px, 26vw, 300px) !important;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: flex-start;
            padding: clamp(1.4rem, 2.6vw, 2rem) clamp(1.5rem, 2.6vw, 2.1rem);
            border-radius: 1.125rem;
            background: #3F1D46;
            border: 1px solid rgba(255, 255, 255, 0.12);
            box-shadow: 0 14px 32px -16px rgba(26, 10, 30, 0.55);
            cursor: default;
            position: relative;
            overflow: hidden;
            transition: border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
        }
        /* Gold accent rail on the left edge */
        .info-marquee-slide::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            width: 3px;
            background: #B89768;
        }
        .info-marquee-slide:hover {
            border-color: rgba(184, 151, 104, 0.7);
            background: #4a2153;
            box-shadow: 0 22px 46px -18px rgba(26, 10, 30, 0.7);
        }
        .info-marquee-slide__eyebrow {
            font-size: 0.62rem;
            letter-spacing: 0.24em;
            text-transform: uppercase;
            color: #d8b97e;
            font-weight: 700;
            margin-bottom: 0.6rem;
        }
        .info-marquee-slide__title {
            font-family: "Playfair Display", Marcellus, Georgia, serif;
            font-size: clamp(1.4rem, 2.1vw, 1.95rem);
            color: #ffffff;
            line-height: 1.12;
            margin: 0 0 0.4rem;
        }
        .info-marquee-slide__desc {
            font-size: clamp(0.8rem, 1.1vw, 0.92rem);
            color: rgba(255, 255, 255, 0.66);
            font-weight: 300;
            line-height: 1.45;
            margin: 0;
        }
        @media (min-width: 1024px) {
            .info-marquee-slide {
                width: clamp(320px, 36vw, 580px) !important;
                height: clamp(200px, 22vw, 340px) !important;
            }
        }
        .info-text-card {
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(145deg, #ffffff 0%, #faf8fb 45%, #f4f4f4 100%);
        }
        .info-text-card__body {
            text-align: center;
            padding: 2rem;
            width: 100%;
        }
        .info-text-card__eyebrow {
            display: block;
            font-size: 0.65rem;
            letter-spacing: 0.24em;
            text-transform: uppercase;
            color: #3F1D46;
            font-weight: 600;
            margin-bottom: 1rem;
        }
        .info-text-card__stat {
            font-family: "Playfair Display", Marcellus, Georgia, serif;
            font-size: clamp(3.5rem, 12vw, 6.5rem);
            line-height: 1;
            color: #3F1D46;
            margin: 0 0 0.25rem;
            animation: info-text-pulse 3s ease-in-out infinite;
        }
        .info-text-card__headline {
            font-family: "Playfair Display", Marcellus, Georgia, serif;
            font-size: clamp(1.25rem, 3vw, 1.85rem);
            color: #1A1A1A;
            margin: 0 0 0.75rem;
        }
        .info-text-card__line {
            font-size: clamp(0.85rem, 1.5vw, 1rem);
            color: rgba(26, 26, 26, 0.72);
            font-weight: 300;
            line-height: 1.5;
            margin: 0;
            max-width: 18rem;
            margin-left: auto;
            margin-right: auto;
        }
        @keyframes info-text-pulse {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.88; transform: scale(1.02); }
        }
        .amenity-text-slide__inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100%;
            padding: 3rem 2rem;
            text-align: center;
            background: linear-gradient(160deg, #3F1D46 0%, #2A1132 50%, #1a0f1f 100%);
        }
        .amenity-text-slide__title {
            font-family: "Playfair Display", Marcellus, Georgia, serif;
            font-size: clamp(2rem, 5vw, 3.5rem);
            color: #ffffff;
            margin: 0 0 1rem;
        }
        .amenity-text-slide__desc {
            font-size: clamp(1rem, 2vw, 1.25rem);
            color: rgba(255, 255, 255, 0.85);
            font-weight: 300;
            max-width: 36rem;
            line-height: 1.55;
            margin: 0;
        }
        .spec-text-header {
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #3F1D46 0%, #2A1132 100%);
        }
        .spec-header-main-icon {
            position: relative;
            z-index: 1;
            color: #B89768;
            stroke: #B89768;
            transition: transform 0.55s ease, opacity 0.35s ease;
        }
        .group:hover .spec-header-main-icon,
        .group:focus-within .spec-header-main-icon {
            transform: scale(1.06);
            opacity: 0.35;
        }
        .spec-header-hover {
            position: absolute;
            inset: 0;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(26, 26, 26, 0.42);
            opacity: 0;
            transition: opacity 0.35s ease;
            pointer-events: none;
        }
        .group:hover .spec-header-hover,
        .group:focus-within .spec-header-hover {
            opacity: 1;
        }
        .spec-header-hover__btn {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 3.5rem;
            height: 3.5rem;
            border-radius: 9999px;
            background: rgba(255, 255, 255, 0.95);
            color: #3F1D46;
            box-shadow: 0 8px 24px rgba(42, 17, 50, 0.25);
            transform: translateY(0.5rem);
            transition: transform 0.35s ease, background-color 0.3s ease, color 0.3s ease;
        }
        .group:hover .spec-header-hover__btn,
        .group:focus-within .spec-header-hover__btn {
            transform: translateY(0);
        }
        .spec-header-hover__btn svg {
            width: 1.5rem;
            height: 1.5rem;
            stroke: currentColor;
        }
        /* Shared hover icon treatment (spec cards, location, etc.) */
        .hover-icon-wrap {
            color: #3F1D46;
            transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
        }
        .hover-icon-wrap svg {
            stroke: currentColor;
        }
        .group:hover .hover-icon-wrap,
        .group:focus-within .hover-icon-wrap {
            background-color: #3F1D46;
            border-color: #3F1D46;
            color: #ffffff;
            transform: translateY(-2px);
        }
        .group:hover .hover-icon-wrap svg,
        .group:focus-within .hover-icon-wrap svg {
            stroke: #ffffff;
        }
        .location-feature__icon.hover-icon-wrap {
            background-color: rgba(63, 29, 70, 0.1);
            border: none;
        }
        .group:hover .location-feature__icon.hover-icon-wrap,
        .group:focus-within .location-feature__icon.hover-icon-wrap {
            background-color: #3F1D46;
        }
        @media (prefers-reduced-motion: reduce) {
            .gallery-marquee__track {
                animation: none;
                transform: none;
                flex-wrap: wrap;
                width: 100%;
                max-width: 100%;
            }
            .gallery-marquee__set:last-of-type {
                display: none;
            }
            .spec-header-hover {
                opacity: 1;
                background: rgba(26, 26, 26, 0.28);
            }
            .spec-header-main-icon {
                opacity: 0.5;
            }
            .spec-header-hover__btn {
                transform: none;
            }
        }

        /* --- 3D Brochure Styles (DearFlip) --- */
        .flipbook-container {
            width: 100%;
            min-height: 320px;
            max-height: min(85vh, 820px);
            height: auto;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            background-color: #F4F4F4; /* brand-greyLight */
            border: 1px solid #E0E0E0;
        }
        #brochure .flipbook-container ._df_book {
            width: 100%;
            min-height: 400px;
            height: 70vh;
        }
        #brochure .flipbook-container .df-container {
            background: #F4F4F4 !important;
        }

        /* Brochure — mobile & tablet: left-aligned intro; desktop-style flipbook */
        @media (max-width: 1023px) {
            #brochure .brochure-intro {
                text-align: left;
                margin-left: 0;
                margin-right: 0;
                max-width: none;
            }
            #brochure .brochure-intro h3,
            #brochure .brochure-intro > span.block {
                text-align: left !important;
            }
            #brochure .brochure-intro p.font-light {
                text-align: left !important;
                text-align: justify;
                text-justify: inter-word;
                hyphens: auto;
                -webkit-hyphens: auto;
            }
            #brochure .flipbook-container {
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
            }
            #brochure .flipbook-container ._df_book,
            #brochure .flipbook-container .df-container {
                min-height: 400px;
                height: 70vh;
            }
        }

        /* Gallery — mobile & tablet: left-aligned intro copy */
        @media (max-width: 1023px) {
            #gallery .gallery-intro {
                text-align: left;
                margin-left: 0;
                margin-right: 0;
                max-width: none;
            }
            #gallery .gallery-intro h2,
            #gallery .gallery-intro > span.block {
                text-align: left !important;
            }
            #gallery .gallery-intro p.font-light {
                text-align: left !important;
                text-align: justify;
                text-justify: inter-word;
                hyphens: auto;
                -webkit-hyphens: auto;
                padding-left: 0;
                padding-right: 0;
            }
            #gallery .gallery-hint {
                text-align: left !important;
                padding-left: 1.5rem;
                padding-right: 1.5rem;
            }
        }

        /* Location — mobile & tablet: left-aligned intro copy */
        @media (max-width: 1023px) {
            #location .location-intro {
                text-align: left;
                margin-left: 0;
                margin-right: 0;
                max-width: none;
            }
            #location .location-intro h2,
            #location .location-intro > span.block {
                text-align: left !important;
            }
            #location .location-intro p.font-light {
                text-align: left !important;
                text-align: justify;
                text-justify: inter-word;
                hyphens: auto;
                -webkit-hyphens: auto;
            }
        }

        /* —— Unit Plans (Architecture) —— */
        .layout-info-panel {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            justify-content: center;
            text-align: left;
            padding: clamp(1.5rem, 4vw, 3.5rem);
            background: linear-gradient(180deg, #ffffff 0%, #f4f4f4 100%);
            box-sizing: border-box;
        }
        /* Keep the feature grid spanning the full panel width when left-aligned */
        .layout-info-panel > .grid {
            width: 100%;
        }
        /* Retail shop cards — badge fills plum on hover, icon flips to white (explicit so it
           never relies on currentColor inheritance from Tailwind group-hover) */
        .shop-badge {
            background-color: rgba(63, 29, 70, 0.10);
            transition: background-color 0.3s ease;
        }
        .shop-badge i,
        .shop-badge svg {
            color: #3F1D46;
            transition: color 0.3s ease;
        }
        .shop-card:hover .shop-badge {
            background-color: #3F1D46;
        }
        .shop-card:hover .shop-badge i,
        .shop-card:hover .shop-badge svg {
            color: #ffffff;
        }
        #layout .layout-info-panel {
            min-height: min(240px, 42vh);
        }
        @media (min-width: 640px) {
            #layout .layout-info-panel {
                min-height: 280px;
            }
        }
        @media (min-width: 768px) {
            #layout .layout-info-panel {
                min-height: 340px;
            }
        }
        @media (min-width: 1024px) {
            #layout .layout-info-panel {
                min-height: 480px;
            }
        }
        .layout-info-panel__title {
            font-size: clamp(1.65rem, 4vw, 2.25rem);
            line-height: 1.15;
            margin: 0 0 0.75rem;
            max-width: 100%;
        }
        .layout-info-panel__tagline {
            font-size: clamp(1rem, 2.2vw, 1.2rem);
            font-weight: 300;
            line-height: 1.55;
            color: rgba(26, 26, 26, 0.82);
        }
        .layout-info-panel__desc {
            font-size: clamp(0.875rem, 2vw, 1.05rem);
            line-height: 1.55;
            margin: 0;
            max-width: 100%;
        }
        .layout-plans-shell .layout-content.hidden {
            display: none;
        }
        .layout-features-col__title {
            font-size: clamp(1.5rem, 3.5vw, 1.875rem);
            line-height: 1.2;
        }
        .layout-features-col__desc {
            font-size: clamp(0.9rem, 2vw, 1.05rem);
            line-height: 1.6;
        }
        .layout-features-list__item {
            font-size: clamp(0.875rem, 1.8vw, 1rem);
            line-height: 1.45;
        }
        .layout-info-panel__badge {
            display: inline-block;
            font-size: 0.65rem;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: #3F1D46;
            font-weight: 700;
            padding: 0.35rem 0.85rem;
            border: 1px solid rgba(63, 29, 70, 0.25);
            border-radius: 9999px;
            margin-bottom: 1.25rem;
        }
        @media (max-width: 1023px) {
            #layout .max-w-7xl {
                padding-left: max(1rem, env(safe-area-inset-left, 0px) + 0.5rem);
                padding-right: max(1rem, env(safe-area-inset-right, 0px) + 0.5rem);
            }
            #layout .layout-intro {
                align-items: flex-start !important;
                text-align: left;
                margin-left: 0;
                margin-right: 0;
                max-width: none;
            }
            #layout .layout-intro h2,
            #layout .layout-intro > span.block,
            #layout .layout-intro p {
                text-align: left !important;
            }
            #layout .layout-intro p.font-light {
                text-align: justify !important;
                text-justify: inter-word;
            }
            #layout .layout-content {
                position: relative;
                inset: auto;
            }
            #layout .layout-plans-shell {
                min-height: 0;
            }
            #layout .layout-plans-grid {
                width: 100%;
            }
            #layout .layout-info-panel {
                min-height: min(220px, 38vh) !important;
                height: auto !important;
                padding: 1.35rem 1.15rem !important;
            }
            #layout .layout-info-panel__title,
            #layout .layout-info-panel__tagline,
            #layout .layout-info-panel__desc {
                max-width: 100%;
            }
            #layout .layout-features-col {
                width: 100%;
                padding: 0.25rem 0.15rem 0.5rem !important;
            }
        }
        @media (max-width: 767px) {
            #layout .layout-tabs {
                flex-wrap: nowrap;
                justify-content: flex-start;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                overscroll-behavior-x: contain;
                scroll-snap-type: x proximity;
                max-width: 100%;
                padding-bottom: 0.35rem;
                margin-left: -0.15rem;
                margin-right: -0.15rem;
                padding-left: 0.15rem;
                padding-right: 0.15rem;
                scrollbar-width: none;
            }
            #layout .layout-tabs::-webkit-scrollbar {
                display: none;
            }
            #layout .layout-tab-btn {
                flex-shrink: 0;
                scroll-snap-align: start;
                min-height: 44px;
                padding: 0.65rem 1rem;
                font-size: 0.65rem;
                letter-spacing: 0.08em;
            }
            #layout .layout-plans-shell {
                padding: 1rem !important;
                border-radius: 1.25rem;
            }
            #layout .layout-plans-grid {
                gap: 1rem;
            }
            #layout .layout-info-panel {
                min-height: min(200px, 36vh) !important;
                padding: 1.15rem 1rem !important;
            }
            #layout .layout-info-panel__title {
                font-size: clamp(1.45rem, 6vw, 1.75rem);
            }
            #layout .layout-info-panel__tagline,
            #layout .layout-info-panel__desc {
                font-size: 0.875rem;
                line-height: 1.5;
            }
            #layout .layout-features-col {
                text-align: center;
                display: flex;
                flex-direction: column;
                align-items: center;
            }
            #layout .layout-features-col__title,
            #layout .layout-features-col__desc {
                text-align: center;
                width: 100%;
                max-width: 22rem;
            }
            #layout .layout-features-list {
                width: 100%;
                max-width: 20rem;
                text-align: left;
            }
            #layout .layout-features-list__item {
                justify-content: flex-start;
            }
        }
        @media (max-width: 380px) {
            #layout .layout-tab-btn {
                font-size: 0.6rem;
                padding: 0.6rem 0.85rem;
            }
            #layout .layout-info-panel {
                min-height: 180px !important;
            }
            #layout .layout-info-panel__title {
                font-size: 1.35rem;
            }
        }

        /* --- reCAPTCHA Custom Styles --- */
        .recaptcha-checkbox {
            border: none;
            font-size: 1px;
            height: 28px;
            margin: 4px;
            width: 28px;
            overflow: visible;
            outline: 0;
            vertical-align: text-bottom;
            cursor: pointer;
            position: relative;
            display: inline-block;
        }
        .recaptcha-checkbox-border {
            border-radius: 2px;
            background-color: #fff;
            border: 2px solid #c1c1c1;
            font-size: 1px;
            height: 24px;
            position: absolute;
            width: 24px;
            z-index: 1;
            transition: all 0.2s ease;
        }
        .recaptcha-checkbox:hover .recaptcha-checkbox-border {
            border-color: #b2b2b2;
            box-shadow: inset 0 1px 1px rgba(0,0,0,.1);
        }
        .recaptcha-checkbox-checkmark {
            background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAATCAMAAADQov9jAAAAaVBMVEUAAAD///////////////////////////////////////////////////////////8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAACx7+mbAAAAInRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIv8lLwAAAP9JREFUeNrt1dsNgyAURuFDLwWxrSBF8f6rbI21aYhAsvN3gngSkZFf5QDG3uuPmRvONxD94e0P3B/uL5C65+4PxH+/nCl03f4B1K4PAIReOwD47r4BIuvQF6jSFgQAS1oUAM1OAfB2GgC0c9oDoFN4CVABGhQAgLvJAG+7QBsBHhQCQDpcARquA+0E2DZ5DMPFnxvQn4lO0Q4j0a0nVPPuD4F/6P5XoY/uX4HoAvcryAcoo/gCig6VGhQZUFho+f/B4sz+dZBky7I0j2SGhRlZOaFA4SEhFl7/d/XfxctEeER4VPd/8vY2b7tXpvLh5e9REqFhIiGi/rmSnBm/AT/4AAAAAElFTkSuQmCC");
            background-repeat: no-repeat;
            border: none;
            height: 30px;
            left: -5px;
            outline: 0;
            position: absolute;
            width: 38px;
            display: none;
            z-index: 2;
            top: -3px;
        }
        .recaptcha-checkbox.recaptcha-checked .recaptcha-checkbox-checkmark {
            display: block;
            background-position: 0 -600px;
        }
        .recaptcha-checkbox.recaptcha-checked .recaptcha-checkbox-border {
            background-color: #f9f9f9;
        }
        .recaptcha-checkbox-spinner-gif {
            border-radius: 2px;
            background-color: #fff;
            background-size: 24px 24px;
            border: 2px solid #c1c1c1;
            height: 24px;
            left: 0;
            position: absolute;
            top: 0;
            width: 24px;
            display: none;
            z-index: 3;
        }
        .recaptcha-checkbox.recaptcha-loading .recaptcha-checkbox-spinner-gif {
            display: block;
            background-image: url("data:image/gif;base64,R0lGODlhGAAYAPUAAP///wAAAKCgoO/v7/b29s/Pz6CgoPT09MDAwOjo6NnZ2fDw8Orq6ru7u66urrS0tNTU1OPj48PDw9/f39vb2+Dg4OTk5Ly8vLm5uejo6M3Nzerq6r+/v7m5ufHx8eLi4tTU1P///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQAeACwAAAAAGAAYAAAF8CAgjmRpnnmC6gwI3QqEaWutE8ZJrTkQBNu0cbt0LEFQFAUEisPhgEAwHIxIp/AQqVQukcVCMrkQR00ns+lYPB+KyPQCfTCbzcbRIJhwOJ16ux+LeDwiiQTjcWIyMDBCJBgZGRqLGRgZGokcGxwdHR2MHAQBABsgISEiI6MjIiMkJQAAHQUAHicoKSorLC0uLzAxMjMZGhscOjs8PT4/QEFCQ0RFRhYAR0hJSktMTU5PUFELUVJTVFVWV1hZLlpbXF1eX2BhYmNkZWZnaCBpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKiw0LjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys2lqtba3uLm6u7y9vr+PwcLDxMXGx8jJystBzc7P0NHS09TV1tfYMtna29zd3t/g4eLj5OXm5+jp6uvs7Q3u7/Dx8vP09fb3+Bz6+/z9/v/g+4KDP4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysuzzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLs1EAACH5BAUJAB4ALAAAAAAYABgAAAXwICCOZGmeBDMGCo0KhGmlMJJJ4FQTBNu0cdO0BMIsj0slUpFQJgaEYlIJFJBNRINQQDrUT8QxCSpfIAE0OnS6FAyww2gCqWCmkujhRp9MKtGGkFzHkzErTCehqyuWhPOBjCSTlZaXmJmTA52en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbK1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysuzUQAAIfkECQoAHgAsAAAAABgAGAAABesgII5kqZ54DAtVCoVVpcJKIhxtWTcNw7Zt3DQQHAIgCQyIhEIyEalkkBmDgzA5YCaZReLhcDaapM5wWHQypdQCFCtwkI8Xw0B0MR6Px0MiIplUGCDB4AUiRYQiBggKh4yNjo8gE5OUlZaXmJMJmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq9vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AOiAUbCIOCgsMDQ4PEBESExQVEBcYGRobHB0eHyAhIiM3JCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTXFFUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra7Uv7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+zsAAAA7");
            background-size: 24px 24px;
        }
        .recaptcha-checkbox.recaptcha-checked .recaptcha-checkbox-border {
            visibility: hidden;
        }
        .recaptcha-checkbox-container {
            display: inline-block;
            height: 100%;
        }

        /* Footer link underline (Shree Buildcon style) */
        .footer-link::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -2px;
            height: 1px;
            width: 100%;
            background-color: #B89768;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.3s ease;
        }
        .footer-link:hover::after {
            transform: scaleX(1);
        }

        /* Footer — social link magnetic slide on hover */
        .footer-soc-link {
            display: inline-block;
            transform: translateX(0);
            transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease;
        }
        .footer-soc-link:hover {
            transform: translateX(6px);
        }

        /* Footer — contact icon hover scale + tilt */
        .footer-contact-link .footer-icon {
            display: inline-block;
            transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .footer-contact-link:hover .footer-icon {
            transform: scale(1.12) rotate(-6deg);
        }

        @media (max-width: 1023px) {
            .footer-nav-scroll {
                -webkit-overflow-scrolling: touch;
                overscroll-behavior-x: contain;
                touch-action: pan-x;
            }
        }

        .footer-nav-item .footer-link::after {
            background-color: #B89768;
        }

        .footer-social-icons {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.875rem;
        }
        .footer-social-icon-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.75rem;
            height: 2.75rem;
            border-radius: 9999px;
            border: 1px solid rgba(184, 151, 104, 0.35);
            background: rgba(255, 255, 255, 0.06);
            color: #B89768;
            transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, box-shadow 0.35s ease;
        }
        .footer-social-icon-btn svg {
            width: 1.25rem;
            height: 1.25rem;
            fill: currentColor;
            transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .footer-social-icon-btn:hover {
            transform: translateY(-3px) scale(1.06);
            background: rgba(184, 151, 104, 0.16);
            border-color: rgba(184, 151, 104, 0.7);
            color: #ffffff;
            box-shadow: 0 12px 28px -10px rgba(184, 151, 104, 0.6);
        }
        .footer-social-icon-btn:hover svg {
            transform: scale(1.08) rotate(-4deg);
        }

        #footer .footer-wordmark p {
            will-change: transform, opacity;
        }

        /* Footer nav links — subtle lift alongside the gold underline */
        .footer-nav-item .footer-link {
            transition: color 0.3s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .footer-nav-item .footer-link:hover {
            transform: translateY(-2px);
        }

        /* Footer wordmark — one-time gold sheen sweep on reveal.
           The gradient is 3x wide and only ever positioned within 0%–100%, so the text
           is ALWAYS fully covered (never transparent). Falls back to solid white if
           background-clip:text is unsupported. */
        @supports ((-webkit-background-clip: text) or (background-clip: text)) {
            #footer .footer-wordmark__text {
                background-image: linear-gradient(100deg,
                    rgba(255, 255, 255, 0.95) 0%,
                    rgba(255, 255, 255, 0.95) 44%,
                    #f7e2b0 49%,
                    #e8c987 52%,
                    #b89768 55%,
                    rgba(255, 255, 255, 0.95) 60%,
                    rgba(255, 255, 255, 0.95) 100%);
                background-size: 300% 100%;
                background-position: 100% 0;
                background-repeat: no-repeat;
                -webkit-background-clip: text;
                background-clip: text;
                color: transparent;
            }
        }
        #footer .footer-wordmark__text.is-shimmered {
            animation: footer-wordmark-sheen 1.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
        }
        @keyframes footer-wordmark-sheen {
            0% { background-position: 100% 0; }
            100% { background-position: 0% 0; }
        }
        @media (prefers-reduced-motion: reduce) {
            #footer .footer-wordmark__text.is-shimmered { animation: none; }
        }

        /* About Forever Homes — deck-style cycling cards */
        .about-visual-frame {
            position: relative;
            overflow: hidden;
            perspective: 1200px;
        }
        .about-visual-hover {
            position: absolute;
            inset: 0;
            overflow: hidden;
            transform-style: preserve-3d;
        }
        .about-card {
            position: absolute;
            inset: 0;
            border-radius: inherit;
            overflow: hidden;
            transform-style: preserve-3d;
            backface-visibility: hidden;
            will-change: transform, opacity;
        }
        .about-card.info-text-card {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* —— About Forever Homes section (layout + polish) —— */
        .about-section {
            background: linear-gradient(180deg, #ffffff 0%, #faf8fb 38%, #ffffff 100%);
        }
        .about-section__glow {
            background:
                radial-gradient(ellipse 55% 45% at 12% 20%, rgba(63, 29, 70, 0.06), transparent 60%),
                radial-gradient(ellipse 50% 40% at 88% 75%, rgba(184, 151, 104, 0.08), transparent 55%);
        }
        .about-pillar {
            display: flex;
            align-items: center;
            gap: 0.65rem;
            padding: 0.65rem 1rem 0.65rem 0.85rem;
            border-radius: 9999px;
            border: 1px solid rgba(63, 29, 70, 0.12);
            background: rgba(255, 255, 255, 0.85);
            box-shadow: 0 8px 30px rgba(26, 26, 26, 0.04);
            font-size: 0.7rem;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: #1a1a1a;
            transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease, opacity 0.6s ease-out;
        }
        .about-pillar.fade-up:not(.visible) {
            transform: translateY(22px);
        }
        .about-pillar:hover {
            border-color: rgba(184, 151, 104, 0.55);
            box-shadow: 0 12px 36px rgba(63, 29, 70, 0.08);
            transform: translateY(-2px);
        }
        .about-pillar i {
            width: 1.1rem;
            height: 1.1rem;
            color: #3f1d46;
            flex-shrink: 0;
        }
        .about-pillar:hover i {
            color: #b89768;
        }
        .about-pullquote {
            position: relative;
            margin: 1.5rem 0 2rem;
            padding: 1.25rem 1.25rem 1.25rem 1.5rem;
            border-left: 3px solid #b89768;
            background: linear-gradient(90deg, rgba(184, 151, 104, 0.08), transparent);
            border-radius: 0 0.75rem 0.75rem 0;
        }
        .about-pullquote p {
            font-family: "Playfair Display", Georgia, serif;
            font-size: clamp(1.15rem, 2.2vw, 1.45rem);
            line-height: 1.45;
            color: #3f1d46;
            font-style: italic;
            font-weight: 400;
        }
        .about-pullquote .about-pullquote__mark {
            position: absolute;
            top: 0.5rem;
            right: 0.75rem;
            opacity: 0.2;
            color: #3f1d46;
        }
        .about-pullquote .about-pullquote__mark i {
            width: 2rem;
            height: 2rem;
        }
        .about-stat-card {
            position: relative;
            overflow: hidden;
            transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s ease, border-color 0.3s ease;
        }
        .about-stat-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, #b89768, #3f1d46);
            opacity: 0;
            transition: opacity 0.35s ease;
        }
        .about-stat-card:hover {
            transform: translateY(-4px);
        }
        .about-stat-card:hover::before {
            opacity: 1;
        }
        .about-subheading {
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: #b89768;
            margin-bottom: 0.5rem;
        }
        .about-copy-title {
            font-family: "Playfair Display", Georgia, serif;
            font-size: clamp(1.75rem, 3.5vw, 2.35rem);
            line-height: 1.2;
            color: #1a1a1a;
            margin-bottom: 1.25rem;
        }

        /* About — mobile & tablet: left-aligned, justified description copy */
        @media (max-width: 1023px) {
            #about .fade-up.text-center {
                align-items: flex-start !important;
                text-align: left;
                margin-left: 0;
                margin-right: 0;
            }
            #about .fade-up.text-center > span.inline-flex {
                justify-content: flex-start;
            }
            #about .fade-up.text-center h2,
            #about .about-copy-title,
            #about .about-subheading {
                text-align: left !important;
            }
            #about p.leading-relaxed,
            #about .about-pullquote p {
                text-align: left !important;
                text-align: justify;
                text-justify: inter-word;
                hyphens: auto;
                -webkit-hyphens: auto;
            }
            #about .flex-wrap.justify-center {
                justify-content: flex-start;
            }
        }

        #amenity-grid {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: stretch;
            gap: 1rem;
        }
        @media (min-width: 1024px) {
            #amenity-grid {
                gap: 1.5rem;
            }
        }
        #amenities .amenity-grid-card {
            flex: 0 1 calc(50% - 0.5rem);
            width: calc(50% - 0.5rem);
            max-width: calc(50% - 0.5rem);
            aspect-ratio: 1;
            align-items: center !important;
            justify-content: center !important;
            text-align: center !important;
        }
        #amenities .amenity-grid-card i {
            margin-left: auto;
            margin-right: auto;
        }
        #amenities .amenity-grid-card span {
            display: block;
            width: 100%;
            text-align: center !important;
        }
        @media (min-width: 640px) {
            #amenities .amenity-grid-card {
                flex: 0 1 calc(33.333% - 0.667rem);
                width: calc(33.333% - 0.667rem);
                max-width: calc(33.333% - 0.667rem);
            }
        }
        @media (min-width: 768px) {
            #amenities .amenity-grid-card {
                flex: 0 1 calc(25% - 0.75rem);
                width: calc(25% - 0.75rem);
                max-width: calc(25% - 0.75rem);
            }
        }
        @media (min-width: 1024px) {
            #amenities .amenity-grid-card {
                flex: 0 1 calc(20% - 1.2rem);
                width: calc(20% - 1.2rem);
                max-width: calc(20% - 1.2rem);
            }
        }
        @media (min-width: 1280px) {
            #amenities .amenity-grid-card {
                flex: 0 1 calc(16.666% - 1.25rem);
                width: calc(16.666% - 1.25rem);
                max-width: calc(16.666% - 1.25rem);
            }
        }
        /* Amenity grid: smooth staggered reveal + hover lift (overrides Tailwind transition-colors) */
        #amenities .amenity-grid-card {
            transition: opacity 0.6s ease-out, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease, background-color 0.3s ease;
            will-change: transform, opacity;
        }
        #amenities .amenity-grid-card.fade-up:not(.visible) {
            opacity: 0;
            transform: translateY(26px) scale(0.97);
        }
        #amenities .amenity-grid-card:hover {
            transform: translateY(-5px);
            background-color: #4a2153;
        }

        @media (max-width: 767px) {
            .hero-tagline {
                font-size: clamp(0.8125rem, 3.25vw, 0.9375rem);
                white-space: nowrap;
            }
        }

        /* Dark hero: light header chrome (Shree pattern + Forever Homes palette) */
        .fh-shree .pfl-logo__brand,
        .fh-shree .pfl-header-link {
            text-transform: uppercase;
            letter-spacing: 0.14em;
        }
        .fh-shree #navbar.pfl-header--hero .pfl-logo__brand,
        .fh-shree #navbar.pfl-header--hero .pfl-burger,
        .fh-shree #navbar.pfl-header--hero .pfl-header-link {
            color: #ffffff;
        }
        .fh-shree #navbar.pfl-header--hero .pfl-logo__brand {
            text-shadow: 0 2px 18px rgba(42, 17, 50, 0.45);
        }
        .fh-shree #navbar.pfl-header--hero .pfl-header-link:hover {
            color: #B89768;
        }
        body.pfl-menu-open .fh-shree .pfl-burger,
        body.pfl-menu-open .fh-shree #navbar.pfl-header--hero .pfl-burger,
        body.pfl-menu-open .fh-shree .pfl-logo__brand,
        body.pfl-menu-open .fh-shree #navbar.pfl-header--hero .pfl-logo__brand {
            color: #f5ecdc !important;
            text-shadow: none;
        }

        /* ===== Premium dark menu (Forever Homes) ===== */
        /* When JS drives the menu, GSAP owns opacity/visibility — kill the CSS fade so they don't fight (smoothness) */
        /* Prevent the scrollbar-removal jump when the menu opens (compensate fixed chrome) */
        body.pfl-menu-open {
            padding-right: var(--sbw, 0px);
        }
        body.pfl-menu-open .pfl-burger {
            right: calc(var(--side-gap) + var(--sbw, 0px));
        }
        body.pfl-menu-open .pfl-header-right {
            right: calc(var(--side-gap) + var(--burger-w) + var(--gutter) + var(--sbw, 0px));
        }
        body.pfl-menu-open .btn-whatsapp-pulse,
        body.pfl-menu-open .btn-call {
            right: calc(24px + var(--sbw, 0px));
        }
        .fh-shree .pfl-menu-bg {
            background:
                radial-gradient(ellipse 70% 50% at 82% -5%, rgba(184, 151, 104, 0.20), transparent 55%),
                radial-gradient(ellipse 65% 65% at -5% 105%, rgba(99, 46, 110, 0.5), transparent 60%),
                linear-gradient(158deg, #3F1D46 0%, #2A1132 55%, #190d1d 100%);
        }
        .fh-shree .pfl-menu__nav {
            margin-bottom: 2.75rem;
            font-size: clamp(1.6rem, 5.2vw, 3rem);
        }
        .fh-shree .pfl-menu__nav li {
            overflow: hidden;
            margin-bottom: 0;
            line-height: 1.06;
            padding: 0.04em 0;
        }
        .fh-shree .pfl-menu__nav a {
            display: inline-flex;
            align-items: baseline;
            gap: 0.5em;
            color: #f3ead9;
            position: relative;
            transform: translateY(120%);
            transition: color 0.3s ease, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
            will-change: transform;
        }
        /* CSS-driven reveal: links slide up when the menu opens (works even if JS fails) */
        .fh-shree .pfl-menu.is-open .pfl-menu__nav a {
            transform: translateY(0);
        }
        .fh-shree .pfl-menu__num { display: none; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav a:hover {
            color: #B89768;
            transform: translateX(0.4em);
            transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .fh-shree .pfl-menu__nav a:hover .pfl-menu__num { color: #f6e7c6; }
        /* Staggered slide-up sequence as the menu opens */
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(1) a { transition-delay: 0.06s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(2) a { transition-delay: 0.10s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(3) a { transition-delay: 0.14s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(4) a { transition-delay: 0.18s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(5) a { transition-delay: 0.22s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(6) a { transition-delay: 0.26s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(7) a { transition-delay: 0.30s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(8) a { transition-delay: 0.34s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(9) a { transition-delay: 0.38s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(10) a { transition-delay: 0.42s; }
        .fh-shree .pfl-menu.is-open .pfl-menu__nav li:nth-child(11) a { transition-delay: 0.46s; }
        /* Aside (enquiry / social / copyright) fade-and-rise */
        .fh-shree .pfl-menu__aside article,
        .fh-shree .pfl-menu__aside aside,
        .fh-shree .pfl-menu__copy {
            opacity: 0;
            transform: translateY(24px);
            transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
            transition-delay: 0.4s;
        }
        .fh-shree .pfl-menu.is-open .pfl-menu__aside article,
        .fh-shree .pfl-menu.is-open .pfl-menu__aside aside,
        .fh-shree .pfl-menu.is-open .pfl-menu__copy {
            opacity: 1;
            transform: translateY(0);
        }
        @media (prefers-reduced-motion: reduce) {
            .fh-shree .pfl-menu__nav a { transform: none; transition: color 0.3s ease; }
            .fh-shree .pfl-menu__aside article,
            .fh-shree .pfl-menu__aside aside,
            .fh-shree .pfl-menu__copy { opacity: 1; transform: none; transition: none; }
        }
        .fh-shree .pfl-menu__label { color: rgba(184, 151, 104, 0.85); }
        .fh-shree .pfl-menu__text { color: #e9dccb; }
        .fh-shree .pfl-arrow-link { color: #f3ead9; }
        .fh-shree .pfl-arrow-link:hover { color: #B89768; }
        .fh-shree .pfl-menu__social a { color: #cdbfd0; }
        .fh-shree .pfl-menu__social a:hover { color: #B89768; text-decoration: none; }
        .fh-shree .pfl-menu__copy { color: rgba(243, 234, 217, 0.5); }

        /* Burger — gold halo + gold hover */
        .fh-shree .pfl-burger::before {
            content: "";
            position: absolute;
            top: 50%;
            right: 50%;
            width: 46px;
            height: 46px;
            transform: translate(50%, -50%) scale(0.55);
            border-radius: 9999px;
            background: rgba(184, 151, 104, 0.15);
            opacity: 0;
            transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
            pointer-events: none;
        }
        .fh-shree .pfl-burger:hover::before {
            opacity: 1;
            transform: translate(50%, -50%) scale(1);
        }
        body.pfl-menu-open .fh-shree .pfl-burger::before { opacity: 0; }

        /* Header "Projects" link — animated gold underline */
        .fh-shree .pfl-header-link--corp::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -4px;
            width: 100%;
            height: 1px;
            background: #B89768;
            transform: scaleX(0);
            transform-origin: left center;
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .fh-shree .pfl-header-link--corp:hover::after { transform: scaleX(1); }

        /* Contact — left content / right form */
        .fh-shree .contact-layout {
            width: 100%;
        }
        @media (min-width: 1024px) {
            .fh-shree .contact-layout {
                grid-template-columns: minmax(0, 1fr) minmax(320px, 1.05fr);
            }
            .fh-shree .contact-form-card {
                position: sticky;
                top: calc(var(--header-height, 5.5rem) + 1.25rem);
                align-self: start;
            }
        }
        .fh-shree .contact-form-card {
            box-shadow: 0 20px 50px rgba(63, 29, 70, 0.08);
            overflow: hidden;
            min-height: 32rem;
        }
        .fh-shree .contact-form-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            border-radius: inherit;
            background: linear-gradient(90deg, #3F1D46, #B89768);
            pointer-events: none;
        }
        /* Curved pill-style form fields — matches the rounded submit button */
        .fh-shree .contact-form input[type="text"],
        .fh-shree .contact-form input[type="tel"],
        .fh-shree .contact-form input[type="email"] {
            border-radius: 9999px;
        }
        .fh-shree .contact-form textarea {
            border-radius: 1.25rem;
        }
        .fh-shree .contact-form button[type="submit"],
        .fh-shree #modal-panel button[type="submit"],
        .fh-shree #download-form button[type="submit"],
        .fh-shree .inq-submit-btn {
            cursor: pointer;
            -webkit-tap-highlight-color: transparent;
            touch-action: manipulation;
            user-select: none;
            color: #ffffff !important;
            -webkit-text-fill-color: #ffffff;
            transition:
                transform 0.18s cubic-bezier(0.34, 1.4, 0.64, 1),
                box-shadow 0.18s ease,
                background-color 0.2s ease,
                opacity 0.2s ease;
        }
        .fh-shree .contact-form button[type="submit"]:hover:not(:disabled),
        .fh-shree #modal-panel button[type="submit"]:hover:not(:disabled),
        .fh-shree #download-form button[type="submit"]:hover:not(:disabled),
        .fh-shree .inq-submit-btn:hover:not(:disabled) {
            transform: translateY(-2px);
            box-shadow: 0 12px 28px rgba(63, 29, 70, 0.28);
            color: #ffffff !important;
            -webkit-text-fill-color: #ffffff;
        }
        .fh-shree .contact-form button[type="submit"]:active:not(:disabled),
        .fh-shree #modal-panel button[type="submit"]:active:not(:disabled),
        .fh-shree #download-form button[type="submit"]:active:not(:disabled),
        .fh-shree .inq-submit-btn:active:not(:disabled) {
            transform: translateY(1px) scale(0.97);
            box-shadow: 0 4px 10px rgba(63, 29, 70, 0.22);
            transition-duration: 0.06s;
            color: #ffffff !important;
        }
        .fh-shree .contact-form button[type="submit"]:disabled,
        .fh-shree #modal-panel button[type="submit"]:disabled,
        .fh-shree #download-form button[type="submit"]:disabled,
        .fh-shree .inq-submit-btn:disabled {
            opacity: 0.72;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
            color: #ffffff !important;
            -webkit-text-fill-color: #ffffff;
        }
        .fh-shree .inq-submit-btn.inq-submit-btn--loading {
            opacity: 0.88;
            pointer-events: none;
        }
        .fh-shree .contact-form-success {
            background: linear-gradient(165deg, #ffffff 0%, #faf7fb 55%, #f3eef5 100%);
            border-radius: inherit;
            animation: contactFormSuccessIn 0.5s cubic-bezier(0.34, 1.35, 0.64, 1) both;
        }
        .fh-shree .contact-form-success__icon {
            box-shadow: 0 12px 32px rgba(63, 29, 70, 0.12);
        }
        .fh-shree .contact-form-success__reset {
            cursor: pointer;
            transition: transform 0.18s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
        }
        .fh-shree .contact-form-success__reset:hover {
            transform: translateY(-1px);
        }
        .fh-shree .contact-form-success__reset:active {
            transform: translateY(0) scale(0.98);
        }
        .fh-shree .modal-enquiry-success {
            background: linear-gradient(165deg, #ffffff 0%, #faf7fb 55%, #f3eef5 100%);
            border-radius: inherit;
            animation: contactFormSuccessIn 0.5s cubic-bezier(0.34, 1.35, 0.64, 1) both;
        }
        .fh-shree .modal-enquiry-success__icon {
            box-shadow: 0 12px 32px rgba(63, 29, 70, 0.12);
        }
        @keyframes contactFormSuccessIn {
            from {
                opacity: 0;
                transform: scale(0.94);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        .faq-item summary::-webkit-details-marker { display: none; }
        .faq-item summary::marker { content: ""; }
        .faq-item summary { outline: none; }

