/* ==========================================================================
   ZYAGO STUDIO — EDITORIAL WEDDING & ELOPEMENT STUDIO
   Complete Luxury UI Architecture & Design System
   ========================================================================== */
/* Note: Google Fonts are loaded asynchronously via HTML head preconnect for peak Core Web Vitals */

:root {
  /* Brand Typography */
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Refined Ultra-Luxury Pure White & Noir Color System */
  --bg-ivory: #FFFFFF;            /* Primary Pure Crisp White Background */
  --bg-warm-stone: #F8F7F5;        /* Secondary Clean Alabaster / Subtle Depth */
  --bg-charcoal: #17140F;          /* Primary Dark / Ink */
  --bg-charcoal-subtle: #201C16;   /* Secondary Dark */
  
  /* Accents */
  --color-gold: #B08D57;           /* Antique Brass / Champagne Gold */
  --color-gold-light: #C9A975;
  --color-gold-glow: rgba(176, 141, 87, 0.25);
  --color-burgundy: #6B2737;       /* Deep Burgundy Jewel Accent (replaces pure red) */
  --color-burgundy-light: rgba(107, 39, 55, 0.12);

  /* Text Colors */
  --text-dark: #1F1B16;            /* Body Text on Light */
  --text-dark-secondary: #5C5549;  /* Muted Text on Light */
  --text-light: #FFFFFF;           /* Body Text on Dark */
  --text-light-secondary: rgba(255, 255, 255, 0.75);

  /* Borders & Dividers */
  --border-light: rgba(0, 0, 0, 0.08);
  --border-dark: rgba(255, 255, 255, 0.12);
  --border-gold: rgba(176, 141, 87, 0.35);

  /* Layout & Geometry */
  --container-max: 1340px;
  --container-narrow: 880px;
  --header-height: 88px;
  --header-height-mobile: 70px;
  --radius-sm: 2px;
  --radius-pill: 9999px;
  --ease-luxury: cubic-bezier(0.22, 1, 0.36, 1);
  --transition-smooth: 0.4s var(--ease-luxury);
}

/* --------------------------------------------------------------------------
   RESET & FOUNDATIONS
   -------------------------------------------------------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--bg-ivory);
  color: var(--text-dark);
}

body {
  font-family: var(--font-sans);
  background-color: var(--bg-ivory);
  color: var(--text-dark);
  line-height: 1.7;
  overflow-x: hidden;
  position: relative;
  text-rendering: optimizeLegibility;
}

/* Prevent broken word wrapping everywhere */
h1, h2, h3, h4, h5, h6, .headline-balance {
  font-family: var(--font-serif);
  font-weight: 400;
  text-wrap: balance;
  word-break: normal;
  hyphens: none;
  letter-spacing: -0.01em;
}

p {
  max-width: 72ch;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity var(--transition-smooth), color var(--transition-smooth);
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Enforce Zero Border Radius on ALL Images & Image Wrappers */
img, video, iframe, picture,
.editorial-card-img-wrap, .editorial-card-img-wrap img, .editorial-card-img-wrap video,
.editorial-card-video, .gallery-item, .gallery-item img,
.footer-insta-item, .footer-insta-item img,
.sophie-card-media, .sophie-portrait-img,
.exp-card-media, .exp-card-media img,
.editorial-card, .editorial-card img,
.media-block-wrap, .media-block-wrap img,
.media-block-wrap video, .about-portrait-wrap, .about-portrait-wrap img,
.about-collage-item, .about-collage-item img {
  border-radius: 0 !important;
}

/* ==========================================================================
   CINEMATIC LIVING PHOTOGRAPHY ENGINE
   Continuous All-Time Organic Breathing Zoom & Hardware-Accelerated Stability
   ========================================================================== */

/* Three Complementary Organic Zoom-In & Zoom-Out Keyframes (Smooth, Natural, Unforced) */
@keyframes livePhotoBreatheA {
  0% {
    transform: scale(1.0);
  }
  50% {
    transform: scale(1.075);
  }
  100% {
    transform: scale(1.0);
  }
}

@keyframes livePhotoBreatheB {
  0% {
    transform: scale(1.072);
  }
  50% {
    transform: scale(1.0);
  }
  100% {
    transform: scale(1.072);
  }
}

@keyframes livePhotoBreatheC {
  0% {
    transform: scale(1.01) translateY(0);
  }
  50% {
    transform: scale(1.07) translateY(-1.2%);
  }
  100% {
    transform: scale(1.01) translateY(0);
  }
}

/* Ensure ALL image wrappers have strict overflow clipping, isolation & relative containment */
.editorial-card-img-wrap,
.gallery-item,
.sophie-card-media,
.sophie-profile-card,
.exp-card-media,
.experience-card-item,
.media-block-wrap,
.about-portrait-wrap,
.about-collage-item,
.footer-insta-item,
.footer-story-slide,
.about-hero-aux-img,
.about-hero-center-img,
.about-slideshow-container,
.founder-curtain-container,
.maps-media-slider,
.maps-card-media-wrap,
.stagger-col {
  overflow: hidden !important;
  position: relative;
  isolation: isolate;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* All-Time Cinematic Living Photography: Applied continuously to all photo assets */
/* All-Time Cinematic Living Photography: Applied continuously with viewport-aware power management */
.curated-photo,
.gallery-item img,
.sophie-portrait-img,
.editorial-card-img-wrap img,
.editorial-card-video,
.about-slide,
.about-portrait-wrap img,
.about-collage-item img,
.footer-story-slide img,
.footer-insta-item img,
.exp-card-media img,
.media-block-wrap img,
.maps-card-photo,
.founder-curtain-img {
  filter: contrast(102%) brightness(98%) sepia(5%);
  transform-origin: center center;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  image-rendering: -webkit-optimize-contrast;
  /* Hardware-optimized viewport-aware animation loop */
  animation: livePhotoBreatheA 8.2s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  animation-play-state: running;
  transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Off-screen battery & GPU optimization: release VRAM compositor layers when not in view */
.living-photo-paused,
.living-photo-paused img,
.living-photo-paused video {
  animation-play-state: paused !important;
  will-change: auto !important;
}

.living-photo-active,
.living-photo-active img,
.living-photo-active video {
  animation-play-state: running !important;
  will-change: transform !important;
}

/* Natural Staggered Rhythms: Prevents synchronous pulsing across adjacent cards */
.gallery-item:nth-child(even) img,
.editorial-card:nth-child(even) .editorial-card-video,
.editorial-card:nth-child(even) img,
.footer-story-slide:nth-child(even) img,
.about-collage-item:nth-child(even) img,
.sophie-profile-card:nth-child(even) .sophie-portrait-img,
.experience-card-item:nth-child(even) .exp-card-media img {
  animation-name: livePhotoBreatheB;
  animation-duration: 9.8s;
  animation-delay: -3.2s;
}

.gallery-item:nth-child(3n) img,
.footer-story-slide:nth-child(3n) img,
.editorial-card:nth-child(3n) .editorial-card-video,
.experience-card-item:nth-child(3n) .exp-card-media img {
  animation-name: livePhotoBreatheC;
  animation-duration: 8.8s;
  animation-delay: -5.4s;
}

.gallery-item:nth-child(5n) img,
.footer-insta-item:nth-child(odd) img {
  animation-name: livePhotoBreatheA;
  animation-duration: 10.4s;
  animation-delay: -2s;
}

/* Pro Hover State: Silky freeze-in-place so user can inspect without jarring resets */
.gallery-item:hover img,
.editorial-card:hover .editorial-card-video,
.editorial-card:hover img,
.sophie-profile-card:hover .sophie-portrait-img,
.sophie-card-media:hover .sophie-portrait-img,
.footer-story-slide:hover img,
.footer-insta-item:hover img,
.about-collage-item:hover img,
.about-portrait-wrap:hover img,
.experience-card-item:hover .exp-card-media img,
.maps-media-slider:hover .maps-card-photo,
.maps-card-media-wrap:hover .maps-card-photo,
.about-hero-center-img:hover .about-slide.active,
.about-hero-aux-img:hover .about-slide.active,
.curated-photo:hover {
  animation-play-state: paused;
  filter: contrast(105%) brightness(102%) sepia(2%) !important;
  cursor: pointer;
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
  .curated-photo,
  .gallery-item img,
  .sophie-portrait-img,
  .editorial-card-img-wrap img,
  .editorial-card-video,
  .about-slide,
  .about-portrait-wrap img,
  .about-collage-item img,
  .footer-story-slide img,
  .footer-insta-item img,
  .exp-card-media img,
  .media-block-wrap img,
  .maps-card-photo,
  .founder-curtain-img {
    animation: none !important;
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   PRELOADER (RESTRAINED & ELEVATED LOGO MARK REVEAL)
   -------------------------------------------------------------------------- */
.site-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background-color: var(--bg-ivory);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s var(--ease-luxury), visibility 0.6s var(--ease-luxury);
  pointer-events: none;
}

.site-preloader.loaded {
  opacity: 0;
  visibility: hidden;
}

.preloader-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.preloader-emblem {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 2px 6px rgba(0, 0, 0, 0.06);
  opacity: 0;
  transform: scale(0.9);
  animation: preloaderLogoAnim 0.9s var(--ease-luxury) forwards;
}

.preloader-emblem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.preloader-logo {
  height: 26px;
  width: auto;
  opacity: 0;
  transform: scale(0.92);
  animation: preloaderLogoAnim 1.0s var(--ease-luxury) 0.1s forwards;
}

.preloader-bar {
  width: 96px;
  height: 1.5px;
  background: rgba(34, 30, 24, 0.12);
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  margin-top: 4px;
}

.preloader-progress {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0%;
  background: var(--color-gold);
  animation: preloaderBarAnim 1.0s var(--ease-luxury) forwards;
}

@keyframes preloaderLogoAnim {
  0% { opacity: 0; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes preloaderBarAnim {
  0% { width: 0%; }
  100% { width: 100%; }
}

/* --------------------------------------------------------------------------
   CUSTOM DESKTOP CURSOR (VIEW / DRAG STATES)
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  .custom-cursor-dot, .custom-cursor-circle {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99990;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.3s var(--ease-luxury), height 0.3s var(--ease-luxury), background-color 0.3s ease, border-color 0.3s ease, opacity 0.2s ease;
    opacity: 0;
  }

  body.cursor-visible .custom-cursor-dot,
  body.cursor-visible .custom-cursor-circle {
    opacity: 1;
  }

  .custom-cursor-dot {
    width: 6px;
    height: 6px;
    background-color: var(--color-gold);
  }

  .custom-cursor-circle {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(176, 141, 87, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bg-charcoal);
  }

  .custom-cursor-circle.cursor-hover {
    width: 72px;
    height: 72px;
    background-color: rgba(255, 255, 255, 0.92);
    border-color: var(--color-gold);
    backdrop-filter: blur(4px);
  }

  .custom-cursor-circle.cursor-hover-dark {
    width: 72px;
    height: 72px;
    background-color: rgba(23, 20, 15, 0.9);
    border-color: var(--color-gold);
    color: var(--bg-ivory);
    backdrop-filter: blur(4px);
  }
}

/* --------------------------------------------------------------------------
   GLOBAL LAYOUT CONTAINERS
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 48px);
  padding-right: clamp(20px, 4vw, 48px);
}

.container-narrow {
  width: 100%;
  max-width: var(--container-narrow);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 48px);
  padding-right: clamp(20px, 4vw, 48px);
}

.section {
  padding-top: clamp(70px, 9vw, 120px);
  padding-bottom: clamp(70px, 9vw, 120px);
  position: relative;
}

.section-stone {
  background-color: var(--bg-warm-stone);
}

.section-dark {
  background-color: var(--bg-charcoal);
  color: var(--text-light);
}

.section-dark-secondary {
  background-color: var(--bg-charcoal-subtle);
  color: var(--text-light);
}

/* --------------------------------------------------------------------------
   TYPOGRAPHY UTILITIES
   -------------------------------------------------------------------------- */
.italic {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
}

.italic-lower {
  font-family: var(--font-serif);
  font-style: italic;
  text-transform: lowercase;
  font-weight: 300;
  display: inline-block;
  margin-right: 0.2em;
}

.uppercase-track {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--color-gold);
}

/* --------------------------------------------------------------------------
   PRIMARY NAVIGATION (Strict responsive logic: NO dual menu!)
   -------------------------------------------------------------------------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-height);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(20px, 4vw, 48px);
  color: var(--text-dark);
  transition: background 0.35s var(--ease-luxury),
              background-color 0.35s var(--ease-luxury),
              backdrop-filter 0.35s var(--ease-luxury),
              -webkit-backdrop-filter 0.35s var(--ease-luxury),
              height 0.35s var(--ease-luxury),
              border-color 0.35s var(--ease-luxury),
              box-shadow 0.35s var(--ease-luxury),
              color 0.35s var(--ease-luxury);
}

.site-header.hero-transparent-nav {
  background: linear-gradient(180deg, rgba(10, 8, 6, 0.82) 0%, rgba(10, 8, 6, 0.45) 55%, rgba(10, 8, 6, 0) 100%);
  color: #ffffff;
}

.site-header.hero-transparent-nav .header-logo {
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.65));
}

.site-header.hero-transparent-nav .nav-link {
  color: #ffffff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.site-header.hero-transparent-nav .hamburger-btn {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.site-header.hero-transparent-nav .hamburger-btn:hover {
  background: rgba(255, 255, 255, 0.26);
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.site-header.light-header {
  background: var(--bg-ivory);
  background-color: var(--bg-ivory);
  color: var(--text-dark);
  border-bottom: 1px solid var(--border-light);
}

.site-header.light-header .hamburger-btn {
  background: rgba(23, 20, 15, 0.06);
  border: 1px solid rgba(23, 20, 15, 0.12);
  color: var(--text-dark);
}

.site-header.is-scrolled {
  height: 74px;
  background: rgba(255, 255, 255, 0.96);
  background-color: rgba(255, 255, 255, 0.96);
  color: var(--text-dark);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border-light);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.site-header.is-scrolled .header-logo {
  filter: none;
}

.site-header.is-scrolled .nav-link {
  color: inherit;
  text-shadow: none;
}

.site-header.is-scrolled .hamburger-btn {
  background: rgba(23, 20, 15, 0.06);
  border: 1px solid rgba(23, 20, 15, 0.12);
  color: var(--text-dark);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  filter: none;
}

.site-header.is-scrolled .hamburger-btn:hover {
  background: rgba(23, 20, 15, 0.12);
  border-color: rgba(23, 20, 15, 0.22);
}

.site-header.is-scrolled.dark-theme-header {
  background: rgba(23, 20, 15, 0.94);
  background-color: rgba(23, 20, 15, 0.94);
  color: var(--text-light);
  border-bottom: 1px solid var(--border-dark);
}

.site-header.is-scrolled.dark-theme-header .hamburger-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--text-light);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.site-header.is-scrolled.dark-theme-header .hamburger-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.45);
}

.header-brand {
  display: flex;
  align-items: center;
}

.header-logo {
  height: 38px;
  width: auto;
  transition: transform 0.3s ease;
}

.header-logo:hover {
  transform: scale(1.02);
}

.header-nav-wrapper {
  display: flex;
  align-items: center;
  gap: 32px;
}

/* Desktop Navigation Menu */
.header-nav {
  display: flex;
  align-items: center;
  gap: 28px;
  position: relative;
}

.nav-link {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
  opacity: 0.85;
  padding: 8px 2px;
  position: relative;
  transition: opacity 0.25s ease, color 0.25s ease;
}

.nav-link:hover, .nav-link.active {
  opacity: 1;
  color: var(--color-gold);
}

/* Animated sliding active underline indicator */
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 1.5px;
  background-color: var(--color-gold);
  transition: width 0.35s var(--ease-luxury);
}

.nav-link:hover::after,
.nav-link.active::after {
  width: 100%;
}

/* Magnetic CTA Contact Button */
.btn-contact {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 11px 26px;
  border-radius: var(--radius-pill);
  background: var(--color-gold);
  color: #ffffff !important;
  border: 1px solid var(--color-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(176, 141, 87, 0.22);
  transition: all 0.3s var(--ease-luxury);
}

.btn-contact:hover {
  background: #967440;
  border-color: #967440;
  box-shadow: 0 6px 20px rgba(176, 141, 87, 0.35);
  transform: translateY(-1px);
}

/* Strict Hamburger Visibility: HIDDEN ON >= 1024px */
.hamburger-btn {
  display: none;
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  width: 44px;
  height: 44px;
  cursor: pointer;
  padding: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  z-index: 1001;
  color: inherit;
  outline: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
  transition: background 0.3s var(--ease-luxury),
              border-color 0.3s var(--ease-luxury),
              transform 0.3s var(--ease-luxury),
              box-shadow 0.3s var(--ease-luxury),
              color 0.3s var(--ease-luxury),
              opacity 0.25s ease;
}

.hamburger-btn:hover {
  opacity: 1;
  transform: scale(1.05);
}

.hamburger-line {
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background-color: currentColor;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}

@media (max-width: 1023px) {
  .header-nav {
    display: none !important;
  }
  .hamburger-btn {
    display: flex !important;
  }
  .btn-contact {
    display: none;
  }
}

/* Fullscreen Menu Overlay for Mobile / Tablet (Ultra-Smooth Luxury Animation) */
.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background-color: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: var(--text-dark);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 40px 24px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
  transition: transform 0.65s cubic-bezier(0.77, 0, 0.175, 1),
              opacity 0.5s cubic-bezier(0.77, 0, 0.175, 1),
              visibility 0.65s ease;
  will-change: transform, opacity;
}

.menu-overlay.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0%);
}

.menu-overlay-close {
  position: absolute;
  top: 24px;
  right: 24px;
  background: none;
  border: none;
  color: var(--text-dark);
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: rotate(-90deg) scale(0.8);
  transition: transform 0.5s var(--ease-luxury) 0.3s, opacity 0.5s ease 0.3s;
}

.menu-overlay.is-open .menu-overlay-close {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.menu-overlay-close:hover {
  transform: rotate(90deg) scale(1.1);
}

.close-line {
  position: absolute;
  width: 24px;
  height: 1.5px;
  background-color: currentColor;
}
.close-line:first-child { transform: rotate(45deg); }
.close-line:last-child { transform: rotate(-45deg); }

.minimal-menu-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, 3.5vh, 32px);
  text-align: center;
}

.minimal-menu-link {
  font-family: var(--font-serif);
  font-size: clamp(28px, 6vw, 44px);
  color: var(--text-dark);
  letter-spacing: 0.05em;
  opacity: 0;
  transform: translateY(32px);
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              color 0.3s ease;
  position: relative;
  display: inline-block;
}

/* Staggered Entrance Cascade */
.menu-overlay.is-open .minimal-menu-link:nth-child(1) { transition-delay: 0.18s; transform: translateY(0); opacity: 0.9; }
.menu-overlay.is-open .minimal-menu-link:nth-child(2) { transition-delay: 0.25s; transform: translateY(0); opacity: 0.9; }
.menu-overlay.is-open .minimal-menu-link:nth-child(3) { transition-delay: 0.32s; transform: translateY(0); opacity: 0.9; }
.menu-overlay.is-open .minimal-menu-link:nth-child(4) { transition-delay: 0.39s; transform: translateY(0); opacity: 0.9; }
.menu-overlay.is-open .minimal-menu-link:nth-child(5) { transition-delay: 0.46s; transform: translateY(0); opacity: 0.9; }
.menu-overlay.is-open .minimal-menu-link:nth-child(6) { transition-delay: 0.53s; transform: translateY(0); opacity: 0.9; }

.minimal-menu-link:hover, .minimal-menu-link.active {
  opacity: 1 !important;
  color: var(--color-gold);
}

.minimal-menu-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0%;
  height: 1px;
  background-color: var(--color-gold);
  transition: width 0.35s var(--ease-luxury);
}

.minimal-menu-link:hover::after,
.minimal-menu-link.active::after {
  width: 36px;
}

/* Fullscreen Menu Brand Emblem */
.menu-overlay-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: clamp(16px, 3vh, 28px);
  opacity: 0;
  transform: translateY(-16px);
  transition: opacity 0.5s var(--ease-luxury) 0.15s, transform 0.5s var(--ease-luxury) 0.15s;
}

.menu-overlay.is-open .menu-overlay-brand {
  opacity: 1;
  transform: translateY(0);
}

.menu-overlay-logo {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: none;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22), 0 3px 8px rgba(0, 0, 0, 0.1);
  object-fit: cover;
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s var(--ease-luxury);
}

.menu-overlay-logo:hover {
  transform: scale(1.05);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28), 0 4px 10px rgba(0, 0, 0, 0.12);
}

.menu-overlay-tag {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--color-gold);
  text-transform: uppercase;
}

/* ==========================================================================
   CIRCULAR ROTATING BRAND BADGE WITH CIRCULAR TEXT PATH
   ========================================================================== */
.circular-brand-badge {
  position: relative;
  width: 110px;
  height: 110px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  user-select: none;
}

.circular-brand-badge .badge-logo-center {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.08);
  z-index: 2;
  background-color: var(--bg-card);
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s var(--ease-luxury);
}

.circular-brand-badge:hover .badge-logo-center {
  transform: scale(1.06);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.26);
}

.circular-brand-badge .badge-logo-center img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.circular-brand-badge .badge-rotating-text {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: rotateSeal 22s linear infinite;
  transform-origin: center;
  pointer-events: none;
  z-index: 1;
}

.circular-brand-badge .badge-rotating-text text {
  font-family: var(--font-sans);
  font-size: 8.5px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  fill: var(--color-gold);
}

.circular-brand-badge.badge-sm {
  width: 84px;
  height: 84px;
}

.circular-brand-badge.badge-sm .badge-logo-center {
  width: 40px;
  height: 40px;
}

.circular-brand-badge.badge-sm .badge-rotating-text text {
  font-size: 8px;
}

.circular-brand-badge.badge-lg {
  width: 130px;
  height: 130px;
}

.circular-brand-badge.badge-lg .badge-logo-center {
  width: 62px;
  height: 62px;
}

/* Reusable Editorial Brand Emblem Badge */
.brand-emblem-badge-wrap {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.brand-emblem-badge {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  border: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-card);
  transition: transform 0.35s var(--ease-luxury), box-shadow 0.35s var(--ease-luxury);
}

.brand-emblem-badge:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.08);
}

.brand-emblem-badge img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* --------------------------------------------------------------------------
   HERO SECTIONS & KEN-BURNS SCALE
   -------------------------------------------------------------------------- */
.home-hero-section {
  position: relative;
  min-height: 100vh;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(28px, 4.5vh, 44px);
  overflow: hidden;
  color: #ffffff;
}

.hero-slideshow-container {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

@keyframes heroLiveBreathe {
  0% { transform: scale(1.0); }
  50% { transform: scale(1.07); }
  100% { transform: scale(1.0); }
}

.hero-bg-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 25%;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.0);
  transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity, transform;
  pointer-events: none;
}

.hero-bg-slide.active {
  opacity: 1;
  z-index: 2;
  animation: heroLiveBreathe 10s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.hero-bg-layer {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 25%;
  z-index: 1;
  animation: kenBurnsHero 16s ease-in-out infinite alternate;
}

@keyframes kenBurnsHero {
  0% { transform: scale(1.0); }
  100% { transform: scale(1.05); }
}

.home-hero-gradient-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: linear-gradient(
    180deg,
    rgba(12, 10, 8, 0.78) 0%,
    rgba(12, 10, 8, 0.40) 22%,
    rgba(12, 10, 8, 0.18) 50%,
    rgba(12, 10, 8, 0.88) 100%
  );
  pointer-events: none;
}

.hero-slide-indicators {
  display: flex;
  align-items: center;
  gap: 8px;
}

.hero-slideshow-nav {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: transparent;
  padding: 0;
  border: none;
  box-shadow: none;
  z-index: 10;
}

.hero-nav-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.55);
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: color 0.3s ease, transform 0.3s ease;
}

.hero-nav-btn:hover {
  background: transparent;
  border-color: transparent;
  color: #ffffff;
  transform: scale(1.15);
}

.hero-side-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(23, 20, 15, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 12;
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}

.hero-side-prev {
  left: 24px;
}

.hero-side-next {
  right: 24px;
}

.hero-side-btn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-charcoal);
  transform: translateY(-50%) scale(1.08);
  box-shadow: 0 10px 28px rgba(197, 168, 128, 0.35);
}

@media (max-width: 768px) {
  .hero-side-btn {
    display: none;
  }
}

.hero-dot {
  width: 20px;
  height: 1.5px;
  background: rgba(255, 255, 255, 0.28);
  border: none;
  border-radius: 1px;
  cursor: pointer;
  padding: 0;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-dot:hover {
  background: rgba(255, 255, 255, 0.75);
}

.hero-dot.active {
  background: #ffffff;
  width: 32px;
}

.hero-container {
  position: relative;
  z-index: 10;
}

.home-hero-content {
  max-width: 920px;
  margin-bottom: 0;
}

/* Circular Rotating Luxury Seal Stamp Badge */
.hero-brand-seal-badge {
  width: 92px;
  height: 92px;
  display: block;
  user-select: none;
  margin-bottom: 16px;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.25));
  transition: transform 0.4s var(--ease-luxury);
}

.hero-brand-seal-badge:hover {
  transform: scale(1.05);
}

.seal-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.seal-rotating-group {
  animation: rotateSeal 22s linear infinite;
  transform-origin: 80px 80px;
}

/* Minimalist Transparent Google Review Badge (Glassmorphic Luxury Pill) */
.hero-google-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 8px;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  margin-bottom: 12px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18);
  transition: all 0.3s var(--ease-luxury);
  width: fit-content;
  user-select: none;
  text-decoration: none;
  cursor: pointer;
  color: #ffffff;
}

.hero-google-badge:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.google-icon-box {
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.google-svg {
  display: block;
}

.hero-stars-row {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: #F4B400;
}

.hero-stars-row .star-icon {
  width: 11px;
  height: 11px;
  fill: #F4B400;
}

.hero-badge-score {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.02em;
  margin-left: 2px;
}

.hero-badge-sep {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
}

.hero-badge-text {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ffffff;
}

/* Light background container adaptation */
.section .hero-google-badge,
.studio-map-info-card .hero-google-badge {
  background: rgba(23, 20, 15, 0.04);
  border: 1px solid rgba(23, 20, 15, 0.14);
  box-shadow: none;
  color: var(--text-dark);
}

.section .hero-google-badge:hover,
.studio-map-info-card .hero-google-badge:hover {
  background: rgba(176, 141, 87, 0.09);
  border-color: var(--color-gold);
}

.section .hero-google-badge .hero-badge-score,
.studio-map-info-card .hero-google-badge .hero-badge-score,
.section .hero-google-badge .hero-badge-text,
.studio-map-info-card .hero-google-badge .hero-badge-text {
  color: var(--text-dark);
}

.section .hero-google-badge .hero-badge-sep,
.studio-map-info-card .hero-google-badge .hero-badge-sep {
  color: rgba(23, 20, 15, 0.35);
}

.home-hero-title {
  font-size: clamp(34px, 5.4vw, 72px);
  line-height: 1.08;
  margin-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: -0.01em;
}

.home-hero-desc {
  font-size: clamp(13.5px, 1.2vw, 16px);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.65;
  max-width: 620px;
  font-weight: 300;
  margin-bottom: 0;
}

.home-hero-cta-group {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  flex-wrap: wrap;
}

/* Crisp White CTAs (No Glassmorphism) */
.hero-cta-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 26px;
  background: #ffffff;
  color: #17140f !important;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid #ffffff;
  transition: all 0.3s var(--ease-luxury);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  cursor: pointer;
}

.hero-cta-primary:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(176, 141, 87, 0.35);
}

.hero-cta-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 26px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff !important;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  transition: all 0.3s var(--ease-luxury);
  cursor: pointer;
}

.hero-cta-secondary:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #17140f !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255, 255, 255, 0.22);
}

.home-hero-bottom-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 18px;
}

/* Floating Rotating Stamp Bridge */
.hero-floating-seal {
  position: relative;
  display: flex;
  justify-content: center;
  margin-top: -36px;
  z-index: 20;
}

.stamp-badge-wrap {
  position: relative;
  width: 104px;
  height: 104px;
  background-color: #ffffff;
  border-radius: 50%;
  padding: 4px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(176, 141, 87, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  flex-shrink: 0;
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s var(--ease-luxury);
}

.stamp-badge-wrap:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(176, 141, 87, 0.22);
}

.stamp-logo-center {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
  border: 1.5px solid rgba(176, 141, 87, 0.45);
  background-color: var(--bg-card);
  transition: transform 0.4s var(--ease-luxury);
}

.stamp-badge-wrap:hover .stamp-logo-center {
  transform: scale(1.08);
}

.stamp-logo-center img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.stamp-rotating-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: rotateSeal 24s linear infinite;
  transform-origin: center;
  pointer-events: none;
  z-index: 1;
}

@keyframes rotateSeal {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --------------------------------------------------------------------------
   LUXURY EDITORIAL IMAGE REVEAL & CURTAIN SYSTEM
   -------------------------------------------------------------------------- */
.curtain-reveal-wrap {
  position: relative;
  overflow: hidden;
}

.curtain-reveal-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--bg-charcoal);
  z-index: 4;
  transform: translateY(0%);
  transition: transform 0.95s cubic-bezier(0.77, 0, 0.175, 1);
  pointer-events: none;
}

.curtain-reveal-wrap.is-revealed::after,
.curtain-reveal-wrap.revealed::after {
  transform: translateY(-101%);
}

/* General Scroll Reveal Container */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.9s var(--ease-luxury), transform 0.9s var(--ease-luxury);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-revealed,
.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Base Image Reveal Initial States (Ken-Burns Inward Glide) */
.editorial-card,
.experience-process-card,
.experience-card-item,
.about-collage-item,
.media-block-wrap,
.gallery-item {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.85s var(--ease-luxury), transform 0.85s var(--ease-luxury), box-shadow 0.4s ease, border-color 0.4s ease;
  will-change: opacity, transform;
}

.editorial-card.is-revealed,
.experience-process-card.is-revealed,
.experience-card-item.is-revealed,
.about-collage-item.is-revealed,
.media-block-wrap.is-revealed,
.gallery-item.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

.footer-insta-item {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s ease, border-color 0.4s ease;
}

/* Smooth Image Filter Settling */
.editorial-card-img-wrap img,
.editorial-card-img-wrap video,
.experience-card-img-wrap img,
.exp-card-media img,
.about-portrait-wrap img,
.about-collage-item img,
.media-block-wrap img,
.media-block-wrap video,
.gallery-item img,
.footer-insta-item img {
  filter: contrast(99%) brightness(95%);
  transition: transform 0.95s cubic-bezier(0.25, 1, 0.5, 1), filter 0.8s ease, opacity 0.8s ease;
  will-change: transform, filter;
}

.editorial-card.is-revealed .editorial-card-img-wrap img,
.editorial-card.is-revealed .editorial-card-img-wrap video,
.experience-process-card.is-revealed .experience-card-img-wrap img,
.experience-card-item.is-revealed .exp-card-media img,
.about-collage-item.is-revealed img,
.media-block-wrap.is-revealed video,
.media-block-wrap.is-revealed img,
.gallery-item.is-revealed img,
.footer-insta-item.is-revealed img {
  filter: contrast(102%) brightness(98%) sepia(6%);
}

/* Shimmer Sweep Animation on Image Entry */
.img-reveal-shimmer {
  position: relative;
  overflow: hidden;
}

.img-reveal-shimmer::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    60deg,
    transparent 35%,
    rgba(255, 255, 255, 0.28) 48%,
    rgba(176, 141, 87, 0.35) 52%,
    transparent 65%
  );
  transform: rotate(25deg) translateY(120%);
  transition: transform 1.3s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 3;
}

.img-reveal-shimmer.is-revealed::after {
  transform: rotate(25deg) translateY(-140%);
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .editorial-card,
  .experience-process-card,
  .about-collage-item,
  .media-block-wrap,
  .gallery-item,
  .footer-insta-item,
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .editorial-card-img-wrap img,
  .editorial-card-img-wrap video,
  .experience-card-img-wrap img,
  .about-portrait-wrap img,
  .gallery-item img,
  .footer-insta-item img {
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   3-CATEGORY INTRO CARDS (Unified Warm Cinematic Look)
   -------------------------------------------------------------------------- */
.editorial-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3.5vw, 44px);
}

.editorial-card {
  display: flex;
  flex-direction: column;
  text-align: center;
  position: relative;
  background-color: transparent;
}

.editorial-card-img-wrap {
  position: relative;
  border-radius: var(--radius-sm);
  overflow: hidden;
  margin-bottom: 20px;
  aspect-ratio: 3/4;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.editorial-card-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  filter: contrast(102%) brightness(98%) sepia(8%);
  transition: transform 0.6s var(--ease-luxury);
}

.editorial-card:hover .editorial-card-video {
  animation-play-state: paused;
}

.editorial-card-title {
  font-size: clamp(22px, 2.2vw, 30px);
  margin-bottom: 10px;
  line-height: 1.2;
}

.editorial-card-link {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.editorial-card-link::after {
  content: '→';
  transition: transform 0.3s ease;
}

.editorial-card:hover .editorial-card-link::after {
  transform: translateX(4px);
}

@media (max-width: 899px) {
  .editorial-grid-3 {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* --------------------------------------------------------------------------
   METHODOLOGY / EXPERIENCE (UNIFIED TABS SELECTOR)
   -------------------------------------------------------------------------- */
.experience-header-wrap {
  text-align: center;
  max-width: 780px;
  margin: 0 auto 50px;
}

.experience-tag-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-gold);
  background: rgba(176, 141, 87, 0.1);
  padding: 6px 16px;
  border-radius: var(--radius-pill);
  margin-bottom: 18px;
}

/* --------------------------------------------------------------------------
   THE BESPOKE EXPERIENCE (Split Editorial Showcase Architecture)
   -------------------------------------------------------------------------- */
.experience-section {
  position: relative;
  overflow: hidden;
  background-color: var(--bg-warm-stone);
}

.experience-split-wrap {
  display: grid;
  grid-template-columns: 1fr 1.32fr;
  gap: clamp(36px, 4.5vw, 68px);
  align-items: center;
  min-width: 0;
}

/* Left Column: Editorial Narrative */
.experience-narrative-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  min-width: 0;
}

.experience-tag-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: var(--radius-pill);
  background: rgba(176, 141, 87, 0.12);
  border: 1px solid rgba(176, 141, 87, 0.25);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7A5C28;
  margin-bottom: 22px;
}

.experience-tag-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-gold);
  box-shadow: 0 0 6px var(--color-gold-glow);
}

.experience-heading {
  font-family: var(--font-serif);
  font-size: clamp(34px, 3.8vw, 56px);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--text-dark);
  margin-bottom: 20px;
}

.serif-accent {
  font-style: italic;
  font-weight: 300;
  color: var(--text-dark);
}

.experience-desc {
  font-size: 15px;
  color: var(--text-dark-secondary);
  line-height: 1.8;
  margin-bottom: 30px;
  max-width: 46ch;
}

.experience-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.experience-btn-primary {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 13px 26px;
  border-radius: var(--radius-pill);
  background: var(--bg-charcoal);
  color: #ffffff !important;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.35s var(--ease-luxury);
  border: 1px solid var(--bg-charcoal);
  box-shadow: 0 4px 16px rgba(23, 20, 15, 0.12);
  cursor: pointer;
  text-decoration: none;
}

.experience-btn-primary:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(176, 141, 87, 0.3);
}

.experience-btn-primary svg {
  transition: transform 0.3s ease;
}

.experience-btn-primary:hover svg {
  transform: translateX(4px);
}

.experience-btn-secondary {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 13px 24px;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-dark) !important;
  border: 1px solid var(--border-light);
  display: inline-flex;
  align-items: center;
  transition: all 0.35s var(--ease-luxury);
  cursor: pointer;
  text-decoration: none;
}

.experience-btn-secondary:hover {
  border-color: var(--color-gold);
  color: var(--color-gold) !important;
  background: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.experience-trust-badges {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--text-dark-secondary);
  font-weight: 500;
  flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.trust-badge-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.trust-star {
  color: var(--color-gold);
  font-size: 11px;
}

.trust-badge-sep {
  color: var(--border-light);
}

/* Right Column: Full-Bleed Luxury Cards Showcase */
.experience-showcase-col {
  width: 100%;
  position: relative;
}

.experience-mobile-pills {
  display: none;
}

.experience-mobile-hint {
  display: none;
}

.experience-cards-track {
  display: flex;
  gap: 16px;
  width: 100%;
  align-items: stretch;
}

.experience-card-item {
  position: relative;
  flex: 1;
  min-height: 480px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.07), 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.22);
  transition: flex 0.65s var(--ease-luxury), transform 0.45s var(--ease-luxury), box-shadow 0.45s var(--ease-luxury), border-color 0.4s ease;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: var(--bg-charcoal);
  will-change: flex, transform;
}

.experience-card-item:hover,
.experience-card-item.is-expanded {
  flex: 1.4;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(176, 141, 87, 0.4);
}

.exp-card-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}

.exp-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  filter: contrast(103%) brightness(96%) saturate(102%);
  transition: filter 0.6s ease;
  will-change: transform;
}

.experience-card-item:hover .exp-card-media img {
  animation-play-state: paused;
  filter: contrast(106%) brightness(99%) saturate(106%);
}

.experience-card-item[data-index="0"] .exp-card-media img {
  object-position: center 15%;
}

.experience-card-item[data-index="1"] .exp-card-media img {
  object-position: center 18%;
}

.experience-card-item[data-index="2"] .exp-card-media img {
  object-position: center 30%;
}

.exp-card-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(15, 12, 10, 0.05) 0%,
    rgba(15, 12, 10, 0.25) 45%,
    rgba(15, 12, 10, 0.78) 72%,
    rgba(15, 12, 10, 0.95) 100%
  );
  z-index: 2;
  transition: opacity 0.4s ease;
}

/* Frosted Glass Circle Badge */
.exp-card-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dark);
  z-index: 5;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s var(--ease-luxury), background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}

.experience-card-item:hover .exp-card-badge {
  transform: scale(1.08) rotate(6deg);
  background: var(--color-gold);
  color: #ffffff;
  border-color: var(--color-gold);
  box-shadow: 0 6px 20px rgba(176, 141, 87, 0.4);
}

/* Card Content Plate */
.exp-card-content {
  position: relative;
  z-index: 5;
  padding: 22px 20px 24px;
  color: #ffffff;
  display: flex;
  flex-direction: column;
}

.exp-card-stage {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-gold-light);
  margin-bottom: 5px;
}

.exp-card-title {
  font-family: var(--font-serif);
  font-size: clamp(19px, 1.5vw, 24px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

.exp-card-desc {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.82);
  margin-bottom: 12px;
  font-weight: 400;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: opacity 0.3s ease;
}

.exp-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.exp-tag {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

/* --------------------------------------------------------------------------
   TESTIMONIAL CAROUSEL (3 Distinct Quotes, Rotating, Pagination Dots)
   -------------------------------------------------------------------------- */
.testimonial-section {
  text-align: center;
  position: relative;
  overflow: hidden;
}

.testimonial-carousel-container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  min-height: 240px;
}

.testimonial-slide {
  opacity: 0;
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s var(--ease-luxury), transform 0.6s var(--ease-luxury);
  transform: translateY(12px);
  pointer-events: none;
}

.testimonial-slide.active {
  opacity: 1;
  position: relative;
  transform: translateY(0);
  pointer-events: auto;
}

.testimonial-quote {
  font-family: var(--font-serif);
  font-size: clamp(24px, 3.2vw, 42px);
  line-height: 1.35;
  font-style: italic;
  color: var(--text-dark);
  margin-bottom: 28px;
  text-wrap: balance;
}

.testimonial-author {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-gold);
  font-style: normal;
}

.testimonial-location {
  font-size: 11px;
  color: var(--text-dark-secondary);
  margin-top: 4px;
}

/* Pagination Dots */
.testimonial-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 36px;
}

.testimonial-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid var(--color-gold);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
}

.testimonial-dot.active {
  background: var(--color-gold);
  transform: scale(1.2);
}

/* --------------------------------------------------------------------------
   VIDEO / MEDIA BLOCKS (Animated Play Button Overlay & Modal)
   -------------------------------------------------------------------------- */
.media-block-wrap {
  position: relative;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}

.media-block-video {
  width: 100%;
  height: clamp(380px, 50vh, 560px);
  object-fit: cover;
  display: block;
}

.media-play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(23, 20, 15, 0.3);
  transition: background 0.3s ease;
}

.media-block-wrap:hover .media-play-overlay {
  background: rgba(23, 20, 15, 0.15);
}

.play-button-pulse {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid var(--color-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 0 rgba(176, 141, 87, 0.5);
  animation: pulsePlay 2.2s infinite;
  transition: transform 0.3s var(--ease-luxury);
}

.media-block-wrap:hover .play-button-pulse {
  transform: scale(1.1);
}

.play-button-icon {
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid var(--color-gold);
  margin-left: 4px;
}

@keyframes pulsePlay {
  0% { box-shadow: 0 0 0 0 rgba(176, 141, 87, 0.6); }
  70% { box-shadow: 0 0 0 22px rgba(176, 141, 87, 0); }
  100% { box-shadow: 0 0 0 0 rgba(176, 141, 87, 0); }
}

.play-button-label {
  margin-top: 14px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

/* Video Modal */
.video-modal {
  position: fixed;
  inset: 0;
  z-index: 99990;
  background: rgba(10, 8, 6, 0.95);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s var(--ease-luxury), visibility 0.4s var(--ease-luxury);
}

.video-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.video-modal-close {
  position: absolute;
  top: 24px;
  right: 28px;
  background: none;
  border: none;
  color: #ffffff;
  font-size: 32px;
  cursor: pointer;
  line-height: 1;
}

.video-modal-inner {
  width: 100%;
  max-width: 1000px;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 4px;
  overflow: hidden;
}

.video-modal-player {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* --------------------------------------------------------------------------
   GALLERY MASONRY & LIGHTBOX
   -------------------------------------------------------------------------- */
.gallery-hero-section {
  min-height: 52vh;
  height: 52vh;
}

/* Luxury Category Filter Dock System */
.gallery-filter-dock {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 36px auto 16px;
  max-width: 100%;
}

.gallery-filter-scroll-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
}

.gallery-filter-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.gallery-filter-btn {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 10px 22px;
  border: 1px solid rgba(176, 141, 87, 0.35);
  border-radius: var(--radius-pill);
  background: rgba(176, 141, 87, 0.04);
  color: var(--text-dark-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.35s var(--ease-luxury);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gallery-filter-btn .filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  border-radius: var(--radius-pill);
  background: rgba(176, 141, 87, 0.12);
  color: var(--color-gold);
  transition: all 0.35s var(--ease-luxury);
}

.gallery-filter-btn:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
  background: rgba(176, 141, 87, 0.09);
  transform: translateY(-1px);
}

.gallery-filter-btn:active {
  transform: scale(0.98);
}

.gallery-filter-btn.active {
  background: rgba(176, 141, 87, 0.13);
  color: var(--color-gold);
  border: 1px solid var(--color-gold);
  box-shadow: 0 2px 14px rgba(176, 141, 87, 0.16), inset 0 0 0 1px rgba(176, 141, 87, 0.2);
  font-weight: 600;
}

.gallery-filter-btn.active .filter-count {
  background: var(--color-gold);
  color: #ffffff;
}

/* Results Actions & Quick Drawer Trigger */
.results-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.category-sheet-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid var(--border-gold);
  border-radius: var(--radius-pill);
  color: var(--color-gold);
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: all 0.25s ease;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}

.category-sheet-trigger:hover,
.category-sheet-trigger:active {
  background: var(--color-gold);
  color: #ffffff;
  transform: translateY(-1px);
}

/* Live Results Status Bar */
.gallery-results-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 0 auto 36px;
  text-align: center;
  font-family: var(--font-sans);
  font-size: 12.5px;
  letter-spacing: 0.06em;
  color: var(--text-dark-secondary);
  transition: opacity 0.3s ease;
}

.gallery-results-bar strong {
  color: var(--color-gold);
  font-weight: 700;
}

.results-reset-btn {
  background: rgba(20, 23, 19, 0.05);
  border: 1px solid rgba(20, 23, 19, 0.14);
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dark);
  cursor: pointer;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.25s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
}

.results-reset-btn:hover,
.results-reset-btn:active {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #ffffff;
  transform: translateY(-1px);
}

/* Mobile Category Bottom-Sheet Modal */
.category-sheet-modal {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s var(--ease-luxury), visibility 0.35s var(--ease-luxury);
}

.category-sheet-modal.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.category-sheet-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 15, 11, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: opacity 0.35s ease;
}

.category-sheet-panel {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
  background: var(--bg-ivory);
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
  padding: 12px 20px 36px;
  box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.2);
  border-top: 1px solid var(--border-gold);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease-luxury);
  max-height: 85vh;
  overflow-y: auto;
}

.category-sheet-modal.is-open .category-sheet-panel {
  transform: translateY(0);
}

.category-sheet-handle-bar {
  display: flex;
  justify-content: center;
  padding: 6px 0 14px;
}

.category-sheet-handle {
  width: 44px;
  height: 4.5px;
  border-radius: 999px;
  background: rgba(34, 30, 24, 0.22);
}

.category-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 14px;
}

.category-sheet-title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  color: var(--text-dark);
}

.category-sheet-close {
  background: rgba(34, 30, 24, 0.06);
  border: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  color: var(--text-dark);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
}

.category-sheet-close:active {
  background: rgba(34, 30, 24, 0.15);
}

.category-sheet-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.category-sheet-item {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 14px 16px;
  background: #ffffff;
  border: 1.5px solid var(--border-light);
  border-radius: 14px;
  text-align: left;
  cursor: pointer;
  transition: all 0.25s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
}

.category-sheet-item:active {
  transform: scale(0.98);
}

.category-sheet-item.active {
  border-color: var(--color-gold);
  background: rgba(176, 141, 87, 0.08);
  box-shadow: 0 4px 16px rgba(176, 141, 87, 0.15);
}

.sheet-item-radio {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--border-light);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.sheet-radio-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: transparent;
  transition: all 0.2s ease;
}

.category-sheet-item.active .sheet-item-radio {
  border-color: var(--color-gold);
}

.category-sheet-item.active .sheet-radio-dot {
  background: var(--color-gold);
}

.sheet-item-info {
  flex: 1;
  min-width: 0;
}

.sheet-item-name {
  display: block;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text-dark);
  margin-bottom: 2px;
}

.category-sheet-item.active .sheet-item-name {
  color: var(--color-gold);
}

.sheet-item-desc {
  display: block;
  font-size: 11.5px;
  color: var(--text-dark-secondary);
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sheet-item-count {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  color: var(--text-dark-secondary);
  background: rgba(34, 30, 24, 0.06);
  padding: 4px 9px;
  border-radius: var(--radius-pill);
  flex-shrink: 0;
}

.category-sheet-item.active .sheet-item-count {
  background: var(--color-gold);
  color: #ffffff;
}

.masonry-gallery-grid,
.editorial-gallery-container {
  display: block;
  column-count: 3;
  column-gap: 24px;
  max-width: 1140px;
  margin: 0 auto;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 0 !important;
  cursor: pointer;
  background: var(--bg-warm-stone);
  box-shadow: 0 4px 20px rgba(23, 20, 15, 0.05);
  display: inline-block;
  width: 100%;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: 24px;
  vertical-align: top;
  content-visibility: auto;
  contain-intrinsic-size: 1px 450px;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
  transition: transform 0.6s var(--ease-luxury), filter 0.6s var(--ease-luxury);
  display: block;
}


/* Aspect Ratio Tokens */
.gallery-item.item-portrait-tall {
  aspect-ratio: 3 / 4;
}

.gallery-item.item-portrait {
  aspect-ratio: 3 / 3.75;
}

.gallery-item.item-offset-top {
  aspect-ratio: 3 / 3.2;
}

.gallery-item.item-landscape {
  aspect-ratio: 16 / 10.5;
}

.gallery-item-overlay {
  position: absolute;
  inset: 0;
  padding: 24px 20px;
  background: linear-gradient(0deg, rgba(23, 20, 15, 0.85) 0%, rgba(23, 20, 15, 0.15) 50%, transparent 100%);
  color: #ffffff;
  opacity: 0;
  transition: opacity 0.35s ease;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.gallery-item:hover .gallery-item-overlay {
  opacity: 1;
}

.gallery-item-category {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 6px;
}

.gallery-item-title {
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.2;
}

/* Lightbox */
.lightbox-modal {
  position: fixed;
  inset: 0;
  z-index: 99995;
  background: rgba(14, 12, 9, 0.97);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s var(--ease-luxury), visibility 0.4s var(--ease-luxury);
}

.lightbox-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.lightbox-close {
  position: absolute;
  top: 24px;
  right: 28px;
  background: none;
  border: none;
  color: #ffffff;
  font-size: 32px;
  cursor: pointer;
  z-index: 10;
}

.lightbox-content-wrap {
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lightbox-img {
  max-width: 100%;
  max-height: 75vh;
  object-fit: contain;
  border-radius: 2px;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.6);
}

.lightbox-caption {
  color: var(--text-light);
  margin-top: 16px;
  text-align: center;
}

.lightbox-caption-title {
  font-family: var(--font-serif);
  font-size: 24px;
}

.lightbox-caption-cat {
  font-family: var(--font-sans);
  font-size: 11px;
  color: var(--color-gold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.lightbox-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.lightbox-arrow:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
}

.lightbox-prev { left: 24px; }
.lightbox-next { right: 24px; }

@media (max-width: 900px) {
  .masonry-gallery-grid,
  .editorial-gallery-container {
    column-count: 2;
    column-gap: 16px;
    display: block;
  }
  .gallery-item {
    margin-bottom: 16px;
  }
  .editorial-stagger-cluster {
    gap: 16px;
  }
  .stagger-col {
    gap: 16px;
  }
}

/* --------------------------------------------------------------------------
   ABOUT PAGE HERO TRIPTYCH & EDITORIAL COLLAGE
   -------------------------------------------------------------------------- */
.about-hero-triptych {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 40px);
  margin: 0 auto;
  max-width: 1100px;
}

.about-hero-aux-img {
  flex: 1;
  max-width: 240px;
  display: block;
}

.about-hero-center-img {
  flex: 2;
  max-width: 620px;
}

/* About Hero Crossfading 2s Slideshow */
.about-slideshow-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
}

.about-hero-center-img .about-slideshow-container {
  aspect-ratio: 1 / 1;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

.about-hero-aux-img .about-slideshow-container {
  aspect-ratio: 3 / 4;
}

.about-slideshow-container .about-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.95s cubic-bezier(0.25, 1, 0.5, 1);
  pointer-events: none;
}

.about-slideshow-container .about-slide.active {
  opacity: 1;
  pointer-events: auto;
}

.about-hero-aux-img .about-slideshow-container .about-slide {
  object-position: center 20%;
  opacity: 0;
}

.about-hero-aux-img .about-slideshow-container .about-slide.active {
  opacity: 0.9;
}

@media (max-width: 899px) {
  .about-hero-aux-img {
    display: none;
  }
}

.about-collage-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(40px, 6vw, 90px);
  align-items: center;
}

.about-collage-media {
  position: relative;
}

.about-primary-photo {
  width: 84%;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: none;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.14), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.about-floating-photo {
  position: absolute;
  bottom: -30px;
  right: 0;
  width: 46%;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: none;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.22), 0 6px 16px rgba(0, 0, 0, 0.1);
}

@media (max-width: 860px) {
  .about-collage-grid {
    grid-template-columns: 1fr;
  }
  .about-primary-photo {
    width: 85%;
  }
}

/* --------------------------------------------------------------------------
   FOUNDER CURTAIN REVEAL ANIMATION (LUXURY EDITORIAL)
   -------------------------------------------------------------------------- */
.founder-curtain-wrapper {
  position: relative;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
}

.founder-curtain-container {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  background-color: var(--bg-charcoal);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.16), 0 8px 24px rgba(0, 0, 0, 0.08);
  aspect-ratio: 2 / 3;
}

.founder-curtain-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transform: scale(1.12);
  transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s, filter 1.4s ease;
  filter: contrast(104%) brightness(98%);
}

.founder-curtain-wipe {
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, #17140F 0%, #2A241B 50%, #17140F 100%);
  z-index: 3;
  transform-origin: top center;
  transform: scaleY(1);
  transition: transform 1.3s cubic-bezier(0.77, 0, 0.175, 1) 0.2s;
  pointer-events: none;
}

.founder-curtain-wipe::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}

/* Revealed State */
.founder-curtain-container.is-revealed .founder-curtain-wipe,
.founder-curtain-container:hover .founder-curtain-wipe {
  transform: scaleY(0);
}

.founder-curtain-container.is-revealed .founder-curtain-img {
  transform: scale(1);
}

.founder-role-caption {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FFFFFF;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
  z-index: 4;
  padding: 0 16px;
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.8s ease 0.6s, transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.6s;
}

.founder-curtain-container.is-revealed .founder-role-caption {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 480px) {
  .founder-role-caption {
    bottom: 16px;
    font-size: 10px;
    letter-spacing: 0.16em;
  }
}

/* --------------------------------------------------------------------------
   EDITORIAL ARCHED CONTACT DESIGN (INSPIRED BY ARCHED MINIMALIST LUXURY)
   -------------------------------------------------------------------------- */
.contact-editorial-section {
  padding: 60px 0 100px 0;
  background-color: var(--bg-ivory);
}

.contact-layout-split {
  display: grid;
  grid-template-columns: minmax(0, 440px) 1fr;
  gap: clamp(24px, 4vw, 60px);
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

/* Iconic Cathedral / Roman Arch Silhouette Card */
.contact-arch-card {
  background: #FFFFFF;
  border: 1px solid rgba(20, 23, 19, 0.12);
  border-radius: 240px 240px 24px 24px;
  padding: 64px 36px 44px 36px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.05), 0 2px 10px rgba(0, 0, 0, 0.02);
  position: relative;
  text-align: center;
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s ease;
}

.contact-arch-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.08), 0 4px 16px rgba(176, 141, 87, 0.12);
}

/* 4-Point Sparkle Star on Top Right of the Arch */
.contact-arch-sparkle {
  position: absolute;
  top: 44px;
  right: 36px;
  width: 24px;
  height: 24px;
  color: #141713;
  animation: sparkleTwinkle 3.5s ease-in-out infinite;
}

@keyframes sparkleTwinkle {
  0%, 100% { transform: scale(0.9) rotate(0deg); opacity: 0.75; }
  50% { transform: scale(1.2) rotate(90deg); opacity: 1; filter: drop-shadow(0 0 5px rgba(176, 141, 87, 0.6)); }
}

/* Lotus / Botanical Studio Emblem */
.contact-arch-emblem {
  width: 50px;
  height: 50px;
  margin: 0 auto 12px auto;
  display: block;
  color: #141713;
}

.contact-arch-brand {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-charcoal);
  margin-bottom: 6px;
}

.contact-arch-title {
  font-family: var(--font-secondary);
  font-size: clamp(38px, 4.2vw, 50px);
  font-weight: 400;
  line-height: 1.1;
  color: #141713;
  margin-bottom: 36px;
}

/* Contact Channel Rows */
.contact-arch-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: left;
  margin-bottom: 38px;
}

.contact-arch-item {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: #242424;
  padding: 8px 12px;
  border-radius: 999px;
  transition: all 0.3s ease;
}

.contact-arch-item:hover {
  background: rgba(176, 141, 87, 0.08);
  color: #141713;
  transform: translateX(4px);
}

.contact-arch-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #141713;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

.contact-arch-item:hover .contact-arch-icon {
  background: var(--color-gold);
  transform: scale(1.06);
}

.contact-arch-icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.contact-arch-text {
  font-family: var(--font-sans);
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.35;
  color: #1e1e1e;
}

.contact-arch-sub {
  font-size: 11px;
  color: var(--text-dark-secondary);
  display: block;
}

.contact-arch-callout {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #141713;
  padding-top: 22px;
  border-top: 1px solid rgba(20, 23, 19, 0.08);
}

/* Complementary Inquiry Form Card */
.contact-form-panel {
  background: #FFFFFF;
  border: 1px solid rgba(20, 23, 19, 0.12);
  border-radius: 28px;
  padding: clamp(28px, 3.8vw, 48px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.05);
}

.contact-form-panel .form-label {
  color: #141713;
  font-weight: 600;
}

.contact-form-panel .form-input,
.contact-form-panel .form-textarea,
.contact-form-panel .form-select {
  background: var(--bg-ivory);
  border: 1px solid rgba(20, 23, 19, 0.15);
  color: #141713;
}

.contact-form-panel .form-input:focus,
.contact-form-panel .form-textarea:focus,
.contact-form-panel .form-select:focus {
  background: #FFFFFF;
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(176, 141, 87, 0.16);
}

.contact-form-panel .form-select option {
  background: #FFFFFF;
  color: #141713;
}

.contact-form-panel .form-step-pill {
  border-color: rgba(20, 23, 19, 0.15);
  color: var(--text-dark-secondary);
}

.contact-form-panel .form-step-pill.active {
  background: #141713;
  border-color: #141713;
  color: #FFFFFF;
}

.contact-form-panel .btn-secondary-step {
  border: 1px solid rgba(20, 23, 19, 0.2);
  color: #141713;
  background: transparent;
}

.contact-form-panel .btn-secondary-step:hover {
  background: rgba(20, 23, 19, 0.05);
}

/* WhatsApp Submit Button - High-Conversion Luxury Styling */
.btn-whatsapp-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 16px 28px;
  background: #4D644F;
  color: #FAF8F5;
  font-family: var(--font-sans);
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  border: 1px solid rgba(176, 141, 87, 0.4);
  border-radius: var(--radius-sm);
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(77, 100, 79, 0.25);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.btn-whatsapp-submit:hover {
  background: #3B503D;
  border-color: var(--color-gold);
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(20, 23, 19, 0.3);
}

.btn-whatsapp-submit:active {
  transform: translateY(0);
}

.btn-whatsapp-submit .whatsapp-btn-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  fill: var(--color-gold);
  transition: fill 0.25s ease;
}

.btn-whatsapp-submit:hover .whatsapp-btn-icon {
  fill: #FAF8F5;
}

@media (max-width: 960px) {
  .contact-layout-split {
    grid-template-columns: 1fr;
    gap: 32px;
    width: 100%;
  }
  .contact-arch-card {
    max-width: 440px;
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 48px 20px 32px 20px;
    border-radius: 160px 160px 20px 20px;
  }
  .contact-form-panel {
    width: 100%;
    box-sizing: border-box;
  }
}

@media (max-width: 480px) {
  .contact-editorial-section {
    padding: 36px 0 60px 0;
  }
  .contact-arch-card {
    padding: 40px 16px 28px 16px;
    border-radius: 120px 120px 16px 16px;
  }
  .contact-arch-brand {
    font-size: 11px;
    letter-spacing: 0.15em;
  }
  .contact-arch-title {
    font-size: 28px;
    margin-bottom: 24px;
  }
  .contact-arch-text {
    font-size: 13.5px;
    word-break: break-word;
  }
  .contact-form-panel {
    padding: 20px 14px;
    border-radius: 16px;
  }
  .contact-step-indicator-bar {
    gap: 6px;
    margin-bottom: 24px;
  }
  .form-step-pill {
    padding: 6px 10px;
    font-size: 10px;
    gap: 4px;
    letter-spacing: 0.06em;
  }
}

.contact-step-indicator-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}

.form-step-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-light-secondary);
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--border-dark);
  background: transparent;
  transition: all 0.3s ease;
  cursor: pointer;
}

.form-step-pill.active {
  color: #ffffff;
  background: var(--color-gold);
  border-color: var(--color-gold);
  box-shadow: 0 4px 14px rgba(176, 141, 87, 0.3);
}

.form-step-pill.completed {
  color: var(--color-gold);
  border-color: var(--color-gold);
}

.form-step-pane {
  display: none;
}

.form-step-pane.active {
  display: block;
  animation: fadeInStep 0.4s var(--ease-luxury);
}

@keyframes fadeInStep {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-group {
  margin-bottom: 24px;
}

.form-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-light);
  margin-bottom: 10px;
}

/* Burgundy Required Star (NO PURE RED) */
.required-star {
  color: var(--color-burgundy);
  margin-left: 4px;
  font-weight: 700;
}

/* Custom Styled Inputs */
.form-input, .form-textarea, .form-select {
  width: 100%;
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--text-light);
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-sm);
  padding: 14px 18px;
  transition: all 0.3s ease;
  outline: none;
}

.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color: var(--color-gold);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 0 0 3px rgba(176, 141, 87, 0.18);
}

/* Custom Select Styling (No native chrome) */
.form-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23B08D57' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  cursor: pointer;
}

.form-select option {
  background: var(--bg-charcoal);
  color: var(--text-light);
}

/* Custom Styled Radio Buttons (NO DEFAULT BLUE DOTS) */
.custom-radio-group {
  display: flex;
  gap: 24px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.custom-radio-label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13.5px;
  color: var(--text-light-secondary);
}

.custom-radio-label input[type="radio"] {
  appearance: none;
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--color-gold);
  border-radius: 50%;
  outline: none;
  background: transparent;
  display: grid;
  place-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.custom-radio-label input[type="radio"]::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  transform: scale(0);
  transition: 0.2s transform ease-in-out;
  background-color: var(--color-gold);
}

.custom-radio-label input[type="radio"]:checked::before {
  transform: scale(1);
}

.custom-radio-label input[type="radio"]:checked {
  border-color: var(--color-gold);
  box-shadow: 0 0 8px var(--color-gold-glow);
}

.form-nav-btn-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
}

.btn-secondary-step {
  background: transparent;
  border: 1px solid var(--border-dark);
  color: var(--text-light);
  padding: 12px 26px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}

@media (max-width: 768px) {
  .form-grid-2 {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   FOOTER (Warm Color Graded Instagram Strip & Luxury Typography)
   -------------------------------------------------------------------------- */
.site-footer {
  background-color: var(--bg-charcoal);
  color: var(--text-light);
  padding-top: 70px;
  padding-bottom: 36px;
  border-top: 1px solid var(--border-dark);
  position: relative;
  z-index: 10;
}

/* --------------------------------------------------------------------------
   MINIMAL LUXURY LOVE STORIES SHOWCASE (DUAL-LAYER B&W BG & FOREGROUND SLIDER)
   -------------------------------------------------------------------------- */
.footer-stories-showcase {
  width: 100%;
  max-width: 100%;
  margin: 0 auto 72px;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  padding: clamp(28px, 3.5vw, 44px);
  background-color: #0E0D0B;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 64px -16px rgba(0, 0, 0, 0.85);
}

/* Ambient Black & White Background Track - Smooth Slide */
.footer-stories-bg-track {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

.footer-story-bg-slide {
  position: absolute;
  inset: -15px;
  background-size: cover;
  background-position: center 35%;
  filter: grayscale(100%) contrast(120%) brightness(45%);
  opacity: 0;
  transform: translateX(100%);
  transition: transform 1.4s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.4s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity;
  pointer-events: none;
}

.footer-story-bg-slide.is-active {
  opacity: 0.65;
  transform: translateX(0);
  z-index: 2;
}

.footer-story-bg-slide.is-prev {
  opacity: 0;
  transform: translateX(-100%);
  z-index: 1;
}

.footer-story-bg-slide.from-left {
  transform: translateX(-100%);
}

.footer-story-bg-slide.to-right {
  transform: translateX(100%);
}

.footer-stories-bg-scrim {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(135deg, rgba(14, 13, 11, 0.9) 0%, rgba(14, 13, 11, 0.72) 45%, rgba(14, 13, 11, 0.95) 100%),
    radial-gradient(circle at 80% 30%, rgba(201, 160, 99, 0.08) 0%, transparent 65%);
  pointer-events: none;
  z-index: 2;
}

/* Foreground Content Container - Editorial 2-Col Split on Desktop */
.footer-stories-content-wrap {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 56px);
  align-items: center;
}

/* Foreground Frame & Slides - Smooth 1.2s Glide */
.footer-stories-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10.5;
  background-color: #0E0D0B;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.footer-story-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateX(100%);
  transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.2s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity;
}

.footer-story-slide.is-active {
  opacity: 1;
  transform: translateX(0);
  z-index: 2;
}

.footer-story-slide.is-prev {
  opacity: 0;
  transform: translateX(-100%);
  z-index: 1;
}

.footer-story-slide.from-left {
  transform: translateX(-100%);
}

.footer-story-slide.to-right {
  transform: translateX(100%);
}

.footer-story-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}

/* Right Editorial Column */
.footer-stories-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 4px;
}

.footer-stories-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  color: var(--color-gold);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.stories-kicker-spark {
  font-size: 10px;
}

.footer-stories-title {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.12em;
  line-height: 1.25;
  margin: 0;
  text-transform: uppercase;
}

.footer-stories-desc {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
  max-width: 480px;
  margin: 16px 0 0;
  font-style: italic;
  font-weight: 300;
}

/* Active Story Meta Box */
.stories-active-meta {
  margin-top: 24px;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: opacity 0.3s ease;
}

.meta-label-row {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 4px;
}

.meta-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-gold);
  box-shadow: 0 0 6px var(--color-gold-glow);
}

.meta-label {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
}

.meta-title {
  font-family: var(--font-serif);
  font-size: 17px;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.meta-location {
  font-family: var(--font-sans);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.06em;
  margin-top: 2px;
}

/* Nav & Counter Row */
.footer-stories-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.stories-counter {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.7);
}

.stories-counter-curr {
  color: var(--color-gold);
  font-weight: 600;
}

.stories-progress-track {
  width: 50px;
  height: 2px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}

.stories-progress-bar {
  height: 100%;
  background: var(--color-gold);
  border-radius: 999px;
  transition: width 0.4s ease;
}

.footer-stories-arrows {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-shrink: 0;
}

.stories-arrow-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  padding: 8px 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.3s ease, transform 0.3s ease;
}

.stories-arrow-btn:hover {
  color: var(--color-gold);
  transform: scale(1.08);
}

.stories-arrow-btn:active {
  transform: scale(0.96);
}

@media (max-width: 991px) {
  .footer-stories-content-wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .footer-stories-showcase {
    padding: 24px 20px 28px;
    margin-bottom: 48px;
  }
  .footer-stories-bar {
    padding: 0;
  }
}

.footer-main-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.2fr;
  gap: clamp(30px, 4.5vw, 56px);
  padding-bottom: 50px;
  border-bottom: 1px solid var(--border-dark);
}

.footer-brand-logo {
  height: 30px;
  width: auto;
  margin-bottom: 18px;
  display: block;
}

.footer-brand-desc {
  font-size: 13.5px;
  color: var(--text-light-secondary);
  line-height: 1.75;
  max-width: 320px;
  margin-bottom: 16px;
}

.footer-location-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gold);
  background: rgba(176, 141, 87, 0.1);
  padding: 4px 10px;
  border-radius: 20px;
  border: 1px solid rgba(176, 141, 87, 0.2);
}

.footer-col-title {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 18px;
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 11px;
  padding: 0;
  margin: 0;
}

.footer-links a {
  font-size: 13.5px;
  color: var(--text-light-secondary);
  text-decoration: none;
  display: inline-block;
  transition: color 0.25s ease, transform 0.25s ease;
}

.footer-links a:hover {
  color: var(--color-gold);
  transform: translateX(3px);
}

.footer-inquiry-email {
  color: var(--text-light) !important;
  font-size: 13.5px;
  font-weight: 500;
  transition: color 0.25s ease;
}

.footer-inquiry-email:hover {
  color: var(--color-gold) !important;
}

.footer-cta-link {
  color: var(--color-gold) !important;
  font-weight: 600;
  font-size: 13px;
  margin-top: 6px;
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  letter-spacing: 0.04em;
}

.footer-cta-link:hover {
  color: var(--color-gold-light) !important;
  transform: translateX(4px) !important;
}

.footer-bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 28px;
  font-size: 12px;
  color: var(--text-light-secondary);
  flex-wrap: wrap;
  gap: 14px;
}

@media (max-width: 1024px) {
  .footer-insta-strip {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 46px;
  }
  .footer-main-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 36px;
  }
  .footer-main-grid > div:last-child {
    grid-column: span 3;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
  }
}

@media (max-width: 768px) {
  .site-footer {
    padding-top: 54px;
    padding-bottom: 30px;
  }
  .footer-insta-header {
    margin-bottom: 18px;
    gap: 10px;
  }
  .footer-insta-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 40px;
  }
  .footer-main-grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
  }
  .footer-main-grid > div:first-child {
    grid-column: span 2;
  }
  .footer-main-grid > div:last-child {
    grid-column: span 2;
  }
}

@media (max-width: 480px) {
  .site-footer {
    padding-top: 48px;
    padding-bottom: 28px;
  }
  .footer-insta-header {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
  }
  .footer-insta-handle {
    font-size: 11.5px;
  }
  .footer-insta-handle .handle-sub {
    display: none;
  }
  .footer-insta-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 36px;
  }
  .footer-main-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .footer-main-grid > div:first-child,
  .footer-main-grid > div:last-child {
    grid-column: span 1;
  }
  .footer-location-tag {
    font-size: 10px;
    padding: 4px 8px;
  }
  .footer-bottom-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    font-size: 11px;
  }
}

/* --------------------------------------------------------------------------
   EDITORIAL LUXURY FLOATING CONNECT WIDGET (CALL & WHATSAPP)
   -------------------------------------------------------------------------- */
.luxury-connect-widget {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 990;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  user-select: none;
}

/* Floating Trigger Button */
.luxury-connect-btn,
.luxury-concierge-pill,
.floating-whatsapp-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 22px;
  background: rgba(20, 23, 19, 0.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(176, 141, 87, 0.35);
  border-radius: 100px;
  color: #FAF8F5;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  outline: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.3s ease,
              border-color 0.3s ease,
              box-shadow 0.3s ease;
}

.luxury-connect-btn:hover,
.luxury-concierge-pill:hover,
.floating-whatsapp-btn:hover {
  background: rgba(28, 33, 27, 0.98);
  border-color: var(--color-gold);
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.38);
}

.luxury-connect-widget.is-open .luxury-connect-btn {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #17140F;
  box-shadow: 0 16px 36px rgba(176, 141, 87, 0.35);
}

.connect-btn-icon-wrapper {
  position: relative;
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.connect-btn-icon {
  position: absolute;
  width: 16px;
  height: 16px;
  stroke: var(--color-gold);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
}

.luxury-connect-widget.is-open .connect-btn-icon-wrapper .connect-btn-icon {
  stroke: #17140F;
}

.connect-icon-default {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.connect-icon-close {
  opacity: 0;
  transform: scale(0.6) rotate(-90deg);
}

.luxury-connect-widget.is-open .connect-icon-default {
  opacity: 0;
  transform: scale(0.6) rotate(90deg);
}

.luxury-connect-widget.is-open .connect-icon-close {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.connect-btn-label {
  line-height: 1;
}

/* Pulsing Status Dot */
.connect-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #25D366;
  position: relative;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6);
  animation: connectPulse 2.2s infinite;
}

.luxury-connect-widget.is-open .connect-pulse-dot {
  display: none;
}

@keyframes connectPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(37, 211, 102, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

/* Floating Popover: Crisp Solid & Rich Vibrant Theme */
.connect-popover {
  position: absolute;
  bottom: calc(100% + 14px);
  right: 0;
  width: 295px;
  background: #FFFFFF;
  border: 1.5px solid #E5E0D8;
  border-radius: 20px;
  padding: 16px 14px 14px 14px;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.16),
              0 4px 12px rgba(0, 0, 0, 0.06);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.96);
  transform-origin: bottom right;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.3s ease;
  pointer-events: none;
  z-index: 100;
}

.luxury-connect-widget.is-open .connect-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Header: Title + Status + Discrete Close */
.connect-popover-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2px 12px 2px;
  margin-bottom: 10px;
  border-bottom: 1.5px solid #F0ECE4;
}

.connect-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.connect-popover-title {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #17140F;
}

.connect-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 600;
  color: #1B833E;
  letter-spacing: 0.02em;
}

.connect-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #25D366;
  box-shadow: 0 0 0 2px rgba(37, 211, 102, 0.3);
}

.connect-card-close {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #F3EFEA;
  border: 1px solid #E2DDD4;
  color: #4A463F;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  transition: all 0.2s ease;
  padding: 0;
}

.connect-card-close:hover {
  background: #17140F;
  border-color: #17140F;
  color: #FFFFFF;
  transform: scale(1.08);
}

/* Options Container */
.connect-options {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.connect-option-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: #F8F6F2;
  border: 1.5px solid #EDE9E1;
  border-radius: 14px;
  text-decoration: none;
  color: #17140F;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.connect-option-item:hover {
  background: #FFFFFF;
  border-color: #B08D57;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(176, 141, 87, 0.22);
}

.connect-option-item:nth-child(2):hover {
  border-color: #25D366;
  box-shadow: 0 8px 22px rgba(37, 211, 102, 0.22);
}

.connect-option-item:active {
  transform: scale(0.98);
}

.connect-option-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.connect-option-item:hover .connect-option-icon {
  transform: scale(1.1);
}

/* Call Icon: Rich Solid Gold Gradient with Crisp White Icon */
.connect-option-icon.call-icon {
  background: linear-gradient(135deg, #C29B38 0%, #8E6F24 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 10px rgba(176, 141, 87, 0.35);
}

.connect-option-icon.call-icon svg {
  width: 17px;
  height: 17px;
  stroke: #FFFFFF;
}

/* WhatsApp Icon: Rich Vibrant Emerald Gradient with Crisp White Icon */
.connect-option-icon.whatsapp-icon {
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 10px rgba(37, 211, 102, 0.35);
}

.connect-option-icon.whatsapp-icon svg {
  width: 18px;
  height: 18px;
  fill: #FFFFFF;
}

.connect-option-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex-grow: 1;
  min-width: 0;
}

.connect-option-label {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #17140F;
}

.connect-option-desc {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 500;
  color: #5C5850;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.connect-option-arrow {
  width: 15px;
  height: 15px;
  stroke: #8A857C;
  flex-shrink: 0;
  transition: transform 0.2s ease, stroke 0.2s ease;
}

.connect-option-item:hover .connect-option-arrow {
  transform: translateX(3px);
  stroke: #17140F;
}

@media (max-width: 600px) {
  .luxury-connect-widget {
    bottom: 20px;
    right: 20px;
  }
  .connect-popover {
    width: calc(100vw - 36px);
    max-width: 300px;
  }
}

/* Mobile Menu Direct Touchpoints */
.minimal-menu-footer {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.minimal-menu-socials {
  display: flex;
  align-items: center;
  gap: 20px;
}

.minimal-menu-social-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-primary);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-light-secondary);
  text-decoration: none;
  transition: color 0.3s ease, transform 0.3s ease;
}

.minimal-menu-social-link:hover {
  color: var(--color-gold);
  transform: translateY(-2px);
}

.minimal-menu-social-link svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}


/* --------------------------------------------------------------------------
   EXACT DESIGN MATCH — VERTICAL PORTRAIT PROFILE CARD (NEW REFERENCE)
   -------------------------------------------------------------------------- */
.enquiry-card-section {
  padding: 80px 0;
  background-color: var(--bg-warm-stone);
}

.sophie-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 390px));
  justify-content: center;
  gap: 36px;
  width: 100%;
  margin: 0 auto;
}

@media (max-width: 820px) {
  .sophie-cards-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    gap: 32px;
  }
}

.sophie-profile-card {
  width: 100%;
  max-width: 390px;
  margin: 0 auto;
  background: #ffffff;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 30px 70px -15px rgba(50, 50, 90, 0.15), 0 12px 28px -6px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s var(--ease-luxury);
  position: relative;
}

.sophie-profile-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 45px 90px -15px rgba(50, 50, 90, 0.2), 0 18px 38px -8px rgba(0, 0, 0, 0.07);
}

.sophie-card-media {
  position: relative;
  width: 100%;
  height: 380px;
  overflow: hidden;
  background-color: #f0f0f2;
}

.sophie-portrait-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  border-radius: 0 !important;
  display: block;
}

.sophie-media-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.45) 50%, #ffffff 100%);
  pointer-events: none;
}

.sophie-card-body {
  padding: 24px 24px 28px 24px;
}

.sophie-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.sophie-name {
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 700;
  color: #111827;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.sophie-verified-badge {
  width: 20px;
  height: 20px;
  background: #0f9f38;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex-shrink: 0;
}

.sophie-verified-badge svg {
  width: 13px;
  height: 13px;
  fill: currentColor;
}

.sophie-bio {
  font-family: var(--font-sans);
  font-size: 14px;
  color: #4b5563;
  line-height: 1.5;
  margin-bottom: 24px;
}

.sophie-card-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 6px;
}

.sophie-follow-btn {
  background: #25D366;
  color: #ffffff;
  padding: 11px 24px;
  width: 100%;
  justify-content: center;
  border-radius: 9999px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  border: 1px solid #25D366;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.25);
}

.sophie-follow-btn:hover {
  background: #20bd5a;
  color: #ffffff;
  border-color: #20bd5a;
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.4);
  transform: translateY(-2px);
}

/* --------------------------------------------------------------------------
   MEDIUM SIZED PROFILE CARDS ON MOBILE VIEWPORTS
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .enquiry-card-section {
    padding: 48px 0;
  }

  .sophie-cards-grid {
    grid-template-columns: 1fr;
    max-width: 320px;
    gap: 24px;
    margin: 0 auto;
  }

  .sophie-profile-card {
    max-width: 320px;
    border-radius: 24px;
  }

  .sophie-card-media {
    height: 310px;
  }

  .sophie-media-gradient {
    height: 44px;
  }

  .sophie-card-body {
    padding: 16px 18px 20px 18px;
  }

  .sophie-name {
    font-size: 19px;
  }

  .sophie-bio {
    font-size: 13px;
    line-height: 1.45;
    margin-bottom: 16px;
  }

  .sophie-stat-chip {
    font-size: 13px;
    gap: 4px;
  }

  .sophie-follow-btn {
    padding: 8px 16px;
    font-size: 12px;
  }
}

/* Expandable Quick Inquiry Drawer / Form inside the card */
.enquiry-modal-drawer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease-luxury), opacity 0.4s ease, margin-top 0.4s ease, padding 0.4s ease;
  opacity: 0;
  margin-top: 0;
  padding: 0 16px;
  background: #fcfbf9;
  border-radius: 20px;
  border: 1px solid rgba(176, 141, 87, 0.2);
}

.enquiry-modal-drawer.active {
  max-height: 550px;
  opacity: 1;
  margin-top: 20px;
  padding: 20px;
}

.enquiry-form-title {
  font-family: var(--font-serif);
  font-size: 18px;
  color: #17140f;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.enquiry-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.enquiry-form-full {
  grid-column: span 1;
}

.enquiry-input-field {
  width: 100%;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #ffffff;
  font-family: var(--font-sans);
  font-size: 13px;
  color: #17140f;
  outline: none;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.enquiry-input-field:focus {
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(176, 141, 87, 0.15);
}

.enquiry-submit-btn {
  width: 100%;
  padding: 12px;
  background: #111827;
  color: #ffffff;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.03em;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.enquiry-submit-btn:hover {
  background: var(--color-gold);
}

.enquiry-success-msg {
  display: none;
  padding: 14px;
  background: rgba(176, 141, 87, 0.12);
  border: 1px solid var(--color-gold);
  border-radius: 12px;
  color: #17140f;
  font-size: 12px;
  text-align: center;
  font-weight: 500;
}

/* ==========================================================================
   CORE PHOTOGRAPHY STYLES 3-COLUMN SECTION
   ========================================================================== */
.services-three-col-section {
  background-color: var(--bg-ivory);
  padding: 90px 0 80px;
}

.services-columns-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  max-width: 1240px;
  margin: 0 auto;
}

.service-col-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 10px;
}

.service-col-icon-wrap {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  transition: transform 0.35s var(--ease-luxury);
}

.service-col-card:hover .service-col-icon-wrap {
  transform: translateY(-4px);
}

.service-col-icon {
  width: 44px;
  height: 44px;
  display: block;
}

.service-col-title {
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 700;
  color: #17140F;
  margin-bottom: 16px;
  letter-spacing: -0.01em;
  line-height: 1.3;
}

.service-col-desc {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 1.85;
  color: #5C5549;
  margin: 0 auto;
  text-wrap: pretty;
}

/* ==========================================================================
   AWWWARDS-LEVEL GRAND PRODUCTION WORKFLOW (FINAL SECTION)
   ========================================================================== */
.awwwards-workflow-section {
  background-color: var(--bg-warm-stone);
  padding: 130px 0 140px;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.awwwards-workflow-container {
  max-width: 840px;
  margin: 0 auto;
  position: relative;
}

.awwwards-workflow-right {
  position: relative;
  width: 100%;
}

.awwwards-timeline-track {
  position: relative;
  padding-left: 0;
}

/* Vertical Timeline Track Rails - Centered on 54px node column (54 / 2 = 27px) */
.timeline-rail-bg {
  position: absolute;
  top: 30px;
  bottom: 50px;
  left: 27px;
  transform: translateX(-50%);
  width: 2.5px;
  background-color: #E2DFD8;
  border-radius: 9999px;
  z-index: 1;
}

.timeline-rail-fill {
  position: absolute;
  top: 30px;
  left: 27px;
  transform: translateX(-50%) scaleY(0);
  width: 2.5px;
  height: calc(100% - 80px);
  background: linear-gradient(180deg, #17140F 0%, #3A352F 70%, var(--color-gold) 100%);
  border-radius: 9999px;
  z-index: 2;
  transform-origin: top center;
}

/* The Step List */
.awwwards-step-list {
  display: flex;
  flex-direction: column;
  gap: 48px;
  position: relative;
  z-index: 3;
}

.awwwards-step-item {
  display: grid;
  grid-template-columns: 54px 1fr;
  column-gap: 32px;
  align-items: flex-start;
  position: relative;
  cursor: pointer;
}

/* Luxury Circular Node (Always Aligned & Elegant) */
.step-node-col {
  width: 54px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 6px;
}

.step-node-halo {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1.5px solid #DDD8CE;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s var(--ease-luxury);
  position: relative;
  z-index: 3;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

.step-node-num {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  color: #7A7265;
  letter-spacing: 0.04em;
  transition: color 0.4s ease;
}

/* Active & Lit Step Node */
.awwwards-step-item.is-active .step-node-halo {
  background: #17140F;
  border-color: var(--color-gold);
  box-shadow: 0 0 0 6px rgba(176, 141, 87, 0.2), 0 8px 24px rgba(0, 0, 0, 0.15);
  transform: scale(1.08);
}

.awwwards-step-item.is-active .step-node-num {
  color: var(--color-gold);
}

/* Step Content Card - High Contrast & Uncompromised Legibility */
.step-content-card {
  background: #FFFFFF;
  border-radius: 20px;
  padding: 34px 38px;
  border: 1px solid rgba(23, 20, 15, 0.08);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.03);
  transition: transform 0.4s var(--ease-luxury), box-shadow 0.4s var(--ease-luxury), border-color 0.4s ease;
  position: relative;
}

.step-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.step-status-indicator {
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 4px 12px;
  border-radius: 9999px;
  background-color: #F6F4F0;
  color: #8C8477;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.awwwards-step-item.is-active .step-status-indicator {
  background-color: rgba(176, 141, 87, 0.12);
  color: #8C6A34;
  border-color: rgba(176, 141, 87, 0.25);
}

.awwwards-step-item.is-active .step-content-card {
  border-color: rgba(176, 141, 87, 0.45);
  box-shadow: 0 16px 44px rgba(23, 20, 15, 0.07), 0 0 0 1px rgba(176, 141, 87, 0.25);
  transform: translateX(4px);
}

.awwwards-step-item:hover .step-content-card {
  transform: translateY(-2px) translateX(4px);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.08);
}

.step-meta-num {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-gold);
}

.step-heading {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2.1vw, 30px);
  font-weight: 700;
  color: #17140F;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  line-height: 1.25;
}

.step-paragraph {
  font-family: var(--font-sans);
  font-size: 15.5px;
  line-height: 1.8;
  color: #4A443B;
  margin-bottom: 18px;
}

.step-tags-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.step-detail-tag {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  color: #6E6659;
  background-color: #F8F6F2;
  padding: 6px 14px;
  border-radius: 9999px;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.awwwards-step-item.is-active .step-detail-tag {
  background-color: rgba(176, 141, 87, 0.08);
  color: #6E5325;
  border-color: rgba(176, 141, 87, 0.2);
}

/* --------------------------------------------------------------------------
   WORKFLOW ENQUIRY CONVERSION BAR
   -------------------------------------------------------------------------- */
.workflow-cta-row {
  margin-top: 64px;
  padding-left: 86px;
  position: relative;
  z-index: 5;
}

.workflow-cta-card {
  background: #FFFFFF;
  border: 1px solid rgba(23, 20, 15, 0.08);
  border-radius: 18px;
  padding: 32px 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  box-shadow: 0 16px 40px -12px rgba(23, 20, 15, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.workflow-cta-card:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 160, 99, 0.45);
  box-shadow: 0 22px 50px -10px rgba(23, 20, 15, 0.1);
}

.workflow-cta-text {
  max-width: 480px;
}

.workflow-cta-eyebrow {
  display: block;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--color-gold);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.workflow-cta-title {
  font-family: var(--font-serif);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 400;
  color: #17140F;
  margin: 0 0 8px;
  line-height: 1.25;
}

.workflow-cta-sub {
  font-family: var(--font-sans);
  font-size: 13.5px;
  line-height: 1.6;
  color: #666055;
  margin: 0;
}

.workflow-enquiry-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 32px;
  background-color: #17140F;
  color: #FFFFFF;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 10px 24px -4px rgba(23, 20, 15, 0.3);
  transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.workflow-enquiry-btn:hover {
  background-color: var(--color-gold);
  color: #17140F;
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 14px 28px -4px var(--color-gold-glow);
}

.workflow-enquiry-btn svg {
  transition: transform 0.3s ease;
}

.workflow-enquiry-btn:hover svg {
  transform: translateX(4px);
}

@media (max-width: 768px) {
  .workflow-cta-row {
    padding-left: 0;
    margin-top: 40px;
  }
  .workflow-cta-card {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 20px;
    gap: 20px;
  }
  .workflow-enquiry-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   VERIFIED GOOGLE REVIEWS SLIDER (CONTACT ARCHED AESTHETIC)
   ========================================================================== */
.google-reviews-section {
  background-color: var(--bg-ivory);
  padding: 100px 0 95px;
  position: relative;
}

.reviews-header-center {
  max-width: 780px;
  margin: 0 auto 48px;
  text-align: center;
}

.reviews-arch-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
  border: 1px solid rgba(176, 141, 87, 0.35);
  border-radius: 9999px;
  padding: 8px 22px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  margin-bottom: 22px;
}

.reviews-badge-sparkle {
  width: 14px;
  height: 14px;
  color: var(--color-gold);
  flex-shrink: 0;
}

.reviews-badge-google {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  color: #17140F;
  letter-spacing: 0.02em;
}

.google-svg-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.reviews-badge-divider {
  color: #D1D5DB;
  font-weight: bold;
}

.reviews-badge-rating {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  color: #F4B400;
  letter-spacing: 0.04em;
}

.reviews-section-title {
  font-family: var(--font-serif);
  font-size: clamp(32px, 3.8vw, 48px);
  font-weight: 400;
  color: #17140F;
  margin-bottom: 14px;
  line-height: 1.15;
}

.reviews-section-sub {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.75;
  color: #5C5549;
  margin: 0 auto;
  max-width: 580px;
}

/* Arched Review Slider Box */
.reviews-slider-card {
  max-width: 900px;
  margin: 0 auto;
  background: #FFFFFF;
  border: 1px solid rgba(176, 141, 87, 0.25);
  border-radius: 28px;
  padding: 56px 64px 44px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.04);
  position: relative;
  overflow: hidden;
  text-align: center;
}

.reviews-track-container {
  position: relative;
  min-height: 250px;
}

.google-review-slide {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: translateY(14px);
  transition: opacity 0.5s var(--ease-luxury), transform 0.5s var(--ease-luxury), visibility 0.5s;
  pointer-events: none;
}

.google-review-slide.active {
  opacity: 1;
  visibility: visible;
  position: relative;
  transform: translateY(0);
  pointer-events: auto;
}

.review-quote-mark {
  font-family: var(--font-serif);
  font-size: 76px;
  line-height: 0.8;
  color: rgba(176, 141, 87, 0.28);
  margin-bottom: 10px;
  user-select: none;
}

.review-quote-text {
  font-family: var(--font-serif);
  font-size: clamp(19px, 2.1vw, 25px);
  font-style: italic;
  color: #1F1B16;
  line-height: 1.65;
  margin: 0 auto 32px;
  max-width: 780px;
  text-wrap: pretty;
}

.review-author-row {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-align: left;
  background: #FAF8F5;
  padding: 12px 24px;
  border-radius: 9999px;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.review-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.review-avatar-coral { background: linear-gradient(135deg, #FF6B6B, #EE5253); }
.review-avatar-gold  { background: linear-gradient(135deg, #B08D57, #8F6F3A); }
.review-avatar-blue  { background: linear-gradient(135deg, #4A90E2, #357ABD); }
.review-avatar-stone { background: linear-gradient(135deg, #6C757D, #495057); }
.review-avatar-sage  { background: linear-gradient(135deg, #577590, #43AA8B); }

.review-author-info {
  display: flex;
  flex-direction: column;
}

.review-author-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  color: #17140F;
}

.review-verified-badge {
  width: 15px;
  height: 15px;
  color: #10B981;
  display: inline-flex;
}

.review-verified-badge svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.review-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 12px;
  color: #8C8477;
  margin-top: 2px;
}

.review-stars {
  color: #F4B400;
  letter-spacing: 1.5px;
  font-size: 13px;
}

.review-meta-dot {
  color: #D1D5DB;
  font-weight: bold;
}

/* Slider Footer & Controls */
.reviews-slider-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.reviews-counter-pill {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  color: #17140F;
  background: #FAF8F5;
  padding: 6px 14px;
  border-radius: 9999px;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.reviews-counter-pill .counter-sep {
  color: #A39D93;
  margin: 0 2px;
}

.reviews-slider-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}

.reviews-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.15);
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 0;
}

.reviews-dot.active {
  background: var(--color-gold);
  width: 24px;
  border-radius: 9999px;
  box-shadow: 0 0 8px var(--color-gold-glow);
}

.reviews-slider-arrows {
  display: flex;
  align-items: center;
  gap: 10px;
}

.reviews-arrow-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #FAF8F5;
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: #17140F;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.reviews-arrow-btn:hover {
  background: #17140F;
  color: #FFFFFF;
  border-color: #17140F;
  transform: scale(1.05);
}

.reviews-google-btn-wrap {
  margin-top: 28px;
  text-align: center;
}

.btn-google-visit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #17140F;
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  padding: 12px 26px;
  border-radius: 9999px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  text-decoration: none;
}

.btn-google-visit:hover {
  background: var(--color-gold);
  color: #17140F;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px var(--color-gold-glow);
}

.reviews-badge-arrow,
.btn-arrow-diag {
  font-size: 14px;
  transition: transform 0.3s ease;
}

.btn-google-visit:hover .btn-arrow-diag {
  transform: translate(2px, -2px);
}

.btn-instagram-visit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #17140F;
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  padding: 12px 26px;
  border-radius: 9999px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  text-decoration: none;
}

.btn-instagram-visit:hover {
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(220, 39, 67, 0.3);
}

.btn-instagram-visit:hover .btn-arrow-diag {
  transform: translate(2px, -2px);
}

.footer-social-links {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}

.footer-social-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #d1d5db;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  text-decoration: none;
}

.footer-social-icon-btn svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.footer-social-icon-btn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #121212;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(212, 175, 55, 0.35);
}

/* --------------------------------------------------------------------------
   STUDIO ATELIER & VERIFIED GOOGLE MAPS SECTION (APPLE / GOOGLE MAPS CARD UI)
   -------------------------------------------------------------------------- */
.studio-atelier-map-section {
  padding: 60px 0 80px 0;
  background-color: #FFFFFF;
  color: var(--text-dark);
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(23, 20, 15, 0.06);
  border-bottom: 1px solid rgba(23, 20, 15, 0.06);
}

.studio-map-header-wrap {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 36px auto;
}

.studio-map-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 14px;
  background: rgba(176, 141, 87, 0.08);
  border: 1px solid rgba(176, 141, 87, 0.35);
  border-radius: var(--radius-pill);
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 18px;
  width: fit-content;
}

.studio-map-title {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--text-dark);
  margin-bottom: 14px;
}

.studio-map-desc {
  font-size: 14.5px;
  color: var(--text-dark-secondary);
  line-height: 1.8;
  margin: 0 auto;
}

/* Map Stage Container */
.studio-map-stage-wrap {
  position: relative;
  width: 100%;
  min-height: 530px;
  height: 540px;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 20px 48px -10px rgba(0, 0, 0, 0.09), 0 1px 3px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(23, 20, 15, 0.08);
  background-color: #f1f3f4;
}

/* Map Canvas Container */
.studio-map-canvas-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.studio-map-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Quick Action Button Over Map */
.studio-map-fullscreen-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-pill);
  padding: 8px 16px;
  color: #1e293b;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  transition: all 0.25s var(--ease-luxury);
}

.studio-map-fullscreen-btn:hover {
  background: #FFFFFF;
  color: var(--color-gold);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

/* Floating Card Anchor & Card UI */
.studio-maps-card-anchor {
  position: absolute;
  top: 24px;
  left: 24px;
  bottom: 24px;
  z-index: 10;
  display: flex;
  align-items: center;
  pointer-events: none;
}

.maps-preview-card {
  pointer-events: auto;
  width: 320px;
  max-width: 92vw;
  background: #FFFFFF;
  border-radius: 26px;
  padding: 12px 14px 18px 14px;
  box-shadow: 0 20px 48px -10px rgba(15, 23, 42, 0.22), 0 0 1px 1px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  user-select: none;
}

.maps-preview-card:hover {
  box-shadow: 0 24px 54px -8px rgba(15, 23, 42, 0.26), 0 0 1px 1px rgba(0, 0, 0, 0.08);
}

/* Pull Handle Bar */
.maps-card-handle {
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: #cbd5e1;
  margin: 2px auto 10px auto;
}

/* Media Banner with Indicators */
.maps-card-media-wrap {
  position: relative;
  width: 100%;
  height: 200px;
  border-radius: 18px;
  overflow: hidden;
  background-color: #0f172a;
}

.maps-media-slider {
  position: relative;
  width: 100%;
  height: 100%;
}

.maps-card-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, transform 0.95s cubic-bezier(0.25, 1, 0.5, 1);
}

.maps-card-photo.active {
  opacity: 1;
  visibility: visible;
}

/* Carousel Indicators */
.maps-media-dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 4;
}

.maps-dot {
  border: none;
  padding: 0;
  cursor: pointer;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.65);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.maps-dot.active {
  width: 14px;
  border-radius: 4px;
  background: #00D084;
}

/* Card Body Details */
.maps-card-body {
  padding: 13px 4px 2px 4px;
}

/* Row 1: Title & Options Menu */
.maps-card-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.maps-card-title {
  font-family: var(--font-sans);
  font-size: 19px;
  font-weight: 700;
  color: #0d3b38;
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.25;
}

.maps-card-more-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: all 0.2s ease;
}

.maps-card-more-btn:hover {
  background: #e2e8f0;
  color: #0d3b38;
  transform: scale(1.05);
}

/* Row 2: Star Rating */
.maps-card-rating-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
  font-family: var(--font-sans);
}

.maps-star-icon {
  font-size: 14px;
  line-height: 1;
}

.maps-rating-score {
  font-size: 13.5px;
  font-weight: 700;
  color: #0d3b38;
}

.maps-rating-count {
  font-size: 13px;
  font-weight: 600;
  color: #133c3e;
  opacity: 0.82;
}

/* Row 3: Status Badge & Hours */
.maps-card-status-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-family: var(--font-sans);
}

.maps-status-pill {
  background: #f1edfb;
  color: #7c3aed;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  line-height: 1.3;
}

.maps-hours-text {
  font-size: 12px;
  color: #94a3b8;
  font-weight: 500;
}

/* Row 4: Directions Action Button (Vibrant Emerald Pill) */
.maps-directions-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  background: #00D084;
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
  padding: 12.5px 20px;
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(0, 208, 132, 0.4);
  transition: all 0.25s var(--ease-luxury);
}

.maps-directions-btn:hover {
  background: #00b975;
  color: #FFFFFF;
  transform: translateY(-1.5px);
  box-shadow: 0 6px 22px rgba(0, 208, 132, 0.5);
}

.maps-directions-btn:active {
  transform: translateY(1px);
  box-shadow: 0 2px 10px rgba(0, 208, 132, 0.35);
}

/* ==========================================================================
   ZYAGO STUDIO CONTENT REF_V2 COMPONENTS (Pillars, Founder, FAQ)
   ========================================================================== */

/* 1. WHY ZYAGO STUDIO (6 PILLARS) */
.zyago-pillars-section {
  background-color: var(--bg-warm-stone);
  padding: 100px 0;
  border-top: 1px solid var(--border-light);
  border-bottom: 1px solid var(--border-light);
}

.zyago-pillars-header {
  text-align: center;
  max-width: 780px;
  margin: 0 auto 60px;
}

.zyago-pillars-header .uppercase-track {
  margin-bottom: 14px;
}

.zyago-pillars-title {
  font-family: var(--font-serif);
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.15;
  color: var(--text-dark);
  margin-bottom: 20px;
  letter-spacing: -0.01em;
}

.zyago-pillars-desc {
  font-size: 15.5px;
  color: var(--text-dark-secondary);
  line-height: 1.85;
}

.zyago-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

@media (max-width: 992px) {
  .zyago-pillars-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .zyago-pillars-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.zyago-pillar-card {
  background: #ffffff;
  border: 1px solid rgba(23, 20, 15, 0.08);
  border-radius: 4px;
  padding: 34px 28px;
  transition: all 0.35s var(--ease-luxury);
  position: relative;
  overflow: hidden;
}

.zyago-pillar-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--color-gold);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.zyago-pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(23, 20, 15, 0.06);
  border-color: var(--border-gold);
}

.zyago-pillar-card:hover::before {
  opacity: 1;
}

.zyago-pillar-num {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: var(--color-gold);
  margin-bottom: 12px;
  text-transform: uppercase;
}

.zyago-pillar-heading {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 500;
  color: var(--text-dark);
  margin-bottom: 12px;
  line-height: 1.25;
}

.zyago-pillar-text {
  font-size: 14.5px;
  color: var(--text-dark-secondary);
  line-height: 1.75;
  margin: 0;
}

/* 2. FOUNDER SECTION SPOTLIGHT */
.zyago-founder-section {
  background-color: #ffffff;
  padding: 100px 0;
}

.zyago-founder-quote-banner {
  background: var(--bg-charcoal);
  color: #ffffff;
  border-radius: 4px;
  padding: 44px 50px;
  margin-top: 50px;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-left: 4px solid var(--color-gold);
}

.zyago-founder-quote-text {
  font-family: var(--font-serif);
  font-size: clamp(22px, 2.8vw, 32px);
  font-style: italic;
  line-height: 1.4;
  margin: 0 auto 12px;
  max-width: 900px;
  color: #ffffff;
}

.zyago-founder-quote-author {
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-gold);
  font-weight: 600;
}

/* 3. FAQ ACCORDION SECTION */
.zyago-faq-section {
  background-color: #ffffff;
  padding: 100px 0;
  border-top: 1px solid var(--border-light);
}

.zyago-faq-container {
  max-width: 920px;
  margin: 0 auto;
}

.zyago-faq-header {
  text-align: center;
  margin-bottom: 56px;
}

.zyago-faq-title {
  font-family: var(--font-serif);
  font-size: clamp(34px, 4.4vw, 54px);
  color: var(--text-dark);
  margin-bottom: 14px;
  letter-spacing: -0.01em;
}

.zyago-faq-sub {
  font-size: 15px;
  color: var(--text-dark-secondary);
}

.faq-accordion-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.faq-accordion-item {
  border: 1px solid rgba(23, 20, 15, 0.08);
  border-radius: 4px;
  background: #ffffff;
  overflow: hidden;
  transition: all 0.25s ease;
}

.faq-accordion-item.is-open {
  border-color: var(--color-gold);
  box-shadow: 0 8px 24px rgba(23, 20, 15, 0.04);
}

.faq-accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  padding: 22px 28px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  color: var(--text-dark);
  transition: color 0.2s ease;
  gap: 18px;
}

.faq-accordion-btn:hover {
  color: var(--color-gold);
}

.faq-accordion-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(23, 20, 15, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.3s ease;
  font-size: 18px;
  color: var(--text-dark);
}

.faq-accordion-item.is-open .faq-accordion-icon {
  transform: rotate(45deg);
  background: var(--color-gold);
  color: #ffffff;
}

.faq-accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-luxury), padding 0.3s ease;
  padding: 0 28px;
}

.faq-accordion-item.is-open .faq-accordion-body {
  max-height: 400px;
  padding: 0 28px 26px;
}

.faq-accordion-body p {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--text-dark-secondary);
  margin: 0;
}

/* --------------------------------------------------------------------------
   PORTRAIT VISION 2-SLIDE SHOWCASE
   -------------------------------------------------------------------------- */
.portrait-vision-slider-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
  background-color: #121212;
  user-select: none;
}

.portrait-vision-slides-track {
  position: relative;
  width: 100%;
  height: 100%;
}

.portrait-vision-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.02);
  transition: opacity 0.7s cubic-bezier(0.25, 1, 0.5, 1), 
              transform 0.9s cubic-bezier(0.25, 1, 0.5, 1),
              visibility 0.7s;
  pointer-events: none;
}

.portrait-vision-photo.active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  pointer-events: auto;
}

/* Subtle luxury navigation arrows */
.portrait-vision-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(18, 18, 18, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.portrait-vision-slider-wrap:hover .portrait-vision-nav-btn {
  opacity: 1;
}

.portrait-vision-nav-btn:hover {
  background: rgba(18, 18, 18, 0.85);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-50%) scale(1.06);
}

.portrait-vision-nav-btn.prev {
  left: 14px;
}

.portrait-vision-nav-btn.next {
  right: 14px;
}

@media (max-width: 768px) {
  .portrait-vision-nav-btn {
    opacity: 0.85;
    width: 34px;
    height: 34px;
  }
}

/* Elegant Pill Pagination Dots */
.portrait-vision-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  z-index: 5;
}

.portrait-vision-dot {
  border: none;
  padding: 0;
  cursor: pointer;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.portrait-vision-dot.active {
  width: 22px;
  background: #ffffff;
}

/* --------------------------------------------------------------------------
   REDUCED MOTION SUPPORT
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .hero-bg-layer {
    animation: none !important;
  }
  .stamp-rotating-svg {
    animation: none !important;
  }
}

