﻿@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500;1,9..144,600&family=Italiana&family=Manrope:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Mukta:wght@300;400;500;600;700;800&family=Tiro+Devanagari+Marathi&family=Tiro+Devanagari+Hindi&family=Noto+Sans+Devanagari:wght@400;500;600;700;800&family=Noto+Serif+Devanagari:wght@400;500;600;700;800&display=swap');

/* ========================================
   RESET & BASE
   ======================================== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  /* Global rem bump from the default 16px to 19.5px so body copy reads
     bigger and matches the increased headline weight. Everything sized
     in rem scales proportionally: paragraphs, buttons, nav, captions. */
  font-size: 19.5px;
}
@media (max-width: 768px) {
  html { font-size: 18px; }
}
:root {
  /* Dreamy Luxury Palette - warm peach cream to deep bronze */
  --kp-cream-hi:  #FFFAF3;        /* highest-light cream for panel highlights */
  --kp-ivory:     #FFF6EC;        /* page base */
  --kp-sand:      #FFF0E0;        /* soft peach */
  --kp-cream:     #FFF9F2;        /* cream on cards */
  --kp-peach:     #FFE0C4;        /* warm peach accent */
  --kp-peach-deep:#FFCBA8;        /* rosy peach (deeper) */
  --kp-gold:      #C57A4E;        /* warm rose-bronze accent */
  --kp-gold-deep: #A8532F;        /* deep bronze for strong accents */
  --kp-cocoa:     #6E2E18;        /* rich cocoa for strong text accents */
  --kp-taupe:     #7A4030;        /* muted taupe for secondary copy */
  --kp-text:      #4A2013;        /* primary body text - deep readable brown */
  --kp-text-soft: #6A3A2A;        /* softer body text */
  --kp-text-mute: #8B5E3F;        /* muted caption text */
  --kp-border:    rgba(197, 122, 78, 0.22);
  --kp-border-strong: rgba(168, 83, 47, 0.38);
  --kp-shadow:    0 22px 54px -20px rgba(140, 60, 35, 0.28);
  --kp-shadow-soft: 0 14px 36px -18px rgba(140, 60, 35, 0.18);
  --kp-shadow-deep: 0 32px 64px -24px rgba(110, 46, 24, 0.4);
  --kp-glow:      0 0 60px rgba(255, 203, 168, 0.4);

  --kp-font-body: 'Manrope', 'Poppins', sans-serif;
  --kp-font-display: 'Fraunces', 'Cormorant Garamond', 'Playfair Display', serif;
  --kp-font-accent: 'Italiana', 'Cormorant Garamond', serif;
  --kp-font-script: 'Cormorant Garamond', 'Playfair Display', serif;

  /* Unified dreamy gradients reused on sections / cards */
  --kp-gradient-page:
    radial-gradient(circle at 10% 8%, rgba(255, 220, 195, 0.45) 0%, transparent 32%),
    radial-gradient(circle at 92% 92%, rgba(197, 122, 78, 0.18) 0%, transparent 32%),
    linear-gradient(180deg, #FFF5E8 0%, #FFE8D2 55%, #FFF0DE 100%);
  --kp-gradient-card:
    linear-gradient(180deg, #FFF8F0 0%, #FFE9D2 100%);
  --kp-gradient-glow:
    radial-gradient(ellipse at 50% 0%, rgba(255, 220, 195, 0.55) 0%, transparent 55%);
}
body, html {
  font-family: var(--kp-font-body);
  overflow-x: hidden;
  color: var(--kp-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
  font-kerning: normal;
  font-size: 18.5px;
  line-height: 1.65;
  font-weight: 400;
}
html { height: 100%; }
body {
  min-height: 100%;
  position: relative;
  overflow-y: auto;
  background: var(--kp-ivory);
}

/* Text-selection color - warm peach highlight */
::selection { background: rgba(212, 114, 74, 0.24); color: var(--kp-text); }
::-moz-selection { background: rgba(212, 114, 74, 0.24); color: var(--kp-text); }

/* Subtle luxe scrollbar (Chromium) */
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--kp-ivory); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #D4724A, #8B4230);
  border: 3px solid var(--kp-ivory);
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #A8532F, #6E2E18);
}

button, input, select, textarea {
  font-family: var(--kp-font-body);
  color: var(--kp-text);
}

/* Display headings use Fraunces (modern luxury serif with optical size - elegant, curvy yet readable) */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--kp-font-display);
  font-feature-settings: "kern" 1, "liga" 1, "dlig" 1, "calt" 1, "ss01" 1;
  letter-spacing: 0.003em;
  font-variation-settings: "opsz" 96, "SOFT" 50;
  color: var(--kp-text);
  line-height: 1.16;
}

/* Refined default paragraph styling */
p { color: var(--kp-text-soft); }

/* Link polish */
a { color: var(--kp-gold); transition: color 0.3s ease; }
a:hover { color: var(--kp-gold-deep); }
a:focus-visible {
  outline: 2px solid rgba(168, 83, 47, 0.5);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Accent decorative eyebrow text class - optional fancy caps style */
.kp-accent,
.hero-eyebrow,
.hiw-eyebrow,
.policies-eyebrow,
.home-venues-kicker,
.vp-eyebrow,
.venues-intro-kicker,
.home-page-kicker,
.slideshow-kicker,
.gallery-modern-pill,
.gr-eyebrow,
.page-header-kicker,
.gr-score-label {
  font-family: var(--kp-font-accent) !important;
  letter-spacing: 0.28em !important;
  font-weight: 400 !important;
  font-style: normal !important;
  text-transform: uppercase;
}

section { scroll-margin-top: 90px; }

/* ========================================
   PERFORMANCE - skip off-screen rendering
   `content-visibility: auto` lets the browser skip layout/paint
   work for sections not currently in the viewport, which keeps
   scrolling smooth on long pages.
   ======================================== */
.home-services,
.slideshow-section,
.royal-events-section,
.hiw-section,
.policies-highlight,
.contact-us,
.social-section,
.gr-section,
.instagram-embed-section,
.instagram-section,
.gallery-section,
.site-footer {
  content-visibility: auto;
  contain-intrinsic-size: 1px 900px;
}

/* Defer paint/layout of inactive venue blocks on the gallery page so
   their (large) images don't compete with the active tab's images. */
.gallery-venue-block {
  content-visibility: auto;
  contain-intrinsic-size: 1px 700px;
}

/* ========================================
   INTRO SPLASH - SOFT PEACH MEDALLION + CURTAIN OPEN
   Phase 1: Beautiful soft-peach canvas. Logo fades in first with a
            warm glow + halo. A delicate medallion ring with four
            tiny gems materialises around the logo, and the
            "WHERE CELEBRATIONS BEGIN" tagline settles INSIDE the
            ring, in a warm brown, giving a romantic/loving vibe.
   Phase 2: Rings, halo and content fade out COMPLETELY first,
            then the two peach curtain halves gently part open to
            reveal the site. Circle is gone before curtains finish.
   ======================================== */
#splash {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  pointer-events: auto;
}

/* Two curtain halves - soft romantic peach backdrop */
.splash-curtain {
  position: absolute;
  left: 0;
  right: 0;
  height: 50%;
  z-index: 1;
  transition: transform 0.7s cubic-bezier(.76, 0, .24, 1) 0.2s;
  will-change: transform;
}
.splash-curtain--top {
  top: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 215, 176, 0.22) 0%, rgba(255, 215, 176, 0) 58%),
    linear-gradient(180deg, #F3A97E 0%, #F59667 54%, #F28C5F 100%);
  box-shadow:
    inset 0 -1px 0 rgba(255, 224, 194, 0.22);
}
.splash-curtain--bottom {
  bottom: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 215, 176, 0.22) 0%, rgba(255, 215, 176, 0) 58%),
    linear-gradient(180deg, #F3A97E 0%, #F59667 54%, #F28C5F 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 224, 194, 0.22);
}

/* Tender hairline at the seam - keeps the parting line whisper-soft */
.splash-curtain--top::after,
.splash-curtain--bottom::before {
  content: "";
  position: absolute;
  left: 16%;
  right: 16%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 245, 225, 0.7) 35%, rgba(255, 250, 240, 0.9) 50%, rgba(255, 245, 225, 0.7) 65%, transparent);
  opacity: 0;
}
.splash-curtain--top::after { bottom: 0; }
.splash-curtain--bottom::before { top: 0; }

/* ───── Medallion ring (appears AFTER logo + halo) ───── */
.splash-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 520px;
  height: 520px;
  max-width: 84vw;
  max-height: 84vw;
  border-radius: 50%;
  border: 1.25px solid rgba(255, 248, 232, 0.85);
  background: transparent;
  box-shadow:
    inset 0 0 0 1px rgba(255, 230, 200, 0.3),
    inset 0 0 70px rgba(255, 245, 225, 0.18),
    0 0 60px rgba(255, 230, 200, 0.5),
    0 0 130px rgba(255, 215, 180, 0.3);
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.88);
  z-index: 2;
  transition: opacity 0.28s ease-out, transform 0.42s ease-out;
  animation:
    splashRingMaterialize 0.8s cubic-bezier(.2,.8,.2,1) 0.7s forwards,
    splashRingGlow 4s ease-in-out 1.5s infinite;
  display: none;
}

/* Gems at 12 & 6 on outer ring — symmetrical, glow to balance both sides */
.splash-ring::before,
.splash-ring::after {
  content: "";
  position: absolute;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: radial-gradient(circle, #FFFBEA 0%, #F2CE9A 50%, #B67E48 100%);
  box-shadow:
    0 0 12px rgba(255, 248, 220, 1),
    0 0 26px rgba(255, 225, 175, 0.8),
    0 0 46px rgba(255, 210, 160, 0.5);
  left: 50%;
  transform: translateX(-50%) scale(0);
  animation:
    splashBeadIn 0.5s cubic-bezier(.34,1.56,.64,1) 1.1s forwards,
    splashBeadGlow 3.2s ease-in-out 1.9s infinite;
}
.splash-ring::before { top: -5.5px; }
.splash-ring::after  { bottom: -5.5px; }

/* 3 & 9 o'clock gems sit on the SAME outer ring as 12/6 so all four sparkles
   are at an equal radius from center — true cross-symmetry. They live inside
   .splash-ring as <span> children so they inherit its size/position and
   therefore scale correctly with the viewport max-width clamp. */
.splash-ring-gem {
  position: absolute;
  top: 50%;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: radial-gradient(circle, #FFFBEA 0%, #F2CE9A 50%, #B67E48 100%);
  box-shadow:
    0 0 12px rgba(255, 248, 220, 1),
    0 0 26px rgba(255, 225, 175, 0.8),
    0 0 46px rgba(255, 210, 160, 0.5);
  transform: translateY(-50%) scale(0);
  animation:
    splashBeadInX 0.5s cubic-bezier(.34,1.56,.64,1) 1.1s forwards,
    splashBeadGlow 3.2s ease-in-out 1.9s infinite;
}
.splash-ring-gem--left  { left:  -5.5px; }
.splash-ring-gem--right { right: -5.5px; }

/* Inner whisper ring — now purely decorative (no gems) so it doesn't add
   sparkles at a second radius. */
.splash-ring--sub {
  width: 440px;
  height: 440px;
  max-width: 74vw;
  max-height: 74vw;
  border: 1px solid rgba(255, 240, 215, 0.6);
  box-shadow: none;
  background: transparent;
  filter: drop-shadow(0 0 6px rgba(255, 230, 200, 0.4));
  animation:
    splashRingMaterialize 0.75s cubic-bezier(.2,.8,.2,1) 0.8s forwards;
}
.splash-ring--sub::before,
.splash-ring--sub::after { content: none; }

@keyframes splashBeadIn {
  to { transform: translateX(-50%) scale(1); }
}
@keyframes splashBeadInX {
  to { transform: translateY(-50%) scale(1); }
}
@keyframes splashBeadGlow {
  0%, 100% {
    filter: brightness(1);
  }
  50% {
    filter: brightness(1.35);
  }
}
@keyframes splashRingMaterialize {
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes splashRingGlow {
  0%, 100% {
    border-color: rgba(255, 248, 232, 0.85);
    box-shadow:
      inset 0 0 0 1px rgba(255, 230, 200, 0.3),
      inset 0 0 70px rgba(255, 245, 225, 0.18),
      0 0 60px rgba(255, 230, 200, 0.5),
      0 0 130px rgba(255, 215, 180, 0.3);
  }
  50% {
    border-color: rgba(255, 252, 240, 1);
    box-shadow:
      inset 0 0 0 1px rgba(255, 245, 215, 0.5),
      inset 0 0 90px rgba(255, 248, 225, 0.3),
      0 0 90px rgba(255, 235, 200, 0.65),
      0 0 170px rgba(255, 220, 180, 0.4);
  }
}

/* ───── Center content stack ───── */
.splash-content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  transition: opacity 0.3s ease, transform 0.45s cubic-bezier(.76, 0, .24, 1);
  animation: splashContentIn 0.6s cubic-bezier(.2,.8,.2,1) 0.05s both;
}

@keyframes splashContentIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Logo aura - appears FIRST, before the rings */
.splash-logo-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  isolation: isolate;
  width: clamp(240px, 33vw, 350px);
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  background: #F5F2ED;
  border: 1px solid rgba(255, 238, 216, 0.7);
  box-shadow:
    0 20px 44px -22px rgba(110, 46, 24, 0.45),
    0 5px 14px rgba(130, 60, 35, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  overflow: hidden;
  padding: 0;
  opacity: 1;
  transform: translateY(0) scale(1);
  animation:
    splashCardFloat 4.6s ease-in-out 1s infinite;
}

.splash-jewel {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(188, 131, 68, 0.55);
  background: radial-gradient(circle at 32% 30%, #FFFDF4 0%, #F5D9A8 40%, #B77F43 100%);
  box-shadow:
    0 0 12px rgba(255, 238, 206, 0.85),
    0 0 22px rgba(243, 194, 134, 0.44);
  z-index: 2;
  opacity: 0;
  transform: scale(0.6);
  animation:
    splashJewelIn 0.45s cubic-bezier(.34,1.56,.64,1) 0.8s forwards,
    splashJewelTwinkle 2.8s ease-in-out 1.7s infinite;
}

.splash-jewel::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0));
}

.splash-jewel--top {
  top: -16px;
  left: 50%;
  transform: translateX(-50%) scale(0.6);
}

.splash-jewel--bottom {
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%) scale(0.6);
  animation-delay: 0.9s, 2.05s;
}

.splash-jewel--left {
  left: -16px;
  top: 50%;
  transform: translateY(-50%) scale(0.6);
  animation-delay: 0.86s, 1.95s;
}

.splash-jewel--right {
  right: -16px;
  top: 50%;
  transform: translateY(-50%) scale(0.6);
  animation-delay: 0.93s, 2.12s;
}

@keyframes splashJewelIn {
  to {
    opacity: 1;
  }
}

@keyframes splashJewelTwinkle {
  0%, 100% {
    box-shadow:
      0 0 10px rgba(255, 238, 206, 0.75),
      0 0 18px rgba(243, 194, 134, 0.38);
    filter: brightness(1);
  }
  50% {
    box-shadow:
      0 0 14px rgba(255, 245, 224, 0.95),
      0 0 26px rgba(243, 194, 134, 0.56);
    filter: brightness(1.08);
  }
}

@keyframes splashCardIn {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes splashCardFloat {
  0%, 100% {
    transform: translateY(0) scale(1);
    box-shadow:
      0 20px 44px -22px rgba(110, 46, 24, 0.45),
      0 5px 14px rgba(130, 60, 35, 0.16),
      inset 0 1px 0 rgba(255, 255, 255, 0.6);
  }
  50% {
    transform: translateY(-4px) scale(1.003);
    box-shadow:
      0 26px 52px -24px rgba(110, 46, 24, 0.52),
      0 10px 20px rgba(130, 60, 35, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.66);
  }
}

.splash-logo-wrap::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 470px;
  height: 470px;
  max-width: 74vw;
  max-height: 74vw;
  transform: translate(-50%, -50%) scale(0.78);
  border-radius: 16px;
  background: radial-gradient(circle at center,
    rgba(255, 241, 219, 0.7) 0%,
    rgba(255, 210, 168, 0.35) 28%,
    rgba(245, 165, 112, 0.2) 52%,
    transparent 78%);
  filter: blur(26px);
  opacity: 0;
  z-index: -2;
  animation:
    splashHaloIn 0.7s cubic-bezier(.2,.8,.2,1) 0.1s forwards,
    splashHaloBreath 4s ease-in-out 1s infinite;
}

.splash-logo-wrap::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  max-width: 50vw;
  max-height: 50vw;
  transform: translate(-50%, -50%) scale(0.85);
  border-radius: 6px;
  border: 1px solid rgba(197, 122, 78, 0.16);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 245, 230, 0)),
    linear-gradient(120deg, rgba(255, 255, 255, 0) 32%, rgba(255, 255, 255, 0.34) 50%, rgba(255, 255, 255, 0) 68%);
  background-size: 100% 100%, 230% 230%;
  background-position: center, 120% 0%;
  filter: blur(0);
  opacity: 0;
  z-index: -1;
  animation:
    splashHaloIn 0.6s cubic-bezier(.2,.8,.2,1) 0.15s forwards,
    splashInnerSheen 3.8s ease-in-out 1.1s infinite;
}

@keyframes splashInnerSheen {
  0%, 100% {
    background-position: center, 120% 0%;
  }
  50% {
    background-position: center, -30% 0%;
  }
}

@keyframes splashHaloIn {
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes splashHaloBreath {
  0%, 100% { transform: translate(-50%, -50%) scale(1);    opacity: 0.92; }
  50%      { transform: translate(-50%, -50%) scale(1.06); opacity: 1; }
}

/* Logo - the very first thing you see - fades in + glows
   Soft radial mask feathers the square PNG edges into the peach backdrop
   so the logo doesn't look like a pasted-on card. */
#splash-logo {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
  opacity: 1;
  transform: scale(1);
  -webkit-mask-image: none;
          mask-image: none;
  filter:
    drop-shadow(0 16px 28px rgba(120, 60, 35, 0.16));
  animation:
    splashLogoPulse 3s ease-in-out 0.9s infinite;
  will-change: opacity, transform, filter;
}

@keyframes splashLogoReveal {
  to { opacity: 1; transform: scale(1); }
}

/* Gentle glow pulse - keeps the logo feeling alive and warm */
@keyframes splashLogoPulse {
  0%, 100% {
    filter:
      drop-shadow(0 16px 28px rgba(120, 60, 35, 0.16));
  }
  50% {
    filter:
      drop-shadow(0 18px 34px rgba(120, 60, 35, 0.24));
  }
}

/* Flourish - gentle hairline + tiny heart-diamond under the logo */
.splash-flourish {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
}
.splash-flourish-line {
  display: block;
  width: 0;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, rgba(244, 213, 176, 0.86));
  box-shadow: 0 0 8px rgba(255, 228, 188, 0.24);
  animation: splashLineDraw 0.55s cubic-bezier(.2,.8,.2,1) 1.5s forwards;
}
.splash-flourish-line:last-child {
  background: linear-gradient(90deg, rgba(244, 213, 176, 0.86), transparent);
}
@keyframes splashLineDraw {
  to { width: 62px; }
}
.splash-flourish-diamond {
  display: inline-block;
  width: 5px;
  height: 5px;
  background: linear-gradient(135deg, #FFF7DF, #EEC88A 55%, #BC8344);
  box-shadow:
    0 0 8px rgba(255, 243, 210, 0.9),
    0 0 18px rgba(255, 220, 170, 0.6);
  transform: rotate(45deg) scale(0);
  animation:
    splashDiamondIn 0.45s cubic-bezier(.34,1.56,.64,1) 1.6s forwards,
    splashDiamondShimmer 2.6s ease-in-out 2.1s infinite;
}
@keyframes splashDiamondIn {
  to { transform: rotate(45deg) scale(1); }
}
@keyframes splashDiamondShimmer {
  0%, 100% { box-shadow: 0 0 8px rgba(255, 243, 210, 0.8), 0 0 18px rgba(255, 220, 170, 0.5); }
  50%      { box-shadow: 0 0 14px rgba(255, 250, 220, 1), 0 0 28px rgba(255, 225, 180, 0.75); }
}

/* Tagline - BROWN, classy, sized to FIT INSIDE the ring */
.splash-tagline {
  display: inline-block;
  font-family: 'Fraunces', 'Cormorant Garamond', serif;
  font-style: normal;
  font-weight: 600;
  font-size: clamp(0.78rem, 1.35vw, 0.98rem);
  color: rgba(255, 249, 242, 0.95);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  margin: 0;
  text-shadow:
    0 1px 0 rgba(120, 58, 32, 0.35),
    0 4px 12px rgba(60, 22, 10, 0.24);
  opacity: 0;
  transform: translateY(6px);
  animation: splashTaglineIn 0.6s cubic-bezier(.2,.8,.2,1) 1.75s forwards;
  padding-left: 0.24em;
  white-space: nowrap;
}

.splash-tagline span {
  display: inline;
  margin: 0 0.1em;
}

@keyframes splashTaglineIn {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes splashFade {
  to { opacity: 1; }
}

/* ───── EXIT sequence ─────
   Circle (rings + halo) and content fade out FIRST, fully gone
   by ~0.3s. Only AFTER that do the curtains begin to part (0.5s
   delay, 0.85s slide). So the glowing circle is never visible
   while the curtains are opening. */
#splash.fade-out { pointer-events: none; }

#splash.fade-out .splash-content {
  opacity: 0 !important;
  transform: scale(0.96);
  transition: opacity 0.3s ease, transform 0.45s ease;
}
#splash.fade-out .splash-ring,
#splash.fade-out .splash-ring--sub {
  opacity: 0 !important;
  transition: opacity 0.3s ease;
}
#splash.fade-out .splash-ring::before,
#splash.fade-out .splash-ring::after,
#splash.fade-out .splash-ring--sub::before,
#splash.fade-out .splash-ring--sub::after {
  opacity: 0 !important;
  transition: opacity 0.25s ease;
}
#splash.fade-out .splash-logo-wrap::before,
#splash.fade-out .splash-logo-wrap::after {
  opacity: 0 !important;
  transition: opacity 0.25s ease;
}
#splash.fade-out .splash-curtain--top    { transform: translateY(-100%); }
#splash.fade-out .splash-curtain--bottom { transform: translateY(100%); }

#splash.done { display: none; }
body.splash-active { overflow: hidden; }

/* Reduced motion - snap to visible state */
@media (prefers-reduced-motion: reduce) {
  .splash-ring, .splash-ring--sub,
  .splash-logo-wrap::before, .splash-logo-wrap::after {
    animation: splashHaloIn 0.3s ease forwards;
  }
  .splash-jewel {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .splash-jewel--top,
  .splash-jewel--bottom {
    transform: translateX(-50%);
  }
  .splash-jewel--left,
  .splash-jewel--right {
    transform: translateY(-50%);
  }
  .splash-content,
  .splash-logo-wrap {
    animation: none;
    opacity: 1;
    transform: none;
  }
  #splash-logo { animation: splashLogoReveal 0.4s ease forwards; }
  .splash-tagline { animation-duration: 0.4s; }
  .splash-flourish-diamond { animation-duration: 0.3s; }
  .splash-flourish-line { animation-duration: 0.5s; }
  .splash-curtain { transition-duration: 0.5s; }
}

@media (max-width: 576px) {
  .splash-logo-wrap { width: min(78vw, 320px); border-radius: 8px; }
  .splash-jewel {
    width: 10px;
    height: 10px;
  }
  .splash-jewel--top,
  .splash-jewel--bottom {
    left: 50%;
  }
  .splash-jewel--top { top: -12px; }
  .splash-jewel--bottom { bottom: -12px; }
  .splash-jewel--left { left: -12px; }
  .splash-jewel--right { right: -12px; }
  #splash-logo { border-radius: 0; }
  .splash-tagline { font-size: 0.74rem; letter-spacing: 0.17em; }
  .splash-ring { width: 380px; height: 380px; }
  .splash-ring--sub { width: 300px; height: 300px; }
  .splash-logo-wrap::before { width: 350px; height: 350px; }
  .splash-logo-wrap::after  { width: calc(100% - 10px); height: calc(100% - 10px); }
  .splash-content { gap: 14px; padding: 10px 16px; }
  @keyframes splashLineDraw { to { width: 44px; } }
}

/* ═══════════════════════════════════════════════════════════════
   DREAMY ROYAL SPLASH — Peach-Maroon luxury, no card frame
   ─ Curtains: deep maroon-to-peach gradient
   ─ Logo floats freely (NO box/border/card — just aura glow)
   ─ Radial light bloom behind logo creates dreamy depth
   ─ Caption in soft cream serif
   ═══════════════════════════════════════════════════════════════ */

/* Transparent splash bg — website shows the instant curtains part */
#splash {
  background: transparent !important;
}

/* Dreamy peach curtains: lighter at top/bottom, darker near the center */
.splash-curtain {
  box-shadow: none !important;
  transition: transform 1.15s cubic-bezier(.77, 0, .175, 1) 0.15s !important;
}
.splash-curtain--top {
  background: linear-gradient(180deg, #F6C4A8 0%, #EC9D75 46%, #C96945 100%) !important;
}
.splash-curtain--bottom {
  background: linear-gradient(180deg, #C96945 0%, #EC9D75 54%, #F6C4A8 100%) !important;
}
.splash-curtain--top::after,
.splash-curtain--bottom::before { display: none !important; }

/* Hide unused elements */
.splash-ring,
.splash-ring--sub,
.splash-flourish,
.splash-tagline {
  display: none !important;
}

/* Content stack */
.splash-content {
  gap: 18px;
  padding: 0;
  animation: splashContentIn 0.6s cubic-bezier(.22,.9,.36,1) 0.06s both;
}

@keyframes splashContentIn {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}

/* Logo wrap — NO card, NO border, NO background.
   Just a sizing container + overflow:visible for the jewels. */
.splash-logo-wrap {
  position: relative;
  width: clamp(220px, 28vw, 310px);
  aspect-ratio: 1 / 1;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  animation: splashLogoFloat 5s ease-in-out 0.6s infinite;
  display: flex;
  align-items: center;
  justify-content: center;
}

@keyframes splashLogoFloat {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-7px); }
}

/* Dreamy radial bloom behind the logo — peach aura */
.splash-logo-wrap::before {
  content: "";
  position: absolute;
  inset: -40%;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgba(255, 214, 180, 0.34) 0%,
    rgba(214, 112, 70, 0.26) 36%,
    rgba(128, 38, 24, 0.18) 64%,
    transparent 80%);
  filter: blur(28px);
  z-index: 0;
  animation: splashAuraBreath 4s ease-in-out 0.4s infinite;
}
@keyframes splashAuraBreath {
  0%, 100% { opacity: 0.82; transform: scale(1); }
  50%       { opacity: 1;    transform: scale(1.08); }
}

/* No ::after overlay needed */
.splash-logo-wrap::after {
  content: none !important;
}

/* Logo image — floats freely, always fully visible */
#splash-logo {
  opacity: 1 !important;
  transform: none !important;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0;
  border-radius: 0;
  display: block;
  image-rendering: -webkit-optimize-contrast;
  filter:
    brightness(1)
    contrast(1.22)
    saturate(1.04)
    drop-shadow(0 0 24px rgba(255, 222, 182, 0.58))
    drop-shadow(0 6px 20px rgba(120, 32, 14, 0.34));
  animation: splashLogoGlow 3.8s ease-in-out 0.5s infinite;
  will-change: filter;
}

@keyframes splashLogoGlow {
  0%, 100% {
    filter:
      brightness(1)
      contrast(1.22)
      saturate(1.04)
      drop-shadow(0 0 24px rgba(255, 205, 152, 0.56))
      drop-shadow(0 7px 20px rgba(95, 20, 10, 0.32));
  }
  50% {
    filter:
      brightness(1.04)
      contrast(1.26)
      saturate(1.06)
      drop-shadow(0 0 34px rgba(255, 220, 172, 0.74))
      drop-shadow(0 10px 28px rgba(95, 20, 10, 0.4));
  }
}

/* Jewels — warm rose-gold on the peach-maroon backdrop */
.splash-jewel {
  width: 11px;
  height: 11px;
  background: radial-gradient(circle at 32% 28%, #FFF0E0 0%, #F0A878 48%, #9E3A1A 100%);
  border: 1px solid rgba(240, 160, 100, 0.7);
  box-shadow:
    0 0 8px rgba(255, 180, 120, 0.9),
    0 0 18px rgba(220, 110, 60, 0.6),
    0 0 32px rgba(160, 50, 20, 0.3);
  opacity: 1;
  z-index: 2;
  animation:
    splashJewelIn 0.4s cubic-bezier(.34,1.56,.64,1) 0.5s both,
    splashJewelTwinkle 2.4s ease-in-out 1.1s infinite;
}

/* Caption — soft cream italic on the deep backdrop */
.splash-caption {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: normal;
  font-weight: 700;
  font-size: clamp(1rem, 2vw, 1.36rem);
  letter-spacing: 0.1em;
  color: rgba(255, 242, 229, 0.96);
  text-align: center;
  text-shadow:
    0 2px 14px rgba(145, 52, 28, 0.44),
    0 3px 28px rgba(88, 18, 10, 0.28);
  opacity: 0;
  transform: translateY(8px);
  animation: splashCaptionIn 0.65s cubic-bezier(.2,.9,.36,1) 0.85s forwards;
  max-width: 90vw;
}

@keyframes splashCaptionIn {
  to { opacity: 1; transform: translateY(0); }
}

/* EXIT */
#splash.fade-out { pointer-events: none; }

#splash.fade-out .splash-content {
  opacity: 0 !important;
  transform: scale(0.97) translateY(-4px);
  transition: opacity 0.26s ease, transform 0.26s ease;
}

#splash.fade-out .splash-curtain--top    { transform: translateY(-100%); }
#splash.fade-out .splash-curtain--bottom { transform: translateY(100%); }

/* Mobile */
@media (max-width: 576px) {
  .splash-logo-wrap { width: min(72vw, 280px); }
  .splash-content { gap: 14px; }
  .splash-caption { font-size: 0.92rem; letter-spacing: 0.07em; }
  .splash-jewel { width: 9px; height: 9px; }
  .splash-jewel--top    { top: -13px; }
  .splash-jewel--bottom { bottom: -13px; }
  .splash-jewel--left   { left: -13px; }
  .splash-jewel--right  { right: -13px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .splash-logo-wrap { animation: none; }
  #splash-logo      { animation: none; }
  .splash-jewel     { animation: none; opacity: 1; }
  .splash-caption   { animation: none; opacity: 1; transform: none; }
  .splash-curtain   { transition-duration: 0.4s !important; }
}


/* ========================================
   NAVBAR - Slim, Transparent, NOT sticky
   ======================================== */
nav {
  position: absolute;
  top: 0; left: 0; width: 100%;
  z-index: 1000;
  background: transparent;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
/* Symmetric 3-column grid nav: left links | centered logo | right links.
   Both side columns have equal 1fr width, so the logo sits at the true
   geometric center regardless of differing link text widths/languages. */
.nav-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  padding: 8px 44px;
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
}
.nav-links {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0; padding: 0;
  position: relative;
  z-index: 2;
}
.nav-links li a {
  text-decoration: none;
  color: #fff;
  font-weight: 600;
  font-size: 0.82rem;
  padding: 6px 2px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  position: relative;
  transition: color 0.3s ease;
}
.nav-links li a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  width: 0; height: 1.5px;
  background: #FF8C5A;
  border-radius: 2px;
  transition: width 0.3s ease, left 0.3s ease;
}
.nav-links li a:hover::after {
  width: 100%; left: 0;
}
.nav-links li a:hover { color: #FF8C5A; }

.nav-left {
  justify-self: start;
  position: static;
  display: flex;
  align-items: center;
  gap: 18px;
  z-index: 3;
}
.nav-right {
  justify-self: end;
  position: static;
  display: flex;
  align-items: center;
  gap: 18px;
  z-index: 3;
}
.nav-center {
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 4;
  margin: -6px 0;  /* lets a slightly larger logo visually fit without increasing bar height */
}
.logo {
  height: 72px;
  width: auto;
  display: block;
  transition: filter 0.3s ease, transform 0.3s ease;
  filter: drop-shadow(0 4px 14px rgba(232,140,90, 0.28));
}
.logo:hover {
  transform: scale(1.05);
  filter: drop-shadow(0 6px 18px rgba(232,140,90, 0.42));
}

body.light-nav nav {
  background: linear-gradient(180deg, rgba(251, 244, 235, 0.95) 0%, rgba(251, 244, 235, 0.72) 62%, rgba(251, 244, 235, 0) 100%);
}

body.light-nav .nav-links li a {
  color: #8B4230;
}

body.light-nav .nav-links li a:hover {
  color: #C05430;
}

body.light-nav .lang-sep {
  color: rgba(122, 90, 66, 0.2);
}

body.light-nav .lang-btn {
  color: rgba(122, 90, 66, 0.65);
}

body.light-nav .lang-btn.active,
body.light-nav .lang-btn:hover {
  color: #fff;
  background: rgba(232,140,90, 0.4);
}

body.light-nav .hamburger-line {
  background: #8B4230;
}

body.light-nav .menu {
  background: rgba(255, 252, 249, 0.98);
}

/* Language Switcher */
.lang-switcher {
  display: flex; align-items: center; gap: 4px;
  margin-left: 12px;
}
.lang-sep { color: rgba(255,255,255,0.4); font-size: 0.75rem; }
.lang-btn {
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,0.6);
  font-size: 0.72rem; font-weight: 600;
  padding: 3px 6px; border-radius: 3px;
  transition: all 0.3s ease;
  font-family: 'Manrope', 'Poppins', sans-serif;
}
.lang-btn.active,
.lang-btn:hover {
  color: #fff;
  background: rgba(255,140,90,0.3);
}

/* Hamburger */
.hamburger {
  display: none; cursor: pointer;
  background: none; border: none;
  padding: 8px; flex-direction: column; gap: 5px;
  z-index: 1002;
}
.hamburger-line {
  display: block; width: 24px; height: 2px;
  background: #fff; border-radius: 3px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.hamburger.active .hamburger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.active .hamburger-line:nth-child(2) { opacity: 0; }
.hamburger.active .hamburger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile Menu */
.menu {
  display: none; position: absolute;
  top: 100%; left: 0; width: 100%;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  text-align: center; padding: 16px 0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  list-style: none; z-index: 999;
}
.menu.active {
  display: block;
  animation: menuSlideDown 0.3s ease forwards;
}
@keyframes menuSlideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.menu li a {
  display: block; padding: 12px 20px;
  text-decoration: none; color: #8B4230;
  font-weight: 600; font-size: 0.95rem;
  transition: color 0.3s ease, background 0.3s ease;
}
.menu li a:hover { color: #5C2010; background: rgba(255,140,90,0.1); }
  .menu li a:hover { color: #8B4230; background: rgba(232,140,90, 0.1); }
.mobile-lang {
  display: flex; justify-content: center; gap: 8px;
  padding: 10px 0;
}
.mobile-lang .lang-btn {
  color: #8B4230; font-size: 0.8rem;
}
.mobile-lang .lang-btn.active { color: #fff; background: #FF8C5A; }

@media (max-width: 768px) {
  .nav-inner {
    grid-template-columns: 1fr auto 1fr;
    padding: 8px 18px;
    gap: 8px;
  }
  .nav-left,
  .nav-right {
    display: none;
  }
  .nav-links { display: none; }
  .hamburger {
    display: flex;
    grid-column: 3;
    justify-self: end;
    position: relative;
    z-index: 1005;
  }
  .nav-center {
    grid-column: 2;
    justify-self: center;
    margin: -4px 0;
  }
  .logo { height: 58px; }
}


/* ========================================
   HERO SECTION
   ======================================== */
.hero { position: relative; }
.video-container {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #0a0604;
}
.video-container video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Minimal scroll-indicator pill at the bottom of the hero video.
   The video plays at full clarity - no overlay text or darkening. */
/* Hero Enquire Button - prominent peach-gold CTA floating at the bottom of the hero */
.hero-enquire {
  position: absolute;
  left: 50%;
  bottom: 40px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 14px 26px 14px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #C76A3F 0%, #9A4A2A 50%, #6E2E18 100%);
  color: #fff;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 20px 44px -14px rgba(140, 60, 35, 0.55),
    0 8px 20px -10px rgba(0, 0, 0, 0.4);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease, background 0.35s ease;
  z-index: 2;
  animation: hero-enquire-float 3.2s ease-in-out 1.2s infinite;
}

.hero-enquire:hover,
.hero-enquire:focus-visible {
  transform: translateX(-50%) translateY(-4px);
  background: linear-gradient(135deg, #A8532F 0%, #7A2F1A 50%, #4A1A0A 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 30px 60px -16px rgba(140, 60, 35, 0.75),
    0 14px 28px -12px rgba(0, 0, 0, 0.5);
  outline: none;
  animation-play-state: paused;
}

.hero-enquire-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  font-size: 0.98rem;
  flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.hero-enquire-label {
  white-space: nowrap;
}

.hero-enquire-arrow {
  font-size: 0.78rem;
  opacity: 0.9;
  transition: transform 0.3s ease;
}

.hero-enquire:hover .hero-enquire-arrow,
.hero-enquire:focus-visible .hero-enquire-arrow {
  transform: translateX(5px);
}

/* Gentle floating bob - draws the eye without being distracting */
@keyframes hero-enquire-float {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-enquire { animation: none; }
}

/* Legacy hero-overlay shell kept as no-op so any stale markup won't break */
.hero-overlay { display: none; }

.hero-eyebrow {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.52em;
  text-transform: uppercase;
  color: rgba(232, 195, 140, 0.92);
  text-indent: 0.52em;
}

.hero-eyebrow-line {
  display: inline-block;
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232, 195, 140, 0.8), transparent);
}

.hero-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 3.8rem);
  color: #fff;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.45);
  margin: 12px 0 0;
  max-width: 860px;
  line-height: 1.12;
  letter-spacing: 0.003em;
  font-weight: 500;
  text-wrap: balance;
}

.hero-sub {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: clamp(0.82rem, 1.3vw, 0.98rem);
  color: rgba(247, 233, 212, 0.78);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
  margin-top: 4px;
}

.hero-buttons {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-top: 32px;
}

/* Hero-only luxury CTA buttons - scoped so legacy .btn-primary elsewhere is untouched */
.btn-hero {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  border-radius: 999px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background 0.4s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.35s ease;
}

.btn-hero--primary {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  border-color: rgba(216, 171, 103, 0.45);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 14px 34px -12px rgba(154, 107, 62, 0.6);
}

.btn-hero--primary:hover,
.btn-hero--primary:focus-visible {
  background: linear-gradient(135deg, #d8ab67, #C28952);
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 22px 44px -14px rgba(216, 171, 103, 0.7);
  outline: none;
}

.btn-hero--ghost {
  background: rgba(255, 250, 238, 0.06);
  color: #f7e9d4;
  border: 1px solid rgba(247, 233, 212, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.btn-hero--ghost:hover,
.btn-hero--ghost:focus-visible {
  background: rgba(255, 250, 238, 0.16);
  border-color: #d8ab67;
  color: #fff;
  transform: translateY(-2px);
  outline: none;
}

/* Buttons */
.btn-primary {
  background: linear-gradient(135deg, #FF8C5A, #FF7842);
  color: #fff;
  padding: 11px 28px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.6px;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
  display: inline-block;
  text-transform: uppercase;
  box-shadow: 0 4px 15px rgba(255,140,90, 0.3);
}
.btn-primary:hover {
  background: linear-gradient(135deg, #FF7842, #E86830);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(255,140,90, 0.4);
}

.btn-outline {
  background: transparent;
  color: #fff;
  padding: 11px 28px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.6px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  transition: all 0.3s ease;
  display: inline-block;
  text-transform: uppercase;
}
.btn-outline:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.btn-gold {
  display: inline-block; padding: 12px 32px;
  background: linear-gradient(135deg, #A8532F, #6E2E18);
  color: #fff; text-decoration: none;
  font-weight: 600; border-radius: 4px;
  font-size: 0.9rem; letter-spacing: 0.5px;
  box-shadow: 0 10px 22px -8px rgba(110, 46, 24, 0.5);
  transition: all 0.3s ease;
}
.btn-gold:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #7A2F1A, #4A1A0A);
  box-shadow: 0 14px 30px -8px rgba(110, 46, 24, 0.65);
}

@media (max-width: 768px) {
  .hero-enquire { bottom: 30px; padding: 12px 22px 12px 12px; gap: 12px; font-size: 0.76rem; letter-spacing: 0.16em; }
  .hero-enquire-icon { width: 34px; height: 34px; font-size: 0.88rem; }
}
@media (max-width: 576px) {
  .hero-enquire { bottom: 24px; padding: 11px 20px 11px 11px; gap: 10px; font-size: 0.7rem; letter-spacing: 0.14em; }
  .hero-enquire-icon { width: 30px; height: 30px; font-size: 0.8rem; }
  .hero-enquire-arrow { font-size: 0.7rem; }
}


/* ========================================
   ABOUT SECTION
   ======================================== */
.about-us {
  background: #fcf7f1; padding: 100px 20px;
  position: relative; overflow: hidden;
}
.about-container {
  display: flex; flex-wrap: wrap;
  justify-content: space-between; align-items: center;
  max-width: 1200px; margin: 0 auto;
}
.about-content { flex: 1; min-width: 300px; padding: 20px; text-align: left; }
.about-content h2 {
  font-size: 2.5rem; font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  color: #5C2010; margin-bottom: 15px;
}
.about-content h4 {
  font-size: 1.3rem; font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  color: #5C2010; margin-bottom: 10px;
}
.gold-divider {
  width: 88px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #C57A4E 20%, #FFB896 50%, #C57A4E 80%, transparent);
  margin: 18px 0 28px 0;
  border-radius: 2px;
  position: relative;
}
.gold-divider::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: linear-gradient(135deg, #FFD4B8, #A8532F);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 8px rgba(197, 122, 78, 0.75);
}
.about-content p { font-size: 1rem; color: #3a2a1e; line-height: 1.7; margin-bottom: 16px; }
  .about-content p { font-size: 1rem; color: #5a4a3a; line-height: 1.7; margin-bottom: 16px; }
.about-image { flex: 1; min-width: 300px; padding: 20px; text-align: center; }
.about-image img {
  width: 100%; max-width: 500px;
  border-radius: 20px;
  box-shadow: 0 15px 30px rgba(0,0,0,0.1);
  transition: transform 0.3s ease;
}
.about-image img:hover { transform: scale(1.03); }

/* Trust Points */
.trust-points {
  display: flex; justify-content: center;
  gap: 50px; margin-top: 50px;
  flex-wrap: wrap;
}
.trust-item {
  display: flex; flex-direction: column; align-items: center;
  gap: 10px; color: #6c4b32;
}
.trust-item i { font-size: 2rem; color: #E8956A; }
.trust-item span { font-weight: 600; font-size: 0.95rem; letter-spacing: 0.5px; }

@media (max-width: 768px) {
  .about-container { flex-direction: column; }
  .about-content h2 { font-size: 1.8rem; }
  .trust-points { gap: 30px; }
}
@media (min-width: 769px) {
  .about-container { flex-direction: row-reverse; }
}


/* ========================================
   PARALLAX SECTION
   ======================================== */
.parallax {
  height: 70vh;
  background-image: url('assets/about_us.jpg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  /* Enable the classic fixed-attachment parallax by default. `transform`
     and `contain: paint` both create a containing block that turns
     `background-attachment: fixed` into `scroll` — do NOT add them here. */
  background-attachment: fixed;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
}
/* Touch devices: iOS/Android do not support background-attachment: fixed
   reliably. Fall back to a normal scroll background. */
@media (hover: none), (max-width: 768px) {
  .parallax { background-attachment: scroll; }
}
.parallax-overlay {
  background: rgba(0,0,0,0.5);
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
}
.parallax-title {
  font-size: 3rem; color: #fff;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  text-shadow: 0 0 30px rgba(255,255,255,0.4);
  text-align: center;
}
@media (max-width: 768px) { .parallax { height: 50vh; } .parallax-title { font-size: 2rem; } }


/* ========================================
   VENUES / SERVICES SECTION
   ======================================== */
/* ========================================
   HOME · SIGNATURE VENUE CARDS (peach luxe)
   Clean images, no overlaid text, warm peach palette.
   ======================================== */
.home-services {
  position: relative;
  padding: 110px clamp(20px, 4vw, 48px) 120px;
  text-align: center;
  background:
    radial-gradient(circle at 8% 10%, rgba(255, 198, 168, 0.5) 0%, transparent 34%),
    radial-gradient(circle at 92% 94%, rgba(232, 149, 106, 0.28) 0%, transparent 34%),
    linear-gradient(180deg, #FFE8D6 0%, #FFD9BE 55%, #FFEEDC 100%);
  overflow: hidden;
}

/* Decorative peach blush at top and bottom */
.home-services::before {
  content: "";
  position: absolute;
  top: -160px;
  left: 50%;
  transform: translateX(-50%);
  width: 720px;
  height: 320px;
  background: radial-gradient(ellipse at center, rgba(255, 220, 195, 0.55) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.home-venues-kicker {
  display: inline-block;
  margin-bottom: 16px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #B55A3A;
  padding: 7px 18px;
  border-radius: 999px;
  background: rgba(255, 250, 244, 0.85);
  border: 1px solid rgba(232, 149, 106, 0.4);
  position: relative;
  z-index: 1;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.home-services .home-venues-heading {
  font-weight: 600;
  letter-spacing: 0.005em;
  position: relative;
  z-index: 1;
  color: #5A2A1A;
}

.home-venues-sub {
  max-width: 620px;
  margin: -12px auto 48px;
  color: #7A4030;
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.7;
  position: relative;
  z-index: 1;
}

.section-heading {
  font-size: clamp(2rem, 4.6vw, 2.8rem);
  color: #5A2A1A;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  margin-bottom: 14px;
  font-weight: 600;
  letter-spacing: 0.005em;
  transition: color 0.3s ease;
}

.gold-divider-center {
  width: 72px;
  height: 2px;
  background: linear-gradient(to right, transparent, #D4724A 20%, #FFB896 50%, #D4724A 80%, transparent);
  margin: 0 auto 28px;
  border-radius: 2px;
  position: relative;
}
.gold-divider-center::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 10px rgba(232, 149, 106, 0.85);
}

.home-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  max-width: 1340px;
  margin: 0 auto;
  align-items: stretch;
  position: relative;
  z-index: 1;
}

.home-service-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(180deg, #FFF5EB 0%, #FFE5D0 100%);
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(232, 149, 106, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 22px 44px -22px rgba(140, 60, 35, 0.28);
  transition:
    transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    box-shadow 0.5s ease,
    border-color 0.4s ease;
  min-height: 100%;
  isolation: isolate;
}

.home-service-card:hover {
  transform: translateY(-10px);
  border-color: rgba(212, 114, 74, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 36px 66px -24px rgba(140, 60, 35, 0.42);
}

/* Image area - clean, no overlays */
.home-service-card .card-img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 0.98 / 1.08;
  background: #f7dcc4;
  /* Perf: isolate this area so the large image doesn't trigger ancestor repaints */
  contain: layout paint;
  isolation: isolate;
}

.home-service-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  /* Perf: GPU-composite the image so hover scale is cheap and doesn't repaint pixels */
  transform: translateZ(0);
  backface-visibility: hidden;
}

.home-service-card:hover img {
  transform: translateZ(0) scale(1.04);
}

/* Disable hover zoom on touch devices where it triggers without user intent */
@media (hover: none) {
  .home-service-card:hover img { transform: translateZ(0); }
}

/* Peach tint frame that subtly blooms on hover (no dark veil) */
.home-service-card .card-img-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 0 rgba(212, 114, 74, 0);
  pointer-events: none;
  transition: box-shadow 0.45s ease;
}

.home-service-card:hover .card-img-wrap::after {
  box-shadow: inset 0 0 0 2px rgba(212, 114, 74, 0.3);
}

/* Card content */
.card-content {
  padding: 24px 24px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: linear-gradient(180deg, rgba(255, 248, 240, 0.98) 0%, rgba(255, 232, 210, 0.98) 100%);
  position: relative;
}

.card-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212, 114, 74, 0.38), transparent);
}

.card-meta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

/* Inline tag pill (replaces overlay) */
.card-tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #B55A3A;
  background: linear-gradient(135deg, rgba(255, 232, 210, 0.9), rgba(255, 216, 186, 0.75));
  border: 1px solid rgba(212, 114, 74, 0.35);
  border-radius: 999px;
}

.card-index {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1;
  color: transparent;
  background: linear-gradient(135deg, #FFB896, #D4724A 70%);
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: 0.02em;
  font-variant-numeric: lining-nums;
}

.card-content h3 {
  font-size: clamp(1.28rem, 1.7vw, 1.52rem);
  color: #4A2013;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  margin-bottom: 10px;
  letter-spacing: 0.005em;
  line-height: 1.2;
  transition: color 0.35s ease;
  max-width: 15ch;
}

.home-service-card:hover .card-content h3 {
  color: #C05430;
}

.card-content p {
  font-size: 0.88rem;
  color: #7A4030;
  line-height: 1.7;
  font-weight: 400;
  letter-spacing: 0.005em;
  margin-bottom: 16px;
}

/* Capacity row inside content (replaces overlay pill) */
.card-capacity-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: #8B4230;
  letter-spacing: 0.015em;
  margin-bottom: 18px;
}

.card-capacity-row i {
  color: #D4724A;
  font-size: 0.9em;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(212, 114, 74, 0.12);
  border: 1px solid rgba(212, 114, 74, 0.22);
}

/* "Explore Venue" link with animated arrow */
.card-link {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px dashed rgba(212, 114, 74, 0.35);
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #B55A3A;
  transition: color 0.3s ease, border-color 0.3s ease;
}

.card-link-label {
  position: relative;
}

.card-link-label::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  background: linear-gradient(90deg, #D4724A, transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1);
}

.home-service-card:hover .card-link-label::after {
  transform: scaleX(1);
}

.card-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(212, 114, 74, 0.18), rgba(232, 149, 106, 0.08));
  border: 1px solid rgba(212, 114, 74, 0.32);
  color: #B55A3A;
  font-size: 0.7rem;
  transition: background 0.4s ease, border-color 0.3s ease, color 0.3s ease, transform 0.4s cubic-bezier(.2,.8,.2,1);
}

.home-service-card:hover .card-link {
  color: #5A2A1A;
  border-top-color: rgba(212, 114, 74, 0.55);
}

.home-service-card:hover .card-link-icon {
  background: linear-gradient(135deg, #A8532F, #6E2E18);
  border-color: transparent;
  color: #fff;
  transform: translateX(4px);
}

@media (max-width: 1024px) {
  .home-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 900px;
  }
}

@media (max-width: 600px) {
  .home-services { padding: 84px 18px 96px; }
  .home-service-grid {
    grid-template-columns: 1fr;
    max-width: 460px;
    gap: 22px;
  }
  .home-service-card .card-img-wrap {
    aspect-ratio: 1.25 / 1;
  }
  .card-content h3 {
    max-width: none;
  }
}


/* ========================================
   GALLERY / SLIDESHOW
   ======================================== */
.slideshow-section {
  position: relative;
  padding: 96px 20px 90px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 152, 105, 0.24) 0%, transparent 34%),
    radial-gradient(circle at 82% 80%, rgba(232, 140, 90, 0.16) 0%, transparent 28%),
    linear-gradient(180deg, #FFF6EE 0%, #FFE8D3 100%);
}
.slideshow-container {
  max-width: 1200px;
  margin: 0 auto;
}
.slideshow-head {
  text-align: center;
  margin-bottom: 28px;
}
.slideshow-kicker {
  display: inline-flex;
  margin-bottom: 12px;
  color: #9A5238;
  font-size: 0.76rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
}
.slideshow-title {
  color: #5C2010;
  font-size: clamp(2rem, 4.5vw, 2.9rem);
  letter-spacing: 0.01em;
  margin-bottom: 10px;
}
.slideshow-section .gold-divider-center {
  margin-bottom: 0;
}
.slideshow-stage {
  position: relative;
  height: 68vh;
  min-height: 430px;
  border-radius: 30px;
  overflow: hidden;
  border: 2px solid rgba(232,140,90, 0.26);
  box-shadow: 0 24px 56px rgba(68, 39, 24, 0.15);
}
.slides { width: 100%; height: 100%; position: relative; contain: layout paint; }
.slide {
  position: absolute; width: 100%; height: 100%;
  opacity: 0;
  transition: opacity 0.9s ease-in-out;
  /* Perf: promote each slide to its own GPU layer so opacity crossfade is cheap */
  will-change: opacity;
  transform: translateZ(0);
}
.slide.active { opacity: 1; z-index: 2; }
.slide img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s ease;
  /* Darken via composited overlay instead of CSS filter (much cheaper to paint) */
}
.slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(42, 24, 14, 0.22) 0%, rgba(42, 24, 14, 0.35) 100%);
  pointer-events: none;
}
.slide:hover img { transform: scale(1.02); }
@media (hover: none) {
  .slide:hover img { transform: none; }
}
.overlay-text {
  position: absolute; z-index: 3;
  bottom: 10%; left: 5%;
  font-size: 1.32rem; color: #fff;
  background: linear-gradient(90deg, rgba(65, 35, 22, 0.75) 0%, rgba(65, 35, 22, 0.4) 100%);
  padding: 10px 18px;
  border-left: 4px solid #ffb08a;
  border-radius: 0 14px 14px 0;
  font-weight: 600;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
}
.thumbnails {
  margin-top: 18px;
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.thumb {
  width: 70px; height: 50px; object-fit: cover;
  cursor: pointer; border: 2px solid rgba(214,174,123,0.5);
  transition: 0.3s ease; opacity: 0.68; border-radius: 8px;
}
.thumb:hover, .thumb.active {
  border-color: #E8956A; opacity: 1;
  box-shadow: 0 0 10px rgba(214,174,123,0.5);
}
.slideshow-actions {
  text-align: center;
  margin-top: 26px;
}
@media (max-width: 768px) {
  .slideshow-section {
    padding: 78px 16px 74px;
  }
  .slideshow-stage {
    height: 56vh;
    min-height: 320px;
  }
  .overlay-text { display: none; }
  .thumb { width: 50px; height: 35px; }
}
@media (max-width: 576px) {
  .slideshow-stage {
    height: 48vh;
    min-height: 260px;
    border-radius: 20px;
  }
}


/* ========================================
   INSTAGRAM SECTION
   ======================================== */
.instagram-section {
  padding: 90px 20px 96px;
  background:
    radial-gradient(circle at top left, rgba(255, 168, 120, 0.2) 0%, transparent 32%),
    radial-gradient(circle at 92% 90%, rgba(232, 140, 90, 0.14) 0%, transparent 28%),
    linear-gradient(180deg, #fcf6ef 0%, #f1ddc1 100%);
}

.ig-container {
  max-width: 1040px;
  margin: auto;
  text-align: center;
}

.ig-kicker {
  margin: 0 0 10px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9b7d5c;
  font-weight: 700;
}

.ig-heading {
  font-size: clamp(2rem, 2.5vw, 2.8rem);
  margin: 0 0 28px;
  color: #3f2920;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.08;
}

.ig-profile {
  display: grid;
  gap: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 246, 236, 0.92) 100%);
  border: 1px solid rgba(204, 154, 96, 0.24);
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 24px 60px rgba(35, 22, 12, 0.14);
  margin-bottom: 30px;
  text-align: left;
}

.ig-profile-shelf {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.ig-profile-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid rgba(206, 155, 90, 0.45);
  padding: 3px;
  background: linear-gradient(145deg, #f8e2d0, #c89b63);
  flex-shrink: 0;
}

.ig-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ig-profile-main {
  min-width: 0;
}

.ig-profile-handle-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 8px;
}

.ig-profile-handle {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.98rem;
  font-weight: 700;
  color: #3c271f;
}

.ig-verified {
  color: #3897f0;
  font-size: 0.94rem;
}

.ig-profile-name {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.45rem;
  color: #3f2920;
  margin-bottom: 6px;
}

.ig-profile-bio {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.92rem;
  color: #7A3020;
  line-height: 1.7;
  max-width: 680px;
}

.ig-profile-details {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: flex-start;
}

.ig-stat {
  min-width: 84px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(204, 154, 96, 0.26);
  border-radius: 16px;
  padding: 10px 14px;
  text-align: center;
}

.ig-stat-value {
  display: block;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #432f24;
  line-height: 1.1;
}

.ig-stat-label {
  display: block;
  margin-top: 4px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8d6f57;
}

.ig-follow-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  background: #9f7247;
  color: #fff;
  border-radius: 999px;
  padding: 12px 18px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: transform 0.24s ease, box-shadow 0.24s ease, background 0.24s ease;
}

.ig-follow-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(159, 114, 71, 0.28);
  background: #b78c5e;
}

.ig-feed-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 280px;
  gap: 18px;
}

.ig-tile {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 22px 52px rgba(31, 21, 11, 0.12);
  text-decoration: none;
  color: inherit;
  transition: transform 0.28s ease, box-shadow 0.28s ease;
  background: #110f11;
}

.ig-tile:hover {
  transform: translateY(-5px);
  box-shadow: 0 28px 62px rgba(31, 21, 11, 0.2);
}

.ig-tile--hero {
  grid-column: 1 / span 8;
  grid-row: 1 / span 1;
}

.ig-tile--side {
  grid-column: 9 / span 4;
  grid-row: 1 / span 1;
}

.ig-tile--wide {
  grid-column: 1 / span 6;
  grid-row: 2 / span 1;
}

.ig-tile--wide-right {
  grid-column: 7 / span 6;
  grid-row: 2 / span 1;
}

.ig-tile--half-left {
  grid-column: 1 / span 6;
  grid-row: 3 / span 1;
}

.ig-tile--half-right {
  grid-column: 7 / span 6;
  grid-row: 3 / span 1;
}

.ig-tile-media {
  position: relative;
  width: 100%;
  height: 100%;
}

.ig-tile-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 5, 4, 0.04) 38%, rgba(8, 5, 4, 0.72) 100%);
  pointer-events: none;
  z-index: 2;
}

.ig-tile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.ig-tile:hover .ig-tile-media img {
  transform: scale(1.05);
}

.ig-type-badge {
  position: absolute;
  left: 16px;
  top: 16px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #4a3724;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ig-type-badge i {
  font-size: 0.88rem;
}

.ig-tile-play {
  position: absolute;
  right: 18px;
  top: 18px;
  z-index: 3;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.48);
  border: 1px solid rgba(255, 255, 255, 0.26);
  color: #fff;
  font-size: 0.88rem;
  transition: background 0.25s ease, transform 0.25s ease;
}

.ig-tile:hover .ig-tile-play {
  background: rgba(193, 53, 132, 0.92);
  transform: scale(1.02);
}

.ig-tile-copy {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 20px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ig-tile-title {
  color: #fff;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.2;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
}

.ig-tile-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ig-metric {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #3f2920;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.ig-cta-pill {
  align-self: flex-start;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #3f2920;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ig-meta-strip {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ig-meta-chip {
  border-radius: 999px;
  padding: 5px 10px;
  background: rgba(255, 255, 255, 0.94);
  color: #4b3726;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ig-disclaimer {
  margin: 18px auto 0;
  max-width: 780px;
  color: #7f6957;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.8rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.ig-hidden {
  display: none !important;
}

@media (max-width: 992px) {
  .instagram-section { padding: 74px 20px 82px; }
  .ig-profile-shelf { gap: 16px; }
  .ig-profile-details { justify-content: flex-start; }
  .ig-feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 240px;
    gap: 16px;
  }
  .ig-tile--hero, .ig-tile--side, .ig-tile--wide, .ig-tile--wide-right {
    grid-column: auto;
    grid-row: auto;
  }
}

@media (max-width: 768px) {
  .ig-profile {
    padding: 22px;
  }
  .ig-profile-avatar {
    width: 82px;
    height: 82px;
  }
  .ig-feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 200px;
    gap: 14px;
  }
}

@media (max-width: 576px) {
  .instagram-section { padding: 66px 14px 74px; }
  .ig-profile {
    padding: 18px;
    border-radius: 22px;
  }
  .ig-profile-shelf {
    flex-direction: column;
    align-items: flex-start;
  }
  .ig-profile-details {
    width: 100%;
    gap: 12px;
  }
  .ig-feed-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 200px;
  }
  .ig-disclaimer { font-size: 0.74rem; }
}


/* ========================================
   INSTAGRAM SECTION - LUXURY EDITORIAL
   (scoped to .ig-is-editorial on index.html;
    old .ig-profile/.ig-tile styles above remain
    in use on gallery.html)
   ======================================== */
.instagram-section.ig-is-editorial {
  padding: 104px 22px 112px;
  background:
    radial-gradient(circle at 6% 0%, rgba(194, 137, 82, 0.12) 0%, transparent 40%),
    radial-gradient(circle at 100% 100%, rgba(154, 107, 62, 0.10) 0%, transparent 34%),
    linear-gradient(180deg, #faf5ec 0%, #f2e6d1 100%);
  color: #3a2418;
}

.ig-wrap {
  max-width: 1180px;
  margin: 0 auto;
}

/* --- Header ------------------------------------------------- */
.ig-head {
  text-align: center;
  margin-bottom: 56px;
}

.ig-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 22px;
  padding: 7px 16px 7px 13px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.85);
  border: 1px solid rgba(194, 137, 82, 0.35);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.ig-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #C28952;
  box-shadow: 0 0 0 0 rgba(194, 137, 82, 0.55);
  animation: ig-live-pulse 2.2s ease-in-out infinite;
}

@keyframes ig-live-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(194, 137, 82, 0.55); }
  50%      { box-shadow: 0 0 0 8px rgba(194, 137, 82, 0); }
}

.ig-title {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  line-height: 1.05;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.ig-title-accent {
  font-style: italic;
  font-weight: 500;
  color: #9A6B3E;
}

/* Instagram brand gradient — matches the current Instagram logo.
   Only on the "Instagram" word, so the preceding "on" stays in the
   warm brown title color. */
.ig-title-word {
  font-style: italic;
  font-weight: 600;
  background: linear-gradient(45deg,
      #f09433 0%,
      #e6683c 25%,
      #dc2743 50%,
      #cc2366 75%,
      #bc1888 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
}

.ig-flourish {
  display: block;
  width: 72px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, #C28952 50%, transparent);
  position: relative;
}

.ig-flourish::before,
.ig-flourish::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #C28952;
  transform: translateY(-50%);
}
.ig-flourish::before { left: -11px; }
.ig-flourish::after  { right: -11px; }

/* --- Profile card ------------------------------------------- */
.ig-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas:
    "avatar body  stats"
    "avatar body  cta";
  align-items: center;
  column-gap: 38px;
  row-gap: 26px;
  padding: 34px 40px;
  margin-bottom: 56px;
  background:
    linear-gradient(145deg, rgba(255, 253, 247, 0.96), rgba(249, 239, 222, 0.88));
  border: 1px solid rgba(194, 137, 82, 0.28);
  border-radius: 26px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 30px 60px -28px rgba(58, 36, 24, 0.22);
}

.ig-card-avatar {
  grid-area: avatar;
  width: 116px;
  height: 116px;
  border-radius: 50%;
  padding: 4px;
  background: conic-gradient(from 140deg, #EED4A2, #C28952 35%, #9A6B3E 60%, #E6C78A 85%, #EED4A2);
  box-shadow: 0 14px 30px -10px rgba(154, 107, 62, 0.35);
  flex-shrink: 0;
}

.ig-card-avatar-inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  background: #fff;
  padding: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ig-card-avatar-inner img {
  width: 86%;
  height: 86%;
  border-radius: 50%;
  /* Keep the full logo visible inside the avatar ring — the old cover
     crop chopped off the "Krushnpingaksh" wordmark. Contain + padding
     keeps it centered and whole. */
  object-fit: contain;
  object-position: center;
  display: block;
  padding: 2px;
  background: #fff;
}

.ig-card-body {
  grid-area: body;
  min-width: 0;
}

.ig-card-handle-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.ig-card-handle {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #6d4a30;
}

.ig-card-handle-check {
  color: #C28952;
  font-size: 0.92rem;
}

.ig-card-name {
  margin: 0 0 6px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.7rem;
  line-height: 1.1;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.ig-card-bio {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.94rem;
  line-height: 1.6;
  color: #6a5040;
  max-width: 44ch;
}

.ig-card-bio em {
  font-style: italic;
  color: #5a3e2c;
}

/* Stats strip - hairline-separated, big Cormorant numerals */
.ig-card-stats {
  grid-area: stats;
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
}

.ig-card-stat {
  display: flex;
  flex-direction: column-reverse; /* dt before dd in DOM, dd on top visually */
  align-items: center;
  gap: 6px;
  padding: 4px 24px;
  text-align: center;
  border-right: 1px solid rgba(194, 137, 82, 0.28);
}

.ig-card-stat:first-child { padding-left: 0; }
.ig-card-stat:last-child  { padding-right: 0; border-right: 0; }

.ig-card-stat dd {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 1.45rem;
  line-height: 1;
  letter-spacing: -0.015em;
  color: #3a2418;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}

.ig-card-stat dt {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6a5040;
  opacity: 0.82;
}

/* Dark pill CTA - transitions to gold gradient on hover */
.ig-card-cta {
  grid-area: cta;
  justify-self: end;
  align-self: start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, #2c1a11, #3a2418);
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 12px 28px -14px rgba(58, 36, 24, 0.5);
  transition: background 0.45s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  position: relative;
  z-index: 4;
  cursor: pointer;
  pointer-events: auto;
}

.ig-card-cta i {
  font-size: 0.98rem;
  color: #C28952;
  transition: color 0.3s ease;
}

.ig-card-cta:hover {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 34px -12px rgba(154, 107, 62, 0.5);
}

.ig-card-cta:hover i { color: #fff; }

/* --- Reel grid (12-col magazine) ---------------------------- */
.ig-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 260px;
  gap: 20px;
  grid-template-areas:
    "h h h h h t t t m m m m"
    "h h h h h t t t n n n n"
    "w w w w w w w s s s s s";
}

.ig-reel--hero { grid-area: h; }
.ig-reel--tall { grid-area: t; }
.ig-reel--med1 { grid-area: m; }
.ig-reel--med2 { grid-area: n; }
.ig-reel--wide { grid-area: w; }
.ig-reel--sq   { grid-area: s; }

.ig-reel {
  display: block;
  text-decoration: none;
  color: inherit;
}

.ig-reel-plate {
  position: relative;
  margin: 0;
  width: 100%;
  height: 100%;
  padding: 9px;
  border-radius: 20px;
  background: linear-gradient(155deg, #fbf3e3 0%, #f4e6cc 100%);
  border: 1px solid rgba(194, 137, 82, 0.38);
  box-shadow:
    inset 0 0 0 1px rgba(255, 253, 247, 0.6),
    inset 0 2px 10px rgba(112, 70, 36, 0.08),
    0 18px 44px -24px rgba(58, 36, 24, 0.4);
  overflow: hidden;
  transition: transform 0.42s cubic-bezier(.2,.8,.2,1), box-shadow 0.42s ease;
}

/* Slow shimmer glint on hover */
.ig-reel-plate::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255, 249, 232, 0.55) 48%, transparent 62%);
  transform: translateX(-130%);
  transition: transform 1.15s ease;
  z-index: 5;
  mix-blend-mode: screen;
}

.ig-reel:hover .ig-reel-plate {
  transform: translateY(-4px);
  box-shadow:
    inset 0 0 0 1px rgba(255, 253, 247, 0.7),
    inset 0 2px 10px rgba(112, 70, 36, 0.08),
    0 26px 56px -26px rgba(58, 36, 24, 0.5);
}

.ig-reel:hover .ig-reel-plate::before { transform: translateX(130%); }

.ig-reel-plate img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 13px;
  background: #1a1210;
  transition: transform 0.5s ease;
}

/* Warm dusky tint overlay for extra separation from gallery images */
.ig-reel-plate::after {
  content: "";
  position: absolute;
  inset: 9px;
  border-radius: 13px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(34, 18, 10, 0.2) 0%, rgba(34, 18, 10, 0.5) 100%),
    linear-gradient(180deg, rgba(194, 137, 82, 0.12) 0%, rgba(22, 12, 6, 0.48) 100%);
  pointer-events: none;
  z-index: 3;
  opacity: 1;
  transition: opacity 0.5s ease;
}

.ig-reel:hover .ig-reel-plate img {
  transform: scale(1.04);
}

.ig-reel:hover .ig-reel-plate::after {
  opacity: 0.5;
}

.ig-reel-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255, 250, 238, 0.7);
  border: 1px solid rgba(194, 137, 82, 0.45);
  color: #5a3e2c;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.ig-reel-badge i { color: #C28952; font-size: 0.78rem; }

.ig-reel-play {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 250, 238, 0.68);
  border: 1px solid rgba(194, 137, 82, 0.45);
  color: #3a2418;
  font-size: 0.76rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.ig-reel:hover .ig-reel-play {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  border-color: transparent;
  transform: scale(1.06);
}

.ig-reel-caption {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 4;
  margin: 0;
  padding: 10px 14px;
  background: rgba(255, 250, 238, 0.82);
  border: 1px solid rgba(194, 137, 82, 0.35);
  border-radius: 12px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.2;
  color: #3a2418;
  letter-spacing: 0.005em;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ig-reel-caption em { font-style: italic; color: #3a2418; }

/* Reel metrics row (likes + views) */
.ig-reel-stats {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding-top: 6px;
  border-top: 1px dashed rgba(194, 137, 82, 0.35);
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #5a3e2c;
}

.ig-reel-stat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
}

.ig-reel-stat:first-child { padding-left: 0; }

.ig-reel-stat + .ig-reel-stat {
  border-left: 1px solid rgba(194, 137, 82, 0.32);
}

.ig-reel-stat i {
  color: #C28952;
  font-size: 0.82em;
  transition: transform 0.35s cubic-bezier(.34,1.56,.64,1);
}

.ig-reel-stat i.fa-heart {
  color: #d85a5a;
}

.ig-reel:hover .ig-reel-stat i {
  transform: scale(1.1);
}

@media (max-width: 560px) {
  .ig-reel-stats { font-size: 0.68rem; }
  .ig-reel-stat { padding: 0 9px; gap: 5px; }
}

/* --- Footer strip ------------------------------------------- */
.ig-footstrip {
  margin-top: 46px;
  padding-top: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  border-top: 1px solid rgba(194, 137, 82, 0.28);
  flex-wrap: wrap;
  position: relative;
  z-index: 3;
}

.ig-credit {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  color: #7a5d46;
  letter-spacing: 0.01em;
}

.ig-credit em {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: italic;
  font-weight: 600;
  color: #9A6B3E;
  font-size: 0.98rem;
}

.ig-viewall {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(194, 137, 82, 0.55);
  color: #3a2418;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.3s ease, border-color 0.3s ease, gap 0.3s ease;
  position: relative;
  z-index: 4;
  cursor: pointer;
  pointer-events: auto;
}

.ig-viewall:hover {
  color: #9A6B3E;
  border-color: #9A6B3E;
  gap: 14px;
}

/* --- Responsive --------------------------------------------- */
@media (max-width: 1024px) {
  .ig-grid { grid-auto-rows: 220px; gap: 16px; }
  .ig-card { padding: 28px 30px; column-gap: 26px; }
  .ig-card-avatar { width: 104px; height: 104px; }
}

@media (max-width: 860px) {
  .instagram-section.ig-is-editorial { padding: 82px 18px 92px; }

  .ig-card {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "avatar body"
      "stats  stats"
      "cta    cta";
    row-gap: 20px;
    padding: 26px;
  }
  .ig-card-stats {
    justify-content: space-between;
    width: 100%;
    padding-top: 18px;
    border-top: 1px solid rgba(194, 137, 82, 0.28);
  }
  .ig-card-cta { justify-self: start; }

  .ig-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 230px;
    grid-template-areas:
      "h h"
      "t m"
      "n w"
      "s s";
  }
}

@media (max-width: 560px) {
  .instagram-section.ig-is-editorial { padding: 70px 14px 80px; }

  .ig-card {
    grid-template-columns: 1fr;
    grid-template-areas:
      "avatar"
      "body"
      "stats"
      "cta";
    justify-items: center;
    text-align: center;
    padding: 24px 20px;
  }
  .ig-card-bio { max-width: none; }
  .ig-card-avatar { width: 94px; height: 94px; }
  .ig-card-stats { justify-content: center; }
  .ig-card-stat { padding: 0 14px; }
  .ig-card-cta { justify-self: center; }

  .ig-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 270px;
    grid-template-areas:
      "h" "t" "m" "n" "w" "s";
  }

  .ig-title { font-size: clamp(1.9rem, 8vw, 2.4rem); }
  .ig-reel-caption { font-size: 0.9rem; left: 16px; right: 16px; bottom: 16px; }
  .ig-footstrip { flex-direction: column; align-items: flex-start; }
}


/* ========================================
   ROYAL EVENTS SECTION
   ======================================== */
.royal-events-section {
  background: linear-gradient(to bottom, #fff6e9, #fdab85);
  padding: 100px 20px; text-align: center;
  border-top: 2px solid #F0C090;
}
.royal-events-container { max-width: 1100px; margin: auto; }
.royal-events-title {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 2.5rem; color: #8B4230; margin-bottom: 16px;
  text-decoration: none;
}
.royal-events-subtext {
  font-size: 1.1rem; color: #5a3e36;
  margin-bottom: 40px; max-width: 700px;
  margin-left: auto; margin-right: auto; line-height: 1.8;
}
.royal-event-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 0 10px;
  max-width: 1080px;
  margin: 0 auto;
}
.event-item {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  font-size: 1rem;
  font-weight: 500;
  color: #5a2e1a;
  background: linear-gradient(180deg, #FFF5EB 0%, #FFE6D0 100%);
  border: 1px solid rgba(232, 149, 106, 0.3);
  border-radius: 14px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 10px 22px -14px rgba(140, 60, 35, 0.24);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1),
              box-shadow 0.35s ease,
              border-color 0.3s ease,
              background 0.4s ease;
  text-align: left;
  line-height: 1.3;
}
.event-item i {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  color: #fff;
  font-size: 0.95rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 6px 14px -6px rgba(140, 60, 35, 0.4);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease;
}
.event-item span { flex: 1 1 auto; min-width: 0; }
.event-item:hover {
  transform: translateY(-4px);
  border-color: rgba(212, 114, 74, 0.55);
  background: linear-gradient(180deg, #FFF9F1 0%, #FFDCBF 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 18px 32px -14px rgba(140, 60, 35, 0.35);
}
.event-item:hover i {
  transform: scale(1.08);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 10px 20px -6px rgba(140, 60, 35, 0.5);
}

@media (max-width: 820px) {
  .royal-event-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .event-item { font-size: 0.94rem; padding: 16px 16px; }
  .event-item i { width: 34px; height: 34px; font-size: 0.88rem; }
}

@media (max-width: 520px) {
  .royal-event-list { grid-template-columns: 1fr; }
}


/* ========================================
   POLICIES HIGHLIGHT
   ======================================== */
/* ========================================
   HOME - OUR VALUES (luxe peach redesign)
   ======================================== */
.policies-highlight {
  position: relative;
  padding: 110px clamp(20px, 4vw, 48px) 120px;
  text-align: center;
  background:
    radial-gradient(circle at 10% 12%, rgba(255, 220, 195, 0.5) 0%, transparent 32%),
    radial-gradient(circle at 90% 90%, rgba(232, 149, 106, 0.22) 0%, transparent 32%),
    linear-gradient(180deg, #FFF3E4 0%, #FFE3CA 55%, #FFF0DE 100%);
  overflow: hidden;
}
.policies-highlight::before {
  content: "";
  position: absolute;
  top: -160px;
  left: 50%;
  transform: translateX(-50%);
  width: 720px;
  height: 320px;
  background: radial-gradient(ellipse at center, rgba(255, 230, 205, 0.55) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.policies-highlight-inner {
  position: relative;
  z-index: 1;
  max-width: 1140px;
  margin: 0 auto;
}
.policies-eyebrow {
  display: inline-block;
  margin-bottom: 16px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #B55A3A;
  padding: 7px 18px;
  border-radius: 999px;
  background: rgba(255, 250, 244, 0.85);
  border: 1px solid rgba(232, 149, 106, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.policies-highlight .section-heading { color: #5A2A1A; }
.policies-lead {
  max-width: 620px;
  margin: -10px auto 48px;
  color: #7A4030;
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.7;
}
.policy-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  margin: 0 auto;
  max-width: 1080px;
}
.policy-card {
  position: relative;
  padding: 44px 28px 32px;
  background: linear-gradient(180deg, #FFF8F1 0%, #FFE5D0 100%);
  border: 1px solid rgba(232, 149, 106, 0.28);
  border-radius: 22px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 22px 44px -22px rgba(140, 60, 35, 0.24);
  text-align: left;
  transition: transform 0.45s cubic-bezier(.2,.8,.2,1),
              box-shadow 0.45s ease,
              border-color 0.3s ease;
  overflow: hidden;
}
.policy-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, #D4724A 35%, #FFB896 65%, transparent);
  transform: scaleX(0.25);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1);
}
.policy-card:hover {
  transform: translateY(-8px);
  border-color: rgba(212, 114, 74, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 36px 66px -24px rgba(140, 60, 35, 0.38);
}
.policy-card:hover::before { transform: scaleX(1); }
.policy-card-num {
  position: absolute;
  top: 20px;
  right: 24px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: italic;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1;
  color: transparent;
  background: linear-gradient(135deg, #FFB896, #D4724A 70%);
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: 0.02em;
}
.policy-card-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  color: #fff;
  font-size: 1.4rem;
  margin-bottom: 22px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 12px 24px -8px rgba(140, 60, 35, 0.45);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s ease;
}
.policy-card:hover .policy-card-icon {
  transform: scale(1.08) rotate(-4deg);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 18px 32px -8px rgba(140, 60, 35, 0.55);
}
.policy-card > i { font-size: 1.6rem; color: #D4724A; margin-bottom: 16px; }
.policy-card h4 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.45rem;
  font-weight: 600;
  color: #4A2013;
  margin-bottom: 10px;
  letter-spacing: 0.005em;
  line-height: 1.2;
}
.policy-card p {
  font-size: 0.92rem;
  color: #7A4030;
  line-height: 1.7;
  margin: 0;
}
.policies-cta-wrap { margin-top: 48px; text-align: center; }
.policies-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 30px;
  border-radius: 999px;
  background: linear-gradient(135deg, #C76A3F 0%, #9A4A2A 50%, #6E2E18 100%);
  color: #fff;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 18px 38px -14px rgba(140, 60, 35, 0.55);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease, background 0.35s ease;
}
.policies-cta i { font-size: 0.78rem; transition: transform 0.3s ease; }
.policies-cta:hover, .policies-cta:focus-visible {
  transform: translateY(-3px);
  background: linear-gradient(135deg, #A8532F 0%, #7A2F1A 50%, #4A1A0A 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 26px 52px -16px rgba(140, 60, 35, 0.7);
  outline: none;
}
.policies-cta:hover i, .policies-cta:focus-visible i { transform: translateX(5px); }

@media (max-width: 900px) {
  .policy-cards { grid-template-columns: 1fr; max-width: 480px; gap: 20px; }
}


/* ========================================
   CONTACT / ENQUIRY SECTION
   ======================================== */
.contact-us {
  max-width: 1100px;
  margin: auto;
  padding: 102px 20px;
}

.section-header {
  text-align: center;
  margin-bottom: 36px;
}

.section-header h2 {
  font-size: clamp(2rem, 3.3vw, 2.6rem);
  font-weight: 600;
  color: #5C2010;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
}

.section-header p {
  font-size: 1rem;
  margin-top: 10px;
  color: #715a48;
}

.contact-us .cta-buttons {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.contact-us .btn {
  padding: 12px 18px;
  border: 1px solid rgba(188, 150, 108, 0.3);
  border-radius: 14px;
  font-size: 0.82rem;
  background: linear-gradient(180deg, #fffdf9 0%, #fdf4e8 100%);
  color: #5C2010;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
  box-shadow: 0 10px 22px rgba(42, 24, 14, 0.07);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Manrope', 'Poppins', sans-serif;
}

.contact-us .btn.glow:hover,
.contact-us .btn.glow:focus-visible {
  border-color: rgba(188, 140, 91, 0.45);
  color: #5d2e1f;
  background: linear-gradient(180deg, #fffdfb 0%, #fff3e2 100%);
  box-shadow: 0 14px 26px rgba(188, 127, 86, 0.17);
  transform: translateY(-2px);
  outline: none;
}

/* Enquiry Form */
.enquiry-form-wrap {
  position: relative;
  background: linear-gradient(160deg, #fffaf5 0%, #f7ebdc 52%, #fff8f1 100%);
  border-radius: 32px;
  padding: 30px;
  margin-bottom: 40px;
  border: 1px solid rgba(196, 158, 114, 0.24);
  box-shadow: 0 24px 56px rgba(58, 35, 20, 0.08);
  overflow: hidden;
}

.enquiry-form-wrap::before {
  content: '';
  position: absolute;
  width: 320px;
  height: 320px;
  right: -130px;
  top: -150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(232,148,100, 0.16) 0%, rgba(232,148,100, 0) 72%);
  pointer-events: none;
}

.enquiry-form-wrap::after {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.5);
  pointer-events: none;
}

.home-page-kicker,
.contact-page-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 16px;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 253, 248, 0.96) 0%, rgba(251, 241, 226, 0.95) 100%);
  border: 1px solid rgba(203, 167, 124, 0.3);
  box-shadow: 0 8px 20px rgba(70, 42, 24, 0.05);
  color: #956847;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.enquiry-form-wrap h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.7rem, 2.8vw, 2.55rem);
  color: #5C2010;
  margin-bottom: 14px;
  line-height: 1.12;
  letter-spacing: -0.01em;
}

.enquiry-intro {
  max-width: 620px;
  margin: 0 0 22px;
  color: #6a4b37;
  font-size: 0.95rem;
  line-height: 1.68;
}

.enquiry-form {
  position: relative;
  z-index: 1;
}

.home-enquiry-card {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding: 26px;
  background: linear-gradient(160deg, #fff8f1 0%, #f8ebd9 54%, #fff8f0 100%);
}

.contact-preview-card {
  max-width: 1080px;
  margin: 0 auto 52px;
  position: relative;
  padding: 42px 36px;
  border-radius: 32px;
  background:
    radial-gradient(circle at top right, rgba(232,148,100, 0.2) 0%, transparent 28%),
    linear-gradient(145deg, #FFF5EC 0%, #FFD8B8 100%);
  border: 1.5px solid rgba(232,140,90, 0.28);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.contact-preview-card::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.45);
  pointer-events: none;
}

.contact-preview-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.05fr);
  gap: 36px;
  align-items: center;
}

.contact-preview-copy {
  padding: 12px 10px 12px 4px;
}

.contact-preview-copy h3 {
  max-width: 420px;
}

.contact-preview-panel {
  padding: 32px;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 249, 241, 0.94) 100%);
  border: 1.5px solid rgba(232,140,90, 0.24);
  box-shadow: 0 10px 36px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.contact-preview-panel:hover {
  border-color: rgba(232,140,90, 0.35);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
}

.contact-preview-field-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contact-preview-note {
  margin: 20px 0 0;
  color: #8B4230;
  font-size: 0.88rem;
  line-height: 1.72;
}

.contact-preview-cta {
  width: 100%;
  margin-top: 22px;
  text-align: center;
}

.home-enquiry-layout {
  display: grid;
  grid-template-columns: minmax(250px, 0.86fr) minmax(0, 1.14fr);
  gap: 24px;
  align-items: stretch;
}

.enquiry-copy {
  position: relative;
  z-index: 1;
}

.enquiry-copy-compact {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 14px 8px;
}

.home-page-kicker {
  margin-bottom: 16px;
}

.home-enquiry-card .enquiry-copy-compact h3 {
  max-width: 360px;
}

.enquiry-quick-actions {
  justify-content: flex-start;
  gap: 12px;
  margin: 0;
}

.enquiry-quick-actions .btn {
  min-height: 50px;
  border-radius: 14px;
}

.enquiry-quick-actions .btn:hover,
.enquiry-quick-actions .btn:focus-visible {
  box-shadow: 0 14px 26px rgba(156, 101, 66, 0.14);
}

.home-contact-action {
  padding: 10px 14px;
  min-width: 148px;
}

.home-action-icon {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(232,148,100, 0.18);
  border: 1px solid rgba(188, 140, 91, 0.2);
}

.home-action-copy {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.enquiry-form-panel {
  position: relative;
  z-index: 1;
  padding: 24px;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 249, 240, 0.98) 100%);
  border: 1px solid rgba(228,136,88, 0.24);
  box-shadow: 0 20px 40px rgba(67, 39, 24, 0.1);
}

.contact-enquiry-shell {
  position: relative;
  z-index: 1;
  max-width: 1050px;
  margin: 0 auto;
}

.contact-enquiry-shell::before {
  content: '';
  position: absolute;
  inset: -26px 18px -24px;
  border-radius: 36px;
  background: linear-gradient(180deg, rgba(232,148,100, 0.08) 0%, rgba(232,148,100, 0.02) 48%, rgba(232,148,100, 0) 100%);
  pointer-events: none;
  z-index: -1;
}

.contact-enquiry-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(290px, 0.9fr) minmax(0, 1.1fr);
  gap: 30px;
  align-items: stretch;
}

.contact-enquiry-layout::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 10%;
  bottom: 10%;
  width: 2px;
  background: linear-gradient(180deg, rgba(232,140,90, 0.3) 0%, rgba(232,140,90, 0.1) 50%, rgba(232,140,90, 0) 100%);
  transform: translateX(-50%);
  pointer-events: none;
}

.contact-enquiry-aside {
  position: relative;
  border-radius: 28px;
  padding: 30px 26px;
  background:
    radial-gradient(circle at top left, rgba(232,148,100, 0.18) 0%, transparent 36%),
    linear-gradient(180deg, rgba(255, 253, 248, 0.96) 0%, rgba(249, 239, 225, 0.9) 100%);
  border: 1px solid rgba(228,136,88, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.contact-enquiry-aside::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 30px;
  right: 30px;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(232,140,90, 0.3), transparent);
  border-radius: 2px;
  pointer-events: none;
}

.contact-page-kicker {
  margin-bottom: 16px;
}

.contact-enquiry-aside h3 {
  max-width: 360px;
}

.contact-enquiry-intro {
  max-width: 380px;
  margin-bottom: 20px;
}

.contact-aside-note {
  margin: 0 0 24px;
  padding: 16px 18px;
  border-radius: 16px;
  background: rgba(255, 251, 245, 0.85);
  border: 1px solid rgba(228,136,88, 0.22);
  color: #7A3020;
  font-size: 0.85rem;
  line-height: 1.7;
}

.contact-trust-points {
  list-style: none;
  display: grid;
  gap: 10px;
  margin: 0 0 22px;
  padding: 0;
}

.contact-trust-points li {
  position: relative;
  padding: 10px 12px 10px 36px;
  border-radius: 12px;
  background: rgba(255, 253, 249, 0.75);
  border: 1px solid rgba(228,136,88, 0.2);
  color: #684b39;
  font-size: 0.84rem;
  font-weight: 500;
}

.contact-trust-points li::before {
  content: '';
  position: absolute;
  left: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #E8956A, #bf7d57);
}

.contact-methods {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.contact-methods.contact-methods,
.contact-methods.cta-buttons {
  justify-content: stretch;
}

.contact-action {
  width: 100%;
  justify-content: flex-start;
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(180deg, #fffdf9 0%, #fef2e2 100%);
  border: 1px solid rgba(228,136,88, 0.28);
  box-shadow: 0 12px 24px rgba(73, 42, 25, 0.07);
  gap: 16px;
}

.contact-action:hover,
.contact-action:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #fff5e8 100%);
  border-color: rgba(190, 141, 92, 0.38);
  box-shadow: 0 18px 32px rgba(163, 103, 67, 0.15);
  transform: translateY(-3px);
}

.contact-action-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(232,148,100, 0.18), rgba(176, 116, 80, 0.1));
  border: 1px solid rgba(201, 166, 126, 0.24);
  flex: 0 0 auto;
}

.contact-action-icon i {
  font-size: 1rem;
}

.contact-action-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-start;
}

.contact-action-copy strong {
  color: #5C2010;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
}

.contact-action-copy small {
  color: #836352;
  font-size: 0.72rem;
  line-height: 1.4;
}

.enquiry-form-panel-detailed {
  max-width: none;
  margin: 0;
  padding: 30px;
  position: relative;
  overflow: hidden;
}

.enquiry-form-panel-detailed::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(232,140,90, 0.6), transparent);
  pointer-events: none;
}

.enquiry-form-panel-detailed::after {
  content: '';
  position: absolute;
  top: 30px;
  right: 30px;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(232,140,90, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.field-full {
  grid-column: 1 / -1;
}

.form-group label {
  font-size: 0.73rem;
  font-weight: 600;
  color: #7A3020;
  margin-bottom: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 14px 18px;
  border: 1px solid rgba(168, 83, 47, 0.22);
  border-radius: 14px;
  font-size: 0.94rem;
  font-family: var(--kp-font-body);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, transform 0.25s ease;
  background: linear-gradient(180deg, #FFFAF3 0%, #FFF2E4 100%);
  color: var(--kp-text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    inset 0 2px 4px rgba(140, 60, 35, 0.04);
}

.form-group.form-group-select,
.form-group.form-group-select label,
.form-group.form-group-select select {
  cursor: pointer;
}

.form-group textarea {
  resize: vertical;
  min-height: 110px;
  line-height: 1.65;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: var(--kp-text-mute);
  font-style: italic;
  font-family: var(--kp-font-display);
  letter-spacing: 0.01em;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--kp-gold-deep);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 0 0 3px rgba(168, 83, 47, 0.18),
    0 10px 22px -10px rgba(140, 60, 35, 0.28);
  background: #fff;
  transform: translateY(-1px);
}

.form-group.is-filled input,
.form-group.is-filled select,
.form-group.is-filled textarea {
  border-color: rgba(168, 83, 47, 0.4);
  background: #fff;
}

.form-submit {
  width: 100%;
  margin-top: 20px;
  border-radius: 14px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.88rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 20px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, letter-spacing 0.25s ease;
  background: linear-gradient(135deg, #A8532F 0%, #6E2E18 100%);
  color: #fff;
  border: 1px solid rgba(110, 46, 24, 0.3);
}

.form-submit:hover,
.form-submit:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(190, 119, 74, 0.25);
  letter-spacing: 0.1em;
  outline: none;
}

.form-success {
  display: none;
  text-align: center;
  margin-top: 14px;
  padding: 14px 16px;
  background: #edf7ea;
  color: #2f6e35;
  border-radius: 12px;
  font-weight: 600;
  border: 1.5px solid #c2e0c6;
  font-size: 0.9rem;
}

.form-success.form-error {
  background: #fceaea;
  color: #b52525;
  border-color: #f5c0c0;
}

.form-success.show {
  display: block;
  animation: fadeIn 0.4s ease;
}

.detailed-enquiry-card {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  padding: 30px;
}

.enquiry-form-compact .form-grid {
  gap: 12px 14px;
}

.contact-us .btn.glow i,
.contact-methods .btn.glow i,
.enquiry-quick-actions .btn.glow i {
  color: #a86a47;
  transition: color 0.25s ease;
}

.contact-us .btn.glow:hover i,
.contact-us .btn.glow:focus-visible i {
  color: #8b5739;
}

.contact-action:hover .contact-action-icon,
.contact-action:focus-visible .contact-action-icon {
  background: linear-gradient(145deg, rgba(232,148,100, 0.28), rgba(198, 126, 88, 0.18));
}

@media (max-width: 992px) {
  .contact-us { padding: 84px 20px; }
  .enquiry-form-wrap { padding: 24px 20px; border-radius: 24px; }
  .contact-preview-layout,
  .home-enquiry-layout,
  .contact-enquiry-layout {
    grid-template-columns: 1fr;
  }
  /* Hide the desktop vertical divider when the two-column layout collapses
     to a single column on mobile, otherwise it looks like a glitch line. */
  .contact-enquiry-layout::after { display: none; }
  .contact-preview-panel {
    padding: 22px;
  }
  .enquiry-quick-actions {
    justify-content: flex-start;
  }
  .contact-enquiry-aside {
    padding: 22px 20px;
  }
}

@media (max-width: 768px) {
  .form-grid { grid-template-columns: 1fr; }
  .contact-preview-field-group { grid-template-columns: 1fr; }
  .field-full { grid-column: auto; }
  .home-enquiry-card,
  .detailed-enquiry-card,
  .contact-preview-card {
    padding: 20px;
  }
  .enquiry-form-panel,
  .contact-enquiry-aside {
    padding: 18px;
  }
  .home-enquiry-card .enquiry-copy-compact h3,
  .contact-enquiry-aside h3 {
    max-width: none;
  }
}

@media (max-width: 576px) {
  .enquiry-form-wrap { padding: 18px 12px; border-radius: 20px; }
  .contact-us .cta-buttons { gap: 10px; }
  .contact-us .btn { width: 100%; justify-content: center; }
  .contact-preview-panel { padding: 18px 16px; }
  .home-page-kicker,
  .contact-page-kicker {
    margin-bottom: 14px;
  }
  .enquiry-form-panel,
  .contact-enquiry-aside,
  .enquiry-form-panel-detailed {
    padding: 16px;
  }
  .contact-action {
    padding: 12px 12px;
    border-radius: 14px;
  }
  .contact-action-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
}

/* Map Tabs */
.tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 34px 0 18px;
}
.tab-button {
  padding: 11px 20px;
  font-size: 0.84rem;
  margin: 0;
  border: 1px solid rgba(228,136,88, 0.22);
  border-bottom: 1px solid rgba(228,136,88, 0.22);
  border-radius: 999px;
  background: rgba(255, 250, 244, 0.82);
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: 'Manrope', 'Poppins', sans-serif;
  color: #7A3020;
  box-shadow: 0 8px 20px rgba(53, 33, 21, 0.05);
}
.tab-button:hover,
.tab-button.active {
  border-color: rgba(198, 139, 98, 0.36);
  color: #C05430;
  background: linear-gradient(180deg, #fffdf9 0%, #fff3e5 100%);
  box-shadow: 0 14px 28px rgba(166, 113, 75, 0.12);
}
.map-area {
  text-align: center;
  position: relative;
  overflow: hidden;
  display: block;
  width: 100%;
  isolation: isolate;
  container-type: inline-size;
  container-name: mapwm;
}
.map-watermark {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
}
.map-watermark-brand {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(1.1rem, 9.4cqw, 9rem);
  letter-spacing: 0.01em;
  color: rgba(75, 46, 30, 0.1);
  line-height: 1;
  text-transform: uppercase;
  width: 100%;
  text-align: center;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
  mix-blend-mode: multiply;
}
@supports not (container-type: inline-size) {
  .map-watermark-brand { font-size: clamp(1.1rem, 9.4vw, 7.5rem); }
}
.map-frame {
  display: none;
  width: 100%;
  max-width: none;
  height: 430px;
  border: none;
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(0,0,0,0.12);
  position: relative;
  z-index: 0;
}
.map-frame.active { display: inline-block; animation: fadeIn 0.6s ease-in-out; }


/* ========================================
   SOCIAL SECTION
   ======================================== */
.social-section {
  padding: 90px 20px;
  background:
    radial-gradient(circle at 12% 20%, rgba(255, 170, 125, 0.2) 0%, transparent 30%),
    linear-gradient(135deg, #FFF0E5 0%, #ffe0c3 100%);
  padding: 78px 20px;
  text-align: center;
  border-top: 1px solid #e8c6a0;
}
.social-container { max-width: 800px; margin: auto; }
.social-heading {
  font-size: 2.2rem; font-family: var(--kp-font-display);
  color: #7f3f2c; margin-bottom: 12px;
}
.social-subtext { font-size: 1rem; color: #6e4e32; margin-bottom: 24px; }
.social-icons {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.social-icons a {
  min-width: 170px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 18px;
  border-radius: 999px;
  color: #7d4a2f;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.76rem;
  text-decoration: none;
  background: rgba(255, 252, 248, 0.85);
  border: 1px solid rgba(232, 140, 90, 0.3);
  box-shadow: 0 10px 26px rgba(63, 34, 20, 0.08);
  transition: transform 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.social-icons a i {
  font-size: 1rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 191, 144, 0.38);
}
.social-icons a:hover {
  transform: translateY(-3px);
  color: #9a4f35;
  border-color: rgba(232, 140, 90, 0.48);
  box-shadow: 0 16px 34px rgba(93, 51, 31, 0.14);
}


/* ========================================
   FOOTER
   ======================================== */
.site-footer {
  position: relative;
  padding: 56px 24px 36px;
  text-align: center;
  font-family: var(--kp-font-body);
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 225, 200, 0.65) 0%, transparent 55%),
    radial-gradient(circle at 10% 100%, rgba(197, 122, 78, 0.18) 0%, transparent 32%),
    radial-gradient(circle at 92% 100%, rgba(168, 83, 47, 0.15) 0%, transparent 32%),
    linear-gradient(180deg, #4A2013 0%, #2E140A 100%);
  border-top: 1px solid rgba(255, 203, 168, 0.22);
  color: rgba(255, 240, 224, 0.85);
}
.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 203, 168, 0.7), transparent);
}
.footer-container { max-width: 1000px; margin: auto; position: relative; z-index: 1; }
.footer-brand h2 {
  font-family: var(--kp-font-display);
  font-size: 2rem;
  margin-bottom: 18px;
  color: transparent;
  background: linear-gradient(135deg, #FFE8D2 0%, #FFCBA8 60%, #C57A4E 100%);
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: 0.01em;
  font-weight: 500;
  font-variation-settings: "opsz" 144;
}
.footer-brand p {
  font-size: 0.85rem;
  color: rgba(255, 236, 216, 0.6);
  margin-bottom: 24px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-family: var(--kp-font-accent);
}
/* Luxury venue showcase in footer — small image cards, like the home venues
   gallery condensed. Each card: image with soft vignette + venue name overlay.
   NOTE: the global `nav { position: absolute; top: 0; ... }` rule (meant for
   the main navbar) was pinning this <nav> to the top of the footer and
   overlapping the menu links. We reset it back to in-flow layout here. */
nav.footer-venues-showcase,
.site-footer nav.footer-venues-showcase {
  position: static;
  top: auto;
  left: auto;
  width: auto;
  z-index: auto;
  background: transparent;
  transition: none;
}
.footer-venues-showcase {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 560px;
  margin: 0 auto 32px;
  padding: 0;
}
.footer-venues-showcase .fv-card {
  position: relative;
  display: block;
  text-decoration: none;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.55),
              0 0 0 1px rgba(255, 203, 168, 0.12);
  transition: transform 0.45s cubic-bezier(.2,.7,.2,1),
              box-shadow 0.45s ease;
  isolation: isolate;
}
.footer-venues-showcase .fv-card:hover,
.footer-venues-showcase .fv-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px -18px rgba(0, 0, 0, 0.72),
              0 0 0 1px rgba(255, 214, 180, 0.35);
}
.footer-venues-showcase .fv-img-wrap {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}
.footer-venues-showcase .fv-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transition: transform 0.8s cubic-bezier(.2,.7,.2,1),
              filter 0.5s ease;
  filter: brightness(0.88) saturate(1.05);
}
.footer-venues-showcase .fv-card:hover .fv-img-wrap img,
.footer-venues-showcase .fv-card:focus-visible .fv-img-wrap img {
  transform: scale(1.1);
  filter: brightness(1) saturate(1.1);
}
.footer-venues-showcase .fv-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(46, 20, 10, 0) 32%,
    rgba(46, 20, 10, 0.55) 72%,
    rgba(30, 12, 6, 0.92) 100%);
  z-index: 1;
  pointer-events: none;
}
.footer-venues-showcase .fv-name {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 7px;
  z-index: 2;
  text-align: center;
  color: #FFE8CC;
  font-family: var(--kp-font-display);
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  line-height: 1.15;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
  font-variation-settings: "opsz" 96;
}
html.lang-mr .footer-venues-showcase .fv-name,
html.lang-hi .footer-venues-showcase .fv-name {
  font-family: 'Tiro Devanagari Marathi', 'Noto Serif Devanagari', serif;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
}
html.lang-hi .footer-venues-showcase .fv-name {
  font-family: 'Tiro Devanagari Hindi', 'Noto Serif Devanagari', serif;
}
@media (max-width: 560px) {
  .footer-venues-showcase {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    max-width: 320px;
  }
  .footer-venues-showcase .fv-card { aspect-ratio: 4 / 3; }
  .footer-venues-showcase .fv-name { font-size: 0.82rem; }
}
@media (max-width: 360px) {
  .footer-venues-showcase { gap: 8px; max-width: 100%; }
  .footer-venues-showcase .fv-name { font-size: 0.76rem; }
}
.footer-links { margin-bottom: 22px; }
.footer-links a {
  color: rgba(255, 236, 216, 0.8);
  margin: 0 14px;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: color 0.3s ease;
  position: relative;
}
.footer-links a:hover { color: #FFD4B8; }
.footer-links a[href="policies.html"] {
  font-weight: 600;
  border-bottom: 1px solid rgba(255, 203, 168, 0.4);
}
.footer-bottom p {
  font-size: 0.78rem;
  color: rgba(255, 236, 216, 0.55);
  margin: 6px 0;
  letter-spacing: 0.04em;
}


/* ========================================
   WHATSAPP WIDGET
   ======================================== */
.wa-widget {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9998;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  pointer-events: none;
}
.wa-fab {
  display: flex; align-items: center; gap: 10px;
  background: #fff; color: #25D366;
  border: none; border-radius: 50px;
  padding: 14px 16px; cursor: pointer;
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  font-family: 'Manrope', 'Poppins', sans-serif;
  overflow: hidden; position: relative;
  pointer-events: auto;
}
.wa-fab:hover { transform: translateY(-3px); box-shadow: 0 10px 36px rgba(0,0,0,0.15); }
.wa-fab-icon { font-size: 1.7rem; flex-shrink: 0; transition: transform 0.3s ease; }
.wa-fab:hover .wa-fab-icon { transform: scale(1.1); }
.wa-fab-label {
  font-size: 0.85rem; font-weight: 600; color: #5C2010;
  white-space: nowrap; max-width: 0; opacity: 0; overflow: hidden;
  transition: max-width 0.4s ease, opacity 0.3s ease, padding 0.3s ease;
  padding-right: 0;
}
.wa-fab:hover .wa-fab-label { max-width: 160px; opacity: 1; padding-right: 4px; }
.wa-fab::before {
  content: ''; position: absolute; top: 50%; left: 50%;
  width: 100%; height: 100%; border-radius: 50px;
  border: 2px solid rgba(37,211,102,0.3);
  transform: translate(-50%,-50%);
  animation: waPulse 2.5s ease-out infinite;
  pointer-events: none;
}
@keyframes waPulse {
  0%   { transform: translate(-50%,-50%) scale(1); opacity: 0.6; }
  100% { transform: translate(-50%,-50%) scale(1.5); opacity: 0; }
}

.wa-card {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  width: 320px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 48px rgba(0,0,0,0.12);
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.wa-card.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
  pointer-events: auto;
}
.wa-card-close {
  position: absolute; top: 12px; right: 14px;
  background: none; border: none; font-size: 1.4rem;
  color: rgba(255,255,255,0.8); cursor: pointer;
  line-height: 1; z-index: 2;
}
.wa-card-close:hover { color: #fff; }
.wa-card-header {
  background: linear-gradient(135deg, #FF8C5A, #e8956a);
  padding: 18px 20px; display: flex;
  align-items: center; gap: 12px; position: relative;
  text-decoration: none; color: inherit;
  transition: filter 0.25s ease;
}
a.wa-card-header:hover { filter: brightness(1.05); }
a.wa-card-header:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.wa-card-header-text { min-width: 0; }
.wa-card-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; color: #fff; flex-shrink: 0;
}
.wa-card-header strong { color: #fff; font-size: 1rem; display: block; font-family: 'Cormorant Garamond', 'Playfair Display', serif; }
.wa-card-status { font-size: 0.75rem; color: rgba(255,255,255,0.85); display: block; margin-top: 2px; }
.wa-card-body { padding: 20px; background: #FFF0E5; }
.wa-card-bubble {
  display: block;
  background: #fff; padding: 14px 16px;
  border-radius: 0 12px 12px 12px;
  font-size: 0.9rem; color: #5C2010; line-height: 1.55;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  text-decoration: none;
  transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
  cursor: pointer;
}
a.wa-card-bubble:hover {
  background: #F7FFF4;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.18);
  transform: translateY(-1px);
}
a.wa-card-bubble:focus-visible { outline: 2px solid #25D366; outline-offset: 2px; }
.wa-card-bubble-text { display: block; color: #5C2010; }
.wa-card-bubble-hint {
  display: flex; align-items: center; gap: 6px;
  margin-top: 10px; padding-top: 8px;
  border-top: 1px dashed rgba(37, 211, 102, 0.35);
  font-size: 0.72rem; letter-spacing: 0.04em;
  color: #1fa855; font-weight: 600;
  text-transform: uppercase;
}
.wa-card-bubble-hint i { font-size: 0.9rem; }
.wa-card-cta {
  display: block; padding: 14px 20px;
  background: #25D366; color: #fff;
  text-align: center; text-decoration: none;
  font-weight: 600; font-size: 0.95rem;
  transition: background 0.3s ease;
  font-family: 'Manrope', 'Poppins', sans-serif;
}
.wa-card-cta:hover { background: #1fb855; }

@media (max-width: 576px) {
  .wa-widget { bottom: 18px; right: 16px; }
  .wa-card {
    width: min(280px, calc(100vw - 32px));
    bottom: calc(100% + 10px);
  }
  .wa-fab { padding: 12px 14px; }
  .wa-fab-icon { font-size: 1.5rem; }
}


/* ========================================
   INNER PAGE SHARED STYLES
   ======================================== */
/* ========================================
   INTERNAL PAGE HEADER - dreamy luxury canvas
   Unified across about / venues / gallery / contact / policies
   ======================================== */
.page-header {
  position: relative;
  overflow: hidden;
  padding: 140px 20px 96px;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(255, 224, 196, 0.85) 0%, transparent 55%),
    radial-gradient(circle at 8% 82%, rgba(212, 114, 74, 0.18) 0%, transparent 34%),
    radial-gradient(circle at 94% 88%, rgba(197, 122, 78, 0.16) 0%, transparent 30%),
    linear-gradient(180deg, #FFF0DE 0%, #FFE0C5 55%, #FFF4EC 100%);
  border-bottom: 1px solid rgba(168, 83, 47, 0.22);
}

.page-header::before,
.page-header::after {
  content: '';
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}
.page-header::before {
  width: 420px;
  height: 420px;
  right: -180px;
  top: -200px;
  background: radial-gradient(circle, rgba(255, 203, 168, 0.45) 0%, transparent 68%);
}
.page-header::after {
  width: 320px;
  height: 320px;
  left: -140px;
  bottom: -200px;
  background: radial-gradient(circle, rgba(168, 83, 47, 0.14) 0%, transparent 72%);
}

.page-header-shell {
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-header-ornament {
  display: flex;
  justify-content: center;
  margin: 0 auto 22px;
  width: min(260px, 72vw);
  animation: floatDrift 6s ease-in-out infinite;
  filter: drop-shadow(0 4px 16px rgba(168, 83, 47, 0.18));
}
.page-header-ornament svg { width: 100%; height: auto; }
.page-header-ornament path,
.page-header-ornament circle {
  stroke: rgba(168, 83, 47, 0.7);
  fill: rgba(255, 203, 168, 0.28);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: ornamentPulse 4.8s ease-in-out infinite;
}

body.internal-page {
  background:
    radial-gradient(circle at 6% 100%, rgba(255, 220, 195, 0.3) 0%, transparent 35%),
    radial-gradient(circle at 96% 0%, rgba(197, 122, 78, 0.1) 0%, transparent 32%),
    linear-gradient(180deg, #FFF4EC 0%, #FFEFE0 50%, #FFF4EC 100%);
}

/* Per-page warm hue variations (all in the dreamy family) */
body.page-about .page-header {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(255, 220, 190, 0.85) 0%, transparent 55%),
    radial-gradient(circle at 12% 80%, rgba(168, 83, 47, 0.2) 0%, transparent 32%),
    linear-gradient(180deg, #FFE8D0 0%, #FFF2E0 60%, #FFF4EC 100%);
}
body.page-gallery .page-header {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(255, 225, 195, 0.8) 0%, transparent 55%),
    radial-gradient(circle at 18% 78%, rgba(212, 114, 74, 0.2) 0%, transparent 30%),
    linear-gradient(180deg, #FFECD4 0%, #FFF0E0 60%, #FFF4EC 100%);
}
body.page-policies .page-header {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(255, 224, 196, 0.85) 0%, transparent 55%),
    radial-gradient(circle at 82% 80%, rgba(197, 122, 78, 0.18) 0%, transparent 30%),
    linear-gradient(180deg, #FFE8D0 0%, #FFF0E0 60%, #FFF4EC 100%);
}
body.page-contact .page-header {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(255, 228, 200, 0.85) 0%, transparent 55%),
    radial-gradient(circle at 14% 78%, rgba(212, 114, 74, 0.2) 0%, transparent 30%),
    radial-gradient(circle at 86% 78%, rgba(168, 83, 47, 0.15) 0%, transparent 30%),
    linear-gradient(180deg, #FFE6CE 0%, #FFF2E2 60%, #FFF4EC 100%);
}

.page-header-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 9px 20px;
  border-radius: 999px;
  background: rgba(255, 250, 243, 0.9);
  border: 1px solid rgba(168, 83, 47, 0.32);
  color: var(--kp-gold-deep);
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  margin-bottom: 24px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 4px 14px -6px rgba(140, 60, 35, 0.2);
  transition: all 0.35s ease;
  /* Prevent overflow on narrow screens */
  max-width: calc(100vw - 40px);
  white-space: normal;
  text-align: center;
  word-break: break-word;
}
.page-header-kicker:hover {
  background: rgba(255, 250, 243, 1);
  border-color: rgba(168, 83, 47, 0.55);
  transform: translateY(-1px);
}

.page-header h1 {
  font-family: var(--kp-font-display);
  font-size: clamp(2.6rem, 5.8vw, 4.4rem);
  line-height: 1.05;
  color: var(--kp-text);
  margin-bottom: 16px;
  font-weight: 500;
  letter-spacing: 0.002em;
  font-variation-settings: "opsz" 144, "SOFT" 60;
}

.page-header p {
  max-width: 680px;
  margin: 0 auto;
  color: var(--kp-text-soft);
  font-size: 1.05rem;
  line-height: 1.8;
  font-weight: 400;
  letter-spacing: 0.005em;
}

.page-section {
  position: relative;
  margin-bottom: 42px;
  padding: 44px 36px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 0% 0%, rgba(255, 228, 200, 0.55) 0%, transparent 38%),
    linear-gradient(180deg, #FFFAF3 0%, #FFEEDC 100%);
  border: 1px solid rgba(168, 83, 47, 0.2);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    var(--kp-shadow-soft);
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.35s ease;
}

.page-section:hover {
  border-color: rgba(168, 83, 47, 0.32);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    var(--kp-shadow);
}

.page-section::before,
.page-section::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.page-section::before {
  width: 180px;
  height: 180px;
  right: -90px;
  top: -90px;
  background: radial-gradient(circle, rgba(232,148,100, 0.14) 0%, transparent 72%);
}

.page-section::after {
  width: 140px;
  height: 140px;
  left: -70px;
  bottom: -80px;
  background: radial-gradient(circle, rgba(216,108,72, 0.1) 0%, transparent 72%);
}

.page-cta-row {
  position: relative;
}

.internal-story-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 22px;
  align-items: stretch;
}

.story-panel {
  position: relative;
  padding: 24px 24px 20px;
  border-radius: 24px;
  border: 1px solid rgba(232,148,100, 0.18);
  background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,250,244,0.94) 100%);
  box-shadow: 0 14px 30px rgba(38, 23, 14, 0.06);
}

.story-panel::before {
  content: '';
  position: absolute;
  left: 24px;
  top: 0;
  width: 72px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #E8956A, rgba(232,148,100, 0));
}

.story-panel p:last-child {
  margin-bottom: 0;
}

.story-panel-secondary {
  background: linear-gradient(180deg, rgba(255,249,242,0.98) 0%, rgba(247,235,221,0.9) 100%);
}

.page-hero {
  position: relative; height: 50vh; min-height: 350px;
  overflow: hidden; display: flex;
  align-items: center; justify-content: center;
}
.page-hero img {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.6);
}
.page-hero-content {
  position: relative; z-index: 2; text-align: center; color: #fff;
}
.page-hero-content h1 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 3rem; margin-bottom: 10px;
}
.page-hero-content p { font-size: 1.1rem; opacity: 0.9; }

.inner-content {
  max-width: 1080px;
  margin: 0 auto;
  padding: 68px 24px 100px;
}

.inner-content-wide {
  max-width: 1200px;
}

.inner-content h2 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.8rem, 4vw, 2.3rem);
  color: #5C2010;
  margin-bottom: 20px;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.inner-content h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.3rem, 3vw, 1.7rem);
  color: #5C2010;
  margin-bottom: 14px;
  margin-top: 32px;
  font-weight: 700;
}

.inner-content p {
  font-size: 0.98rem;
  line-height: 1.85;
  margin-bottom: 18px;
  color: #5a4a3a;
  letter-spacing: 0.2px;
}

body.page-about .inner-content {
  position: relative;
}

body.page-about .inner-content::before {
  content: '';
  position: absolute;
  inset: 18px 0 auto;
  height: 360px;
  border-radius: 32px;
  background: linear-gradient(180deg, rgba(255, 249, 240, 0.88) 0%, rgba(245, 233, 216, 0.56) 100%);
  border: 1px solid rgba(228,136,88, 0.16);
  z-index: -1;
}

body.page-about .inner-content > p {
  max-width: 760px;
}

body.page-about .venue-features {
  gap: 24px;
  margin-top: 36px;
}

body.page-about .story-section,
body.page-about .feature-section {
  backdrop-filter: blur(8px);
}

body.page-about .venue-feature {
  padding: 28px 24px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,246,235,0.96) 100%);
  border: 1px solid rgba(232,148,100, 0.2);
  box-shadow: 0 16px 36px rgba(42, 24, 14, 0.06);
}

body.page-about .venue-feature i {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff8ef 0%, #f8ead8 100%);
  border: 1px solid rgba(232,148,100, 0.24);
  margin-bottom: 16px;
}

body.page-gallery .gallery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 18px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,251,246,0.9) 0%, rgba(248,238,225,0.9) 100%);
  border: 1px solid rgba(232,148,100, 0.18);
  box-shadow: 0 20px 44px rgba(38, 23, 14, 0.06);
}

body.page-gallery .gallery-grid img {
  border-radius: 18px;
  box-shadow: 0 16px 28px rgba(28, 18, 10, 0.1);
}

body.page-gallery .gallery-grid img:nth-child(3n + 2) {
  transform: translateY(12px);
}

body.page-gallery .gallery-grid img:hover {
  transform: translateY(-4px) scale(1.03);
}

body.page-gallery .insta-feed-placeholder {
  padding: 32px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,250,244,0.94) 0%, rgba(247,235,221,0.92) 100%);
  border: 1px solid rgba(232,148,100, 0.18);
  box-shadow: 0 18px 40px rgba(38, 23, 14, 0.06);
}

body.page-gallery .insta-placeholder-inner {
  position: relative;
  z-index: 1;
}

body.page-gallery .insta-placeholder-inner i {
  display: inline-flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff8ef 0%, #f8ead8 100%);
  border: 1px solid rgba(232,148,100, 0.24);
  margin-bottom: 14px;
}

body.page-policies .inner-content {
  position: relative;
  counter-reset: policy-section;
}

body.page-policies .inner-content::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 100%);
  pointer-events: none;
}

/* ========================================
   POLICIES PAGE - LUXE PEACH REDESIGN
   ======================================== */
body.page-policies .inner-content {
  max-width: 1080px;
  padding-bottom: 96px;
}

body.page-policies .policy-document {
  position: relative;
  padding: 48px clamp(24px, 4vw, 52px) 44px;
  border-radius: 28px;
  background: linear-gradient(180deg, #FFF8F1 0%, #FFECD6 100%);
  border: 1px solid rgba(212, 114, 74, 0.25);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 26px 58px -26px rgba(140, 60, 35, 0.3);
  overflow: hidden;
  margin-bottom: 32px;
}

/* Decorative warm glow + faint brand watermark */
body.page-policies .policy-document::after {
  content: "";
  position: absolute;
  right: -120px;
  top: -120px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 200, 160, 0.45) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
body.page-policies .policy-document::before {
  content: none;
}

/* Document header with gold badge */
body.page-policies .policy-doc-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 18px;
  padding-bottom: 20px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(212, 114, 74, 0.22);
}
body.page-policies .policy-doc-badge {
  flex-shrink: 0;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  color: #fff;
  font-size: 1.25rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 12px 22px -6px rgba(140, 60, 35, 0.45);
}
body.page-policies .policy-doc-head h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  line-height: 1.15;
  color: #4A2013;
  letter-spacing: 0.005em;
  border: none;
  padding: 0;
  display: block;
}
body.page-policies .policy-doc-head h3::before { display: none; }

body.page-policies .policy-doc-intro {
  position: relative;
  z-index: 1;
  margin: 20px 0 32px;
  color: #7A4030;
  font-size: 1rem;
  line-height: 1.85;
  max-width: 760px;
}

/* Two-column grid of policy groups for a modern bento feel */
body.page-policies .policy-groups {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

body.page-policies .policy-group {
  padding: 24px 24px 22px;
  border-radius: 20px;
  border: 1px solid rgba(212, 114, 74, 0.22);
  background: linear-gradient(180deg, rgba(255, 250, 244, 0.96) 0%, rgba(255, 232, 210, 0.88) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 14px 28px -16px rgba(140, 60, 35, 0.22);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1),
              box-shadow 0.4s ease,
              border-color 0.3s ease;
}
body.page-policies .policy-group:hover {
  transform: translateY(-4px);
  border-color: rgba(212, 114, 74, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 22px 40px -18px rgba(140, 60, 35, 0.35);
}

/* Give the Food & Beverage group + Operational Notes extra span flexibility */
body.page-policies .policy-group:nth-child(5) { grid-column: 1 / -1; }

body.page-policies .policy-group-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px dashed rgba(212, 114, 74, 0.3);
}
body.page-policies .policy-group-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255, 212, 184, 0.6), rgba(212, 114, 74, 0.22));
  border: 1px solid rgba(212, 114, 74, 0.35);
  color: #B55A3A;
  font-size: 1rem;
  transition: background 0.35s ease, color 0.35s ease, transform 0.35s ease;
}
body.page-policies .policy-group:hover .policy-group-icon {
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  color: #fff;
  transform: scale(1.06);
}
body.page-policies .policy-group h4 {
  margin: 0;
  padding: 0;
  border: none;
  color: #4A2013;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.32rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1.2;
}

body.page-policies .policy-numbered-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  counter-reset: policy-item;
}
body.page-policies .policy-numbered-list li {
  counter-increment: policy-item;
  position: relative;
  margin: 0;
  padding: 14px 16px 14px 56px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(212, 114, 74, 0.18);
  color: #5A2A1A;
  font-size: 0.94rem;
  line-height: 1.72;
  transition: background 0.3s ease, border-color 0.3s ease;
}
body.page-policies .policy-numbered-list li:hover {
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(212, 114, 74, 0.35);
}
body.page-policies .policy-numbered-list li::before {
  content: counter(policy-item);
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #FFE4CD, #FFB896);
  border: 1px solid rgba(212, 114, 74, 0.4);
  color: #8B4230;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 0.92rem;
  font-weight: 700;
}
body.page-policies .policy-numbered-list li strong {
  color: #C05430;
  font-weight: 700;
}

/* Policy Assurance note as a feature card */
body.page-policies .policies-note {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 22px;
  margin-top: 24px;
  padding: 32px clamp(24px, 4vw, 44px);
  border-radius: 24px;
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 212, 184, 0.4) 0%, transparent 38%),
    linear-gradient(180deg, #FFF8F1 0%, #FFE0C5 100%);
  border: 1px solid rgba(212, 114, 74, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 22px 46px -24px rgba(140, 60, 35, 0.28);
  overflow: hidden;
}
body.page-policies .policies-note::after {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -60px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 195, 160, 0.5) 0%, transparent 70%);
  pointer-events: none;
}
body.page-policies .policies-note-badge {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #D4724A, #7A2F1A);
  color: #fff;
  font-size: 1.3rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 14px 24px -8px rgba(140, 60, 35, 0.5);
  position: relative;
  z-index: 1;
}
body.page-policies .policies-note-body {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
}
body.page-policies .policies-note h4 {
  margin: 0 0 10px;
  color: #4A2013;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1.2;
}
body.page-policies .policies-note p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.85;
  color: #6A3A2A;
  letter-spacing: 0.005em;
}

/* CTA row */
body.page-policies .page-cta-row {
  margin-top: 40px;
  padding: 32px clamp(24px, 4vw, 40px);
  border-radius: 22px;
  text-align: center;
  background: linear-gradient(180deg, rgba(255, 248, 240, 0.92) 0%, rgba(255, 224, 197, 0.8) 100%);
  border: 1px solid rgba(212, 114, 74, 0.22);
}
body.page-policies .policy-cta-copy {
  margin: 0 0 18px;
  color: #7A4030;
  font-size: 1rem;
  line-height: 1.7;
  font-style: italic;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.15rem;
}
body.page-policies .policy-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 30px;
  border-radius: 999px;
  background: linear-gradient(135deg, #C76A3F 0%, #9A4A2A 50%, #6E2E18 100%);
  color: #fff;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 18px 38px -14px rgba(140, 60, 35, 0.55);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease, background 0.35s ease;
}
body.page-policies .policy-cta-btn i {
  font-size: 0.78rem;
  transition: transform 0.3s ease;
}
body.page-policies .policy-cta-btn:hover,
body.page-policies .policy-cta-btn:focus-visible {
  transform: translateY(-3px);
  background: linear-gradient(135deg, #A8532F 0%, #7A2F1A 50%, #4A1A0A 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 26px 52px -16px rgba(140, 60, 35, 0.7);
  outline: none;
}
body.page-policies .policy-cta-btn:hover i,
body.page-policies .policy-cta-btn:focus-visible i {
  transform: translateX(5px);
}

@media (max-width: 820px) {
  body.page-policies .policy-groups { grid-template-columns: 1fr; }
  body.page-policies .policy-group:nth-child(5) { grid-column: auto; }
  body.page-policies .policy-document { padding: 36px 24px 32px; border-radius: 22px; }
  body.page-policies .policy-doc-head { gap: 14px; padding-bottom: 16px; }
  body.page-policies .policy-doc-badge { width: 46px; height: 46px; font-size: 1.1rem; }
  body.page-policies .policies-note { flex-direction: column; padding: 26px 22px; }
  body.page-policies .policies-note-badge { width: 48px; height: 48px; font-size: 1.15rem; }
}

body.page-contact .enquiry-form-wrap {
  background:
    radial-gradient(circle at top right, rgba(232,148,100, 0.16) 0%, transparent 26%),
    linear-gradient(160deg, #fffaf5 0%, #f8ecdf 52%, #fff8f1 100%);
}

body.page-contact .map-area {
  margin-top: 8px;
  padding: 8px;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,251,246,0.96) 0%, rgba(247,235,221,0.96) 100%);
  border: 1px solid rgba(232,148,100, 0.18);
  box-shadow: 0 18px 42px rgba(38, 23, 14, 0.06);
}

body.page-contact .map-section {
  padding-bottom: 22px;
}

body.page-contact .contact-info-grid {
  grid-template-columns: 1fr;
}

body.page-contact .contact-info-card--wide {
  grid-column: auto;
}


body.page-contact .map-section::before {
  width: 220px;
  height: 220px;
}

body.page-contact .contact-enquiry-aside,
body.page-contact .enquiry-form-panel-detailed {
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

body.page-contact .contact-enquiry-aside:hover,
body.page-contact .enquiry-form-panel-detailed:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 42px rgba(38, 23, 14, 0.08);
}

body.page-gallery .gallery-social-section,
body.page-about .story-panel,
body.page-about .venue-feature,
body.page-policies .policies-section,
body.page-contact .map-section {
  backdrop-filter: blur(8px);
}

@media (max-width: 768px) {
  .page-header {
    padding: 132px 16px 58px;
  }
  .inner-content {
    padding: 58px 16px 72px;
  }
  .page-section {
    padding: 22px 18px;
    border-radius: 24px;
  }
  .internal-story-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  body.page-gallery .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 14px;
  }
  body.page-gallery .gallery-grid img:nth-child(3n + 2) {
    transform: none;
  }
  .map-frame {
    height: 360px;
    border-radius: 20px;
  }
}

@media (max-width: 576px) {
  .page-header-kicker {
    letter-spacing: 0.14em;
    font-size: 0.66rem;
  }
  .page-header p {
    font-size: 0.92rem;
  }
  .page-header-ornament {
    margin-bottom: 16px;
  }
  .page-section {
    padding: 18px 14px;
  }
  .story-panel {
    padding: 20px 18px 18px;
  }
  body.page-gallery .gallery-grid {
    grid-template-columns: 1fr;
  }
  .map-frame {
    height: 320px;
  }
}

/* Venue detail specifics */
.venue-features {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px; margin: 30px 0;
}
.venue-feature {
  background: #fcf7f1; padding: 24px; border-radius: 12px;
  text-align: center; border: 1px solid #F0C090;
}
.venue-feature i { font-size: 1.5rem; color: #E8956A; margin-bottom: 10px; }
.venue-feature h4 { font-family: 'Cormorant Garamond', 'Playfair Display', serif; color: #5C2010; margin-bottom: 6px; }
.venue-feature p { font-size: 0.85rem; color: #6c4b32; }

.venue-gallery {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px; margin: 30px 0;
}
.venue-gallery img {
  width: 100%; height: 200px; object-fit: cover;
  border-radius: 10px;
  transition: transform 0.3s ease;
}
.venue-gallery img:hover { transform: scale(1.03); }

/* Gallery page grid */
.gallery-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px; margin: 30px 0;
}
.gallery-grid img {
  width: 100%; height: 260px; object-fit: cover;
  border-radius: 10px; cursor: pointer;
  transition: transform 0.3s ease, filter 0.3s ease;
}
.gallery-grid img:hover { transform: scale(1.02); filter: brightness(1.05); }

/* Home Google Reviews */
.home-google-reviews {
  margin-top: 48px;
  padding: 42px 32px;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(255,244,229,0.96) 100%);
  border: 1.5px solid rgba(232,140,90, 0.2);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
}

.home-google-reviews::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(232,140,90, 0.04) 0%, transparent 60%);
  pointer-events: none;
}

.home-reviews-head {
  text-align: center;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
}

.home-reviews-kicker {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: #8B4230;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(232,140,90, 0.2);
}

.home-reviews-head h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: #5C2010;
  margin-bottom: 8px;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.home-reviews-head p {
  color: #8B4230;
  font-size: 0.95rem;
  line-height: 1.6;
  max-width: 560px;
  margin: 0 auto;
}

.home-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}

.home-review-card {
  padding: 24px;
  border-radius: 18px;
  background: rgba(255, 254, 252, 0.94);
  border: 1px solid rgba(232,140,90, 0.2);
  transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1);
  position: relative;
}

.home-review-card:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, 1);
  border-color: rgba(232,140,90, 0.35);
  box-shadow: 0 16px 48px rgba(232,140,90, 0.15);
}

.home-review-card h4 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.05rem;
  color: #5C2010;
  margin-bottom: 12px;
  line-height: 1.5;
  font-weight: 700;
}

.home-review-card p {
  color: #8B4230;
  font-size: 0.9rem;
  line-height: 1.65;
  margin: 0;
}

.home-review-rating {
  font-size: 2.2rem;
  font-weight: 800;
  color: #d4a97b;
  line-height: 1;
  margin-bottom: 8px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
}

.home-review-rating span {
  font-size: 0.85rem;
  color: #9A523A;
  font-weight: 400;
}

.review-stars {
  display: flex;
  gap: 3px;
  margin-bottom: 12px;
  /* Google review star gold — matches google.com/maps reviews */
  color: #FBBC04;
  font-size: 0.9rem;
  text-shadow: 0 1px 1px rgba(217, 155, 4, 0.25);
}

.home-reviews-actions {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.home-reviews-actions .btn-primary,
.home-reviews-actions .btn-gold {
  font-size: 0.88rem;
  padding: 12px 26px;
}

/* ========================================
   GOOGLE REVIEWS - THREE-TIER TRUST BUILDER
   (scoped to .gr-section; old .home-google-reviews
    styles above remain unused but intact)
   ======================================== */
.gr-section {
  margin-top: 56px;
  padding: 72px 36px 76px;
  border-radius: 32px;
  background:
    radial-gradient(circle at 6% 0%, rgba(194, 137, 82, 0.10) 0%, transparent 42%),
    radial-gradient(circle at 100% 100%, rgba(154, 107, 62, 0.08) 0%, transparent 36%),
    linear-gradient(180deg, #faf5ec 0%, #f2e6d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.22);
  box-shadow: 0 30px 68px -34px rgba(58, 36, 24, 0.26);
  color: #3a2418;
  position: relative;
  overflow: hidden;
}

.gr-wrap {
  max-width: 1180px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* --- Header ------------------------------------------------- */
.gr-head {
  text-align: center;
  margin-bottom: 42px;
}

.gr-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  padding: 6px 16px 6px 6px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.9);
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.gr-google-chip {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(194, 137, 82, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(58, 36, 24, 0.08);
}

.gr-title {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.08;
  letter-spacing: 0.005em;
  color: #3a2418;
  text-wrap: balance;
}

.gr-title-accent {
  font-style: italic;
  font-weight: 500;
  color: #9A6B3E;
}

.gr-flourish {
  display: block;
  width: 68px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, #C28952 50%, transparent);
  position: relative;
}
.gr-flourish::before,
.gr-flourish::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #C28952;
  transform: translateY(-50%);
}
.gr-flourish::before { left: -10px; }
.gr-flourish::after  { right: -10px; }

/* --- Tier 1: Hero Trust Panel ------------------------------- */
.gr-trust {
  margin-bottom: 34px;
  background:
    linear-gradient(145deg, rgba(255, 253, 247, 0.96), rgba(249, 239, 222, 0.88));
  border: 1px solid rgba(194, 137, 82, 0.28);
  border-radius: 24px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 24px 50px -28px rgba(58, 36, 24, 0.22);
  overflow: hidden;
}

.gr-trust-inner {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.3fr) minmax(260px, 1.2fr);
  gap: 0;
  padding: 32px 36px;
}

.gr-trust-inner > * + * {
  border-left: 1px solid rgba(194, 137, 82, 0.22);
  padding-left: 32px;
  margin-left: 32px;
}

/* Score */
.gr-trust-score { text-align: left; }

.gr-score-number {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}

.gr-score-value {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(3.6rem, 6vw, 5rem);
  line-height: 1;
  color: #3a2418;
  letter-spacing: -0.01em;
}

.gr-score-out {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: #9A6B3E;
  letter-spacing: 0.06em;
}

.gr-score-stars {
  display: inline-flex;
  gap: 4px;
  /* Google review star gold — matches google.com/maps reviews exactly */
  color: #FBBC04;
  font-size: 1.05rem;
  margin-bottom: 12px;
  text-shadow: 0 1px 1px rgba(217, 155, 4, 0.25);
}

.gr-score-stars i {
  opacity: 0;
  transform: scale(0.4);
}

.gr-section.visible .gr-score-stars i {
  animation: gr-star-pop 0.55s cubic-bezier(.34,1.56,.64,1) forwards;
  animation-delay: calc(0.35s + var(--i, 0) * 0.1s);
}

@keyframes gr-star-pop {
  0%   { opacity: 0; transform: scale(0.4); }
  60%  { opacity: 1; transform: scale(1.18); }
  100% { opacity: 1; transform: scale(1); }
}

.gr-score-meta {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  line-height: 1.55;
  color: #6a5040;
  max-width: 26ch;
}

/* Distribution bars */
.gr-distribution {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gr-dist-row {
  display: grid;
  grid-template-columns: 38px 1fr 38px;
  align-items: center;
  gap: 12px;
  font-family: 'Manrope', 'Poppins', sans-serif;
}

.gr-dist-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #5a3e2c;
}

.gr-dist-label i {
  font-size: 0.68rem;
  color: #FBBC04;
}

.gr-dist-bar {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: rgba(194, 137, 82, 0.14);
  overflow: hidden;
}

.gr-dist-fill {
  position: absolute;
  inset: 0;
  width: var(--pct, 0%);
  border-radius: 999px;
  background: linear-gradient(90deg, #C28952, #9A6B3E);
  transform: scaleX(0);
  transform-origin: left center;
}

.gr-section.visible .gr-dist-fill {
  animation: gr-dist-grow 1.1s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: calc(0.45s + var(--delay, 0s));
}

@keyframes gr-dist-grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

.gr-dist-pct {
  font-size: 0.78rem;
  font-weight: 600;
  color: #6a5040;
  text-align: right;
  letter-spacing: 0.02em;
}

/* Attestation grid */
.gr-attestations {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 0;
}

.gr-attest {
  padding: 14px 16px;
  background: rgba(255, 252, 245, 0.6);
  border: 1px solid rgba(194, 137, 82, 0.22);
  border-radius: 14px;
  display: flex;
  flex-direction: column-reverse;
}

.gr-attest dt {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #9A6B3E;
  margin-top: 6px;
}

.gr-attest dd {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.7rem;
  line-height: 1;
  color: #3a2418;
  letter-spacing: -0.005em;
}

.gr-attest dd span {
  font-size: 0.75em;
  font-weight: 500;
  color: #9A6B3E;
  margin-left: 2px;
  letter-spacing: 0;
}

/* Verified strip - green Google accent */
.gr-verified-strip {
  margin: 0;
  padding: 14px 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, rgba(52, 168, 83, 0.10), rgba(52, 168, 83, 0.04));
  border-top: 1px solid rgba(52, 168, 83, 0.22);
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: #1f6d3a;
  letter-spacing: 0.02em;
}

.gr-verified-check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #34A853;
  color: #fff;
  font-size: 0.68rem;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(52, 168, 83, 0.35);
}

/* --- Tier 2: Verified Review Cards -------------------------- */
.gr-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 34px;
}

.gr-card {
  padding: 26px 26px 22px;
  background: linear-gradient(155deg, #fdf8ed 0%, #f5e9d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.28);
  border-radius: 22px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 18px 40px -24px rgba(58, 36, 24, 0.22);
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.3s ease;
}

.gr-card:hover {
  transform: translateY(-4px);
  border-color: rgba(194, 137, 82, 0.45);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 26px 52px -24px rgba(58, 36, 24, 0.32);
}

.gr-card-head {
  display: flex;
  align-items: center;
  gap: 14px;
}

.gr-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.15rem;
  color: #fff;
  flex-shrink: 0;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 10px rgba(58, 36, 24, 0.18);
}

.gr-avatar--bronze { background: linear-gradient(135deg, #C28952, #8a5e36); }
.gr-avatar--gold   { background: linear-gradient(135deg, #d8ab67, #9A6B3E); }
.gr-avatar--cocoa  { background: linear-gradient(135deg, #6b4a2e, #3a2418); }

.gr-card-ident {
  min-width: 0;
  flex: 1;
}

.gr-card-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 3px;
}

.gr-card-name {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.gr-card-guide {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 9px;
  border-radius: 999px;
  background: rgba(66, 133, 244, 0.10);
  border: 1px solid rgba(66, 133, 244, 0.28);
  color: #3566c4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gr-card-guide i { font-size: 0.64rem; }

.gr-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.gr-card-stars {
  display: inline-flex;
  gap: 2px;
  color: #C28952;
  font-size: 0.78rem;
}

.gr-card-when {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.74rem;
  color: #9A6B3E;
  letter-spacing: 0.02em;
}

.gr-card-title {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.25;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.gr-card-body {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.9rem;
  line-height: 1.65;
  color: #5a4533;
}

/* Gold-underline highlight for pull phrases */
.gr-mark {
  background: linear-gradient(180deg, transparent 62%, rgba(194, 137, 82, 0.32) 62%, rgba(194, 137, 82, 0.32) 92%, transparent 92%);
  color: inherit;
  padding: 0 1px;
}

.gr-card-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed rgba(194, 137, 82, 0.32);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.gr-card-tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.gr-card-tags li {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.85);
  border: 1px solid rgba(194, 137, 82, 0.28);
  color: #6a5040;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.gr-card-tags li i {
  color: #C28952;
  font-size: 0.72rem;
}

.gr-card-helpful {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  color: #9A6B3E;
  letter-spacing: 0.04em;
}

.gr-card-helpful i { font-size: 0.8rem; }
.gr-card-helpful span { color: #6a5040; font-weight: 500; }

/* --- Tier 3: Dark Signal Strip ------------------------------ */
.gr-signals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  padding: 22px 28px;
  margin-bottom: 34px;
  background: linear-gradient(135deg, #221610 0%, #2d1d12 100%);
  border-radius: 22px;
  border: 1px solid rgba(194, 137, 82, 0.25);
  box-shadow:
    inset 0 1px 0 rgba(194, 137, 82, 0.15),
    0 20px 46px -24px rgba(0, 0, 0, 0.55);
}

.gr-signal {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 20px;
  border-right: 1px solid rgba(194, 137, 82, 0.18);
}

.gr-signal:last-child { border-right: 0; }
.gr-signal:first-child { padding-left: 0; }
.gr-signal:last-child  { padding-right: 0; }

.gr-signal > i {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(194, 137, 82, 0.14);
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #d8ab67;
  font-size: 1rem;
  flex-shrink: 0;
}

.gr-signal-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.gr-signal-body strong {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.35rem;
  line-height: 1;
  color: #f7e9d4;
  letter-spacing: 0.005em;
}

.gr-signal-body span {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  color: #c9a97a;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* --- Dual CTA ----------------------------------------------- */
.gr-cta-row {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.gr-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.4s ease, color 0.3s ease, border-color 0.3s ease;
}

.gr-cta--primary {
  background: #fff;
  color: #3a2418;
  border: 1px solid rgba(194, 137, 82, 0.38);
  box-shadow:
    0 2px 0 rgba(194, 137, 82, 0.18) inset,
    0 14px 30px -14px rgba(58, 36, 24, 0.28);
}

.gr-cta--primary:hover {
  transform: translateY(-1px);
  border-color: rgba(194, 137, 82, 0.6);
  box-shadow:
    0 2px 0 rgba(194, 137, 82, 0.22) inset,
    0 20px 38px -16px rgba(58, 36, 24, 0.4);
}

.gr-cta-g {
  flex-shrink: 0;
  display: block;
}

.gr-cta--ghost {
  background: transparent;
  color: #3a2418;
  border: 1px solid rgba(58, 36, 24, 0.4);
}

.gr-cta--ghost i { color: #9A6B3E; font-size: 0.9rem; }

.gr-cta--ghost:hover {
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  color: #f7e9d4;
  border-color: transparent;
  transform: translateY(-1px);
}

.gr-cta--ghost:hover i { color: #d8ab67; }

/* --- Responsive --------------------------------------------- */
@media (max-width: 1024px) {
  .gr-section { padding: 60px 28px 66px; }
  .gr-trust-inner {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .gr-trust-inner > *:nth-child(1) { grid-column: 1 / -1; border-left: 0; padding-left: 0; margin-left: 0; border-bottom: 1px solid rgba(194, 137, 82, 0.22); padding-bottom: 24px; margin-bottom: 24px; }
  .gr-trust-inner > *:nth-child(2) { border-left: 0; padding-left: 0; margin-left: 0; padding-right: 16px; border-right: 1px solid rgba(194, 137, 82, 0.22); }
  .gr-trust-inner > *:nth-child(3) { padding-left: 24px; margin-left: 24px; }
  .gr-cards { grid-template-columns: 1fr 1fr; }
  .gr-cards > :last-child { grid-column: 1 / -1; }
  .gr-signals { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .gr-signal { border-right: 0; padding: 10px 0; border-bottom: 1px solid rgba(194, 137, 82, 0.18); }
  .gr-signal:nth-last-child(-n+2) { border-bottom: 0; }
  .gr-signal:nth-child(odd) { padding-right: 12px; border-right: 1px solid rgba(194, 137, 82, 0.18); }
}

@media (max-width: 768px) {
  .gr-section {
    padding: 52px 20px 58px;
    border-radius: 24px;
    margin-top: 36px;
  }
  .gr-trust-inner {
    grid-template-columns: 1fr;
    padding: 24px;
  }
  .gr-trust-inner > *:nth-child(1),
  .gr-trust-inner > *:nth-child(2),
  .gr-trust-inner > *:nth-child(3) {
    border: 0;
    border-bottom: 1px solid rgba(194, 137, 82, 0.22);
    padding: 0 0 22px;
    margin: 0 0 22px;
  }
  .gr-trust-inner > *:last-child {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
  .gr-cards { grid-template-columns: 1fr; }
  .gr-cards > :last-child { grid-column: auto; }
  .gr-signals {
    grid-template-columns: 1fr;
    padding: 16px 20px;
  }
  .gr-signal { padding: 10px 0 !important; border-right: 0 !important; border-bottom: 1px solid rgba(194, 137, 82, 0.18) !important; }
  .gr-signal:last-child { border-bottom: 0 !important; }
  .gr-cta { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .gr-section { padding: 44px 16px 52px; }
  .gr-attestations { grid-template-columns: 1fr; }
  .gr-score-value { font-size: 3.2rem; }
  .gr-card { padding: 22px; }
  .gr-card-foot { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .gr-section .gr-score-stars i,
  .gr-section.visible .gr-score-stars i { opacity: 1; transform: none; animation: none; }
  .gr-section .gr-dist-fill,
  .gr-section.visible .gr-dist-fill { transform: scaleX(1); animation: none; }
}

/* ========================================
   HOW IT WORKS - LUXURY BOOKING JOURNEY
   ======================================== */
.hiw-section {
  padding: 104px 22px 112px;
  background:
    radial-gradient(circle at 8% 8%, rgba(194, 137, 82, 0.09) 0%, transparent 40%),
    radial-gradient(circle at 94% 96%, rgba(154, 107, 62, 0.07) 0%, transparent 36%),
    linear-gradient(180deg, #faf5ec 0%, #f2e6d1 100%);
  color: #3a2418;
  position: relative;
  overflow: hidden;
}

.hiw-wrap {
  max-width: 1180px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* --- Header ------------------------------------------------- */
.hiw-head {
  text-align: center;
  margin-bottom: 64px;
}

.hiw-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 22px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #9A6B3E;
}

.hiw-eyebrow-flourish {
  display: block;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #C28952 50%, transparent);
}

.hiw-title {
  margin: 0 0 14px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(2.2rem, 4.4vw, 3.6rem);
  line-height: 1.05;
  letter-spacing: 0.005em;
  color: #3a2418;
  text-wrap: balance;
}

.hiw-title-accent {
  font-style: italic;
  font-weight: 500;
  color: #9A6B3E;
}

.hiw-sub {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #6a5040;
  letter-spacing: 0.01em;
}

/* --- Body layout -------------------------------------------- */
.hiw-body {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 72px;
  align-items: center;
  margin-bottom: 52px;
}

/* --- Timeline ----------------------------------------------- */
.hiw-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.hiw-steps::before {
  content: "";
  position: absolute;
  left: 29px;
  top: 40px;
  bottom: 40px;
  width: 1px;
  background: repeating-linear-gradient(
    to bottom,
    rgba(194, 137, 82, 0.6) 0 4px,
    transparent 4px 10px
  );
  z-index: 0;
}

.hiw-step {
  position: relative;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 26px;
  align-items: flex-start;
  padding: 0 0 44px;
  z-index: 1;
}

.hiw-step:last-child { padding-bottom: 0; }

.hiw-step-mark {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #fdf8ed, #f5e9d1);
  border: 1px solid rgba(194, 137, 82, 0.4);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 12px 24px -14px rgba(58, 36, 24, 0.3);
  flex-shrink: 0;
}

.hiw-step-ring {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(194, 137, 82, 0.32);
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.5s ease, transform 0.6s cubic-bezier(.2,.8,.2,1);
}

.hiw-section.visible .hiw-step-ring {
  opacity: 1;
  transform: scale(1);
}

.hiw-step:nth-child(1) .hiw-step-ring { transition-delay: 0.35s; }
.hiw-step:nth-child(2) .hiw-step-ring { transition-delay: 0.5s; }
.hiw-step:nth-child(3) .hiw-step-ring { transition-delay: 0.65s; }

.hiw-step-num {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.55rem;
  line-height: 1;
  color: #3a2418;
  letter-spacing: 0.01em;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

/* Small action icon that fades in on hover, swapping visually with the number */
.hiw-step-icon {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #C28952;
  font-size: 1.05rem;
  opacity: 0;
  transform: scale(0.7) rotate(-8deg);
  transition: opacity 0.35s ease, transform 0.4s cubic-bezier(.2,.8,.2,1);
}

.hiw-step:hover .hiw-step-num {
  opacity: 0;
  transform: scale(0.6);
}
.hiw-step:hover .hiw-step-icon {
  opacity: 1;
  transform: scale(1) rotate(0);
}
.hiw-step:hover .hiw-step-mark {
  border-color: rgba(194, 137, 82, 0.7);
  background: linear-gradient(145deg, #fff5e0, #f0dcab);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 16px 30px -14px rgba(58, 36, 24, 0.4);
}

.hiw-step-body {
  padding-top: 8px;
  min-width: 0;
}

.hiw-step-title {
  margin: 0 0 8px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.2;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.hiw-step-desc {
  margin: 0 0 14px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.94rem;
  line-height: 1.7;
  color: #6a5040;
  max-width: 52ch;
}

/* Modern chip below each step description */
.hiw-step-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 244, 220, 0.9), rgba(247, 225, 185, 0.75));
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #8B5E1F;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
  transition: transform 0.3s ease, border-color 0.3s ease, background 0.35s ease;
}

.hiw-step-chip i {
  color: #C28952;
  font-size: 0.78rem;
}

.hiw-step:hover .hiw-step-chip {
  transform: translateX(2px);
  border-color: rgba(194, 137, 82, 0.55);
  background: linear-gradient(135deg, rgba(255, 248, 225, 1), rgba(247, 220, 165, 0.9));
}

/* --- Visual ------------------------------------------------- */
.hiw-visual {
  position: relative;
  justify-self: center;
  width: 100%;
  max-width: 460px;
  aspect-ratio: 4 / 5;
}

.hiw-visual-frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 18px;
  border: 1px solid rgba(194, 137, 82, 0.35);
  background: linear-gradient(155deg, #fdf8ed, #f5e9d1);
  padding: 12px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 32px 68px -30px rgba(58, 36, 24, 0.42);
}

.hiw-visual-frame img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
  object-fit: cover;
  display: block;
}

/* L-shaped gold corner brackets on the frame */
.hiw-visual-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  pointer-events: none;
  z-index: 2;
}
.hiw-visual-corner--tl { top: -6px;    left: -6px;    border-top: 1.5px solid #C28952; border-left: 1.5px solid #C28952; border-top-left-radius: 6px; }
.hiw-visual-corner--tr { top: -6px;    right: -6px;   border-top: 1.5px solid #C28952; border-right: 1.5px solid #C28952; border-top-right-radius: 6px; }
.hiw-visual-corner--bl { bottom: -6px; left: -6px;    border-bottom: 1.5px solid #C28952; border-left: 1.5px solid #C28952; border-bottom-left-radius: 6px; }
.hiw-visual-corner--br { bottom: -6px; right: -6px;   border-bottom: 1.5px solid #C28952; border-right: 1.5px solid #C28952; border-bottom-right-radius: 6px; }

/* Floating deposit badge */
.hiw-visual-badge {
  position: absolute;
  left: -22px;
  bottom: 36px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 14px 22px 14px 14px;
  border-radius: 16px;
  background: rgba(255, 252, 245, 0.96);
  border: 1px solid rgba(194, 137, 82, 0.35);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 24px 50px -22px rgba(58, 36, 24, 0.38);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 3;
  max-width: 272px;
}

.hiw-visual-badge-check {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  font-size: 0.92rem;
  flex-shrink: 0;
  box-shadow: 0 6px 14px rgba(154, 107, 62, 0.35);
}

.hiw-visual-badge-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.hiw-visual-badge-body strong {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.08rem;
  line-height: 1.1;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.hiw-visual-badge-body span {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.7rem;
  color: #9A6B3E;
  letter-spacing: 0.06em;
}

/* --- CTA ---------------------------------------------------- */
.hiw-cta-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.hiw-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 36px;
  border-radius: 999px;
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  border: 1px solid rgba(194, 137, 82, 0.35);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow:
    inset 0 2px 0 rgba(194, 137, 82, 0.2),
    0 18px 36px -14px rgba(58, 36, 24, 0.45);
  transition: background 0.45s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.hiw-cta i {
  font-size: 0.88rem;
  color: #d8ab67;
  transition: transform 0.35s ease, color 0.3s ease;
}

.hiw-cta:hover {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  transform: translateY(-1px);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.2),
    0 24px 42px -14px rgba(154, 107, 62, 0.5);
}

.hiw-cta:hover i {
  color: #fff;
  transform: translateX(5px);
}

.hiw-cta-meta {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  color: #9A6B3E;
  letter-spacing: 0.02em;
}

.hiw-cta-meta i { font-size: 0.82rem; }

/* --- Responsive --------------------------------------------- */
@media (max-width: 1024px) {
  .hiw-section { padding: 86px 22px 94px; }
  .hiw-body { gap: 54px; }
  .hiw-visual { max-width: 380px; }
}

@media (max-width: 860px) {
  .hiw-body {
    grid-template-columns: 1fr;
    gap: 64px;
  }
  .hiw-visual {
    order: -1;
    max-width: 440px;
    aspect-ratio: 5 / 4;
  }
  .hiw-visual-badge { left: auto; right: -14px; bottom: -20px; }
}

@media (max-width: 560px) {
  .hiw-section { padding: 68px 16px 80px; }
  .hiw-head { margin-bottom: 48px; }
  .hiw-body { gap: 48px; margin-bottom: 40px; }
  .hiw-step { grid-template-columns: 48px 1fr; gap: 18px; padding-bottom: 34px; }
  .hiw-step-mark { width: 48px; height: 48px; }
  .hiw-step-num { font-size: 1.3rem; }
  .hiw-steps::before { left: 23px; top: 32px; bottom: 32px; }
  .hiw-step-title { font-size: 1.28rem; }
  .hiw-visual { max-width: 100%; aspect-ratio: 4 / 3; }
  .hiw-visual-badge { left: 14px; right: 14px; bottom: -20px; max-width: none; }
  .hiw-cta { padding: 14px 26px; font-size: 0.76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hiw-section .hiw-step-ring,
  .hiw-section.visible .hiw-step-ring { opacity: 1; transform: none; transition: none; }
}

/* Gallery modern strip */
.gallery-modern-strip {
  margin-bottom: 24px;
  padding: 18px 20px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 12% 20%, rgba(232,140,90, 0.18) 0%, transparent 36%),
    linear-gradient(145deg, rgba(255, 250, 245, 0.96) 0%, rgba(248, 237, 223, 0.92) 100%);
  border: 1px solid rgba(232,140,90, 0.2);
}

.gallery-modern-pill {
  display: inline-flex;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: #9A523A;
  background: rgba(255,255,255,0.74);
  border: 1px solid rgba(232,140,90, 0.18);
}

.gallery-modern-stats {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.gallery-modern-stats div {
  padding: 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(232,140,90, 0.14);
}

.gallery-modern-stats strong {
  display: block;
  font-size: 1.2rem;
  color: #8B4230;
}

.gallery-modern-stats span {
  font-size: 0.78rem;
  color: #9A523A;
}

@media (max-width: 900px) {
  .home-reviews-grid,
  .gallery-modern-stats {
    grid-template-columns: 1fr;
  }
}

/* Policies page */
.policies-section { margin-bottom: 40px; }
.policies-section h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.5rem; color: #5C2010;
  margin-bottom: 16px; padding-bottom: 8px;
  border-bottom: 2px solid #F0C090;
}
.policies-section ul { padding-left: 0; list-style: none; }
.policies-section li {
  padding: 12px 0; border-bottom: 1px solid #FAD4B8;
  font-size: 0.95rem; color: #5a4a3a;
  padding-left: 28px; position: relative;
}
.policies-section li::before {
  content: ''; position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  width: 8px; height: 8px; border-radius: 50%;
  background: #E8956A;
}

/* Venues listing page */
.venues-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px; margin: 40px 0;
}
.venue-card {
  display: block; text-decoration: none; color: inherit;
  background: #fff; border-radius: 12px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.venue-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); }
.venue-card img { width: 100%; height: 240px; object-fit: cover; }
.venue-card-body { padding: 24px; }
.venue-card-body h3 { font-family: 'Cormorant Garamond', 'Playfair Display', serif; font-size: 1.3rem; color: #5C2010; margin-bottom: 8px; }
.venue-card-body p { font-size: 0.9rem; color: #6c4b32; line-height: 1.6; }


/* ========================================
   PETAL ANIMATION
   ======================================== */
.petal {
  position: fixed;
  top: -40px;
  width: 30px; height: auto;
  pointer-events: none;
  animation: fall 8s linear forwards;
  opacity: 0.5;
  z-index: 1200;
  will-change: transform;
  filter: drop-shadow(0 2px 6px rgba(197, 122, 78, 0.2));
}
#petal-container {
  position: fixed; top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none; overflow: hidden;
  z-index: 10;
}
@keyframes fall {
  from { transform: translate3d(0, 0, 0) rotate(0deg); }
  to   { transform: translate3d(0, 110vh, 0) rotate(540deg); }
}


/* ========================================
   UTILITY ANIMATIONS
   ======================================== */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes floatDrift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
@keyframes ornamentPulse {
  0% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 0.92; transform: scale(1.02); }
  100% { opacity: 0.55; transform: scale(1); }
}
.fade-in-up {
  opacity: 0; transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in-up.visible { opacity: 1; transform: translateY(0); }


/* ========================================
   VENUE AREAS GRID
   ======================================== */
.venue-areas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 24px;
  margin-top: 24px;
}
.venue-area-card {
  background: #fff;
  border: 1px solid #F0C090;
  border-radius: 14px;
  padding: 30px 24px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.venue-area-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.venue-area-card i {
  font-size: 2rem;
  color: #c5965a;
  margin-bottom: 14px;
}
.venue-area-card h4 {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.15rem;
  color: #5C2010;
  margin-bottom: 8px;
}
.venue-area-card p {
  font-size: 0.9rem;
  color: #6c4b32;
  line-height: 1.6;
}


/* ========================================
   AVAILABILITY CTA
   ======================================== */
.availability-cta {
  text-align: center;
  background: linear-gradient(135deg, #fef8f0, #fff5e8);
  border: 1px solid #F0C090;
  border-radius: 16px;
  padding: 40px 30px;
  margin-top: 24px;
}
.availability-cta p {
  font-size: 1.05rem;
  color: #5a3a24;
  margin-bottom: 20px;
}
.availability-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}


/* ========================================
   VENUE GALLERY TABS
   ======================================== */
.venue-gallery-tabs {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.vg-tab {
  padding: 8px 22px;
  border: 1px solid #d4a96a;
  background: transparent;
  color: #8a6230;
  border-radius: 24px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.3s ease;
}
.vg-tab:hover,
.vg-tab.active {
  background: linear-gradient(135deg, #d4a96a, #b8862d);
  color: #fff;
  border-color: transparent;
}
.venue-gallery img.hidden {
  display: none;
} 
 
 /* ========================================
    PREMIUM 2026 REFINEMENTS
    ======================================== */
 .map-area {
   border-radius: 30px;
 }

 .page-header-shell {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
 }
 
 .page-header-logo {
   width: 98px;
   height: 98px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   margin: 0 auto 14px;
   border-radius: 50%;
   background: linear-gradient(180deg, rgba(255,255,255,0.85) 0%, rgba(249,236,220,0.92) 100%);
   border: 1px solid rgba(228,136,88, 0.24);
   box-shadow: 0 18px 36px rgba(43, 26, 15, 0.08);
 }
 
 .page-header-logo img {
   width: 60px;
   height: auto;
   display: block;
 }
 
 .page-header-kicker {
   margin-bottom: 14px;
 }
 
 .page-header-ornament {
   margin: 0 auto 18px;
 }
 
 .page-header h1 {
   max-width: 12ch;
 }
 
 .page-header p {
   max-width: 42ch;
 }
 
 .gallery-lead {
   max-width: 760px;
   margin-bottom: 24px;
 }
 
 .gallery-curated-grid {
   display: grid;
   grid-template-columns: repeat(12, minmax(0, 1fr));
   gap: 20px;
   margin-top: 32px;
 }
 
 .gallery-card {
   grid-column: span 4;
   position: relative;
   overflow: hidden;
   min-height: 300px;
   border-radius: 20px;
   background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,246,235,0.96) 100%);
   border: 1.5px solid rgba(232,140,90, 0.18);
   box-shadow: 0 10px 32px rgba(0, 0, 0, 0.08);
   transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
   /* Perf: skip painting/layout of off-screen photo cards */
   content-visibility: auto;
   contain-intrinsic-size: 1px 320px;
 }
 
 .gallery-card:hover {
   border-color: rgba(232,140,90, 0.28);
   box-shadow: 0 18px 48px rgba(0, 0, 0, 0.12);
 }
 
 .gallery-card--wide {
   grid-column: span 8;
   min-height: 320px;
 }
 
 .gallery-card--tall {
   min-height: 460px;
 }
 
 .gallery-card img {
   width: 100%;
   height: 100%;
   min-height: inherit;
   object-fit: cover;
   display: block;
   transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
   object-position: center;
 }
 
 .gallery-card::after {
   content: '';
   position: absolute;
   inset: 0;
   background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.6) 85%);
   z-index: 1;
   transition: background 0.4s ease;
 }
 
 .gallery-card figcaption {
   position: absolute;
   left: 0;
   right: 0;
   bottom: 0;
   z-index: 2;
   padding: 28px 24px 24px;
   color: #fff;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
 }
 
 .gallery-card figcaption span {
   display: block;
   font-size: 0.68rem;
   letter-spacing: 0.22em;
   text-transform: uppercase;
   opacity: 0.88;
   margin-bottom: 12px;
   font-weight: 700;
   color: rgba(255, 255, 255, 0.9);
 }
 
 .gallery-card figcaption strong {
   display: block;
   font-family: 'Cormorant Garamond', 'Playfair Display', serif;
   font-size: clamp(1.2rem, 4vw, 1.5rem);
   line-height: 1.3;
   font-weight: 700;
   color: #fff;
 }
 
 .gallery-card:hover img {
   transform: scale(1.05);
 }
 
 .reviews-summary {
   display: grid;
   grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
   gap: 24px;
   align-items: stretch;
 }
 
 .review-rating-panel,
 .review-source-panel {
   position: relative;
   padding: 28px;
   border-radius: 24px;
   border: 1px solid rgba(232,148,100, 0.18);
   background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,247,238,0.96) 100%);
   box-shadow: 0 18px 36px rgba(34, 22, 13, 0.06);
 }
 
 .review-kicker {
   display: inline-flex;
   padding: 8px 14px;
   border-radius: 999px;
   background: rgba(232,148,100, 0.14);
   color: #9A4828;
   font-size: 0.72rem;
   font-weight: 700;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   margin-bottom: 16px;
 }
 
 .review-score-row {
   display: flex;
   align-items: end;
   gap: 18px;
   margin-bottom: 18px;
 }
 
 .review-score {
   font-family: 'Cormorant Garamond', 'Playfair Display', serif;
   font-size: clamp(3rem, 8vw, 4.8rem);
   color: #5C2010;
   line-height: 0.95;
 }
 
 .review-stars {
   display: flex;
   gap: 6px;
   color: #c89148;
   font-size: 1rem;
   margin-bottom: 8px;
 }
 
 .review-meta {
   color: #7A3020;
   font-size: 0.96rem;
   line-height: 1.8;
 }
 
 .review-source-list {
   display: grid;
   gap: 14px;
   margin: 18px 0 22px;
 }
 
 .review-source-item {
   padding: 16px 18px;
   border-radius: 18px;
   background: rgba(255,250,244,0.92);
   border: 1px solid rgba(232,148,100, 0.14);
 }
 
 .review-source-item strong {
   display: block;
   color: #5C2010;
   margin-bottom: 4px;
   font-size: 0.98rem;
 }
 
 .review-source-item span {
   color: #7A3020;
   font-size: 0.9rem;
   line-height: 1.7;
 }
 
 .review-actions,
 .venue-actions {
   display: flex;
   gap: 14px;
   flex-wrap: wrap;
 }
 
 .contact-info-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 16px;
   margin-top: 24px;
 }
 
 .contact-info-card {
  min-width: 0;
   padding: 18px 18px 16px;
   border-radius: 18px;
   background: rgba(255,250,244,0.94);
   border: 1px solid rgba(232,148,100, 0.16);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 4px;
}

.contact-info-card--wide {
  grid-column: span 2;
 }
 
 .contact-info-card span {
   display: block;
   font-size: 0.72rem;
   text-transform: uppercase;
   letter-spacing: 0.16em;
   color: #9A4828;
   margin-bottom: 10px;
 }
 
 .contact-info-card a,
 .contact-info-card p {
   color: #5C2010;
   text-decoration: none;
   line-height: 1.7;
   margin: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
 }
 
 .contact-info-card a:hover {
  color: #C05430;
 }

.contact-inline-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(180deg, #fffdf9 0%, #fff2e2 100%);
  border: 1px solid rgba(232,148,100, 0.24);
  box-shadow: 0 10px 20px rgba(54, 32, 18, 0.06);
  color: #6f4c32;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.contact-inline-btn:hover,
.contact-inline-btn:focus-visible {
  color: #6f4c32;
  transform: translateY(-2px);
  border-color: rgba(190, 141, 92, 0.34);
  box-shadow: 0 14px 28px rgba(163, 103, 67, 0.12);
}
 
 .venue-detail-page .inner-content {
   max-width: 1180px;
 }
 
 .venue-intro-grid,
 .venue-detail-grid,
 .venue-policy-grid {
   display: grid;
   gap: 24px;
 }
 
 .venue-intro-grid {
   grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
   align-items: start;
 }
 
 .venue-detail-grid,
 .venue-policy-grid {
   grid-template-columns: repeat(2, minmax(0, 1fr));
 }
 
 .venue-panel,
 .venue-note-card,
 .venue-cta-panel {
   padding: 28px;
   border-radius: 24px;
   background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,248,239,0.96) 100%);
   border: 1px solid rgba(232,148,100, 0.18);
   box-shadow: 0 16px 34px rgba(35, 21, 13, 0.06);
   display: flex;
   flex-direction: column;
 }

 .venue-panel .venue-hosted-grid {
   flex: 1;
   align-content: center;
 }
 
 .venue-panel h3,
 .venue-note-card h3,
 .venue-cta-panel h3 {
   font-family: 'Cormorant Garamond', 'Playfair Display', serif;
   color: #5C2010;
   font-size: 1.4rem;
   margin-bottom: 14px;
 }
 
 .venue-facts-grid,
 .venue-facilities-grid,
 .venue-hosted-grid {
   display: grid;
   gap: 16px;
 }
 
 .venue-facts-grid {
   grid-template-columns: repeat(2, minmax(0, 1fr));
   margin-top: 20px;
 }
 
 .venue-fact-card {
   padding: 20px;
   border-radius: 20px;
   background: linear-gradient(180deg, #fffdf9 0%, #FFE8D5 100%);
   border: 1px solid rgba(232,148,100, 0.16);
 }
 
 .venue-fact-card span {
   display: block;
   font-size: 0.72rem;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: #9A4828;
   margin-bottom: 10px;
 }
 
 .venue-fact-card strong {
   display: block;
   color: #5C2010;
   font-family: 'Cormorant Garamond', 'Playfair Display', serif;
   font-size: 1.52rem;
   line-height: 1.15;
 }
 
 .venue-list {
   list-style: none;
   padding: 0;
   margin: 0;
   display: grid;
   gap: 12px;
 }
 
 .venue-list li {
   position: relative;
   padding-left: 18px;
   color: #5b4030;
   line-height: 1.75;
 }
 
 .venue-list li::before {
   content: '';
   position: absolute;
   left: 0;
   top: 12px;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: linear-gradient(180deg, #E8956A 0%, #D4724A 100%);
 }
 
 .venue-facilities-grid {
   grid-template-columns: repeat(2, minmax(0, 1fr));
 }
 
 .venue-facility-chip,
 .venue-hosted-item {
   display: flex;
   align-items: center;
   gap: 12px;
   padding: 15px 16px;
   border-radius: 18px;
   background: rgba(255,250,244,0.94);
   border: 1px solid rgba(232,148,100, 0.14);
   color: #5C2010;
 }
 
 .venue-facility-chip i,
 .venue-hosted-item i {
   color: #b9854e;
 }
 
 .venue-hosted-grid {
   grid-template-columns: repeat(2, minmax(0, 1fr));
 }
 
 .venue-note-card p:last-child,
 .venue-panel p:last-child,
 .venue-cta-panel p:last-child {
   margin-bottom: 0;
 }
 
 .venue-cta-panel {
   background:
     radial-gradient(circle at top right, rgba(232,148,100, 0.16) 0%, transparent 28%),
     linear-gradient(180deg, rgba(255,251,246,0.98) 0%, rgba(247,235,221,0.96) 100%);
 }
 
 .venue-cta-meta {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
   margin: 18px 0 22px;
 }
 
 .venue-cta-meta span {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 10px 14px;
   border-radius: 999px;
   background: rgba(255,255,255,0.75);
   border: 1px solid rgba(232,148,100, 0.18);
   color: #7A3020;
   font-size: 0.84rem;
 }
 
 .venue-gallery-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 16px;
   margin-top: 24px;
 }
 
 .venue-gallery-grid img,
 .venue-gallery img {
   border-radius: 20px;
   box-shadow: 0 16px 30px rgba(34, 22, 13, 0.08);
 }
 
 .venue-gallery img {
   height: 240px;
 }
 
 @media (max-width: 1024px) {
   .gallery-curated-grid,
   .venue-gallery-grid {
     grid-template-columns: repeat(2, minmax(0, 1fr));
   }
 
   .gallery-card,
   .gallery-card--wide {
     grid-column: span 1;
   }
 
   .gallery-card--tall {
     min-height: 320px;
   }
 
   .reviews-summary,
   .venue-intro-grid,
   .venue-detail-grid,
   .venue-policy-grid {
     grid-template-columns: 1fr;
   }
 }
 
 @media (max-width: 768px) {
   .page-header-logo {
     width: 82px;
     height: 82px;
   }
 
   .page-header-logo img {
     width: 50px;
   }
 
   .contact-info-grid,
   .venue-facts-grid,
   .venue-facilities-grid,
   .venue-hosted-grid,
   .venue-gallery-grid {
     grid-template-columns: 1fr;
   }
 }
 
 @media (max-width: 576px) {
   .gallery-curated-grid {
     grid-template-columns: 1fr;
   }
 
   .gallery-card {
     min-height: 260px;
   }
 
   .review-rating-panel,
   .review-source-panel,
   .venue-panel,
   .venue-note-card,
   .venue-cta-panel {
     padding: 22px 18px;
     border-radius: 20px;
   }
 
   .review-score-row {
     align-items: center;
     gap: 12px;
   }
 }

body.page-venues .page-header {
  background:
    radial-gradient(circle at 16% 24%, rgba(232,148,100, 0.22) 0%, transparent 24%),
    radial-gradient(circle at 84% 22%, rgba(216,108,72, 0.14) 0%, transparent 24%),
    linear-gradient(180deg, #FFE0C5 0%, #FFF0E5 58%, #FFF4EC 100%);
}

.venues-intro-panel {
  padding: 30px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,248,239,0.96) 100%);
  border: 1px solid rgba(232,148,100, 0.18);
  box-shadow: 0 18px 36px rgba(34, 22, 13, 0.06);
}

.venues-intro-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(232,148,100, 0.14);
  color: #9A4828;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.venues-intro-panel h2 {
  margin-bottom: 14px;
}

.venues-intro-panel p:last-child {
  margin-bottom: 0;
}

.venues-grid {
  gap: 24px;
}

.venue-card {
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,247,238,0.96) 100%);
  border: 1px solid rgba(232,148,100, 0.18);
  box-shadow: 0 18px 36px rgba(34, 22, 13, 0.08);
}

.venue-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 46px rgba(34, 22, 13, 0.14);
}

.venue-card-media {
  position: relative;
  overflow: hidden;
}

.venue-card-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 12, 8, 0.06) 0%, rgba(20, 12, 8, 0.58) 100%);
}

.venue-card img {
  height: 280px;
  transition: transform 0.55s ease;
}

.venue-card:hover img {
  transform: scale(1.04);
}

.venue-card-tag {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  color: #6f4c32;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.venue-card-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.venue-card-body {
  padding: 24px 24px 26px;
}

.venue-card-body h3 {
  margin-bottom: 0;
  max-width: 14ch;
}

.venue-card-code {
  color: rgba(123, 88, 58, 0.78);
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.5rem;
  line-height: 1;
}

.venue-card-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.venue-card-facts span {
  display: inline-flex;
  align-items: center;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255, 250, 244, 0.96);
  border: 1px solid rgba(232,148,100, 0.16);
  color: #7A3020;
  font-size: 0.78rem;
  font-weight: 600;
}

.venues-cta-panel {
  margin-top: 10px;
}

@media (max-width: 768px) {
  .venues-intro-panel {
    padding: 24px 20px;
    border-radius: 22px;
  }

  .venue-card-body {
    padding: 22px 18px 22px;
  }

  .venue-card img {
    height: 240px;
  }
}

@media (max-width: 1024px) {
  .gallery-curated-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
  }

  .gallery-card {
    grid-column: span 3;
    min-height: 260px;
  }

  .gallery-card--wide {
    grid-column: span 6;
    min-height: 280px;
  }

  .gallery-card--tall {
    min-height: 400px;
  }
}

@media (max-width: 768px) {
  .gallery-curated-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .gallery-card {
    grid-column: span 1;
    min-height: 240px;
  }

  .gallery-card--wide {
    grid-column: span 2;
    min-height: 240px;
  }

  .gallery-card--tall {
    min-height: 340px;
    grid-column: span 1;
  }

  .gallery-card figcaption {
    padding: 20px 18px 18px;
  }

  .gallery-card figcaption span {
    font-size: 0.65rem;
    margin-bottom: 10px;
  }

  .gallery-card figcaption strong {
    font-size: 1.1rem;
  }
}

@media (max-width: 480px) {
  .gallery-curated-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .gallery-card,
  .gallery-card--wide,
  .gallery-card--tall {
    grid-column: span 1 !important;
    min-height: 280px;
  }
}

/* ========================================
   UX REFINEMENTS - CONTACT / GALLERY / NAV
   ======================================== */
.required-star {
  color: #C7482D;
  font-weight: 700;
}

.form-priority-note {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(53, 164, 92, 0.28);
  background: linear-gradient(180deg, #f5fff7 0%, #effcf2 100%);
  color: #2e6f44;
  font-size: 0.82rem;
  line-height: 1.5;
}

.contact-action-priority {
  position: relative;
  border-width: 1.6px;
  border-color: rgba(54, 158, 90, 0.35);
  background: linear-gradient(160deg, #ffffff 0%, #f1fff4 100%);
  box-shadow: 0 14px 30px rgba(41, 128, 72, 0.15);
}

.contact-action-secondary {
  position: relative;
}

.contact-priority-badge {
  position: absolute;
  top: -10px;
  right: 12px;
  padding: 5px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #31a85f 0%, #228b4a 100%);
  color: #fff;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 8px 16px rgba(33, 128, 72, 0.24);
}

.contact-priority-badge--secondary {
  background: linear-gradient(135deg, #C88452 0%, #A55E33 100%);
  box-shadow: 0 8px 16px rgba(135, 75, 38, 0.28);
}

.form-popup {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(35, 20, 12, 0.45);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.form-popup.show {
  opacity: 1;
  visibility: visible;
}

.form-popup-card {
  width: min(92vw, 440px);
  position: relative;
  text-align: center;
  padding: 28px 24px 24px;
  border-radius: 22px;
  border: 1px solid rgba(232, 148, 100, 0.26);
  background: linear-gradient(160deg, #fffefc 0%, #fff4e9 100%);
  box-shadow: 0 24px 46px rgba(35, 21, 12, 0.24);
  transform: translateY(10px) scale(0.98);
  transition: transform 0.25s ease;
}

.form-popup.show .form-popup-card {
  transform: translateY(0) scale(1);
}

.form-popup-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: none;
  background: transparent;
  color: #8f5b3c;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
}

.form-popup-icon {
  font-size: 2.2rem;
  color: #2f9e5a;
  margin-bottom: 12px;
}

.form-popup-card h3 {
  margin: 0 0 10px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-size: 1.55rem;
  color: #5C2010;
}

.form-popup-card p {
  margin: 0 0 18px;
  color: #6a4b36;
  line-height: 1.65;
}

.form-popup-cta {
  width: 100%;
}

nav.nav-scroll-enabled {
  position: fixed;
  background: linear-gradient(180deg, rgba(34, 20, 12, 0.65) 0%, rgba(34, 20, 12, 0.34) 80%, rgba(34, 20, 12, 0) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transform: translateY(0);
  transition: transform 0.28s ease;
}

body.light-nav nav.nav-scroll-enabled {
  background: linear-gradient(180deg, rgba(251, 244, 235, 0.96) 0%, rgba(251, 244, 235, 0.74) 62%, rgba(251, 244, 235, 0.18) 100%);
}

nav.nav-scroll-enabled.nav-hidden {
  transform: translateY(-110%);
}

.gallery-venue-sections {
  display: grid;
  gap: 20px;
  margin-top: 18px;
}

.gallery-venue-block {
  border-radius: 24px;
  border: 1px solid rgba(232, 148, 100, 0.18);
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,248,240,0.95) 100%);
  box-shadow: 0 16px 34px rgba(34, 22, 13, 0.07);
  padding: 22px;
}

.gallery-venue-header h3 {
  margin: 0 0 6px;
}

.gallery-venue-header p {
  margin: 0 0 12px;
  font-size: 0.92rem;
  color: #74523c;
}

.gallery-curated-grid-venue {
  margin-top: 12px;
}

.gallery-venue-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 4px 0 14px;
}

.gallery-venue-tab {
  border: 1px solid rgba(232, 148, 100, 0.28);
  background: linear-gradient(180deg, rgba(255,255,255,0.82) 0%, rgba(255,245,235,0.82) 100%);
  color: #7A3020;
  border-radius: 999px;
  padding: 9px 16px;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.22s ease;
}

.gallery-venue-tab:hover,
.gallery-venue-tab.is-active {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, #d78458 0%, #b35f3b 100%);
  box-shadow: 0 12px 22px rgba(179, 95, 59, 0.22);
}

body.page-gallery .gallery-venue-sections.is-tabbed .gallery-venue-block {
  display: none;
}

body.page-gallery .gallery-venue-sections.is-tabbed .gallery-venue-block.is-active {
  display: block;
}

body.page-gallery .instagram-premium {
  border-radius: 26px;
  padding: 22px;
  background:
    radial-gradient(circle at 12% 18%, rgba(232,148,100, 0.12) 0%, transparent 34%),
    linear-gradient(155deg, rgba(255,255,255,0.97) 0%, rgba(255,247,238,0.94) 100%);
  border: 1px solid rgba(232,148,100, 0.22);
  box-shadow: 0 18px 34px rgba(34, 22, 13, 0.08);
}

.instagram-profile-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.instagram-profile-ident {
  display: flex;
  align-items: center;
  gap: 12px;
}

.instagram-profile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ffbf86 0%, #e57f5a 60%, #c35571 100%);
  color: #fff;
  box-shadow: 0 10px 18px rgba(197, 90, 74, 0.26);
  font-size: 1.3rem;
}

.instagram-profile-copy h3 {
  margin: 0;
  font-size: 1.28rem;
}

.instagram-handle {
  margin: 0 0 2px;
  color: #9a5238;
  font-size: 0.84rem;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.instagram-subline {
  margin: 2px 0 0;
  color: #7a5b46;
  font-size: 0.84rem;
}

.instagram-follow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 11px 18px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #d6724a 0%, #ae4d7f 100%);
  box-shadow: 0 12px 22px rgba(174, 77, 127, 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.instagram-follow-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 26px rgba(174, 77, 127, 0.34);
}

.instagram-integrity-note {
  margin: 0 0 14px;
  color: #7a5a44;
  font-size: 0.87rem;
  line-height: 1.6;
}

.instagram-reel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.instagram-reel-card {
  border-radius: 20px;
  border: 1px solid rgba(232,148,100, 0.2);
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(255,246,236,0.96) 100%);
  box-shadow: 0 14px 26px rgba(34, 22, 13, 0.08);
  padding: 12px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.instagram-reel-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 34px rgba(34, 22, 13, 0.12);
}

.instagram-reel-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.instagram-reel-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #8d4a31;
  background: rgba(232,148,100, 0.14);
}

.instagram-reel-link {
  color: #9a5238;
  text-decoration: none;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.instagram-reel-link:hover {
  color: #d2663f;
}

.instagram-embed-wrap {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(214, 160, 120, 0.2);
  background: #fff;
  aspect-ratio: 9 / 16;
}

.instagram-embed-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.instagram-reel-meta {
  margin: 10px 2px 2px;
  color: #7d5d49;
  font-size: 0.78rem;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .gallery-venue-block {
    padding: 18px;
  }

  .instagram-reel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gallery-venue-picker {
    gap: 8px;
  }

  .gallery-venue-tab {
    width: calc(50% - 4px);
    text-align: center;
  }

  body.page-gallery .instagram-premium {
    padding: 16px;
  }

  .instagram-reel-grid {
    grid-template-columns: 1fr;
  }
}


/* ========================================
   VENUE PAGES - RESTRUCTURED (.vp-* namespace)
   ======================================== */
.vp-hero {
  position: relative;
  height: clamp(520px, 82vh, 820px);
  overflow: hidden;
  background: #3a2418;
}
.vp-hero-stage { position: absolute; inset: 0; z-index: 0; }
.vp-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.1s cubic-bezier(.2,.8,.2,1);
}
.vp-hero-slide.is-active { opacity: 1; }
.vp-hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vp-hero-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(42, 24, 14, 0.35) 0%, rgba(42, 24, 14, 0.15) 50%, rgba(42, 24, 14, 0.82) 100%);
  z-index: 1;
  pointer-events: none;
}
.vp-hero-content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8%;
  z-index: 3;
  padding: 0 clamp(22px, 6vw, 72px);
  color: #f7e9d4;
  max-width: 1200px;
  margin: 0 auto;
}
.vp-hero-kicker {
  display: inline-block;
  margin: 0 0 14px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 249, 232, 0.1);
  border: 1px solid rgba(216, 171, 103, 0.5);
  color: #e6c890;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.vp-hero-title {
  margin: 0 0 10px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1.05;
  color: #fff;
  letter-spacing: 0.005em;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
}
.vp-hero-tagline {
  margin: 0 0 28px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: clamp(0.95rem, 1.6vw, 1.1rem);
  line-height: 1.5;
  color: rgba(247, 233, 212, 0.92);
  max-width: 640px;
}
.vp-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 249, 232, 0.25);
  box-shadow: 0 18px 36px -14px rgba(58, 36, 24, 0.6);
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.4s ease;
}
.vp-hero-cta i { font-size: 0.85rem; transition: transform 0.3s ease; }
.vp-hero-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 24px 44px -14px rgba(154, 107, 62, 0.7);
}
.vp-hero-cta:hover i { transform: translateX(4px); }
.vp-hero-dots {
  position: absolute;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  gap: 10px;
}
.vp-hero-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(247, 233, 212, 0.4);
  border: 1px solid rgba(247, 233, 212, 0.7);
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease, width 0.3s ease;
  padding: 0;
}
.vp-hero-dot.is-active {
  background: #d8ab67;
  width: 28px;
  border-radius: 999px;
  border-color: transparent;
}
.vp-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 249, 232, 0.14);
  border: 1px solid rgba(247, 233, 212, 0.3);
  color: #fff;
  font-size: 0.9rem;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.3s ease, transform 0.3s ease;
}
.vp-hero-arrow:hover { background: rgba(194, 137, 82, 0.85); }
.vp-hero-prev { left: 20px; }
.vp-hero-next { right: 20px; }

.vp-section {
  padding: 70px clamp(20px, 5vw, 60px);
  background:
    radial-gradient(circle at 6% 4%, rgba(194, 137, 82, 0.07) 0%, transparent 38%),
    radial-gradient(circle at 100% 100%, rgba(154, 107, 62, 0.06) 0%, transparent 34%),
    linear-gradient(180deg, #faf5ec 0%, #f2e6d1 100%);
}
.vp-section-alt {
  padding: 70px clamp(20px, 5vw, 60px);
  background: linear-gradient(180deg, #f5ead2 0%, #faf5ec 100%);
}
.vp-wrap { max-width: 1180px; margin: 0 auto; }

.vp-section-head { text-align: center; margin-bottom: 40px; }
.vp-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #9A6B3E;
}
.vp-section-title {
  margin: 0 0 10px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  line-height: 1.1;
  color: #3a2418;
  letter-spacing: 0.005em;
}
.vp-section-title em { font-style: italic; font-weight: 500; color: #9A6B3E; }
.vp-section-flourish {
  display: block;
  width: 60px;
  height: 1px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, #C28952 50%, transparent);
  position: relative;
}
.vp-section-flourish::before,
.vp-section-flourish::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #C28952;
  transform: translateY(-50%);
}
.vp-section-flourish::before { left: -8px; }
.vp-section-flourish::after  { right: -8px; }

.vp-highlights {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  max-width: 1140px;
  margin: 0 auto;
}
.vp-highlight {
  flex: 1 1 180px;
  max-width: calc((100% - 16px * 4) / 5);
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  background: linear-gradient(155deg, #fdf8ed, #f5e9d1);
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 18px;
  text-align: center;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 14px 32px -22px rgba(58, 36, 24, 0.28);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.3s ease;
}
.vp-highlight:hover {
  transform: translateY(-4px);
  border-color: rgba(194, 137, 82, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 22px 40px -20px rgba(58, 36, 24, 0.4);
}
.vp-highlight-icon {
  width: 44px;
  height: 44px;
  margin: 0 auto 12px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  font-size: 1rem;
  box-shadow: 0 6px 14px rgba(154, 107, 62, 0.32);
}
.vp-highlight-label {
  display: block;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9A6B3E;
  margin-bottom: 6px;
}
.vp-highlight-value {
  display: block;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.35rem;
  line-height: 1.15;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.vp-chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}
.vp-chip {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: linear-gradient(145deg, rgba(255, 253, 247, 0.96), rgba(249, 239, 222, 0.88));
  border: 1px solid rgba(194, 137, 82, 0.3);
  border-radius: 14px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 10px 24px -18px rgba(58, 36, 24, 0.22);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.vp-chip:hover {
  transform: translateY(-2px);
  border-color: rgba(194, 137, 82, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 16px 32px -18px rgba(58, 36, 24, 0.32);
}
.vp-chip-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(194, 137, 82, 0.14);
  border: 1px solid rgba(194, 137, 82, 0.28);
  color: #9A6B3E;
  font-size: 0.95rem;
  flex-shrink: 0;
}
.vp-chip-text {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  color: #3a2418;
  line-height: 1.35;
}

.vp-gallery-footer {
  margin-top: 28px;
  display: flex;
  justify-content: center;
}
.vp-gallery-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(194, 137, 82, 0.35);
  box-shadow:
    inset 0 2px 0 rgba(194, 137, 82, 0.2),
    0 14px 30px -14px rgba(58, 36, 24, 0.45);
  transition: background 0.4s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.vp-gallery-cta i { color: #d8ab67; transition: color 0.3s ease, transform 0.3s ease; }
.vp-gallery-cta:hover {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  transform: translateY(-1px);
}
.vp-gallery-cta:hover i { color: #fff; transform: translateX(4px); }

@media (max-width: 1024px) {
  .vp-highlight { max-width: calc((100% - 16px * 2) / 3); }
  .vp-section, .vp-section-alt { padding: 58px 20px; }
}
@media (max-width: 720px) {
  .vp-hero { height: clamp(460px, 78vh, 640px); }
  .vp-hero-content { bottom: 12%; }
  .vp-hero-arrow { width: 40px; height: 40px; }
  .vp-highlight { max-width: calc((100% - 16px) / 2); }
  .vp-section, .vp-section-alt { padding: 50px 16px; }
  .vp-section-head { margin-bottom: 28px; }
  .vp-chip-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .vp-highlight { max-width: calc((100% - 12px) / 2); padding: 16px 12px; }
  .vp-highlights { gap: 12px; }
}

/* ========================================
   IMAGE LIGHTBOX (global)
   ======================================== */
.kp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(20, 12, 6, 0.92);
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.kp-lightbox.is-open { display: flex; opacity: 1; }
.kp-lightbox-img {
  max-width: 100%;
  max-height: calc(100vh - 140px);
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
  transform: scale(0.96);
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1);
}
.kp-lightbox.is-open .kp-lightbox-img { transform: scale(1); }
.kp-lightbox-caption {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  max-width: 80vw;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(216, 171, 103, 0.4);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.8rem;
  letter-spacing: 0.02em;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.kp-lightbox-btn {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 249, 232, 0.14);
  border: 1px solid rgba(216, 171, 103, 0.45);
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.3s ease, transform 0.3s ease;
  padding: 0;
  line-height: 1;
  z-index: 2;
}
.kp-lightbox-btn:hover { background: rgba(194, 137, 82, 0.85); transform: scale(1.05); }
.kp-lightbox-close { top: 20px; right: 20px; font-size: 1.3rem; }
.kp-lightbox-prev  { left: 20px;  top: 50%; transform: translateY(-50%); }
.kp-lightbox-next  { right: 20px; top: 50%; transform: translateY(-50%); }
.kp-lightbox-prev:hover { transform: translateY(-50%) scale(1.05); }
.kp-lightbox-next:hover { transform: translateY(-50%) scale(1.05); }
.kp-lightbox-counter {
  position: absolute;
  top: 22px;
  left: 24px;
  color: #d8ab67;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  z-index: 2;
}
.venue-gallery img,
.gallery-card img,
.gallery-grid img,
.gallery-curated-grid img { cursor: zoom-in; }
body.kp-lightbox-open { overflow: hidden; }
@media (max-width: 520px) {
  .kp-lightbox-btn { width: 40px; height: 40px; font-size: 0.9rem; }
  .kp-lightbox-close { top: 14px; right: 14px; }
  .kp-lightbox-prev  { left: 10px; }
  .kp-lightbox-next  { right: 10px; }
  .kp-lightbox-caption { font-size: 0.72rem; bottom: 14px; padding: 7px 14px; }
}


/* ========================================
   FACILITIES & AMENITIES BENTO (per-PDF data)
   ======================================== */
.vp-facilities-bento {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.vp-fac-card {
  position: relative;
  padding: 28px 30px;
  background: linear-gradient(155deg, #fdf8ed 0%, #f5e9d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 22px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 18px 40px -24px rgba(58, 36, 24, 0.28);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s ease, border-color 0.3s ease;
  overflow: hidden;
}

.vp-fac-card::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 14px;
  width: 22px;
  height: 22px;
  border-top: 1.5px solid #C28952;
  border-left: 1.5px solid #C28952;
  border-top-left-radius: 6px;
  opacity: 0.55;
  pointer-events: none;
}

.vp-fac-card::after {
  content: "";
  position: absolute;
  bottom: 14px;
  right: 14px;
  width: 22px;
  height: 22px;
  border-bottom: 1.5px solid #C28952;
  border-right: 1.5px solid #C28952;
  border-bottom-right-radius: 6px;
  opacity: 0.55;
  pointer-events: none;
}

.vp-fac-card:hover {
  transform: translateY(-4px);
  border-color: rgba(194, 137, 82, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 28px 54px -22px rgba(58, 36, 24, 0.4);
}

.vp-fac-card--wide {
  grid-column: 1 / -1;
}

.vp-fac-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 1px dashed rgba(194, 137, 82, 0.32);
}

.vp-fac-mark {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  color: #fff;
  font-size: 1.05rem;
  flex-shrink: 0;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 10px 18px -6px rgba(154, 107, 62, 0.45);
}

.vp-fac-letter {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-style: italic;
  font-size: 1.7rem;
  color: #9A6B3E;
  line-height: 1;
  min-width: 28px;
  text-align: center;
  opacity: 0.85;
}

.vp-fac-title {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.2;
  color: #3a2418;
  letter-spacing: 0.005em;
  flex: 1;
}

.vp-fac-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vp-fac-list li {
  position: relative;
  padding: 9px 0 9px 26px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #5a4533;
  border-bottom: 1px dashed rgba(194, 137, 82, 0.2);
}

.vp-fac-list li:last-child { border-bottom: 0; }

.vp-fac-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  width: 14px;
  height: 1px;
  background: linear-gradient(90deg, #C28952, transparent);
}

.vp-fac-list li::after {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #C28952;
  box-shadow: 0 0 0 3px rgba(194, 137, 82, 0.15);
}

.vp-fac-list--two-col {
  columns: 2;
  column-gap: 36px;
  column-rule: 1px dashed rgba(194, 137, 82, 0.22);
}

.vp-fac-list--two-col li {
  break-inside: avoid;
}

@media (max-width: 860px) {
  .vp-facilities-bento { grid-template-columns: 1fr; gap: 16px; }
  .vp-fac-card, .vp-fac-card--wide { grid-column: auto; }
  .vp-fac-card { padding: 24px; }
  .vp-fac-list--two-col { columns: 1; column-rule: 0; }
  .vp-fac-title { font-size: 1.35rem; }
}

@media (max-width: 480px) {
  .vp-fac-card { padding: 22px 20px; border-radius: 18px; }
  .vp-fac-head { gap: 12px; margin-bottom: 16px; padding-bottom: 14px; }
  .vp-fac-mark { width: 42px; height: 42px; }
  .vp-fac-letter { font-size: 1.4rem; min-width: 22px; }
  .vp-fac-title { font-size: 1.25rem; }
  .vp-fac-list li { font-size: 0.88rem; padding: 8px 0 8px 24px; }
}


/* ========================================
   IMAGE LOAD SHIMMER + FADE-IN
   Gives every image a gold-tinted skeleton while it
   downloads, then fades it in when ready. Perceived
   speed improves even when bytes take the same time.
   Scoped to content images - excludes tiny utility
   images like the nav logo, thumbnails, and petals.
   ======================================== */
img.kp-loading {
  background:
    linear-gradient(110deg,
      rgba(242, 230, 209, 0.9) 8%,
      rgba(253, 248, 237, 1) 18%,
      rgba(242, 230, 209, 0.9) 33%);
  background-size: 200% 100%;
  animation: kp-shimmer 1.6s linear infinite;
  opacity: 0.6;
  transition: opacity 0.5s ease;
  min-height: 1px;
}

img.kp-loaded {
  animation: none;
  background: transparent;
  opacity: 1;
  transition: opacity 0.55s cubic-bezier(.2,.8,.2,1);
}

@keyframes kp-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
  img.kp-loading { animation: none; }
}


/* ========================================
   VENUES LISTING PAGE - LUXURY CARD POLISH
   (applied when .venue-card has .venue-card--luxe)
   ======================================== */
.venues-grid--luxe {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin: 48px auto;
  max-width: 1140px;
  padding: 0 20px;
}

.venue-card--luxe {
  position: relative;
  display: flex;
  flex-direction: column;
  background: linear-gradient(160deg, #fdf8ed 0%, #f5e9d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 22px 48px -28px rgba(58, 36, 24, 0.3);
  transition:
    transform 0.45s cubic-bezier(.2,.8,.2,1),
    box-shadow 0.45s ease,
    border-color 0.35s ease;
}

.venue-card--luxe:hover {
  transform: translateY(-6px);
  border-color: rgba(194, 137, 82, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 34px 66px -26px rgba(58, 36, 24, 0.45);
}

/* Gold corner brackets for editorial feel */
.venue-card--luxe::before,
.venue-card--luxe::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  pointer-events: none;
  z-index: 3;
  opacity: 0.8;
  transition: opacity 0.3s ease, width 0.35s ease, height 0.35s ease;
}
.venue-card--luxe::before {
  top: 14px;
  left: 14px;
  border-top: 1.5px solid #C28952;
  border-left: 1.5px solid #C28952;
  border-top-left-radius: 6px;
}
.venue-card--luxe::after {
  bottom: 14px;
  right: 14px;
  border-bottom: 1.5px solid #C28952;
  border-right: 1.5px solid #C28952;
  border-bottom-right-radius: 6px;
}
.venue-card--luxe:hover::before,
.venue-card--luxe:hover::after {
  opacity: 1;
  width: 32px;
  height: 32px;
}

.venue-card--luxe .venue-card-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
}

.venue-card--luxe .venue-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.9s cubic-bezier(.2,.8,.2,1), filter 0.5s ease;
  filter: saturate(0.95) contrast(1.02);
}

.venue-card--luxe:hover .venue-card-media img {
  transform: scale(1.06);
  filter: saturate(1.03) contrast(1.04);
}

.venue-card--luxe .venue-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(42, 24, 14, 0) 40%, rgba(42, 24, 14, 0.55) 100%);
  z-index: 1;
  pointer-events: none;
}

.venue-card--luxe .venue-card-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.88);
  border: 1px solid rgba(194, 137, 82, 0.45);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.venue-card--luxe .venue-card-body {
  padding: 26px 26px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 14px;
}

.venue-card--luxe .venue-card-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.venue-card--luxe .venue-card-meta h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.55rem;
  line-height: 1.2;
  color: #3a2418;
  letter-spacing: 0.005em;
  flex: 1;
}

.venue-card--luxe .venue-card-code {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 1.1rem;
  color: #9A6B3E;
  opacity: 0.85;
  flex-shrink: 0;
}

.venue-card--luxe .venue-card-body > p {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.92rem;
  line-height: 1.65;
  color: #6a5040;
}

.venue-card--luxe .venue-card-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px dashed rgba(194, 137, 82, 0.28);
}

.venue-card--luxe .venue-card-facts span {
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.85);
  border: 1px solid rgba(194, 137, 82, 0.25);
  color: #6a5040;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.venue-card--luxe .venue-card-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-top: 8px;
  color: #3a2418;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: color 0.3s ease, gap 0.3s ease;
}

.venue-card--luxe .venue-card-cta i {
  color: #C28952;
  transition: transform 0.35s ease;
}

.venue-card--luxe:hover .venue-card-cta {
  color: #9A6B3E;
  gap: 16px;
}
.venue-card--luxe:hover .venue-card-cta i {
  transform: translateX(4px);
}

@media (max-width: 820px) {
  .venues-grid--luxe { grid-template-columns: 1fr; max-width: 560px; }
}

@media (max-width: 540px) {
  .venues-grid--luxe { gap: 20px; padding: 0 14px; }
  .venue-card--luxe .venue-card-body { padding: 22px 20px; }
  .venue-card--luxe .venue-card-meta h3 { font-size: 1.35rem; }
}


/* ========================================
   GALLERY PAGE - LUXE POLISH
   Elevates the tab picker + card grid.
   ======================================== */
.gallery-venue-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin: 28px auto 0;
  padding: 10px;
  max-width: fit-content;
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(255, 253, 247, 0.92), rgba(249, 239, 222, 0.82));
  border: 1px solid rgba(194, 137, 82, 0.28);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 14px 30px -16px rgba(58, 36, 24, 0.22);
}

.gallery-venue-tab {
  padding: 10px 20px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid transparent;
  color: #6a5040;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.35s ease, color 0.25s ease, border-color 0.3s ease, transform 0.3s ease;
}

.gallery-venue-tab:hover {
  color: #3a2418;
  background: rgba(255, 252, 245, 0.75);
  border-color: rgba(194, 137, 82, 0.28);
}

.gallery-venue-tab.is-active {
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  color: #f7e9d4;
  border-color: rgba(194, 137, 82, 0.45);
  box-shadow: 0 10px 22px -10px rgba(58, 36, 24, 0.5);
}

.gallery-venue-header {
  text-align: center;
  margin: 48px auto 24px;
  max-width: 720px;
}

.gallery-venue-header h3 {
  margin: 0 0 8px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(1.8rem, 3.2vw, 2.4rem);
  line-height: 1.15;
  color: #3a2418;
  letter-spacing: 0.005em;
}

.gallery-venue-header h3::after {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  margin: 14px auto 0;
  background: linear-gradient(90deg, transparent, #C28952 50%, transparent);
}

.gallery-venue-header p {
  margin: 12px 0 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #6a5040;
}

.gallery-venue-block {
  padding-bottom: 28px;
}

/* Card figcaption polish (override older pill) */
.gallery-curated-grid-venue .gallery-card figcaption {
  background: linear-gradient(180deg, transparent 0%, rgba(20, 10, 5, 0.08) 40%, rgba(20, 10, 5, 0.8) 100%);
}

.gallery-curated-grid-venue .gallery-card figcaption span {
  color: #e6c890;
  font-family: 'Manrope', 'Poppins', sans-serif;
  letter-spacing: 0.22em;
}

.gallery-curated-grid-venue .gallery-card figcaption strong {
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(1.15rem, 2.2vw, 1.4rem);
  letter-spacing: 0.005em;
}

.gallery-curated-grid-venue .gallery-card {
  border-radius: 22px;
  border: 1px solid rgba(194, 137, 82, 0.25);
  box-shadow: 0 16px 36px -20px rgba(58, 36, 24, 0.32);
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.5s ease, border-color 0.3s ease;
}

.gallery-curated-grid-venue .gallery-card:hover {
  transform: translateY(-5px);
  border-color: rgba(194, 137, 82, 0.5);
  box-shadow: 0 28px 52px -22px rgba(58, 36, 24, 0.5);
}

@media (max-width: 540px) {
  .gallery-venue-picker { gap: 6px; padding: 7px; margin: 22px auto 0; }
  .gallery-venue-tab { padding: 8px 14px; font-size: 0.7rem; letter-spacing: 0.12em; }
  .gallery-venue-header { margin: 32px auto 18px; }
}


/* ========================================
   HOME · CONTACT US SECTION - LUXURY OVERRIDE
   (scoped to .contact-us--luxe)
   Replaces old orange/peach palette with ivory/sand + bronze/gold.
   Preserves all data-key attrs, so translations continue working.
   ======================================== */
.contact-us--luxe {
  background:
    radial-gradient(circle at 6% 4%, rgba(194, 137, 82, 0.09) 0%, transparent 40%),
    radial-gradient(circle at 96% 100%, rgba(154, 107, 62, 0.07) 0%, transparent 36%),
    linear-gradient(180deg, #faf5ec 0%, #f2e6d1 100%);
  padding: 86px clamp(20px, 5vw, 60px) 90px;
  color: #3a2418;
}

/* Section header */
.contact-us--luxe .section-header {
  text-align: center;
  margin-bottom: 48px;
}

.contact-us--luxe .section-header h2 {
  margin: 0 0 12px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.contact-us--luxe .section-header p {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #6a5040;
}

/* Main card */
.contact-us--luxe .contact-preview-card {
  max-width: 1180px;
  margin: 0 auto;
  padding: 44px clamp(22px, 3.4vw, 48px);
  background:
    linear-gradient(155deg, rgba(255, 253, 247, 0.96), rgba(249, 239, 222, 0.92));
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 28px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.8),
    0 30px 68px -30px rgba(58, 36, 24, 0.32);
  position: relative;
}

/* Gold L-corner flourishes on the card */
.contact-us--luxe .contact-preview-card::before,
.contact-us--luxe .contact-preview-card::after {
  content: "";
  position: absolute;
  width: 28px;
  height: 28px;
  pointer-events: none;
  opacity: 0.75;
}
.contact-us--luxe .contact-preview-card::before {
  top: 16px;
  left: 16px;
  border-top: 1.5px solid #C28952;
  border-left: 1.5px solid #C28952;
  border-top-left-radius: 6px;
  background: none;
}
.contact-us--luxe .contact-preview-card::after {
  bottom: 16px;
  right: 16px;
  border-bottom: 1.5px solid #C28952;
  border-right: 1.5px solid #C28952;
  border-bottom-right-radius: 6px;
  background: none;
  z-index: 1;
}

.contact-us--luxe .contact-preview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: 44px;
  align-items: stretch;
}

/* Left column */
.contact-us--luxe .contact-preview-copy {
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
}

.contact-us--luxe .home-page-kicker {
  display: inline-flex;
  align-self: flex-start;
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.88);
  border: 1px solid rgba(194, 137, 82, 0.38);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.contact-us--luxe .contact-preview-copy h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(1.8rem, 3.4vw, 2.5rem);
  line-height: 1.1;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.contact-us--luxe .enquiry-intro {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  color: #6a5040;
  max-width: 48ch;
}

/* Action buttons */
.contact-us--luxe .enquiry-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}

.contact-us--luxe .home-contact-action {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 22px 13px 14px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.88);
  border: 1px solid rgba(194, 137, 82, 0.38);
  color: #3a2418;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.3s ease, background 0.35s ease, color 0.3s ease, box-shadow 0.35s ease, border-color 0.3s ease;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 10px 22px -14px rgba(58, 36, 24, 0.28);
}

.contact-us--luxe .home-contact-action:hover,
.contact-us--luxe .home-contact-action:focus-visible {
  transform: translateY(-2px);
  background: rgba(255, 252, 245, 1);
  border-color: rgba(194, 137, 82, 0.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 16px 32px -14px rgba(58, 36, 24, 0.4);
  outline: none;
}

.contact-us--luxe .home-action-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(194, 137, 82, 0.22), rgba(154, 107, 62, 0.12));
  border: 1px solid rgba(194, 137, 82, 0.28);
  color: #9A6B3E;
  font-size: 0.9rem;
  transition: background 0.35s ease, color 0.3s ease;
}

.contact-us--luxe .home-action-copy {
  color: inherit;
}

/* Primary action: solid cocoa → gold-on-hover */
.contact-us--luxe .home-contact-action--primary {
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  border-color: rgba(194, 137, 82, 0.4);
  color: #f7e9d4;
  box-shadow:
    inset 0 2px 0 rgba(194, 137, 82, 0.22),
    0 14px 30px -12px rgba(58, 36, 24, 0.5);
}

.contact-us--luxe .home-contact-action--primary .home-action-icon {
  background: rgba(255, 249, 232, 0.12);
  border-color: rgba(216, 171, 103, 0.45);
  color: #d8ab67;
}

.contact-us--luxe .home-contact-action--primary:hover,
.contact-us--luxe .home-contact-action--primary:focus-visible {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  color: #fff;
}

.contact-us--luxe .home-contact-action--primary:hover .home-action-icon {
  background: rgba(255, 255, 255, 0.18);
  border-color: transparent;
  color: #fff;
}

/* Right column: clickable preview-panel (whole thing links to contact.html) */
.contact-us--luxe .contact-preview-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 32px 30px 30px;
  background: linear-gradient(180deg, #fdf8ed 0%, #f5e9d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 22px;
  color: #3a2418;
  text-decoration: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 18px 40px -24px rgba(58, 36, 24, 0.3);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s ease, border-color 0.3s ease;
  overflow: hidden;
}

.contact-us--luxe .contact-preview-panel:hover,
.contact-us--luxe .contact-preview-panel:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(194, 137, 82, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 28px 54px -22px rgba(58, 36, 24, 0.42);
  outline: none;
}

.contact-us--luxe .contact-preview-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  padding: 6px 14px 6px 8px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.9);
  border: 1px solid rgba(194, 137, 82, 0.4);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.contact-us--luxe .contact-preview-badge i {
  color: #C28952;
  font-size: 0.84rem;
}

.contact-us--luxe .contact-preview-field-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.contact-us--luxe .contact-preview-panel .form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.contact-us--luxe .contact-preview-panel label {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9A6B3E;
}

.contact-us--luxe .contact-preview-panel input {
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 252, 245, 0.88);
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #3a2418;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.92rem;
  pointer-events: none; /* handled by the wrapping anchor */
  cursor: pointer;
  transition: border-color 0.3s ease, background 0.3s ease;
}

.contact-us--luxe .contact-preview-panel:hover input {
  border-color: rgba(194, 137, 82, 0.5);
  background: #fff;
}

.contact-us--luxe .contact-preview-panel input::placeholder {
  color: #b59a7c;
  opacity: 0.85;
}

.contact-us--luxe .contact-preview-note {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.86rem;
  line-height: 1.55;
  color: #6a5040;
  padding-top: 4px;
  border-top: 1px dashed rgba(194, 137, 82, 0.28);
  padding-top: 14px;
}

.contact-us--luxe .contact-preview-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(194, 137, 82, 0.38);
  box-shadow:
    inset 0 2px 0 rgba(194, 137, 82, 0.2),
    0 14px 28px -14px rgba(58, 36, 24, 0.45);
  transition: background 0.4s ease, border-color 0.3s ease, gap 0.3s ease;
  cursor: pointer;
}

.contact-us--luxe .contact-preview-cta i {
  color: #d8ab67;
  font-size: 0.88rem;
  transition: color 0.3s ease, transform 0.3s ease;
}

.contact-us--luxe .contact-preview-panel:hover .contact-preview-cta {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  gap: 14px;
}

.contact-us--luxe .contact-preview-panel:hover .contact-preview-cta i {
  color: #fff;
  transform: translateX(3px);
}

/* Responsive */
@media (max-width: 1024px) {
  .contact-us--luxe .contact-preview-card { padding: 36px 26px; }
  .contact-us--luxe .contact-preview-layout { gap: 32px; }
}

@media (max-width: 820px) {
  .contact-us--luxe { padding: 68px 18px 76px; }
  .contact-us--luxe .contact-preview-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .contact-us--luxe .contact-preview-card { padding: 32px 22px; }
  .contact-us--luxe .contact-preview-panel { padding: 26px 22px; }
}

@media (max-width: 520px) {
  .contact-us--luxe .contact-preview-field-group { grid-template-columns: 1fr; }
  .contact-us--luxe .enquiry-quick-actions { flex-direction: column; align-items: stretch; }
  .contact-us--luxe .home-contact-action { justify-content: flex-start; }
  .contact-us--luxe .home-page-kicker { font-size: 0.66rem; letter-spacing: 0.22em; }
}


/* ========================================
   HOME · DIRECT CONNECT CARD
   Replaces the old preview form in the home Contact section.
   ======================================== */
.hc-details-card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 32px 30px 28px;
  background: linear-gradient(180deg, #fdf8ed 0%, #f5e9d1 100%);
  border: 1px solid rgba(194, 137, 82, 0.32);
  border-radius: 22px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 22px 48px -24px rgba(58, 36, 24, 0.32);
  position: relative;
  overflow: hidden;
}

/* Subtle gold corner flourishes */
.hc-details-card::before,
.hc-details-card::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  pointer-events: none;
  opacity: 0.65;
}
.hc-details-card::before {
  top: 12px;
  left: 12px;
  border-top: 1.5px solid #C28952;
  border-left: 1.5px solid #C28952;
  border-top-left-radius: 5px;
}
.hc-details-card::after {
  bottom: 12px;
  right: 12px;
  border-bottom: 1.5px solid #C28952;
  border-right: 1.5px solid #C28952;
  border-bottom-right-radius: 5px;
}

/* Head */
.hc-details-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hc-details-badge {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 8px;
  border-radius: 999px;
  background: rgba(255, 252, 245, 0.9);
  border: 1px solid rgba(194, 137, 82, 0.4);
  color: #9A6B3E;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.hc-details-badge i {
  color: #C28952;
  font-size: 0.82rem;
}

.hc-details-head h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.55rem;
  line-height: 1.18;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.hc-details-head p {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #6a5040;
}

/* List */
.hc-details-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px dashed rgba(194, 137, 82, 0.32);
  border-bottom: 1px dashed rgba(194, 137, 82, 0.32);
}

.hc-details-list li + li { border-top: 1px dashed rgba(194, 137, 82, 0.22); }

.hc-details-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 6px;
  text-decoration: none;
  color: #3a2418;
  transition: transform 0.3s ease, background 0.3s ease;
  border-radius: 12px;
}

.hc-details-row:hover,
.hc-details-row:focus-visible {
  background: rgba(255, 252, 245, 0.7);
  transform: translateX(3px);
  outline: none;
}

.hc-details-row--static {
  cursor: default;
}
.hc-details-row--static:hover {
  background: none;
  transform: none;
}

.hc-details-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(194, 137, 82, 0.22), rgba(154, 107, 62, 0.12));
  border: 1px solid rgba(194, 137, 82, 0.3);
  color: #9A6B3E;
  font-size: 0.98rem;
  flex-shrink: 0;
  transition: background 0.35s ease, color 0.3s ease, border-color 0.3s ease;
}

.hc-details-icon--green {
  background: linear-gradient(135deg, rgba(37, 211, 102, 0.2), rgba(18, 140, 69, 0.12));
  border-color: rgba(37, 211, 102, 0.4);
  color: #128c45;
}

.hc-details-row:hover .hc-details-icon {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  color: #fff;
}

.hc-details-row:hover .hc-details-icon--green {
  background: linear-gradient(135deg, #25D366, #128c45);
}

.hc-details-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.hc-details-label {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #9A6B3E;
}

.hc-details-value {
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  color: #3a2418;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}

.hc-details-hint {
  color: #b59a7c;
  font-size: 0.72rem;
  opacity: 0;
  transform: translate(-4px, 0);
  transition: opacity 0.3s ease, transform 0.3s ease;
  flex-shrink: 0;
}

.hc-details-row:hover .hc-details-hint,
.hc-details-row:focus-visible .hc-details-hint {
  opacity: 1;
  transform: translate(0, 0);
  color: #9A6B3E;
}

/* Primary CTA */
.hc-details-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  border-radius: 999px;
  background: linear-gradient(135deg, #3a2418, #2c1a11);
  color: #f7e9d4;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(194, 137, 82, 0.4);
  box-shadow:
    inset 0 2px 0 rgba(194, 137, 82, 0.22),
    0 14px 28px -14px rgba(58, 36, 24, 0.5);
  transition: background 0.4s ease, border-color 0.3s ease, gap 0.3s ease, transform 0.3s ease;
  margin-top: 4px;
}

.hc-details-cta i {
  color: #d8ab67;
  font-size: 0.9rem;
  transition: color 0.3s ease, transform 0.3s ease;
}

.hc-details-cta:hover,
.hc-details-cta:focus-visible {
  background: linear-gradient(135deg, #C28952, #9A6B3E);
  border-color: transparent;
  transform: translateY(-1px);
  gap: 14px;
  outline: none;
}

.hc-details-cta:hover i {
  color: #fff;
  transform: translateX(3px);
}

@media (max-width: 520px) {
  .hc-details-card { padding: 26px 22px 24px; }
  .hc-details-head h3 { font-size: 1.4rem; }
  .hc-details-value { font-size: 0.88rem; }
  .hc-details-hint { display: none; }
}


/* ========================================
   HOME · CONTACT FOCAL (WhatsApp-first)
   Centered, editorial-feeling single-column CTA.
   ======================================== */
.contact-us--luxe .contact-preview-card--focal {
  max-width: 860px;
  padding: 68px clamp(28px, 5vw, 76px);
  text-align: center;
  overflow: hidden;
}

.contact-us--luxe .contact-preview-card--focal .contact-focal-ornament {
  position: absolute;
  top: -180px;
  left: 50%;
  transform: translateX(-50%);
  width: 620px;
  height: 620px;
  background:
    radial-gradient(circle at center, rgba(37, 211, 102, 0.12) 0%, transparent 55%),
    radial-gradient(circle at center, rgba(194, 137, 82, 0.08) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.contact-us--luxe .contact-focal {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.contact-us--luxe .contact-focal .home-page-kicker {
  align-self: center;
  margin-bottom: 22px;
}

.contact-us--luxe .contact-focal h3 {
  margin: 0 0 18px;
  font-family: 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(2rem, 4vw, 2.9rem);
  line-height: 1.08;
  letter-spacing: 0.005em;
  color: #3a2418;
}

.contact-us--luxe .contact-focal .enquiry-intro {
  margin: 0 auto 38px;
  max-width: 54ch;
  text-align: center;
  color: #6a5040;
  font-size: 1rem;
  line-height: 1.7;
}

/* Action row - WhatsApp + Form */
.contact-focal-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
}

/* Primary WhatsApp CTA */
.contact-whatsapp-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 16px 30px 16px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #25d366 0%, #0f8f6d 100%);
  color: #fff;
  text-decoration: none;
  font-family: 'Manrope', 'Poppins', sans-serif;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 24px 58px -18px rgba(15, 143, 109, 0.58),
    0 10px 22px -12px rgba(58, 36, 24, 0.35);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  isolation: isolate;
}

.contact-whatsapp-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 60%);
  pointer-events: none;
  z-index: 0;
}

.contact-whatsapp-cta:hover,
.contact-whatsapp-cta:focus-visible {
  transform: translateY(-3px);
  outline: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 34px 72px -20px rgba(15, 143, 109, 0.72),
    0 16px 30px -14px rgba(58, 36, 24, 0.45);
}

.contact-whatsapp-pulse {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
}

.contact-whatsapp-pulse::before,
.contact-whatsapp-pulse::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1.5px solid rgba(37, 211, 102, 0.5);
  animation: contact-wa-pulse 2.6s cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}

.contact-whatsapp-pulse::after { animation-delay: 1.3s; }

@keyframes contact-wa-pulse {
  0%   { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.24); opacity: 0; }
}

.contact-whatsapp-icon {
  position: relative;
  z-index: 1;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  font-size: 1.35rem;
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32);
  flex-shrink: 0;
}

.contact-whatsapp-text {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.contact-whatsapp-label {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.contact-whatsapp-sub {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.88;
  line-height: 1.1;
}

.contact-whatsapp-arrow {
  position: relative;
  z-index: 1;
  font-size: 0.82rem;
  opacity: 0.9;
  transition: transform 0.3s ease;
}

.contact-whatsapp-cta:hover .contact-whatsapp-arrow,
.contact-whatsapp-cta:focus-visible .contact-whatsapp-arrow {
  transform: translateX(5px);
}

/* Secondary - Fill Enquiry Form CTA (outlined gold) */
.contact-form-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 26px 16px 16px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255, 253, 247, 0.96), rgba(249, 239, 222, 0.92));
  color: #3a2418;
  text-decoration: none;
  font-family: 'Manrope', 'Poppins', sans-serif;
  border: 1px solid rgba(194, 137, 82, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 16px 38px -18px rgba(58, 36, 24, 0.35),
    0 6px 14px -10px rgba(58, 36, 24, 0.25);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.3s ease, background 0.35s ease, color 0.3s ease;
}

.contact-form-cta:hover,
.contact-form-cta:focus-visible {
  transform: translateY(-3px);
  outline: none;
  border-color: transparent;
  background: linear-gradient(135deg, #E8C38C 0%, #C28952 55%, #9A6B3E 100%);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 26px 54px -18px rgba(154, 107, 62, 0.55),
    0 12px 24px -12px rgba(58, 36, 24, 0.4);
}

.contact-form-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(194, 137, 82, 0.2), rgba(154, 107, 62, 0.1));
  border: 1px solid rgba(194, 137, 82, 0.32);
  color: #9A6B3E;
  font-size: 1.15rem;
  flex-shrink: 0;
  transition: background 0.35s ease, border-color 0.3s ease, color 0.3s ease;
}

.contact-form-cta:hover .contact-form-icon,
.contact-form-cta:focus-visible .contact-form-icon {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.45);
  color: #fff;
}

.contact-form-text {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.contact-form-label {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.contact-form-sub {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.78;
  line-height: 1.1;
}

.contact-form-arrow {
  font-size: 0.82rem;
  opacity: 0.85;
  transition: transform 0.3s ease;
}

.contact-form-cta:hover .contact-form-arrow,
.contact-form-cta:focus-visible .contact-form-arrow {
  transform: translateX(5px);
}

/* Secondary alternates */
.contact-focal-alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px 26px;
  margin-top: 38px;
  padding-top: 30px;
  width: 100%;
  max-width: 640px;
  border-top: 1px solid rgba(194, 137, 82, 0.22);
}

.contact-alt-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #6a5040;
  text-decoration: none;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  transition: color 0.3s ease;
}

.contact-alt-link i {
  color: #C28952;
  font-size: 0.92em;
  transition: color 0.3s ease;
}

.contact-alt-link::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 0;
  bottom: -5px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #C28952, transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.35s ease;
}

.contact-alt-link:hover,
.contact-alt-link:focus-visible {
  color: #9A6B3E;
  outline: none;
}

.contact-alt-link:hover::after,
.contact-alt-link:focus-visible::after {
  transform: scaleX(1);
}

.contact-alt-sep {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(194, 137, 82, 0.45);
}

@media (max-width: 820px) {
  .contact-us--luxe .contact-preview-card--focal { padding: 52px 28px; }
}

@media (max-width: 720px) {
  .contact-focal-actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 420px; }
  .contact-focal-actions > a { justify-content: flex-start; width: 100%; }
}

@media (max-width: 520px) {
  .contact-us--luxe .contact-preview-card--focal { padding: 44px 20px; }
  .contact-whatsapp-cta { padding: 14px 22px 14px 14px; gap: 12px; }
  .contact-whatsapp-icon { width: 38px; height: 38px; font-size: 1.15rem; }
  .contact-whatsapp-label { font-size: 0.94rem; }
  .contact-whatsapp-sub { font-size: 0.62rem; letter-spacing: 0.12em; }
  .contact-form-cta { padding: 14px 22px 14px 14px; gap: 12px; }
  .contact-form-icon { width: 38px; height: 38px; font-size: 1rem; }
  .contact-form-label { font-size: 0.94rem; }
  .contact-form-sub { font-size: 0.62rem; letter-spacing: 0.12em; }
  .contact-focal-alt { flex-direction: column; align-items: center; gap: 12px; }
  .contact-alt-sep { display: none; }
  .contact-alt-link { font-size: 0.86rem; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-whatsapp-pulse::before,
  .contact-whatsapp-pulse::after {
    animation: none;
    opacity: 0;
  }
}


/* ========================================
   FOOTER - DEVELOPER CREDIT
   A standalone signature card that's actually visible.
   ======================================== */
.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-top: 22px;
  margin-top: 20px;
  border-top: 1px solid rgba(216, 171, 103, 0.2);
}

.footer-copy {
  margin: 0;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  color: rgba(247, 233, 212, 0.7);
}

.footer-credit {
  margin: 0;
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  font-family: 'Manrope', 'Poppins', sans-serif;
}

.footer-credit-label {
  color: rgba(247, 233, 212, 0.75);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.footer-credit .credit-name {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px 8px 8px;
  border-radius: 999px;
  background:
    linear-gradient(135deg, rgba(216, 171, 103, 0.32), rgba(194, 137, 82, 0.16));
  border: 1px solid rgba(216, 171, 103, 0.65);
  color: #fff;
  text-decoration: none;
  overflow: hidden;                                   /* clip the shimmer sweep */
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 0 20px rgba(216, 171, 103, 0.08),
    0 14px 28px -12px rgba(216, 171, 103, 0.45);
  transition:
    background 0.4s ease,
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.35s ease;
}

/* Shimmer sweep - light streak travels across pill every 5s to catch the eye */
.footer-credit .credit-shimmer {
  position: absolute;
  top: 0;
  left: -80%;
  width: 60%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 246, 220, 0.0) 20%,
    rgba(255, 246, 220, 0.38) 50%,
    rgba(255, 246, 220, 0.0) 80%,
    transparent 100%
  );
  transform: skewX(-16deg);
  animation: credit-shimmer-sweep 5.5s ease-in-out 2s infinite;
}

@keyframes credit-shimmer-sweep {
  0%, 55%  { left: -80%; }
  80%      { left: 140%; }
  100%     { left: 140%; }
}

.footer-credit .credit-icon-wrap {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 249, 232, 0.14);
  border: 1px solid rgba(216, 171, 103, 0.6);
  flex-shrink: 0;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.footer-credit .credit-icon {
  font-size: 0.72rem;
  color: #e6c890;
  transition: color 0.3s ease;
}

.footer-credit .credit-text {
  /* Match the "WEBSITE DESIGNED & DEVELOPED BY" label font/size, just
     a touch bigger + glowing so the eye still locks onto it. */
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 0.78rem;            /* close to the 0.7rem label */
  line-height: 1;
  letter-spacing: 0.28em;        /* lengthy but not over-spaced */
  text-transform: uppercase;
  color: #FFEFCF;
  text-shadow:
    0 0 5px  rgba(255, 232, 188, 0.55),
    0 0 12px rgba(232, 184, 110, 0.55),
    0 0 22px rgba(216, 140, 70, 0.4);
  filter: drop-shadow(0 0 5px rgba(255, 220, 170, 0.3));
  animation: kp-credit-pulse 3.6s ease-in-out infinite;
  /* trim the trailing letter-spacing gap so the pill stays tight */
  padding-right: 0.14em;
  margin-right: -0.28em;
}

@keyframes kp-credit-pulse {
  0%, 100% {
    text-shadow:
      0 0 6px  rgba(255, 232, 188, 0.55),
      0 0 14px rgba(232, 184, 110, 0.55),
      0 0 28px rgba(216, 140, 70, 0.45);
  }
  50% {
    text-shadow:
      0 0 10px rgba(255, 240, 200, 0.85),
      0 0 22px rgba(232, 184, 110, 0.85),
      0 0 40px rgba(216, 140, 70, 0.7);
  }
}

.footer-credit .credit-name:hover,
.footer-credit .credit-name:focus-visible {
  background: linear-gradient(135deg, #d8ab67, #9A6B3E);
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 22px 36px -14px rgba(216, 171, 103, 0.6);
  outline: none;
}

.footer-credit .credit-name:hover .credit-icon-wrap,
.footer-credit .credit-name:focus-visible .credit-icon-wrap {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.4);
}

.footer-credit .credit-name:hover .credit-icon,
.footer-credit .credit-name:focus-visible .credit-icon {
  color: #fff;
}

.footer-credit .credit-name:hover .credit-text,
.footer-credit .credit-name:focus-visible .credit-text {
  color: #fff;
  text-shadow:
    0 0 8px  rgba(255, 255, 255, 0.7),
    0 0 18px rgba(255, 232, 188, 0.7),
    0 0 36px rgba(216, 140, 70, 0.6);
}

/* Inline separator between name pill and email */
.footer-credit .credit-sep {
  color: rgba(216, 171, 103, 0.55);
  font-size: 1.1rem;
  margin: 0 4px;
  user-select: none;
}

/* Inline email next to the name pill */
.footer-credit .credit-mail-inline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: 'Manrope', 'Poppins', sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(247, 233, 212, 0.82);
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-credit .credit-mail-inline i {
  color: #d8ab67;
  font-size: 0.82em;
  transition: color 0.3s ease, transform 0.3s ease;
}

.footer-credit .credit-mail-inline span {
  padding-bottom: 2px;
  border-bottom: 1px dashed rgba(216, 171, 103, 0.5);
  transition: border-color 0.3s ease, border-bottom-style 0.3s ease;
}

.footer-credit .credit-mail-inline:hover,
.footer-credit .credit-mail-inline:focus-visible {
  color: #fff;
  outline: none;
}

.footer-credit .credit-mail-inline:hover i,
.footer-credit .credit-mail-inline:focus-visible i {
  color: #f0cd85;
  transform: translateY(-1px);
}

.footer-credit .credit-mail-inline:hover span,
.footer-credit .credit-mail-inline:focus-visible span {
  border-bottom-style: solid;
  border-color: #f0cd85;
}

/* Stack gracefully on narrow screens */
@media (max-width: 560px) {
  .footer-credit { flex-wrap: wrap; }
  .footer-credit .credit-sep { display: none; }
  .footer-credit .credit-mail-inline {
    width: 100%;
    justify-content: center;
    margin-top: 4px;
  }
}

@media (max-width: 520px) {
  .footer-credit-label { font-size: 0.64rem; letter-spacing: 0.2em; }
  .footer-credit .credit-name { padding: 7px 15px 7px 7px; }
  .footer-credit .credit-text { font-size: 1.08rem; }
  .footer-credit .credit-icon-wrap { width: 22px; height: 22px; }
  .footer-credit-mail { font-size: 0.74rem; }
}


/* ========================================
   GR compact (2-stat) variants
   Used on home / gallery / contact Google Reviews blocks
   ======================================== */
.gr-trust-inner--compact {
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.2fr);
}

@media (max-width: 768px) {
  .gr-trust-inner--compact {
    grid-template-columns: 1fr;
  }
}

.gr-attestations--compact {
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.gr-attestations--compact .gr-attest {
  padding: 20px 18px;
  text-align: center;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 6px;
}

.gr-attestations--compact .gr-attest dt {
  margin: 0;
}

.gr-attestations--compact .gr-attest dd {
  font-size: 2rem;
  letter-spacing: -0.01em;
}

.gr-attestations--compact .gr-attest dd span {
  font-size: 0.6em;
  margin-left: 3px;
}

@media (max-width: 560px) {
  .gr-attestations--compact .gr-attest dd { font-size: 1.6rem; }
}


/* ========================================
   IG GRID - PROFILE VARIANT (gallery page)
   Uniform 3-col portrait tiles, Instagram-profile feel.
   Differentiates from the asymmetric magazine grid on home.
   ======================================== */
.ig-grid.ig-grid--profile {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
  grid-template-areas: none;
  gap: 18px;
}

.ig-grid--profile .ig-reel,
.ig-grid--profile .ig-reel--hero,
.ig-grid--profile .ig-reel--tall,
.ig-grid--profile .ig-reel--med1,
.ig-grid--profile .ig-reel--med2,
.ig-grid--profile .ig-reel--wide,
.ig-grid--profile .ig-reel--sq {
  grid-area: auto;
  grid-column: auto;
  grid-row: auto;
  aspect-ratio: 9 / 16;
}

.ig-grid--profile .ig-reel-plate {
  aspect-ratio: 9 / 16;
  height: 100%;
  padding: 8px;
}

.ig-grid--profile .ig-reel-plate img {
  border-radius: 14px;
}

/* Compact, vertical-friendly caption */
.ig-grid--profile .ig-reel-caption {
  left: 14px;
  right: 14px;
  bottom: 14px;
  padding: 8px 12px;
  background: rgba(20, 12, 6, 0.58);
  border-color: rgba(216, 171, 103, 0.4);
  color: #f7e9d4;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  gap: 5px;
}

.ig-grid--profile .ig-reel-caption em {
  color: #f7e9d4;
  font-size: 0.82rem;
  line-height: 1.25;
}

.ig-grid--profile .ig-reel-stats {
  color: rgba(247, 233, 212, 0.88);
  border-top-color: rgba(216, 171, 103, 0.32);
  padding-top: 4px;
  font-size: 0.66rem;
}

.ig-grid--profile .ig-reel-stat i { color: #d8ab67; }
.ig-grid--profile .ig-reel-stat i.fa-heart { color: #ff7a7a; }
.ig-grid--profile .ig-reel-stat + .ig-reel-stat {
  border-left-color: rgba(216, 171, 103, 0.32);
}

/* Adjust badges / play for smaller portrait tiles */
.ig-grid--profile .ig-reel-badge {
  top: 14px;
  left: 14px;
  padding: 4px 8px;
  font-size: 0.56rem;
  letter-spacing: 0.16em;
}
.ig-grid--profile .ig-reel-badge i { font-size: 0.68rem; }

.ig-grid--profile .ig-reel-play {
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  font-size: 0.66rem;
}

@media (max-width: 860px) {
  .ig-grid.ig-grid--profile {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}

@media (max-width: 520px) {
  .ig-grid.ig-grid--profile {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .ig-grid--profile .ig-reel-caption em { font-size: 0.74rem; }
  .ig-grid--profile .ig-reel-stats { font-size: 0.6rem; }
}


/* ========================================
   INSTAGRAM brand-gradient icon
   Applied to .fab.fa-instagram inside the IG
   integration section (profile card + reel badges).
   Uses background-clip: text so the Font Awesome glyph
   picks up the authentic IG purple→pink→orange gradient.
   ======================================== */
.instagram-section .fab.fa-instagram {
  background: linear-gradient(45deg,
    #f09433 0%,
    #e6683c 25%,
    #dc2743 50%,
    #cc2366 75%,
    #bc1888 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* The Follow CTA is on a dark cocoa pill - gradient glyph on dark bg needs slight boost for contrast on hover */
.instagram-section .ig-card-cta:hover .fab.fa-instagram,
.instagram-section .ig-card-cta:focus-visible .fab.fa-instagram {
  filter: drop-shadow(0 0 4px rgba(220, 39, 67, 0.4));
}

/* Reel badge uses a light glassmorphic pill - the gradient stays vivid on it */
.instagram-section .ig-reel-badge .fab.fa-instagram {
  font-size: 0.9rem;
}

/* ==========================================================================
   PEACH + GOLD LUXURY UPLIFT (2026-04-19)
   - Darker, readable Get in Touch on light venue pages
   - Stronger peach base + gold accents on headlines
   - Bolder display weight for headlines so they read royal
   ========================================================================== */

/* Brand tokens — used by the new peach/gold accents below */
:root {
  --kp-peach-50:  #FFF1E2;
  --kp-peach-100: #FFE0C2;
  --kp-peach-300: #F4A777;
  --kp-peach-500: #E08245;
  --kp-peach-700: #B8551C;
  --kp-gold-300:  #E5C07B;
  --kp-gold-500:  #C9942F;
  --kp-gold-700:  #8A6313;
  --kp-ink-deep:  #4A1B0B;
}

/* Dark, peach-toned Get in Touch (and any btn-outline) on light venue pages */
.venue-actions .btn-outline,
.venue-detail-page .btn-outline,
body.internal-page .btn-outline {
  color: #fff;
  background: linear-gradient(135deg, var(--kp-peach-700) 0%, #8E3A14 100%);
  border: 2px solid var(--kp-peach-700);
  box-shadow: 0 10px 22px -8px rgba(184, 85, 28, 0.55),
              inset 0 1px 0 rgba(255, 255, 255, 0.18);
  font-weight: 700;
  letter-spacing: 0.7px;
}
.venue-actions .btn-outline:hover,
.venue-detail-page .btn-outline:hover,
body.internal-page .btn-outline:hover {
  color: #fff;
  background: linear-gradient(135deg, #8E3A14 0%, #6B2A0E 100%);
  border-color: #6B2A0E;
  box-shadow: 0 16px 30px -10px rgba(107, 42, 14, 0.7),
              inset 0 1px 0 rgba(255, 255, 255, 0.22);
  transform: translateY(-2px);
}

/* Peach-tinted CTA panel so the whole side feels warmer */
.venue-cta-panel {
  background:
    radial-gradient(circle at top right, rgba(244,167,119,0.28) 0%, transparent 32%),
    linear-gradient(180deg, rgba(255,247,237,0.98) 0%, rgba(254,228,200,0.96) 100%) !important;
  border: 1px solid rgba(184,85,28, 0.22) !important;
  box-shadow: 0 22px 44px -18px rgba(120, 50, 18, 0.22) !important;
}

/* Headline gold-shimmer accent — subtle, royal, reads luxury */
.page-header h1,
.page-section h2,
.vp-section-title,
.gallery-modern-title,
.gr-title,
.venue-cta-panel h3,
.venue-panel h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display',
               'Noto Serif Devanagari', serif;
  font-style: italic;
  background: linear-gradient(120deg,
    var(--kp-peach-700) 0%,
    var(--kp-gold-500) 45%,
    var(--kp-peach-700) 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  font-weight: 700;
  letter-spacing: 0.3px;
  animation: kp-gold-sheen 9s ease-in-out infinite;
}

@keyframes kp-gold-sheen {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* Em inside gradient headlines should keep flowing — they were italic gold before */
.page-section h2 em,
.vp-section-title em {
  font-style: italic;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(120deg, var(--kp-gold-700), var(--kp-gold-500));
  -webkit-background-clip: text;
  background-clip: text;
}

/* Bolder display weight on hero/section copy */
.hero-title,
.page-header h1 {
  font-weight: 700;
  letter-spacing: 0.2px;
}

/* Warmer chip pills inside venue meta */
.venue-cta-meta span {
  background: linear-gradient(180deg, #FFFBF4 0%, #FFE9D2 100%) !important;
  border: 1px solid rgba(184,85,28, 0.22) !important;
  color: var(--kp-peach-700) !important;
  font-weight: 600;
  box-shadow: 0 6px 14px -8px rgba(184, 85, 28, 0.35);
}
.venue-cta-meta span i {
  color: var(--kp-peach-500);
}

/* Body warmth — slight peach wash so the page never feels cream-only */
body.internal-page {
  background:
    radial-gradient(900px 600px at 88% -8%, rgba(244,167,119,0.18) 0%, transparent 60%),
    radial-gradient(700px 500px at -10% 18%, rgba(229,192,123,0.14) 0%, transparent 55%),
    linear-gradient(180deg, #FFF6EC 0%, #FFEAD2 100%);
}

/* Ornament dividers in gold */
.gold-divider {
  background: linear-gradient(90deg, transparent, var(--kp-gold-500), transparent) !important;
}

/* ==========================================================================
   READABILITY UPLIFT — body copy a tick larger across the site
   The headlines are already large + royal; this brings paragraph text
   into proportion so it doesn't feel small next to them.
   ========================================================================== */
.about-content p,
.about-text p,
.story-panel p,
.policy-doc-intro,
.policy-numbered-list li,
.policies-note-body p,
.gr-card-body,
.contact-info-card p,
.contact-info-card a,
.enquiry-intro,
.vp-intro-copy,
.vp-cta-copy,
.venue-cta-panel p,
.venue-panel p,
.venue-cta-meta span,
.gp-hero-sub,
.page-section p,
.feature-card p,
.gallery-lead {
  font-size: 1.06rem !important;
  line-height: 1.72 !important;
}

/* Lists / chips inside venue pages */
.vp-fac-list li,
.venue-hosted-item span {
  font-size: 1rem !important;
}

/* Footer body text a touch bigger so brand line + credits don't feel tiny */
.footer-brand p,
.footer-links a,
.footer-copy {
  font-size: 0.92rem !important;
}

/* ==========================================================================
   DEVANAGARI FONT FIX (mr / hi)
   - Cormorant Garamond / Fraunces have NO Devanagari glyphs, which is why
     conjuncts like श्ट / ष्ट्य / दृ / श्ण looked "half drawn" — the browser
     was falling back to a default Devanagari font that the gradient + italic
     style was clipping.
   - When the page is in Marathi or Hindi, swap headlines/eyebrows/buttons
     to Noto Serif/Sans Devanagari, drop italics (italic Devanagari is rare
     and renders badly), and let the gold gradient continue to work.
   ========================================================================== */
html.lang-mr, html.lang-hi,
:lang(mr), :lang(hi) {
  /* Let the browser/font apply required Devanagari shaping features
     (akhn, rphf, blwf, half, pstf, vatu, pres, blws, psts, haln).
     Forcing a restricted feature list was clipping conjuncts like ष्ट्र. */
  font-feature-settings: normal;
  font-variant-ligatures: normal;
}

html.lang-mr body,
html.lang-hi body,
:lang(mr) body,
:lang(hi) body {
  font-family: 'Mukta', 'Noto Sans Devanagari', 'Manrope', 'Poppins', system-ui, sans-serif;
  font-feature-settings: normal;
}

html.lang-mr { font-family: 'Mukta', 'Noto Sans Devanagari', sans-serif; }
html.lang-hi { font-family: 'Mukta', 'Noto Sans Devanagari', sans-serif; }

/* Headlines — use the serif Devanagari, no italics, full glyph height */
html.lang-mr h1, html.lang-mr h2, html.lang-mr h3, html.lang-mr h4, html.lang-mr h5,
html.lang-hi h1, html.lang-hi h2, html.lang-hi h3, html.lang-hi h4, html.lang-hi h5,
html.lang-mr .vp-section-title, html.lang-hi .vp-section-title,
html.lang-mr .gallery-modern-title, html.lang-hi .gallery-modern-title,
html.lang-mr .gr-title, html.lang-hi .gr-title,
html.lang-mr .vp-eyebrow, html.lang-hi .vp-eyebrow,
html.lang-mr .page-header-kicker, html.lang-hi .page-header-kicker {
  font-family: 'Tiro Devanagari Marathi', 'Noto Serif Devanagari', 'Cormorant Garamond', 'Playfair Display', serif !important;
  font-style: normal !important;
  font-weight: 600;
  font-feature-settings: normal !important;
  font-variant-ligatures: normal !important;
  /* Add slight line-height + padding so descender/conjunct strokes
     (ृ, ष्ट, ष्ट्य, ष्ट्र) never get clipped by background-clip:text */
  line-height: 1.5 !important;
  padding-bottom: 0.2em;
  letter-spacing: 0;
}

html.lang-hi h1, html.lang-hi h2, html.lang-hi h3,
html.lang-hi h4, html.lang-hi h5,
html.lang-hi .vp-section-title,
html.lang-hi .gallery-modern-title,
html.lang-hi .gr-title,
html.lang-hi .vp-eyebrow,
html.lang-hi .page-header-kicker {
  font-family: 'Tiro Devanagari Hindi', 'Noto Serif Devanagari', 'Cormorant Garamond', 'Playfair Display', serif !important;
}

/* The gradient text needs the line-height room too */
html.lang-mr .page-header h1,
html.lang-hi .page-header h1,
html.lang-mr .page-section h2,
html.lang-hi .page-section h2,
html.lang-mr .vp-section-title,
html.lang-hi .vp-section-title,
html.lang-mr .gr-title,
html.lang-hi .gr-title {
  /* Make sure background-clip:text doesn't crop the top/bottom marks */
  -webkit-text-stroke: 0;
  text-rendering: optimizeLegibility;
  overflow: visible;
}

/* em inside a Devanagari headline — kill italic, keep gold */
html.lang-mr .page-section h2 em,
html.lang-hi .page-section h2 em,
html.lang-mr .vp-section-title em,
html.lang-hi .vp-section-title em {
  font-style: normal !important;
  font-family: inherit !important;
}

/* Body copy — sans Devanagari for clarity at small sizes.
   Devanagari glyphs read smaller per em than Latin, so bump every body
   element up significantly when Marathi or Hindi is active. */
html.lang-mr p, html.lang-mr li, html.lang-mr a, html.lang-mr span,
html.lang-mr button, html.lang-mr label, html.lang-mr input, html.lang-mr select,
html.lang-mr textarea, html.lang-mr small, html.lang-mr strong, html.lang-mr em,
html.lang-hi p, html.lang-hi li, html.lang-hi a, html.lang-hi span,
html.lang-hi button, html.lang-hi label, html.lang-hi input, html.lang-hi select,
html.lang-hi textarea, html.lang-hi small, html.lang-hi strong, html.lang-hi em {
  font-family: 'Mukta', 'Noto Sans Devanagari', 'Manrope', 'Poppins', system-ui, sans-serif;
  font-style: normal;
  font-feature-settings: normal;
  font-variant-ligatures: normal;
}

/* ─── Devanagari readability — bump every body / paragraph / list / button
   one full step up when MR/HI is active. Devanagari conjuncts and matras
   need more visual weight than Latin at the same em. ─── */
html.lang-mr p,
html.lang-hi p,
html.lang-mr .about-content p,
html.lang-hi .about-content p,
html.lang-mr .about-text p,
html.lang-hi .about-text p,
html.lang-mr .story-panel p,
html.lang-hi .story-panel p,
html.lang-mr .gr-card-body,
html.lang-hi .gr-card-body,
html.lang-mr .contact-info-card p,
html.lang-hi .contact-info-card p,
html.lang-mr .enquiry-intro,
html.lang-hi .enquiry-intro,
html.lang-mr .vp-intro-copy,
html.lang-hi .vp-intro-copy,
html.lang-mr .vp-cta-copy,
html.lang-hi .vp-cta-copy,
html.lang-mr .venue-cta-panel p,
html.lang-hi .venue-cta-panel p,
html.lang-mr .venue-panel p,
html.lang-hi .venue-panel p,
html.lang-mr .gallery-lead,
html.lang-hi .gallery-lead,
html.lang-mr .policy-doc-intro,
html.lang-hi .policy-doc-intro,
html.lang-mr .policies-note-body p,
html.lang-hi .policies-note-body p,
html.lang-mr .feature-card p,
html.lang-hi .feature-card p,
html.lang-mr .royal-events-subtext,
html.lang-hi .royal-events-subtext,
html.lang-mr .about-subheading,
html.lang-hi .about-subheading {
  font-size: 1.18rem !important;
  line-height: 1.85 !important;
}

html.lang-mr li,
html.lang-hi li,
html.lang-mr .policy-numbered-list li,
html.lang-hi .policy-numbered-list li,
html.lang-mr .vp-fac-list li,
html.lang-hi .vp-fac-list li,
html.lang-mr .venue-hosted-item span,
html.lang-hi .venue-hosted-item span {
  font-size: 1.1rem !important;
  line-height: 1.75 !important;
}

/* Nav menu in MR/HI — bigger so conjuncts read clearly */
html.lang-mr .nav-links a,
html.lang-hi .nav-links a,
html.lang-mr .menu a,
html.lang-hi .menu a {
  font-size: 1rem !important;
  letter-spacing: 0.01em !important;
}

/* Buttons / CTAs — beefier in Devanagari */
html.lang-mr .btn-primary,
html.lang-hi .btn-primary,
html.lang-mr .btn-outline,
html.lang-hi .btn-outline,
html.lang-mr .btn-gold,
html.lang-hi .btn-gold,
html.lang-mr .form-submit,
html.lang-hi .form-submit,
html.lang-mr .contact-action-copy strong,
html.lang-hi .contact-action-copy strong {
  font-size: 1rem !important;
  font-weight: 600 !important;
}

html.lang-mr .contact-action-copy small,
html.lang-hi .contact-action-copy small {
  font-size: 0.88rem !important;
}

/* Address paragraph needs the correct Devanagari font loaded from Google Fonts
   so conjuncts in महाराष्ट्र (ष्ट्र) and similar clusters render correctly.
   Must leave font-feature-settings as `normal` so the browser still applies
   the required Devanagari features (akhn, rphf, blwf, half, pstf, pres, blws,
   psts, haln, ccmp). An explicit feature list disables those and breaks
   three-consonant clusters like ष्ट्र → the ट silently disappears. */
html.lang-mr .contact-info-card p,
html.lang-hi .contact-info-card p {
  font-family: 'Mukta', 'Noto Sans Devanagari', 'Manrope', system-ui, sans-serif !important;
  font-feature-settings: normal !important;
  font-variant-ligatures: normal !important;
}

/* Form labels + inputs */
html.lang-mr label,
html.lang-hi label {
  font-size: 0.98rem !important;
}
html.lang-mr input,
html.lang-mr select,
html.lang-mr textarea,
html.lang-hi input,
html.lang-hi select,
html.lang-hi textarea {
  font-size: 1rem !important;
}

/* Footer copy in MR/HI */
html.lang-mr .footer-brand p,
html.lang-hi .footer-brand p,
html.lang-mr .footer-links a,
html.lang-hi .footer-links a,
html.lang-mr .footer-copy,
html.lang-hi .footer-copy {
  font-size: 1rem !important;
}

/* Cards / venue chips / hero-card */
html.lang-mr .venue-card-text p,
html.lang-hi .venue-card-text p,
html.lang-mr .hp-preview-note,
html.lang-hi .hp-preview-note,
html.lang-mr .hc-card-sub,
html.lang-hi .hc-card-sub {
  font-size: 1.08rem !important;
  line-height: 1.78 !important;
}

/* Buttons need a touch more bottom-padding for तॅ / ट्यो / दृ glyphs */
html.lang-mr .btn-primary, html.lang-mr .btn-outline, html.lang-mr .btn-gold,
html.lang-hi .btn-primary, html.lang-hi .btn-outline, html.lang-hi .btn-gold,
html.lang-mr .wa-card-cta, html.lang-hi .wa-card-cta,
html.lang-mr .wa-fab-label, html.lang-hi .wa-fab-label {
  line-height: 1.5;
  padding-top: 13px;
  padding-bottom: 13px;
}

/* ==========================================================================
   BRAND NAME — KRUSHNPINGAKSH
   The brand should READ as the dominant element on every page header.
   Override the small kicker pill so the name becomes a royal, bold,
   gold-shimmered display headline that visually outranks "Contact Us",
   "About", "Venues" etc.
   ========================================================================== */
.page-header-kicker {
  display: block !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  /* Padding gives descenders (g, p, j) AND italic side-bearings (K leans
     left, h leans right) room — without it the gradient + background-clip:
     text crops glyph edges. */
  padding: 0.18em 0.18em 0.28em 0.18em !important;
  margin: 0 auto 8px !important;
  min-height: 0 !important;
  text-transform: none !important;
  letter-spacing: 0.005em !important;
  font-family: 'Cormorant Garamond', 'Playfair Display', 'Noto Serif Devanagari', serif !important;
  font-size: clamp(2.8rem, 7vw, 5.8rem) !important;
  font-weight: 700 !important;
  font-style: normal;       /* italic clips the trailing 'h' on the gradient */
  display: inline-block !important;
  line-height: 1.25 !important;
  overflow: visible !important;
  background: linear-gradient(120deg,
      var(--kp-peach-700, #B8551C) 0%,
      var(--kp-gold-500, #C9942F) 35%,
      #E8B66A 55%,
      var(--kp-gold-500, #C9942F) 75%,
      var(--kp-peach-700, #B8551C) 100%) !important;
  background-size: 220% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none;
  filter: drop-shadow(0 4px 14px rgba(184, 85, 28, 0.18));
  animation: kp-brand-sheen 11s ease-in-out infinite;
}
@keyframes kp-brand-sheen {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* Mobile: shrink brand name so it fits narrow viewports without clipping */
@media (max-width: 576px) {
  .page-header-kicker {
    font-size: clamp(1.8rem, 8vw, 2.8rem) !important;
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    overflow: visible !important;
  }
}

.page-header-kicker:hover {
  transform: none;
  background: linear-gradient(120deg,
      var(--kp-peach-700, #B8551C) 0%,
      var(--kp-gold-500, #C9942F) 35%,
      #E8B66A 55%,
      var(--kp-gold-500, #C9942F) 75%,
      var(--kp-peach-700, #B8551C) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  border: none !important;
}

/* The page title (Our Venues / Contact Us / About / Gallery) sits under
   the Krushnpingaksh brand. Royal serif, NOT italic — italic letters lean
   right and get clipped by background-clip:text on the gradient. Roman
   Cormorant Garamond at weight 600 still reads royal/luxury and prints
   the full glyph including the trailing 'h'. */
.page-header h1 {
  display: inline-block !important;
  font-family: 'Cormorant Garamond', 'Playfair Display',
               'Noto Serif Devanagari', serif !important;
  font-style: normal !important;
  font-size: clamp(2rem, 4.4vw, 3.2rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  text-transform: none !important;
  line-height: 1.3 !important;
  padding: 0.1em 0.18em 0.2em 0.18em !important;
  overflow: visible !important;
  margin-top: 4px;
  opacity: 1;
  /* Re-apply the gold sheen so it picks up the same shimmer rhythm */
  background: linear-gradient(120deg,
      var(--kp-peach-700, #B8551C) 0%,
      var(--kp-gold-500, #C9942F) 45%,
      var(--kp-peach-700, #B8551C) 100%) !important;
  background-size: 220% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  animation: kp-gold-sheen 9s ease-in-out infinite;
}

/* The hero subtitle below it also gets the cursive serif treatment so
   the whole header reads as one luxury composition. */
.page-header p,
.page-header .page-header-sub {
  font-family: 'Cormorant Garamond', 'Playfair Display',
               'Noto Serif Devanagari', serif !important;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1rem, 1.6vw, 1.18rem) !important;
  letter-spacing: 0.03em;
  opacity: 0.85;
}

/* Devanagari override for page-header h1 — drop italic (Devanagari italic
   renders poorly), keep the gold gradient + serif weight */
html.lang-mr .page-header h1,
html.lang-hi .page-header h1 {
  font-family: 'Noto Serif Devanagari', 'Cormorant Garamond', serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}
html.lang-mr .page-header p,
html.lang-hi .page-header p {
  font-family: 'Noto Serif Devanagari', serif !important;
  font-style: normal;
}

/* Footer brand — also enlarged, richer gradient */
.footer-brand h2 {
  font-size: clamp(2rem, 4.4vw, 3.2rem) !important;
  font-weight: 700 !important;
  font-style: italic;
  letter-spacing: 0.005em !important;
  line-height: 1.3 !important;
  padding: 0.1em 0.15em 0.22em 0.15em !important;
  overflow: visible !important;
  background: linear-gradient(120deg,
      #FFE8D2 0%,
      #FFD4A8 30%,
      #F0B576 55%,
      #C57A4E 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* Inline brand mentions (<strong>Krushnpingaksh</strong> inside paragraphs):
   keep them inline-sized but give them the gold-gradient royal treatment. */
.about-us strong,
.about-text strong,
.about-content strong,
.royal-events-subtext strong,
p strong:only-child {
  font-weight: 700;
  font-style: italic;
  background: linear-gradient(120deg,
      var(--kp-peach-700, #B8551C) 0%,
      var(--kp-gold-500, #C9942F) 50%,
      var(--kp-peach-700, #B8551C) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.005em;
}

/* WhatsApp widget brand callout */
.wa-card-header strong {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.005em;
  background: linear-gradient(120deg, #B8551C, #C9942F, #B8551C);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ==========================================================================
   SOCIAL ICONS — real brand colours (Instagram / Facebook / YouTube)
   Each icon disc gets the platform's signature colour so the row reads
   instantly recognisable. Whole pill subtly tints to match on hover.
   ========================================================================== */
/* ──────────────────────────────────────────────────────────────────
   Premium / modern social icons.
   - No coloured discs behind the glyph.
   - Each icon wears its real brand colour directly.
   - Pill is clean white with a subtle border + soft shadow.
   - Label is small, refined, uppercase, lightly letter-spaced.
   - Hover lifts the pill and glows in the brand colour.
   ────────────────────────────────────────────────────────────────── */
.social-icons {
  gap: 18px;
}
.social-icons a {
  min-width: 0 !important;
  position: relative;
  overflow: visible;
  padding: 13px 22px 13px 18px !important;
  gap: 12px !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 8px 22px -12px rgba(50, 30, 18, 0.18) !important;
  color: #2C1A10 !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  transition:
    transform 0.32s cubic-bezier(.2,.8,.2,1),
    box-shadow 0.32s ease,
    border-color 0.32s ease,
    background 0.32s ease,
    color 0.32s ease;
}

/* Drop the old coloured disc + sizing */
.social-icons a i {
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 1.55rem !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* Instagram — the actual multi-stop brand gradient applied to the
   glyph itself via background-clip:text so the icon becomes the gradient. */
.social-icons a .fa-instagram {
  background: linear-gradient(45deg,
      #FEDA77 0%,
      #F58529 18%,
      #DD2A7B 42%,
      #8134AF 70%,
      #515BD4 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  filter: drop-shadow(0 2px 6px rgba(221, 42, 123, 0.25));
}

/* Facebook — official #1877F2 in the glyph itself */
.social-icons a .fa-facebook-f,
.social-icons a .fa-facebook {
  color: #1877F2 !important;
  filter: drop-shadow(0 2px 6px rgba(24, 119, 242, 0.28));
}

/* YouTube — official #FF0000 in the glyph itself */
.social-icons a .fa-youtube {
  color: #FF0000 !important;
  filter: drop-shadow(0 2px 6px rgba(255, 0, 0, 0.28));
}

/* Hover lifts the whole pill and colours its border + shadow in the brand */
.social-icons a:has(.fa-instagram):hover {
  border-color: rgba(221, 42, 123, 0.45) !important;
  color: #8134AF !important;
  background: #FFFAFD !important;
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 18px 32px -14px rgba(221, 42, 123, 0.4) !important;
}
.social-icons a:has(.fa-facebook-f):hover,
.social-icons a:has(.fa-facebook):hover {
  border-color: rgba(24, 119, 242, 0.42) !important;
  color: #1877F2 !important;
  background: #FBFCFF !important;
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 18px 32px -14px rgba(24, 119, 242, 0.4) !important;
}
.social-icons a:has(.fa-youtube):hover {
  border-color: rgba(255, 0, 0, 0.42) !important;
  color: #C40000 !important;
  background: #FFFBFB !important;
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 18px 32px -14px rgba(255, 0, 0, 0.38) !important;
}

/* ==========================================================================
   FOOTER — deeper, richer, more luxe
   Pulls toward a near-black bronze with subtle warm pools at the corners.
   ========================================================================== */
.site-footer {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(232, 165, 110, 0.35) 0%, transparent 50%),
    radial-gradient(circle at 8% 100%, rgba(168, 83, 47, 0.18) 0%, transparent 32%),
    radial-gradient(circle at 92% 100%, rgba(140, 60, 28, 0.16) 0%, transparent 32%),
    linear-gradient(180deg, #2A1108 0%, #1A0905 55%, #0F0502 100%) !important;
  border-top: 1px solid rgba(232, 165, 110, 0.28) !important;
  color: rgba(255, 232, 210, 0.82) !important;
  box-shadow: inset 0 1px 0 rgba(255, 200, 150, 0.06);
}
.site-footer::before {
  background: linear-gradient(90deg,
      transparent,
      rgba(232, 165, 110, 0.85),
      rgba(255, 220, 180, 1),
      rgba(232, 165, 110, 0.85),
      transparent) !important;
  height: 2px !important;
  filter: drop-shadow(0 0 8px rgba(232, 165, 110, 0.4));
}

.footer-brand p {
  color: rgba(255, 220, 188, 0.55) !important;
}
.footer-links a {
  color: rgba(255, 232, 210, 0.78) !important;
  transition: color 0.25s ease;
}
.footer-links a:hover {
  color: #FFD9B0 !important;
  text-shadow: 0 0 12px rgba(232, 165, 110, 0.45);
}
.footer-copy,
.footer-credit-label {
  color: rgba(255, 220, 188, 0.5) !important;
}

/* Devanagari brand: keep the same dramatic size, swap to a serif
   Devanagari font and drop italic (italic Devanagari renders poorly) */
html.lang-mr .page-header-kicker,
html.lang-hi .page-header-kicker {
  font-family: 'Noto Serif Devanagari', 'Cormorant Garamond', serif !important;
  font-style: normal !important;
  font-size: clamp(2.4rem, 6.2vw, 5rem) !important;
  line-height: 1.35 !important;
  padding-bottom: 0.18em !important;
}
html.lang-mr .footer-brand h2,
html.lang-hi .footer-brand h2 {
  font-family: 'Noto Serif Devanagari', serif !important;
  font-style: normal !important;
  line-height: 1.4 !important;
}

/* ==========================================================================
   READABILITY BOOST — bolder + larger small body copy so the faint peach
   / brown palette stays readable, especially in Marathi + Hindi where the
   conjuncts need more pixels. Targets the stats strips, the policy list
   items, the operational-notes body text, the IG footstrip, gallery mosaic
   pill + stats, and form helper text.
   ========================================================================== */

/* Policy list items (Operational Notes, Booking Terms, etc.) */
body.page-policies .policy-numbered-list li {
  font-size: 1.05rem;
  line-height: 1.78;
  color: #4A1D0F;
  font-weight: 500;
}
body.page-policies .policies-note p {
  font-size: 1.05rem;
  color: #5A2A1A;
  font-weight: 500;
}
body.page-policies .policy-doc-intro {
  color: #5C2A18;
  font-weight: 500;
}

/* Gallery Curated Visual Journal pill + stats block */
.gallery-modern-pill {
  font-size: 0.9rem;
  letter-spacing: 0.16em;
  color: #7A3A22;
  font-weight: 800;
}
.gallery-modern-stats strong {
  font-size: 1.6rem;
  font-weight: 800;
  color: #6E2E17;
}
.gallery-modern-stats span {
  font-size: 0.95rem;
  color: #6E3420;
  font-weight: 600;
}

/* Instagram credit footer line + view-all link readability */
.ig-credit {
  font-size: 0.95rem;
  color: #5A3E2C;
  font-weight: 500;
}
.ig-credit em {
  font-size: 1.05rem;
  color: #7A3A1E;
  font-weight: 700;
}
.ig-viewall {
  font-size: 0.86rem;
  color: #2A140A;
  font-weight: 700;
  border-bottom-color: rgba(122, 58, 30, 0.7);
}

/* IG reel caption text */
.ig-reel-caption {
  font-size: 1.08rem;
  font-weight: 600;
  color: #2A140A;
}

/* IG profile card text */
.ig-card-handle { font-size: 0.98rem; color: #4A2C18; font-weight: 700; }
.ig-card-bio { font-size: 1rem; color: #5A3E2C; font-weight: 500; }
.ig-card-stat dt { font-size: 0.78rem; color: #4A2C18; font-weight: 700; opacity: 1; }
.ig-card-stat dd { font-size: 1.6rem; color: #2A140A; }

/* ── Marathi / Hindi bump on all the above — one full step more ── */
html.lang-mr body.page-policies .policy-numbered-list li,
html.lang-hi body.page-policies .policy-numbered-list li {
  font-size: 1.2rem !important;
  line-height: 1.9 !important;
  font-weight: 600 !important;
  color: #3E1608 !important;
}
html.lang-mr body.page-policies .policies-note p,
html.lang-hi body.page-policies .policies-note p {
  font-size: 1.18rem !important;
  font-weight: 600 !important;
  color: #4A1D0F !important;
}
html.lang-mr body.page-policies .policy-doc-intro,
html.lang-hi body.page-policies .policy-doc-intro {
  font-size: 1.18rem !important;
  font-weight: 600 !important;
  color: #4A1D0F !important;
}
html.lang-mr .gallery-modern-pill,
html.lang-hi .gallery-modern-pill {
  font-size: 1rem !important;
  font-weight: 800 !important;
}
html.lang-mr .gallery-modern-stats strong,
html.lang-hi .gallery-modern-stats strong {
  font-size: 1.7rem !important;
  font-weight: 800 !important;
}
html.lang-mr .gallery-modern-stats span,
html.lang-hi .gallery-modern-stats span {
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  color: #5A2410 !important;
}
html.lang-mr .ig-credit,
html.lang-hi .ig-credit {
  font-size: 1.08rem !important;
  font-weight: 600 !important;
}
html.lang-mr .ig-viewall,
html.lang-hi .ig-viewall {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
}
html.lang-mr .ig-card-handle,
html.lang-hi .ig-card-handle,
html.lang-mr .ig-card-bio,
html.lang-hi .ig-card-bio,
html.lang-mr .ig-card-stat dt,
html.lang-hi .ig-card-stat dt {
  font-size: 1.08rem !important;
  font-weight: 700 !important;
}
