    :root {
      --black: #070706;
      --char: #0f0e0c;
      --char-mid: #171512;
      --char-card: #1e1b17;
      --char-el: #252118;
      --gold: #3f5046;
      --gold-lt: #bcc9b7;
      --gold-20: rgba(31, 61, 46, 0.20);
      --gold-10: rgba(31, 61, 46, 0.10);
      --cream: #f3ede5;
      --cream-70: rgba(255, 255, 255, 0.70);
      --cream-40: rgba(255, 255, 255, 0.40);
      --cream-dim: #586259;
      --ivory: #f8f4ee;
      --ink: #18160e;
      --serif: 'Cormorant Garamond', 'Georgia', serif;
      --sans: 'Inter', system-ui, sans-serif;
      --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
      --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      zoom: 1.1;
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;
      overflow-x: hidden;
    }

    body {
      background: var(--char);
      color: var(--cream);
      font-family: var(--sans);
      font-weight: 300;
      line-height: 1.7;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
    }

    img,
    video {
      max-width: 100%;
      display: block;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    button {
      cursor: pointer;
      font-family: inherit;
      border: none;
      background: none;
    }

    .container {
      max-width: 1340px;
      margin: 0 auto;
      padding: 0 56px;
    }

    .section {
      padding: 130px 0;
    }

    @media(max-width:1100px) {
      .container {
        padding: 0 36px;
      }
    }

    @media(max-width:768px) {
      .container {
        padding: 0 24px;
      }

      .section {
        padding: 90px 0;
      }
    }

    /* ---- TYPOGRAPHY ---- */
    .eyebrow {
      display: inline-block;
      font-family: var(--sans);
      font-size: 0.59rem;
      font-weight: 600;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--gold);
    }

    .eyebrow.dark {
      color: #1f3d2e;
    }

    .gold-line {
      width: 40px;
      height: 1px;
      background: var(--gold);
      margin: 20px 0;
    }

    .gold-line.center {
      margin: 20px auto;
    }

    .gold-line.dark {
      background: #3f5046;
    }

    /* Shimmer text animation */
    @keyframes shimmer {
      0% {
        background-position: -400% center;
      }

      100% {
        background-position: 400% center;
      }
    }

    .shimmer-text {
      background: linear-gradient(90deg, var(--cream) 30%, var(--gold-lt) 50%, var(--cream) 70%);
      background-size: 400% 100%;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      animation: shimmer 6s linear infinite;
    }

    /* ---- SCROLL REVEAL ---- */
    .reveal {
      opacity: 0;
      transform: translateY(32px);
      transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
    }

    .reveal.in {
      opacity: 1;
      transform: none;
    }

    .d1 {
      transition-delay: 0.1s;
    }

    .d2 {
      transition-delay: 0.2s;
    }

    .d3 {
      transition-delay: 0.3s;
    }

    .d4 {
      transition-delay: 0.4s;
    }

    .d5 {
      transition-delay: 0.5s;
    }

    .d6 {
      transition-delay: 0.6s;
    }

    /* ---- BUTTONS ---- */
    .btn-gold {
      display: inline-block;
      font-size: 0.64rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--black);
      background: var(--gold);
      padding: 17px 50px;
      transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
      position: relative;
      overflow: hidden;
    }

    .btn-gold::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.12);
      opacity: 0;
      transition: opacity 0.3s;
    }

    .btn-gold:hover::after {
      opacity: 1;
    }

    .btn-gold:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 40px rgba(31, 61, 46, 0.35);
    }

    .btn-outline {
      display: inline-block;
      font-size: 0.64rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 400;
      color: var(--cream);
      border: 1px solid rgba(255, 255, 255, 0.28);
      padding: 17px 50px;
      transition: border-color 0.3s, background 0.3s;
    }

    .btn-outline:hover {
      border-color: var(--gold);
      background: rgba(31, 61, 46, 0.07);
    }

    .btn-outline-dark {
      display: inline-block;
      font-size: 0.64rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--ink);
      border: 1px solid rgba(24, 22, 14, 0.25);
      padding: 17px 50px;
      transition: border-color 0.3s, background 0.3s;
    }

    .btn-outline-dark:hover {
      border-color: var(--ink);
      background: rgba(24, 22, 14, 0.05);
    }

    /* ---- NAVIGATION ---- */
    .nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 400;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 6px 56px;
      transition: padding 0.4s var(--ease), background 0.5s, border-color 0.5s;
      border-bottom: 1px solid transparent;
    }

    .nav.scrolled {
      background: rgba(7, 7, 6, 0.97);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      padding: 6px 56px;
      border-bottom-color: var(--gold-10);
    }

    @media(max-width:1100px) {
      .nav {
        padding: 6px 32px;
      }

      .nav.scrolled {
        padding: 6px 32px;
      }
    }

    @media(max-width:768px) {
      .nav {
        padding: 6px 24px;
      }

      .nav.scrolled {
        padding: 6px 24px;
      }
    }

    .nav-brand {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 12px;
    }

    .nav-logo-img {
      height: 40px;
      width: auto;
      flex-shrink: 0;
      filter: invert(1) sepia(1) saturate(2.5) hue-rotate(5deg) brightness(1.25);
      mix-blend-mode: screen;
      transition: height 0.4s;
    }

    .nav.scrolled .nav-logo-img {
      height: 30px;
    }

    .nav-brand-text {
      display: flex;
      flex-direction: column;
      gap: 1px;
    }

    .nav-brand-name {
      font-family: var(--serif);
      font-size: 1.25rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--cream);
      line-height: 1;
      font-weight: 400;
      transition: font-size 0.4s;
    }

    .nav.scrolled .nav-brand-name {
      font-size: 1rem;
    }

    .nav-brand-sub {
      font-size: 0.48rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 500;
      opacity: 0.85;
    }

    .nav-links {
      list-style: none;
      display: flex;
      gap: clamp(18px, 2.4vw, 38px);
      align-items: center;
      flex-wrap: nowrap;
    }

    .nav-links a {
      font-size: 0.64rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.55);
      position: relative;
      transition: color 0.3s;
      white-space: nowrap;
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: -3px;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--gold);
      transition: width 0.35s var(--ease);
    }

    .nav-links a:hover {
      color: var(--cream);
    }

    .nav-links a:hover::after {
      width: 100%;
    }

    @media(max-width:1100px) {
      .nav-links {
        display: none;
      }
    }

    /* 25 Aug 2026, Stefan: the last nav item and the Book a Consultation
       button "cut off". Between 1100px and 1500px the rail needed about
       1463px to lay out, so the CTA overflowed the nav and body
       overflow-x:hidden clipped it. Tighten the rail instead of dropping the
       whole desktop nav to a burger on ordinary laptop widths. */
    @media (min-width: 1101px) and (max-width: 1640px) {
      .nav { padding-left: 22px !important; padding-right: 22px !important; }
      .nav-brand-sub { display: none !important; }
      .nav-brand { gap: 9px !important; }
      .nav-brand-name { font-size: 0.95rem !important; letter-spacing: 0.14em !important; }
      .nav-logo-img,
      .nav.scrolled .nav-logo-img { height: 46px !important; }
      .nav-links { gap: 13px !important; }
      .nav-links > li > a { font-size: 0.68rem; letter-spacing: 0.1em; }
      .nav-right { gap: 10px !important; }
      .nav-cta { padding-left: 15px !important; padding-right: 15px !important;
                 font-size: 0.58rem !important; letter-spacing: 0.12em !important; }
    }

    .nav-cta {
      font-size: 0.62rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--black);
      background: var(--gold);
      padding: 10px 24px;
      transition: background 0.3s;
      white-space: nowrap;
    }

    .nav-cta:hover {
      background: var(--gold-lt);
    }

    .nav-burger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      padding: 4px;
      cursor: pointer;
      color: var(--cream);
    }

    .nav-burger span {
      display: block;
      width: 24px;
      height: 1px;
      background: currentColor;
      transition: transform 0.3s, opacity 0.3s;
    }

    .nav-burger.open span:nth-child(1) {
      transform: translateY(6px) rotate(45deg);
    }

    .nav-burger.open span:nth-child(2) {
      opacity: 0;
    }

    .nav-burger.open span:nth-child(3) {
      transform: translateY(-6px) rotate(-45deg);
    }

    @media(max-width:1100px) {
      .nav-burger {
        display: flex;
      }

      .nav-cta {
        display: none;
      }
    }

    .mobile-menu {
      position: fixed;
      inset: 0;
      background: linear-gradient(168deg, #FCFAF6 0%, #F3ECE1 56%, #EEE6D8 100%);
      z-index: 390;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 30px;
      opacity: 0;
      pointer-events: none;
      transform: translateY(10px);
      transition: opacity 0.55s var(--ease), transform 0.6s var(--ease);
    }

    .mobile-menu.open {
      opacity: 1;
      pointer-events: all;
      transform: none;
    }

    .mobile-menu a {
      font-family: var(--serif);
      font-size: clamp(2rem, 6vw, 3.4rem);
      font-weight: 300;
      color: #243029;
      transition: color 0.3s;
    }

    .mobile-menu a:hover {
      color: #5F7E64;
    }

    .mm-sep {
      width: 40px;
      height: 1px;
      background: var(--gold-20);
    }

    .mm-book {
      font-size: 0.66rem !important;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-family: var(--sans) !important;
      font-weight: 600 !important;
      color: #F6EFE1 !important;
      background: #16301F;
      padding: 16px 46px;
      border-radius: 2px;
      box-shadow: 0 12px 30px -14px rgba(22,48,31,0.55);
      transition: background .3s var(--ease), transform .3s var(--ease);
    }

    .mm-book:hover {
      background: #1E4029;
      transform: translateY(-1px);
    }

    /* ---- HERO LOGO ---- */
    .hero-logo-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 36px;
    }

    .hero-logo-crest {
      width: clamp(130px, 16vw, 200px);
      height: auto;
      filter: invert(1) sepia(1) saturate(2.5) hue-rotate(5deg) brightness(1.3);
      mix-blend-mode: screen;
      animation: crestReveal 1.6s cubic-bezier(0.16, 1, 0.3, 1) both,
        crestPulse 6s ease-in-out 2.2s infinite;
    }

    @keyframes crestReveal {
      0% {
        opacity: 0;
        transform: scale(0.68) translateY(12px);
        filter: invert(1) sepia(1) saturate(2.5) hue-rotate(5deg) brightness(1.3) blur(10px);
      }

      55% {
        opacity: 1;
        transform: scale(1.04) translateY(-2px);
      }

      100% {
        opacity: 1;
        transform: scale(1) translateY(0);
        filter: invert(1) sepia(1) saturate(2.5) hue-rotate(5deg) brightness(1.3) blur(0);
      }
    }

    @keyframes crestPulse {

      0%,
      100% {
        transform: scale(1) translateY(0);
        filter: invert(1) sepia(1) saturate(2.5) hue-rotate(5deg) brightness(1.3);
      }

      50% {
        transform: scale(1.022) translateY(-3px);
        filter: invert(1) sepia(1) saturate(3) hue-rotate(5deg) brightness(1.45);
      }
    }

    .hero-logo-shimmer {
      position: relative;
      display: inline-block;
    }

    .hero-logo-shimmer::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(105deg, transparent 25%, rgba(31, 61, 46, 0.55) 50%, transparent 75%);
      background-size: 250% 100%;
      animation: crestShimmer 0.9s ease-out 1.8s 1;
      pointer-events: none;
      mix-blend-mode: overlay;
      border-radius: 50%;
    }

    @keyframes crestShimmer {
      0% {
        background-position: 130% center;
        opacity: 0;
      }

      20% {
        opacity: 1;
      }

      100% {
        background-position: -30% center;
        opacity: 0;
      }
    }

    /* ---- HERO ---- */
    .hero {
      position: relative;
      height: 100svh;
      min-height: 700px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      padding-bottom: 6vh;
      padding-top: 4vh;
    }
    @media(max-width: 768px) {
      .hero { padding-bottom: 5vh; padding-top: 2vh; }
    }

    /* Ivory-section sparkle canvas — drops the hero sparkle engine into ivory areas */
    .ivory-sparkle-canvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    .collections-section .ivory-sparkle-canvas,
    .services-section .ivory-sparkle-canvas,
    .pillars-section .ivory-sparkle-canvas { z-index: 1; }
    .collections-section .coll-head,
    .collections-section .coll-grid,
    .services-section .srv-head,
    .services-section .srv-grid,
    .pillars-section .pillars-header,
    .pillars-section .pillars-grid { position: relative; z-index: 3; }
    @media (prefers-reduced-motion: reduce) {
      .ivory-sparkle-canvas { display: none !important; }
    }

    #sparkleCanvas {
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
    }

    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      filter: brightness(1.9) contrast(1.05) saturate(1.1);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: transparent;
    }

    .hero-content {
      position: relative;
      z-index: 3;
      text-align: center;
      padding: 0 24px;
      max-width: 1100px;
      width: 100%;
    }

    @media(max-width:768px) {
      .hero-content {
        padding: 0 20px;
      }
      .hero-mini-crest {
        width: 120px !important;
        margin-bottom: 18px !important;
      }
      .hero-eyebrow {
        font-size: 0.5rem !important;
        letter-spacing: 0.18em !important;
        white-space: normal !important;
        line-height: 1.6 !important;
      }
      .hero-h1 {
        font-size: clamp(3rem, 12vw, 4.5rem) !important;
      }
      .hero-sub {
        font-size: 0.92rem !important;
        padding: 0 8px !important;
      }
      .hero-actions {
        flex-direction: column;
        align-items: center;
        gap: 12px !important;
      }
      .hero-actions .btn-gold,
      .hero-actions .btn-outline {
        width: 100%;
        max-width: 280px;
        text-align: center;
        padding: 16px 24px !important;
      }
    }

    .hero-eyebrow {
      position: relative;
      display: inline-block;
      font-size: clamp(0.95rem, 1.4vw, 1.3rem) !important;
      letter-spacing: 0.45em !important;
      text-transform: uppercase;
      font-weight: 700 !important;
      background: linear-gradient(90deg,
        #3f5046 0%,
        #bcc9b7 20%,
        #fbfbf7 50%,
        #bcc9b7 80%,
        #3f5046 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      color: transparent !important;
      text-shadow: none !important;
      filter: drop-shadow(0 2px 14px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 18px rgba(0, 0, 0, 0.7));
      opacity: 0;
      animation:
        fadeUp 1s 1.2s var(--ease-out) forwards,
        heroEyebrowShine 3.2s ease-in-out 2.2s infinite;
    }
    @keyframes heroEyebrowShine {
      0%, 100% { background-position: 0% center; }
      50%      { background-position: 100% center; }
    }

    .hero-rule {
      display: none;
    }

    .hero-h1 {
      font-family: var(--serif);
      font-size: clamp(4.5rem, 11vw, 11.5rem);
      font-weight: 300;
      line-height: 0.88;
      letter-spacing: -0.02em;
      color: var(--cream);
      opacity: 0;
      animation: fadeUp 1.1s 0.65s var(--ease-out) forwards;
    }

    .hero-h1 em {
      font-style: italic;
      display: block;
      font-size: 0.68em;
      color: rgba(255, 255, 255, 0.72);
      margin-top: 6px;
    }

    .hero-sub {
      font-family: var(--serif);
      font-size: clamp(1.2rem, 1.9vw, 1.55rem);
      font-weight: 400;
      font-style: italic;
      color: #fbfbf7;
      margin: 12px auto 18px;
      max-width: 680px;
      line-height: 1.45;
      letter-spacing: 0.005em;
      text-shadow:
        0 2px 18px rgba(0, 0, 0, 0.95),
        0 0 32px rgba(0, 0, 0, 0.7),
        0 0 60px rgba(0, 0, 0, 0.45);
      opacity: 0;
      animation: fadeUp 1s 1.05s var(--ease-out) forwards;
    }

    .hero-actions {
      display: flex;
      gap: 14px;
      justify-content: center;
      flex-wrap: wrap;
      opacity: 0;
      animation: fadeUp 1s 1.3s var(--ease-out) forwards;
    }

    .hero-scroll {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      margin-top: 22px;
      opacity: 0;
      animation: fadeIn 1s 2.2s ease forwards;
    }

    @keyframes scrollFlash {

      0%,
      100% {
        opacity: 0.35
      }

      50% {
        opacity: 1
      }
    }

    .hero-scroll span {
      font-size: 0.5rem;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--gold);
      animation: scrollFlash 1.8s ease-in-out infinite;
      text-shadow: 0 0 12px rgba(31, 61, 46, 0.7);
    }

    .hero-scroll-bar {
      width: 1px;
      height: 48px;
      background: linear-gradient(to bottom, rgba(31, 61, 46, 0.9), transparent);
      animation: pulse 2.5s ease infinite;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(26px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    @keyframes fadeIn {
      from {
        opacity: 0;
      }

      to {
        opacity: 1;
      }
    }

    @keyframes pulse {

      0%,
      100% {
        opacity: 0.28;
      }

      50% {
        opacity: 1;
      }
    }

    @keyframes marquee {
      from {
        transform: translateX(0);
      }

      to {
        transform: translateX(-50%);
      }
    }

    @keyframes waPing {
      0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
      }

      70% {
        box-shadow: 0 0 0 16px rgba(37, 211, 102, 0);
      }

      100% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
      }
    }

    @keyframes floatUp {

      0%,
      100% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-6px);
      }
    }

    /* ---- TRUST STRIP — slim full-width ribbon, deep emerald, white cosmic
            dust drifting across, gold-flashing items. ---- */
    #trust-strip {
      position: relative;
      height: 48px;
      background: var(--black);
      border-top: 1px solid var(--gold-20);
      border-bottom: 1px solid var(--gold-20);
      overflow: hidden;
      display: flex;
      align-items: center;
      isolation: isolate;
    }

    @media(max-width:768px) {
      #trust-strip {
        height: 40px;
      }
    }

    #trust-strip::before,
    #trust-strip::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 14%;
      z-index: 2;
      pointer-events: none;
    }

    #trust-strip::before {
      left: 0;
      background: linear-gradient(to right, var(--black) 30%, transparent);
    }

    #trust-strip::after {
      right: 0;
      background: linear-gradient(to left, var(--black) 30%, transparent);
    }

    .ts-dust {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    .ts-track {
      display: flex;
      align-items: center;
      width: max-content;
      /* 4 Aug audit: "fast-moving scrolling banner is difficult to read".
         60s -> 120s, and it pauses on hover or keyboard focus. */
      animation: marquee 120s linear infinite;
      will-change: transform;
      position: relative;
      z-index: 2;
    }

    .ts-track:hover,
    .ts-track:focus-within {
      animation-play-state: paused;
    }

    @media(max-width:768px) {
      /* the mobile track is physically shorter, so 90s lands at about the
         same px per second as the desktop 120s */
      .ts-track {
        animation-duration: 90s;
      }
    }

    .ts-item {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      padding: 0 36px;
      white-space: nowrap;
      font-family: var(--serif);
      font-size: 1.05rem;
      font-weight: 400;
      color: var(--cream);
      letter-spacing: 0.05em;
    }

    @media(max-width:768px) {
      .ts-item {
        font-size: 0.85rem;
        padding: 0 24px;
      }
    }

    .ts-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(31, 61, 46, 0.55);
      padding: 3px 11px;
      font-family: var(--sans);
      font-size: 0.54rem;
      letter-spacing: 0.2em;
      font-weight: 700;
      text-transform: uppercase;
      color: var(--gold);
      flex-shrink: 0;
    }

    .ts-sep {
      display: inline-block;
      width: 1px;
      height: 20px;
      background: rgba(31, 61, 46, 0.22);
      flex-shrink: 0;
      margin: 0 6px;
    }

    @media(prefers-reduced-motion:reduce) {
      #trust-strip {
        height: auto;
        padding: 20px 0;
      }

      #trust-strip::before,
      #trust-strip::after {
        display: none;
      }

      .ts-track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
        padding: 0 24px;
        gap: 14px;
      }

      .ts-sep {
        display: none;
      }

      .ts-item {
        padding: 4px 14px;
        border: 1px solid var(--gold-10);
      }
    }

    /* ---- HOUSE ---- */
    .house-section {
      padding: 0;
    }

    .house-frame {
      position: relative;
      height: 92vh;
      min-height: 600px;
      overflow: hidden;
    }

    .house-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: scale(1.06);
      transition: transform 9s var(--ease-out);
    }

    .house-frame.in .house-img {
      transform: scale(1);
    }

    .house-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(108deg, rgba(7, 7, 6, 0.94) 0%, rgba(7, 7, 6, 0.62) 36%, rgba(7, 7, 6, 0.12) 72%, transparent 100%);
      z-index: 1;
    }

    @media(max-width:768px) {
      .house-overlay {
        background: linear-gradient(to bottom, rgba(7, 7, 6, 0.18) 0%, rgba(7, 7, 6, 0.72) 48%, rgba(7, 7, 6, 0.96) 72%, rgba(7, 7, 6, 1) 100%);
      }
      .house-text p {
        color: rgba(255, 255, 255, 0.92) !important;
        text-shadow: 0 1px 8px rgba(0, 0, 0, 0.9);
      }
      .h-stat-lbl {
        color: rgba(255, 255, 255, 0.6) !important;
      }
    }

    .house-content {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      align-items: center;
    }

    .house-text {
      max-width: 600px;
      padding: 0 60px;
    }

    @media(max-width:768px) {
      .house-text {
        position: absolute;
        bottom: 56px;
        left: 0;
        right: 0;
        padding: 0 24px;
        max-width: 100%;
      }
    }

    .house-ghost {
      position: absolute;
      right: 3%;
      top: 50%;
      transform: translateY(-50%);
      font-family: var(--serif);
      font-size: clamp(10rem, 22vw, 22rem);
      font-weight: 300;
      color: rgba(31, 61, 46, 0.035);
      line-height: 1;
      pointer-events: none;
      user-select: none;
      letter-spacing: -0.03em;
      z-index: 2;
    }

    @media(max-width:900px) {
      .house-ghost {
        display: none;
      }
    }

    .house-text p {
      margin-top: 18px;
      font-size: 0.88rem;
      color: var(--cream-70);
      line-height: 1.95;
      max-width: 490px;
    }

    .house-stats {
      display: flex;
      gap: 46px;
      margin-top: 42px;
      flex-wrap: wrap;
    }

    .h-stat-num {
      font-family: var(--serif);
      font-size: 3rem;
      font-weight: 300;
      color: var(--gold);
      line-height: 1;
    }

    .h-stat-lbl {
      font-size: 0.57rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--cream-40);
      margin-top: 5px;
    }

    .house-link {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-top: 40px;
      font-size: 0.63rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--gold);
      transition: gap 0.35s;
    }

    .house-link:hover {
      gap: 18px;
    }

    /* ---- PILLARS ---- */
    .pillars-section {
      background: var(--black);
      padding: 0;
    }

    .pillars-header {
      text-align: center;
      max-width: 700px;
      margin: 0 auto;
      padding: 120px 24px 84px;
    }

    @media(max-width:768px) {
      .pillars-header {
        padding: 80px 24px 60px;
      }
    }

    .pillars-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 3px;
      position: relative;
      z-index: 2;
    }

    @media(max-width:900px) {
      .pillars-grid {
        grid-template-columns: 1fr;
      }
    }

    .pillar {
      position: relative;
      height: 640px;
      overflow: hidden;
      cursor: default;
    }

    @media(max-width:900px) {
      .pillar {
        height: 340px;
      }
    }

    .pillar-bg {
      position: absolute;
      inset: 0;
    }

    .pillar-bg video,
    .pillar-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 1.1s var(--ease);
    }

    .pillar:hover .pillar-bg video,
    .pillar:hover .pillar-bg img {
      transform: scale(1.07);
    }

    .pillar-shade {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, rgba(7, 7, 6, 0.97) 0%, rgba(7, 7, 6, 0.44) 50%, rgba(7, 7, 6, 0.06) 100%);
      transition: background 0.4s;
    }

    .pillar:hover .pillar-shade {
      background: linear-gradient(to top, rgba(7, 7, 6, 0.98) 0%, rgba(7, 7, 6, 0.70) 58%, rgba(7, 7, 6, 0.22) 100%);
    }

    .pillar-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 46px 40px 52px;
      z-index: 2;
    }

    .pillar-num {
      font-size: 0.56rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 12px;
      display: block;
    }

    .pillar-title {
      font-family: var(--serif);
      font-size: clamp(1.8rem, 2.5vw, 2.5rem);
      font-weight: 400;
      color: #ffffff;
      line-height: 1.1;
      margin-bottom: 14px;
    }

    .pillar-desc {
      font-size: 0.84rem;
      color: rgba(255, 255, 255, 0.82);
      line-height: 1.82;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.5s var(--ease), opacity 0.4s;
      opacity: 0;
    }

    .pillar:hover .pillar-desc {
      max-height: 130px;
      opacity: 1;
    }

    @media(hover:none) {
      .pillar-desc {
        max-height: 80px;
        opacity: 0.75;
      }
    }

    .pillar-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 20px;
      font-size: 0.63rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: #ffffff;
      transition: gap 0.3s;
    }

    .pillar:hover .pillar-link {
      gap: 16px;
    }

    /* ---- FOUNDER ---- */
    .founder-section {
      position: relative;
      background: radial-gradient(ellipse 80% 60% at 30% 50%, rgba(32, 24, 12, 1) 0%, rgba(10, 8, 6, 1) 55%, rgba(4, 3, 2, 1) 100%);
      overflow: hidden;
      padding: 0;
      /* Compress the whole section to ~2/3 its rendered scale (1.5x smaller).
         Zoom shrinks layout flow as well, so it tightens vertical rhythm
         too, unlike transform: scale which leaves empty space behind. */
      zoom: 0.667;
    }

    .fnd-ghost {
      position: absolute;
      font-family: var(--serif);
      font-size: 32vw;
      font-weight: 700;
      color: rgba(31, 61, 46, 0.028);
      white-space: nowrap;
      pointer-events: none;
      z-index: 0;
      user-select: none;
      right: -4%;
      bottom: -12%;
      letter-spacing: -0.04em;
      line-height: 1;
    }

    .fnd-grid {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: 55% 45%;
      min-height: 100vh;
    }

    @media(max-width:980px) {
      .fnd-grid {
        grid-template-columns: 1fr;
      }
    }

    /* LEFT — content */
    .fnd-left {
      padding: 110px 72px 110px 9%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
    }

    .fnd-vline {
      position: absolute;
      left: calc(9% - 28px);
      top: 80px;
      bottom: 80px;
      width: 1px;
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.45) 25%, rgba(31, 61, 46, 0.45) 75%, transparent);
    }

    @media(max-width:1200px) {
      .fnd-left {
        padding: 90px 48px 90px 72px;
      }
    }

    @media(max-width:768px) {
      .fnd-left {
        padding: 72px 24px;
      }

      .fnd-vline {
        display: none;
      }
    }

    .fnd-eyebrow {
      font-size: 0.56rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 14px;
    }

    .fnd-rule {
      width: 44px;
      height: 1px;
      background: var(--gold);
      opacity: 0.55;
      margin-bottom: 18px;
    }

    .fnd-name {
      font-family: var(--serif);
      font-size: clamp(3rem, 4.8vw, 5.2rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.02;
      letter-spacing: -0.01em;
    }

    /* Neon credential tags */
    .fnd-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 26px 0 34px;
    }

    .fnd-tag {
      font-size: 0.55rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      padding: 9px 20px;
      background: rgba(31, 61, 46, 0.04);
      border: 1px solid rgba(31, 61, 46, 0.18);
      color: rgba(31, 61, 46, 0.35);
      opacity: 0;
      transform: translateY(14px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }

    .fnd-tag.fnd-in {
      opacity: 1;
      transform: none;
    }

    /* 5 independent neon flicker animations */
    @keyframes neon1 {

      0%,
      32%,
      34%,
      100% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.75);
        background: rgba(31, 61, 46, 0.07);
        text-shadow: 0 0 5px rgba(228, 236, 223, 1), 0 0 14px rgba(31, 61, 46, 0.95), 0 0 30px rgba(31, 61, 46, 0.55), 0 0 60px rgba(31, 61, 46, 0.25);
        box-shadow: 0 0 6px rgba(31, 61, 46, 0.35), 0 0 20px rgba(31, 61, 46, 0.15), inset 0 0 8px rgba(31, 61, 46, 0.06);
      }

      33% {
        color: rgba(31, 61, 46, 0.18);
        border-color: rgba(31, 61, 46, 0.08);
        background: transparent;
        text-shadow: none;
        box-shadow: none;
      }
    }

    @keyframes neon2 {

      0%,
      58%,
      62%,
      64%,
      100% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.75);
        background: rgba(31, 61, 46, 0.07);
        text-shadow: 0 0 5px rgba(228, 236, 223, 1), 0 0 14px rgba(31, 61, 46, 0.95), 0 0 30px rgba(31, 61, 46, 0.55);
        box-shadow: 0 0 6px rgba(31, 61, 46, 0.35), 0 0 20px rgba(31, 61, 46, 0.15), inset 0 0 8px rgba(31, 61, 46, 0.06);
      }

      59%,
      63% {
        color: rgba(31, 61, 46, 0.2);
        border-color: rgba(31, 61, 46, 0.08);
        background: transparent;
        text-shadow: none;
        box-shadow: none;
      }

      60% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.6);
        text-shadow: 0 0 5px rgba(228, 236, 223, 0.8);
        box-shadow: 0 0 4px rgba(31, 61, 46, 0.2);
      }
    }

    @keyframes neon3 {

      0%,
      72%,
      76%,
      100% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.75);
        background: rgba(31, 61, 46, 0.07);
        text-shadow: 0 0 5px rgba(228, 236, 223, 1), 0 0 14px rgba(31, 61, 46, 0.95), 0 0 30px rgba(31, 61, 46, 0.55);
        box-shadow: 0 0 6px rgba(31, 61, 46, 0.35), 0 0 20px rgba(31, 61, 46, 0.15), inset 0 0 8px rgba(31, 61, 46, 0.06);
      }

      73%,
      75% {
        color: rgba(31, 61, 46, 0.15);
        border-color: rgba(31, 61, 46, 0.06);
        background: transparent;
        text-shadow: none;
        box-shadow: none;
      }

      74% {
        color: rgba(228, 236, 223, 0.5);
        text-shadow: 0 0 3px rgba(228, 236, 223, 0.5);
      }
    }

    @keyframes neon4 {

      0%,
      20%,
      22%,
      48%,
      52%,
      100% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.75);
        background: rgba(31, 61, 46, 0.07);
        text-shadow: 0 0 5px rgba(228, 236, 223, 1), 0 0 14px rgba(31, 61, 46, 0.95), 0 0 30px rgba(31, 61, 46, 0.55);
        box-shadow: 0 0 6px rgba(31, 61, 46, 0.35), 0 0 20px rgba(31, 61, 46, 0.15), inset 0 0 8px rgba(31, 61, 46, 0.06);
      }

      21%,
      49%,
      51% {
        color: rgba(31, 61, 46, 0.12);
        border-color: rgba(31, 61, 46, 0.05);
        background: transparent;
        text-shadow: none;
        box-shadow: none;
      }

      50% {
        color: rgba(228, 236, 223, 0.4);
      }
    }

    @keyframes neon5 {

      0%,
      88%,
      90%,
      92%,
      100% {
        color: #bcc9b7;
        border-color: rgba(31, 61, 46, 0.75);
        background: rgba(31, 61, 46, 0.07);
        text-shadow: 0 0 5px rgba(228, 236, 223, 1), 0 0 14px rgba(31, 61, 46, 0.95), 0 0 30px rgba(31, 61, 46, 0.55);
        box-shadow: 0 0 6px rgba(31, 61, 46, 0.35), 0 0 20px rgba(31, 61, 46, 0.15), inset 0 0 8px rgba(31, 61, 46, 0.06);
      }

      89%,
      91% {
        color: rgba(31, 61, 46, 0.1);
        border-color: rgba(31, 61, 46, 0.04);
        background: transparent;
        text-shadow: none;
        box-shadow: none;
      }
    }

    .fnd-tag.fnd-in:nth-child(1) {
      animation: neon1 4.2s ease-in-out infinite 0.1s;
    }

    .fnd-tag.fnd-in:nth-child(2) {
      animation: neon2 5.8s ease-in-out infinite 0.7s;
    }

    .fnd-tag.fnd-in:nth-child(3) {
      animation: neon3 3.9s ease-in-out infinite 1.4s;
    }

    .fnd-tag.fnd-in:nth-child(4) {
      animation: neon4 6.5s ease-in-out infinite 0.3s;
    }

    .fnd-tag.fnd-in:nth-child(5) {
      animation: neon5 4.8s ease-in-out infinite 2.1s;
    }

    .fnd-blockquote {
      font-family: var(--serif);
      font-size: clamp(1.1rem, 1.75vw, 1.6rem);
      font-style: italic;
      font-weight: 300;
      color: rgba(228, 236, 223, 0.95);
      line-height: 1.65;
      border-left: 2px solid var(--gold);
      padding-left: 26px;
      margin: 0 0 28px;
    }

    .fnd-p {
      font-size: 0.875rem;
      color: var(--cream-dim);
      line-height: 1.95;
      max-width: 490px;
      margin-top: 14px;
    }

    /* YouTube thumbnail */
    .fnd-yt {
      display: block;
      position: relative;
      margin-top: 38px;
      max-width: 420px;
      text-decoration: none;
      overflow: hidden;
      cursor: pointer;
    }

    .fnd-yt::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 1;
      border: 1px solid rgba(31, 61, 46, 0.35);
      transition: border-color 0.4s;
    }

    .fnd-yt:hover::before {
      border-color: rgba(31, 61, 46, 0.75);
    }

    .fnd-yt-img {
      width: 100%;
      aspect-ratio: 16/9;
      object-fit: cover;
      object-position: center;
      display: block;
      filter: brightness(0.55) sepia(0.15) contrast(1.08);
      transition: filter 0.45s, transform 0.6s;
    }

    .fnd-yt:hover .fnd-yt-img {
      filter: brightness(0.75) sepia(0.05) contrast(1.0);
      transform: scale(1.04);
    }

    .fnd-yt-over {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      background: rgba(0, 0, 0, 0.28);
      transition: background 0.4s;
    }

    .fnd-yt:hover .fnd-yt-over {
      background: rgba(0, 0, 0, 0.15);
    }

    .fnd-yt-btn {
      position: relative;
      width: 72px;
      height: 72px;
      border-radius: 50%;
      background: rgba(7, 6, 5, 0.7);
      border: 2px solid rgba(31, 61, 46, 0.7);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.35s, border-color 0.35s, background 0.35s;
    }

    .fnd-yt:hover .fnd-yt-btn {
      transform: scale(1.15);
      background: rgba(31, 61, 46, 0.15);
      border-color: var(--gold);
    }

    @keyframes ytRing {
      0% {
        box-shadow: 0 0 0 0 rgba(31, 61, 46, 0.7), 0 0 16px rgba(31, 61, 46, 0.3);
      }

      70% {
        box-shadow: 0 0 0 28px rgba(31, 61, 46, 0), 0 0 24px rgba(31, 61, 46, 0.15);
      }

      100% {
        box-shadow: 0 0 0 0 rgba(31, 61, 46, 0), 0 0 16px rgba(31, 61, 46, 0.3);
      }
    }

    .fnd-yt-btn {
      animation: ytRing 2.6s ease-out infinite;
    }

    .fnd-yt-lbl {
      font-size: 0.53rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: var(--cream);
      text-shadow: 0 1px 12px rgba(0, 0, 0, 0.9);
    }

    .fnd-yt-bar {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      padding: 12px 16px;
      display: flex;
      align-items: center;
      gap: 10px;
      background: linear-gradient(to top, rgba(0, 0, 0, 0.75), transparent);
    }

    .fnd-yt-bar span {
      font-size: 0.6rem;
      letter-spacing: 0.09em;
      color: rgba(228, 236, 223, 0.85);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* YouTube lightbox modal */
    .yt-modal {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 9900;
      background: rgba(0, 0, 0, 0.94);
      align-items: center;
      justify-content: center;
    }

    .yt-modal.open {
      display: flex;
    }

    .yt-modal-inner {
      position: relative;
      width: min(900px, 92vw);
    }

    .yt-modal-inner iframe {
      width: 100%;
      aspect-ratio: 16/9;
      border: none;
      display: block;
    }

    .yt-close {
      position: absolute;
      top: -44px;
      right: 0;
      background: none;
      border: none;
      color: rgba(31, 61, 46, 0.7);
      font-size: 1.4rem;
      cursor: pointer;
      letter-spacing: 0.1em;
      font-family: var(--sans);
      transition: color 0.2s;
      padding: 8px;
    }

    .yt-close:hover {
      color: var(--gold);
    }

    /* Timeline strip */
    .fnd-timeline {
      position: relative;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      padding: 28px 9% 0;
      overflow: hidden;
    }

    .fnd-tl-item {
      text-align: center;
      flex: 0 0 auto;
    }

    .fnd-tl-year {
      display: block;
      font-family: var(--serif);
      font-size: clamp(1.5rem, 2.5vw, 2.2rem);
      font-weight: 300;
      color: var(--gold);
      line-height: 1;
    }

    .fnd-tl-evt {
      display: block;
      font-size: 0.5rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--cream-dim);
      margin-top: 6px;
    }

    .fnd-tl-line {
      flex: 1;
      height: 1px;
      background: linear-gradient(to right, rgba(31, 61, 46, 0.4), rgba(31, 61, 46, 0.15) 50%, rgba(31, 61, 46, 0.4));
      margin: 0 20px;
      position: relative;
      top: -8px;
      max-width: 120px;
    }

    @media(max-width:600px) {
      .fnd-timeline {
        display: none;
      }
    }

    /* Stats */
    .fnd-stats {
      display: flex;
      margin-top: 44px;
      padding-top: 36px;
      border-top: 1px solid rgba(31, 61, 46, 0.12);
    }

    .fnd-stat {
      flex: 1;
      text-align: center;
    }

    .fnd-stat:not(:last-child) {
      border-right: 1px solid rgba(31, 61, 46, 0.1);
    }

    .fnd-stat-num {
      font-family: var(--serif);
      font-size: clamp(2.2rem, 3.5vw, 3rem);
      font-weight: 300;
      color: var(--gold);
      line-height: 1;
      display: block;
    }

    .fnd-stat-lbl {
      font-size: 0.53rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--cream-dim);
      margin-top: 8px;
      display: block;
    }

    /* RIGHT — portrait */
    .fnd-right {
      position: relative;
      overflow: hidden;
      min-height: 600px;
    }

    @keyframes fndKenBurns {
      0% {
        transform: scale(1) translateY(0);
      }

      100% {
        transform: scale(1.06) translateY(-2%);
      }
    }

    .fnd-portrait {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top center;
      filter: brightness(0.88) contrast(1.06);
      animation: fndKenBurns 18s ease-in-out alternate infinite;
    }

    .fnd-veil {
      position: absolute;
      inset: 0;
      background: linear-gradient(to left, rgba(7, 6, 5, 0) 35%, rgba(7, 6, 5, 0.72) 100%), linear-gradient(to bottom, rgba(7, 6, 5, 0.15) 0%, rgba(7, 6, 5, 0) 15%, rgba(7, 6, 5, 0) 70%, rgba(7, 6, 5, 0.95) 100%);
    }

    .fnd-portrait-line {
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 1px;
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.5) 30%, rgba(31, 61, 46, 0.5) 70%, transparent);
    }

    @keyframes fndBadgeIn {
      from {
        opacity: 0;
        transform: translateY(20px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    .fnd-badge {
      position: absolute;
      bottom: 44px;
      left: 32px;
      z-index: 3;
      background: rgba(7, 6, 5, 0.7);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(31, 61, 46, 0.22);
      padding: 22px 26px;
      animation: fndBadgeIn 1s 0.6s ease both;
    }

    .fnd-badge-name {
      font-family: var(--serif);
      font-size: 1.08rem;
      font-weight: 300;
      color: var(--cream);
      letter-spacing: 0.02em;
    }

    .fnd-badge-title {
      font-size: 0.52rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--gold);
      margin-top: 7px;
      line-height: 1.8;
    }

    /* Legacy: keep old award-sep for any remaining uses */
    .award-sep {
      width: 1px;
      height: 36px;
      background: rgba(31, 61, 46, 0.15);
    }

    .tag {
      font-size: 0.57rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--gold);
      border: 1px solid rgba(31, 61, 46, 0.22);
      padding: 6px 14px;
    }

    /* ---- COLLECTIONS — dynamic showcase, real WP products ---- */
    .collections-section {
      background: var(--ivory);
      padding: 36px 0 0;
    }

    .coll-tabs {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 4px 22px;
      max-width: 1280px;
      margin: 18px auto 22px;
      padding: 0 24px;
      position: relative;
      z-index: 3;
    }
    .coll-tab {
      background: transparent;
      border: 0;
      cursor: pointer;
      font-family: var(--sans, inherit);
      font-size: 0.62rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: var(--ink-dim);
      padding: 14px 10px;
      position: relative;
      transition: color 0.35s var(--ease-out), letter-spacing 0.35s var(--ease-out);
      font-weight: 600;
    }
    .coll-tab::after {
      content: '';
      position: absolute;
      left: 10px; right: 10px; bottom: 6px;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--gold-deep), transparent);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform 0.5s var(--ease-out);
    }
    .coll-tab:hover { color: var(--ink); }
    .coll-tab.active { color: var(--ink); letter-spacing: 0.3em; }
    .coll-tab.active::after { transform: scaleX(1); }
    .coll-tab:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; }

    .coll-blurb {
      text-align: center;
      max-width: 720px;
      margin: 0 auto 32px;
      padding: 0 24px;
      font-size: 1rem;
      line-height: 1.7;
      color: var(--ink-soft);
      font-style: italic;
      font-family: var(--serif);
      position: relative;
      z-index: 3;
      min-height: 1.7em;
    }

    /* Two-row marquee — each row carries half the products, 4 visible at a time,
       items keep sliding through. Top row drifts left, bottom row drifts right. */
    .coll-marquee {
      position: relative;
      width: 100%;
      padding: 12px 0 40px;
      z-index: 3;
    }
    .coll-track {                  /* now a wrapper for the two rows */
      display: flex;
      flex-direction: column;
      gap: 22px;
      width: 100%;
    }
    .coll-track.is-animating { animation: none !important; transform: none !important; }
    .coll-row {
      position: relative;
      width: 100%;
      overflow: hidden;
    }
    .coll-row-inner {
      display: flex;
      gap: 26px;
      padding: 0 24px;
      width: max-content;
      will-change: transform;
      animation: collMarqueeSlideL var(--coll-duration, 26s) linear infinite;
    }
    .coll-row-inner.coll-row-reverse {
      animation-name: collMarqueeSlideR;
    }
    .coll-marquee:hover .coll-row-inner { animation-play-state: paused; }
    @keyframes collMarqueeSlideL {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
    @keyframes collMarqueeSlideR {
      from { transform: translateX(-50%); }
      to   { transform: translateX(0); }
    }
    /* legacy keyframe kept so older overrides referencing it don't 404 */
    @keyframes collMarqueeSlide {
      0%   { transform: translateX(0); }
      100% { transform: translateX(var(--coll-shift, -50%)); }
    }
    @media (prefers-reduced-motion: reduce) {
      .coll-row-inner { animation: none !important; }
    }

    .coll-product {
      flex: 0 0 320px;          /* fixed card width so 4 fit on a ~1440px viewport */
      display: flex;
      flex-direction: column;
      background: linear-gradient(180deg, #ffffff 0%, #fdfaf3 100%);
      border: 1px solid rgba(31, 61, 46, 0.18);
      text-decoration: none;
      color: inherit;
      transition: transform 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out), border-color 0.6s;
      position: relative;
      overflow: visible;
      box-shadow: 0 4px 18px rgba(26, 24, 20, 0.05);
    }
    @media (max-width: 1100px) {
      .coll-product { flex: 0 0 280px; }
    }
    @media (max-width: 768px) {
      .coll-product { flex: 0 0 240px; }
    }
    .coll-product:hover {
      transform: translateY(-10px);
      box-shadow: 0 28px 70px rgba(26, 24, 20, 0.18), 0 4px 12px rgba(26, 24, 20, 0.06);
      border-color: var(--gold-deep);
    }

    /* === NEON GOLD GLOWING IMAGE FRAME === */
    .coll-product-img-wrap {
      position: relative;
      width: calc(100% - 24px);
      margin: 14px 12px 4px;
      aspect-ratio: 1 / 1;
      background: linear-gradient(160deg, #fbfbf7 0%, #e4ecdf 100%);
      overflow: visible;
      isolation: isolate;
    }
    /* Animated rotating gold conic gradient — the "neon" outer ring */
    .coll-product-img-wrap::before {
      content: '';
      position: absolute;
      inset: -2px;
      background: conic-gradient(
        from 0deg,
        rgba(31, 61, 46, 0.0) 0%,
        rgba(228, 236, 223, 0.95) 12%,
        rgba(188, 201, 183, 1) 22%,
        rgba(251, 251, 247, 1) 32%,
        rgba(63, 80, 70, 0.85) 45%,
        rgba(31, 61, 46, 0.0) 60%,
        rgba(228, 236, 223, 0.85) 80%,
        rgba(188, 201, 183, 1) 92%,
        rgba(31, 61, 46, 0.0) 100%
      );
      z-index: -2;
      animation: collFrameSpin 30s linear infinite;
      filter: blur(0.4px);
      opacity: 0.95;
    }
    /* Soft outer halo bloom */
    .coll-product-img-wrap::after {
      content: '';
      position: absolute;
      inset: -8px;
      background: conic-gradient(
        from 0deg,
        rgba(31, 61, 46, 0) 0%,
        rgba(228, 236, 223, 0.55) 22%,
        rgba(188, 201, 183, 0.45) 32%,
        rgba(228, 236, 223, 0) 60%,
        rgba(228, 236, 223, 0.45) 82%,
        rgba(31, 61, 46, 0) 100%
      );
      z-index: -3;
      filter: blur(14px);
      animation: collFrameSpin 34s linear infinite;
      opacity: 0.85;
    }
    @keyframes collFrameSpin {
      0%   { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }
    .coll-product:hover .coll-product-img-wrap::before {
      animation-duration: 22s;
      opacity: 1;
    }
    .coll-product:hover .coll-product-img-wrap::after {
      animation-duration: 26s;
      opacity: 1;
      inset: -14px;
      filter: blur(20px);
    }

    /* Inner cream face above the rotating gold ring — keeps the image area solid */
    .coll-product-img-inner {
      position: absolute;
      inset: 0;
      background: linear-gradient(160deg, #fbfbf7 0%, #e4ecdf 100%);
      overflow: hidden;
      z-index: 1;
    }
    .coll-product-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      padding: 30px;
      transition: transform 1.6s var(--ease-out);
      z-index: 2;
    }
    .coll-product:hover .coll-product-img { transform: scale(1.08); }

    /* Shimmer streak across the inner face */
    .coll-product-img-inner::after {
      content: '';
      position: absolute;
      top: -10%; left: -120%;
      width: 50%; height: 120%;
      background: linear-gradient(115deg, transparent 30%, rgba(251, 251, 247, 0.55) 50%, transparent 70%);
      pointer-events: none;
      transition: left 0.95s var(--ease-out);
      z-index: 3;
    }
    .coll-product:hover .coll-product-img-inner::after { left: 120%; }
    .coll-product-body {
      padding: 22px 26px 24px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex: 1;
      position: relative;
      z-index: 2;
    }
    .coll-product-cat-tag {
      font-size: 0.46rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--gold-deep);
      font-weight: 700;
    }
    .coll-product-name {
      font-family: var(--serif);
      font-size: 1.08rem;
      line-height: 1.32;
      color: var(--ink);
      font-weight: 400;
      min-height: 2.6em;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .coll-product-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-top: auto;
      padding-top: 14px;
      border-top: 1px solid rgba(31, 61, 46, 0.2);
    }
    .coll-product-price {
      font-family: var(--serif);
      font-size: 0.88rem;
      color: var(--gold-deep);
      letter-spacing: 0.05em;
    }
    .coll-product-price.poa {
      font-style: italic;
      color: var(--ink-dim);
      font-size: 0.56rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-family: var(--sans, inherit);
      font-weight: 600;
    }
    .coll-product-view {
      font-size: 0.54rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: var(--ink);
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 700;
    }
    .coll-product-view svg { transition: transform 0.35s var(--ease-out); }
    .coll-product:hover .coll-product-view svg { transform: translateX(6px); }

    /* Edge fades hidden — grid has no horizontal scroll to mask */
    .coll-fade {
      position: absolute;
      top: 0; bottom: 0;
      width: 120px;
      pointer-events: none;
      z-index: 6;
    }
    .coll-fade-l { left: 0; background: linear-gradient(to right, var(--ivory) 0%, rgba(255, 255, 255, 0) 100%); }
    .coll-fade-r { right: 0; background: linear-gradient(to left,  var(--ivory) 0%, rgba(255, 255, 255, 0) 100%); }
    @media (max-width: 768px) { .coll-fade { width: 36px; } }

    .coll-foot {
      text-align: center;
      padding: 4px 0 40px;
      position: relative;
      z-index: 3;
    }
    .coll-foot-cta {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-size: 0.62rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--ink);
      text-decoration: none;
      padding: 14px 28px;
      border: 1px solid rgba(31, 61, 46, 0.4);
      background: rgba(251, 251, 247, 0.7);
      font-weight: 700;
      transition: background 0.4s, border-color 0.4s, color 0.4s;
    }
    .coll-foot-cta:hover {
      background: var(--gold-deep);
      border-color: var(--gold-deep);
      color: #fff;
    }

    .coll-product-loading {
      aspect-ratio: 1 / 1.4;
      background: linear-gradient(110deg, #fbfbf7 30%, #fbfbf7 50%, #fbfbf7 70%);
      background-size: 220% 100%;
      animation: collShimmer 1.6s linear infinite;
    }
    @keyframes collShimmer {
      0% { background-position: 100% 0; }
      100% { background-position: -100% 0; }
    }

    .coll-head {
      text-align: center;
      max-width: 680px;
      margin: 0 auto 40px;
      padding: 0 24px;
    }

    .coll-head h2 {
      font-family: var(--serif);
      font-size: clamp(2.4rem, 4.5vw, 4.5rem);
      font-weight: 400;
      color: var(--ink);
      line-height: 1.06;
    }

    .coll-head p {
      margin-top: 18px;
      font-size: 0.87rem;
      color: #586259;
      line-height: 1.9;
      max-width: 520px;
      margin-left: auto;
      margin-right: auto;
    }

    .eyebrow.dark {
      color: #1f3d2e;
    }

    .gold-line.dark {
      background: #3f5046;
    }

    /* 4-card product grid */
    .coll-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 4px;
    }

    @media(max-width:1000px) {
      .coll-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:560px) {
      .coll-grid {
        grid-template-columns: 1fr;
      }
    }

    .coll-card {
      position: relative;
      overflow: hidden;
      cursor: pointer;
      aspect-ratio: 3/4;
      display: block;
    }

    .coll-card-hero {
      aspect-ratio: auto;
      grid-row: 1/3;
    }

    @media(max-width:1200px) {
      .coll-card-hero {
        grid-row: auto;
        aspect-ratio: 3/4;
      }
    }

    .coll-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      transition: transform 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      will-change: transform;
    }

    .coll-card:hover .coll-img {
      transform: scale(1.07);
    }

    /* Shade only exists on non-product cards */
    .coll-shade {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, rgba(7,7,6,0.95) 0%, transparent 30%);
      transition: background 0.5s;
    }

    .coll-card:not(.coll-card-hero) .coll-shade {
      display: none; /* no shade on product cards */
    }

    .coll-card:hover .coll-shade {
      background: linear-gradient(to top, rgba(7,7,6,0.97) 0%, transparent 35%);
    }

    .coll-border {
      position: absolute;
      inset: 0;
      z-index: 3;
      border: 1px solid rgba(31, 61, 46, 0);
      transition: border-color 0.45s;
      pointer-events: none;
    }

    .coll-card:hover .coll-border {
      border-color: rgba(31, 61, 46, 0.6);
    }

    .coll-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      padding: 26px 28px 32px;
    }

    .coll-cat {
      font-size: 0.50rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 7px;
      display: block;
      font-weight: 600;
    }

    .coll-title {
      font-family: var(--serif);
      font-size: clamp(1.3rem, 2vw, 2rem);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.1;
    }

    .coll-desc {
      font-size: 0.74rem;
      color: var(--cream-dim);
      line-height: 1.85;
      margin-top: 9px;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transition: max-height 0.5s ease, opacity 0.4s;
    }

    .coll-card:hover .coll-desc {
      max-height: 90px;
      opacity: 1;
    }

    .coll-cta {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-size: 0.59rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      margin-top: 16px;
      font-weight: 500;
      transition: gap 0.3s;
    }

    .coll-card:hover .coll-cta {
      gap: 14px;
    }

    @media(hover:none) {
      .coll-desc {
        max-height: 60px;
        opacity: 0.85;
      }
    }

    /* ---- SERVICES ---- */
    .services-section {
      background: var(--black);
      padding: 0 0 0;
    }

    .srv-head {
      text-align: center;
      max-width: 680px;
      margin: 0 auto;
      padding: 40px 24px 32px;
      position: relative;
      z-index: 2;
    }

    .srv-grid {
      display: grid;
      /* six tracks so an odd final row can be centred: each card spans two.
         The GIA Jewellery Professionals card was removed on 25 Aug 2026 per
         Stefan, leaving five, and a five-into-three grid left a visible hole. */
      grid-template-columns: repeat(6, 1fr);
      gap: 4px;
      position: relative;
      z-index: 2;
    }
    .srv-grid > .srv-card { grid-column: span 2; }
    /* with exactly five cards, centre the last two under the first three */
    .srv-grid > .srv-card:nth-child(4):nth-last-child(2) { grid-column: 2 / span 2; }
    .srv-grid > .srv-card:nth-child(5):nth-last-child(1) { grid-column: 4 / span 2; }

    @media(max-width:900px) {
      .srv-grid { grid-template-columns: repeat(4, 1fr); }
      .srv-grid > .srv-card,
      .srv-grid > .srv-card:nth-child(4):nth-last-child(2),
      .srv-grid > .srv-card:nth-child(5):nth-last-child(1) { grid-column: span 2; }
      /* five cards over two columns: the last one runs full width */
      .srv-grid > .srv-card:nth-child(5):nth-last-child(1) { grid-column: 2 / span 2; }
    }

    @media(max-width:560px) {
      .srv-grid { grid-template-columns: 1fr; }
      .srv-grid > .srv-card,
      .srv-grid > .srv-card:nth-child(4):nth-last-child(2),
      .srv-grid > .srv-card:nth-child(5):nth-last-child(1) { grid-column: 1 / -1; }
    }

    .srv-card {
      position: relative;
      aspect-ratio: 4/3;
      overflow: hidden;
      cursor: default;
    }

    .srv-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      filter: saturate(0.88) contrast(1.05) brightness(0.96);
      transition: filter 0.9s ease, transform 1.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      will-change: transform, filter;
    }

    .srv-card:hover .srv-img {
      filter: saturate(1) contrast(1.05) brightness(0.88);
      transform: scale(1.07);
    }

    .srv-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, rgba(7, 7, 6, 0.92) 0%, rgba(7, 7, 6, 0.22) 38%, transparent 100%);
      transition: background 0.5s;
    }

    .srv-card:hover .srv-overlay {
      background: linear-gradient(to top, rgba(7, 7, 6, 0.97) 0%, rgba(7, 7, 6, 0.52) 50%, rgba(7, 7, 6, 0.10) 100%);
    }

    @media(hover:none) {
      .srv-overlay {
        background: linear-gradient(to top, rgba(7, 7, 6, 0.95) 0%, rgba(7, 7, 6, 0.55) 35%, rgba(7, 7, 6, 0.15) 70%, transparent 100%);
      }
      .srv-desc {
        max-height: 120px;
        opacity: 1;
      }
    }

    .srv-num {
      position: absolute;
      top: 20px;
      right: 22px;
      z-index: 2;
      font-size: 0.48rem;
      letter-spacing: 0.3em;
      color: var(--gold);
      opacity: 0.6;
      font-weight: 600;
    }

    .srv-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      padding: 20px 24px 26px;
    }

    .srv-title {
      font-family: var(--serif);
      font-size: clamp(1.15rem, 1.7vw, 1.65rem);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.15;
    }

    .srv-desc {
      font-size: 0.72rem;
      color: #ece4d6;
      line-height: 1.85;
      margin-top: 8px;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transition: max-height 0.5s ease, opacity 0.4s;
      text-shadow: 0 1px 6px rgba(0,0,0,0.85), 0 0 18px rgba(0,0,0,0.55);
    }

    .srv-card:hover .srv-desc {
      max-height: 90px;
      opacity: 1;
    }

    .srv-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.54rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      margin-top: 12px;
      opacity: 0;
      transition: opacity 0.4s 0.05s, gap 0.3s;
    }

    .srv-card:hover .srv-link {
      opacity: 1;
      gap: 12px;
    }

    @media(hover:none) {

      .srv-desc {
        max-height: 120px;
        opacity: 1;
      }
      .srv-link {
        opacity: 1;
      }
    }

    /* ---- LEGACY COLLECTIONS (unused now — kept for reference) ---- */
    #collections-services {
      background: var(--black);
      padding: 120px 0 130px;
      display: none;
    }

    .cs-header {
      text-align: center;
      max-width: 760px;
      margin: 0 auto 84px;
      padding: 0 24px;
    }

    .cs-header p {
      margin-top: 16px;
      max-width: 560px;
      margin-left: auto;
      margin-right: auto;
      font-size: 0.88rem;
      color: var(--cream-dim);
      line-height: 1.9;
    }

    .cs-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 3px;
      padding: 0 56px;
      max-width: 1340px;
      margin: 0 auto;
      perspective: 1200px;
    }

    @media(max-width:1200px) {
      .cs-grid {
        grid-template-columns: repeat(3, 1fr);
        padding: 0 36px;
      }
    }

    @media(max-width:900px) {
      .cs-grid {
        grid-template-columns: repeat(2, 1fr);
        padding: 0 24px;
      }
    }

    @media(max-width:560px) {
      .cs-grid {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: scroll;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 3px;
        padding: 0 24px 20px;
        scrollbar-width: none;
      }

      .cs-grid::-webkit-scrollbar {
        display: none;
      }
    }

    .cs-card {
      position: relative;
      aspect-ratio: 3/4;
      overflow: hidden;
      border: 1px solid var(--gold-10);
      transform-style: preserve-3d;
      transition: border-color 0.3s, box-shadow 0.3s, transform 0.25s ease-out;
      will-change: transform;
      cursor: pointer;
      display: block;
    }

    .cs-card:hover {
      border-color: rgba(31, 61, 46, 0.42);
      box-shadow: 0 28px 80px rgba(0, 0, 0, 0.8);
    }

    .cs-card:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 2px;
    }

    @media(max-width:560px) {
      .cs-card {
        flex: 0 0 72vw;
        max-width: 310px;
        scroll-snap-align: start;
      }
    }

    .cs-card-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      transition: transform 0.8s var(--ease);
    }

    .cs-card:hover .cs-card-img {
      transform: scale(1.08);
    }

    .cs-card.service {
      background: var(--char-card);
    }

    .cs-icon {
      position: absolute;
      top: 42%;
      left: 50%;
      transform: translate(-50%, -50%);
      opacity: 0.26;
      transition: opacity 0.4s, top 0.4s var(--ease);
    }

    .cs-card.service:hover .cs-icon {
      opacity: 0.5;
      top: 40%;
    }

    .cs-icon svg {
      width: 56px;
      height: 56px;
      color: var(--gold);
    }

    .cs-shade {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, rgba(0, 0, 0, 0.96) 0%, rgba(0, 0, 0, 0.42) 52%, rgba(0, 0, 0, 0.04) 100%);
      transition: background 0.4s;
    }

    .cs-card:hover .cs-shade {
      background: linear-gradient(to top, rgba(0, 0, 0, 0.97) 0%, rgba(0, 0, 0, 0.58) 58%, rgba(0, 0, 0, 0.12) 100%);
    }

    .cs-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      padding: 0 22px 26px;
    }

    .cs-cat {
      font-size: 0.54rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 7px;
      font-weight: 600;
    }

    .cs-title {
      font-family: var(--serif);
      font-size: clamp(1.15rem, 1.7vw, 1.5rem);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.16;
      margin-bottom: 12px;
    }

    .cs-cta {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.61rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--gold);
      transition: gap 0.3s;
      font-weight: 500;
    }

    .cs-card:hover .cs-cta {
      gap: 14px;
    }

    .cs-certs {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 44px;
      flex-wrap: wrap;
      margin-top: 70px;
      padding: 0 24px;
    }

    .cs-cert {
      display: flex;
      align-items: center;
      gap: 10px;
      opacity: 0.45;
      transition: opacity 0.3s;
    }

    .cs-cert:hover {
      opacity: 0.8;
    }

    .cs-cert-name {
      font-size: 0.62rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--cream-dim);
    }

    .carousel-dots {
      display: none;
      justify-content: center;
      gap: 7px;
      margin-top: 24px;
    }

    .dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: rgba(31, 61, 46, 0.2);
      cursor: pointer;
      transition: background 0.3s, transform 0.3s;
    }

    .dot.on {
      background: var(--gold);
      transform: scale(1.4);
    }

    @media(max-width:560px) {
      .carousel-dots {
        display: flex;
      }
    }

    @media(prefers-reduced-motion:reduce) {
      .cs-card {
        transform: none !important;
      }

      .cs-card-img {
        transform: none !important;
      }
    }

    /* ---- CELEBRITY CLIENTS ---- */
    .celeb-section {
      background: var(--black);
      padding: 120px 0 0;
      position: relative;
      overflow: hidden;
    }

    .celeb-head {
      text-align: center;
      max-width: 820px;
      margin: 0 auto 90px;
      padding: 0 24px;
    }

    .celeb-headline {
      font-family: var(--serif);
      font-size: clamp(2.8rem, 5.5vw, 5.5rem);
      font-weight: 400;
      line-height: 1.02;
      color: var(--cream);
    }

    .celeb-headline em {
      font-style: italic;
      color: var(--gold);
    }

    .celeb-subtext {
      margin-top: 20px;
      font-size: 0.85rem;
      color: var(--cream-dim);
      line-height: 1.9;
      max-width: 480px;
      margin-left: auto;
      margin-right: auto;
    }

    /* Single unified celebrity grid — 3 cols then 4 cols, same card height */
    .celeb-grid-main {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 4px;
    }

    .celeb-grid-minor {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 4px;
      margin-top: 4px;
    }

    @media(max-width:900px) {
      .celeb-grid-main {
        grid-template-columns: repeat(2, 1fr);
      }

      .celeb-grid-minor {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:560px) {

      .celeb-grid-main,
      .celeb-grid-minor {
        grid-template-columns: 1fr;
      }
    }

    .celeb-card {
      position: relative;
      overflow: hidden;
      cursor: default;
      display: block;
    }

    /* SAME aspect ratio for every card — visual unity */
    .celeb-card-main {
      aspect-ratio: 3/4;
    }

    .celeb-card-minor {
      aspect-ratio: 3/4;
    }

    /* Uniform editorial B&W — warm sepia undertone, consistent exposure */
    .celeb-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 15%;
      filter: grayscale(100%) sepia(20%) contrast(1.18) brightness(0.62);
      transition: filter 1.2s ease, transform 1.4s ease;
    }

    .celeb-card:hover .celeb-img {
      filter: grayscale(0%) sepia(8%) contrast(1.05) brightness(0.9);
      transform: scale(1.05);
    }

    @media(hover:none) {
      .celeb-card.celeb-visible .celeb-img {
        filter: grayscale(0%) sepia(8%) contrast(1.05) brightness(0.88);
      }
    }

    /* Strong uniform overlay: heavy top + bottom, masks busy backgrounds */
    .celeb-shade {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(to bottom, rgba(7, 7, 6, 0.72) 0%, rgba(7, 7, 6, 0.08) 35%, rgba(7, 7, 6, 0.08) 55%, rgba(7, 7, 6, 0.98) 100%),
        radial-gradient(ellipse at center, transparent 30%, rgba(7, 7, 6, 0.42) 100%);
      transition: opacity 0.5s;
    }

    .celeb-card:hover .celeb-shade {
      opacity: 0.7;
    }

    /* Consistent text overlay at bottom */
    .celeb-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 24px 26px 30px;
      z-index: 2;
    }

    .celeb-role {
      font-size: 0.48rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 7px;
      display: block;
    }

    .celeb-name {
      font-family: var(--serif);
      font-size: clamp(1.3rem, 2vw, 1.9rem);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.1;
    }

    .celeb-bio {
      font-size: 0.73rem;
      color: var(--cream-dim);
      line-height: 1.85;
      margin-top: 9px;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transition: max-height 0.55s ease, opacity 0.4s;
    }

    .celeb-card:hover .celeb-bio {
      max-height: 130px;
      opacity: 1;
    }

    @media(hover:none) {
      .celeb-bio {
        max-height: 80px;
        opacity: 0.8;
      }
    }

    /* Text-only cards: same card structure, rich dark with gold accent stripe */
    .celeb-card-text {
      background: var(--char-card);
      background-image: linear-gradient(135deg, rgba(31, 61, 46, 0.07) 0%, transparent 50%);
      border-top: 3px solid var(--gold);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 32px 26px 30px;
      transition: background-image 0.4s;
    }

    .celeb-card-text:hover {
      background-image: linear-gradient(135deg, rgba(31, 61, 46, 0.14) 0%, transparent 60%);
    }

    .celeb-text-motif {
      margin-bottom: auto;
      padding-top: 16px;
      padding-bottom: 32px;
    }

    .celeb-text-motif svg {
      width: 50px;
      height: 50px;
      color: var(--gold);
      opacity: 0.35;
      transition: opacity 0.4s;
    }

    .celeb-card-text:hover .celeb-text-motif svg {
      opacity: 0.65;
    }

    .celeb-text-role {
      font-size: 0.48rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 9px;
      display: block;
    }

    .celeb-text-name {
      font-family: var(--serif);
      font-size: clamp(1.3rem, 2vw, 1.8rem);
      color: var(--cream);
      line-height: 1.1;
      margin-bottom: 12px;
      font-weight: 400;
    }

    .celeb-text-bio {
      font-size: 0.73rem;
      color: var(--cream-dim);
      line-height: 1.85;
    }

    .client-note {
      font-size: 0.83rem;
      color: #586259;
      font-style: italic;
      line-height: 1.72;
    }

    /* ---- AWARDS ---- */
    .awards-section {
      background: var(--char-mid);
      position: relative;
      overflow: hidden;
      text-align: center;
    }

    .awards-ghost {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      font-family: var(--serif);
      font-size: clamp(14rem, 32vw, 30rem);
      font-weight: 300;
      color: rgba(31, 61, 46, 0.03);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }

    .awards-content {
      position: relative;
      z-index: 1;
      max-width: 860px;
      margin: 0 auto;
    }

    .awards-big {
      font-family: var(--serif);
      font-size: clamp(7rem, 18vw, 16rem);
      font-weight: 300;
      color: var(--gold);
      line-height: 1;
      margin: 22px 0 4px;
    }

    .awards-title {
      font-family: var(--serif);
      font-size: clamp(1.5rem, 2.6vw, 2.6rem);
      font-weight: 400;
      color: var(--cream);
    }

    .awards-body {
      max-width: 580px;
      margin: 22px auto 0;
      font-size: 0.875rem;
      color: var(--cream-dim);
      line-height: 1.92;
    }

    .awards-tags {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 44px;
    }

    .award-tag {
      font-size: 0.58rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      border: 1px solid rgba(31, 61, 46, 0.2);
      padding: 8px 22px;
    }

    /* ---- REVIEWS — IVORY ---- */
    /* ---- REVIEWS SECTION ---- */
    .reviews-section {
      background: var(--black);
      position: relative;
      overflow: hidden;
      padding: 140px 0 160px;
    }

    .reviews-section::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 70% 50% at 15% 60%, rgba(31, 61, 46,0.04) 0%, transparent 70%),
        radial-gradient(ellipse 60% 40% at 85% 30%, rgba(31, 61, 46,0.03) 0%, transparent 60%);
      pointer-events: none;
    }

    .reviews-head {
      text-align: center;
      margin-bottom: 20px;
      position: relative;
      z-index: 2;
    }

    /* Platform trust bar */
    .reviews-platforms {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      margin-bottom: 72px;
      position: relative;
      z-index: 2;
    }

    .rp-badge {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 22px 44px;
      border: 1px solid rgba(31, 61, 46,0.14);
      background: rgba(31, 61, 46,0.03);
      transition: border-color 0.4s, background 0.4s;
      cursor: default;
    }

    .rp-badge:hover {
      border-color: rgba(31, 61, 46,0.35);
      background: rgba(31, 61, 46,0.06);
    }

    .rp-badge + .rp-badge {
      border-left: none;
    }

    .rp-logo-g {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 1.3rem;
      font-weight: 700;
      font-family: 'Google Sans', var(--sans);
      background: linear-gradient(135deg, #4285F4 0%, #34A853 33%, #1f3d2e 66%, #EA4335 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      border: 1px solid rgba(255,255,255,0.08);
    }

    .rp-logo-ta {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: #00AA6C;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 0.55rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: #fff;
    }

    .rp-info {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .rp-platform-name {
      font-size: 0.5rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: rgba(31, 61, 46,0.6);
      font-weight: 600;
    }

    .rp-score-row {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .rp-score {
      font-family: var(--serif);
      font-size: 2.6rem;
      font-weight: 300;
      color: var(--cream);
      line-height: 1;
    }

    .rp-stars {
      display: flex;
      gap: 2px;
      color: var(--gold);
      font-size: 0.78rem;
    }

    @keyframes starPulse {
      0%,100% { opacity:1; filter:drop-shadow(0 0 3px rgba(31, 61, 46,0.6)); }
      50% { opacity:0.7; filter:drop-shadow(0 0 8px rgba(31, 61, 46,1)); }
    }

    .rp-stars span {
      display: inline-block;
      animation: starPulse 2.4s ease-in-out infinite;
    }
    .rp-stars span:nth-child(2){ animation-delay:0.2s; }
    .rp-stars span:nth-child(3){ animation-delay:0.4s; }
    .rp-stars span:nth-child(4){ animation-delay:0.6s; }
    .rp-stars span:nth-child(5){ animation-delay:0.8s; }

    .rp-count {
      font-size: 0.6rem;
      color: rgba(63, 80, 70,0.55);
      letter-spacing: 0.06em;
    }

    .rp-divider {
      width: 1px;
      height: 80px;
      background: rgba(31, 61, 46,0.12);
    }

    @media(max-width:680px) {
      .reviews-platforms { flex-direction:column; gap:0; }
      .rp-badge + .rp-badge { border-left:1px solid rgba(31, 61, 46,0.14); border-top:none; }
      .rp-divider { display:none; }
      .rp-badge { padding:18px 28px; }
    }

    /* Review cards — 3 col × 2 row = 6 cards */
    .reviews-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: rgba(31, 61, 46,0.08);
      position: relative;
      z-index: 2;
    }

    @media(max-width:1000px) {
      .reviews-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:640px) {
      .reviews-grid {
        grid-template-columns: 1fr;
      }
    }

    .review-card {
      background: var(--char);
      padding: 52px 44px;
      position: relative;
      overflow: hidden;
      transition: background 0.4s;
    }

    .review-card::after {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 3px; height: 100%;
      background: linear-gradient(to bottom, transparent, var(--gold), transparent);
      opacity: 0;
      transition: opacity 0.4s;
    }

    .review-card:hover {
      background: var(--char-mid);
    }

    .review-card:hover::after {
      opacity: 1;
    }

    .review-card::before {
      content: '\201C';
      position: absolute;
      top: 18px;
      right: 28px;
      font-family: var(--serif);
      font-size: 8rem;
      color: rgba(31, 61, 46,0.06);
      line-height: 1;
    }

    .rv-stars {
      display: flex;
      gap: 3px;
      color: var(--gold);
      font-size: 0.82rem;
      margin-bottom: 28px;
    }

    .rv-text {
      font-family: var(--serif);
      font-size: 1.1rem;
      font-weight: 300;
      font-style: italic;
      color: var(--cream-70);
      line-height: 1.78;
      margin-bottom: 32px;
    }

    .rv-author {
      font-size: 0.6rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 600;
    }

    .rv-source {
      font-size: 0.58rem;
      color: rgba(63, 80, 70,0.38);
      margin-top: 6px;
      letter-spacing: 0.05em;
    }

    /* Scrolling review ticker */
    .reviews-ticker-wrap {
      margin-top: 80px;
      overflow: hidden;
      position: relative;
      z-index: 2;
    }

    .reviews-ticker-wrap::before,
    .reviews-ticker-wrap::after {
      content: '';
      position: absolute;
      top: 0; bottom: 0;
      width: 120px;
      z-index: 3;
    }

    .reviews-ticker-wrap::before {
      left: 0;
      background: linear-gradient(to right, var(--black), transparent);
    }

    .reviews-ticker-wrap::after {
      right: 0;
      background: linear-gradient(to left, var(--black), transparent);
    }

    .reviews-ticker {
      display: flex;
      gap: 0;
      animation: tickerScroll 38s linear infinite;
      width: max-content;
    }

    .reviews-ticker:hover { animation-play-state: paused; }

    @keyframes tickerScroll {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }

    .ticker-item {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 0 48px;
      border-left: 1px solid rgba(31, 61, 46,0.1);
      white-space: nowrap;
    }

    .ticker-stars {
      color: var(--gold);
      font-size: 0.62rem;
      letter-spacing: 2px;
    }

    .ticker-quote {
      font-family: var(--serif);
      font-size: 0.92rem;
      font-style: italic;
      color: rgba(255, 255, 255,0.45);
    }

    .ticker-author {
      font-size: 0.52rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(31, 61, 46,0.4);
    }

    /* ---- JOURNAL ---- */
    .journal-section {
      background: var(--char-card);
    }

    .journal-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 60px;
      flex-wrap: wrap;
      gap: 20px;
    }

    .display-mid {
      font-family: var(--serif);
      font-size: clamp(1.9rem, 3.2vw, 3.2rem);
      font-weight: 400;
      line-height: 1.1;
      color: var(--cream);
    }

    .link-gold {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      font-size: 0.64rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--gold);
      transition: gap 0.3s;
    }

    .link-gold:hover {
      gap: 17px;
    }

    .journal-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 3px;
    }

    @media(max-width:900px) {
      .journal-grid {
        grid-template-columns: 1fr;
      }
    }

    .journal-card {
      background: var(--char-mid);
      overflow: hidden;
      transition: transform 0.4s var(--ease);
    }

    .journal-card:hover {
      transform: translateY(-4px);
    }

    .j-img {
      aspect-ratio: 16/9;
      overflow: hidden;
      background: var(--char-el);
    }

    .j-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.7s var(--ease);
      filter: brightness(0.78) saturate(0.72);
    }

    .journal-card:hover .j-img img {
      transform: scale(1.06);
    }

    .j-body {
      padding: 34px 30px 40px;
    }

    .j-cat {
      font-size: 0.56rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 10px;
      font-weight: 600;
    }

    .j-title {
      font-family: var(--serif);
      font-size: 1.22rem;
      color: var(--cream);
      line-height: 1.3;
      margin-bottom: 12px;
      font-weight: 400;
    }

    .j-excerpt {
      font-size: 0.83rem;
      color: var(--cream-dim);
      line-height: 1.82;
    }

    /* ---- CTA ---- */
    .cta-section {
      position: relative;
      height: 88vh;
      min-height: 540px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .cta-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
    }

    .cta-overlay {
      position: absolute;
      inset: 0;
      background: rgba(7, 7, 6, 0.72);
      z-index: 1;
    }

    .cta-body {
      position: relative;
      z-index: 2;
      text-align: center;
      padding: 0 24px;
      max-width: 820px;
    }

    .cta-body .eyebrow {
      margin-bottom: 0;
    }

    .display-xl {
      font-family: var(--serif);
      font-size: clamp(3rem, 7vw, 7rem);
      font-weight: 300;
      line-height: 1;
      color: var(--cream);
    }

    .cta-body p {
      font-family: var(--serif);
      font-size: clamp(1rem, 1.8vw, 1.35rem);
      font-style: italic;
      color: var(--cream-70);
      margin: 18px 0 46px;
    }

    .cta-location {
      margin-top: 32px;
      font-size: 0.61rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(31, 61, 46, 0.35);
    }

    /* ---- FOOTER ---- */
    /* ---- FOOTER — compact neon ---- */
    .footer {
      background: #030302;
      position: relative;
    }

    /* Animated gold shimmer top rule */
    .footer-crest-band {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 22px 0;
    }

    /* Golden LED strip — a real-gold (#E8C16A) glowing rule that runs the
       full width of the footer top edge. The travelling shimmer + soft halo
       give it a lit, neon-like quality. Sits above the cosmic canvas. */
    .footer-crest-band::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      z-index: 4;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(232, 193, 106, 0) 6%,
        rgba(232, 193, 106, 0.85) 26%,
        #fff4d6 50%,
        rgba(232, 193, 106, 0.85) 74%,
        rgba(232, 193, 106, 0) 94%,
        transparent 100%);
      background-size: 200% 100%;
      animation: footerLedTravel 5s linear infinite, footerLedPulse 3.4s ease-in-out infinite;
      box-shadow:
        0 0 10px rgba(232, 193, 106, 0.65),
        0 0 24px rgba(232, 193, 106, 0.4),
        0 2px 30px rgba(232, 193, 106, 0.22);
    }

    /* Soft blurred glow sitting just under the LED strip */
    .footer-crest-band::after {
      content: '';
      position: absolute;
      top: -5px; left: 0; right: 0;
      height: 14px;
      z-index: 3;
      pointer-events: none;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(232, 193, 106, 0.28) 30%,
        rgba(255, 244, 214, 0.42) 50%,
        rgba(232, 193, 106, 0.28) 70%,
        transparent 100%);
      background-size: 200% 100%;
      animation: footerLedTravel 5s linear infinite;
      filter: blur(7px);
    }

    @keyframes footerRule {
      from { background-position: 200% center; }
      to { background-position: -200% center; }
    }

    @keyframes footerLedTravel {
      from { background-position: 200% center; }
      to { background-position: -200% center; }
    }

    @keyframes footerLedPulse {
      0%, 100% {
        box-shadow:
          0 0 8px rgba(232, 193, 106, 0.5),
          0 0 18px rgba(232, 193, 106, 0.3),
          0 2px 24px rgba(232, 193, 106, 0.16);
      }
      50% {
        box-shadow:
          0 0 14px rgba(232, 193, 106, 0.85),
          0 0 34px rgba(232, 193, 106, 0.5),
          0 2px 44px rgba(232, 193, 106, 0.3);
      }
    }

    /* Reusable animated gold shimmer rule */
    .section-gold-rule {
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      z-index: 50;
      pointer-events: none;
      background: linear-gradient(90deg, transparent 0%, var(--gold) 28%, #fbfbf7 50%, var(--gold) 72%, transparent 100%);
      background-size: 200% 100%;
      animation: footerRule 4s linear infinite;
    }

    /* Gilt Rule — standalone inline animated gold shimmer divider.
       Drop between sections as: <div class="gilt-rule" aria-hidden="true"></div> */
    .gilt-rule {
      position: relative;
      display: block;
      width: 100%;
      height: 3px;
      pointer-events: none;
      background: linear-gradient(90deg, rgba(31, 61, 46, 0.35) 0%, var(--gold) 22%, #fbfbf7 50%, var(--gold) 78%, rgba(31, 61, 46, 0.35) 100%);
      background-size: 200% 100%;
      animation: footerRule 4s linear infinite;
      opacity: 1;
      z-index: 6;
      box-shadow:
        0 0 12px rgba(188, 201, 183, 0.55),
        0 0 28px rgba(31, 61, 46, 0.35);
    }
    .gilt-rule::before {
      /* Soft above-and-below halo for extra glow */
      content: '';
      position: absolute;
      left: 0; right: 0;
      top: -6px; bottom: -6px;
      background: linear-gradient(90deg, transparent 0%, rgba(31, 61, 46, 0.28) 30%, rgba(251, 251, 247, 0.42) 50%, rgba(31, 61, 46, 0.28) 70%, transparent 100%);
      background-size: 200% 100%;
      animation: footerRule 4s linear infinite;
      filter: blur(6px);
      pointer-events: none;
      z-index: -1;
    }
    .gilt-rule::after {
      /* Hair-thin bright core line on top */
      content: '';
      position: absolute;
      left: 8%; right: 8%;
      top: 50%;
      height: 1px;
      transform: translateY(-50%);
      background: linear-gradient(90deg, transparent 0%, rgba(251, 251, 247, 0.95) 50%, transparent 100%);
      pointer-events: none;
    }

    .footer-crest-img {
      width: 38px;
      opacity: 0.7;
      filter: sepia(1) saturate(3) hue-rotate(5deg) brightness(1.4);
      animation: crestGlow 3s ease-in-out infinite;
    }

    @keyframes crestGlow {
      0%,100% { filter: sepia(1) saturate(3) hue-rotate(5deg) brightness(1.4) drop-shadow(0 0 4px rgba(31, 61, 46,0.7)); }
      50% { filter: sepia(1) saturate(4) hue-rotate(3deg) brightness(1.8) drop-shadow(0 0 12px rgba(228, 236, 223,0.9)) drop-shadow(0 0 24px rgba(31, 61, 46,0.6)); }
    }

    /* ---- COMPACT FOOTER MAIN ---- */
    .footer-main {
      display: grid;
      grid-template-columns: 1.6fr 1fr 1fr 1fr;
      gap: 40px;
      padding: 28px 56px 28px;
      max-width: 1340px;
      margin: 0 auto;
    }

    @media(max-width:1100px) {
      .footer-main { grid-template-columns: 1fr 1fr; gap: 32px; }
    }

    @media(max-width:600px) {
      .footer-main { grid-template-columns: 1fr; gap: 28px; padding: 24px; }
    }

    /* Neon wordmark */
    .footer-wordmark {
      font-family: var(--serif);
      font-size: 1.2rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--cream);
      margin-bottom: 4px;
      animation: wmGlow 3s ease-in-out infinite;
    }

    @keyframes wmGlow {
      0%,100% { text-shadow: 0 0 8px rgba(31, 61, 46,0.7), 0 0 20px rgba(31, 61, 46,0.3); }
      50% { text-shadow: 0 0 14px rgba(228, 236, 223,1), 0 0 30px rgba(31, 61, 46,0.7), 0 0 55px rgba(31, 61, 46,0.3); }
    }

    .footer-tagline {
      font-family: var(--serif);
      font-size: 0.85rem;
      font-style: italic;
      font-weight: 300;
      color: rgba(31, 61, 46,0.65);
      line-height: 1.6;
      margin-bottom: 16px;
      max-width: 300px;
      animation: tagGlow 3.6s ease-in-out infinite 0.4s;
    }

    @keyframes tagGlow {
      0%,100% { text-shadow: 0 0 6px rgba(31, 61, 46,0.3); color: rgba(31, 61, 46,0.65); }
      50% { text-shadow: 0 0 12px rgba(31, 61, 46,0.8), 0 0 24px rgba(31, 61, 46,0.35); color: rgba(31, 61, 46,0.95); }
    }

    /* Footer contact rows */
    .footer-contact {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 16px;
    }

    .f-contact-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }

    .f-contact-icon {
      width: 26px;
      height: 26px;
      border: 1px solid rgba(31, 61, 46,0.3);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--gold);
      flex-shrink: 0;
      animation: fIconGlow 2.4s ease-in-out infinite;
    }

    .f-contact-row:nth-child(2) .f-contact-icon{ animation-delay:0.4s; }
    .f-contact-row:nth-child(3) .f-contact-icon{ animation-delay:0.8s; }
    .f-contact-row:nth-child(4) .f-contact-icon{ animation-delay:1.2s; }

    @keyframes fIconGlow {
      0%,100% { border-color:rgba(31, 61, 46,0.25); box-shadow:0 0 4px rgba(31, 61, 46,0.15); color:rgba(31, 61, 46,0.75); }
      50% { border-color:rgba(31, 61, 46,0.8); box-shadow:0 0 12px rgba(31, 61, 46,0.6),0 0 22px rgba(31, 61, 46,0.25),inset 0 0 6px rgba(31, 61, 46,0.08); color:var(--gold-lt); }
    }

    .f-contact-text {
      display: flex;
      flex-direction: column;
      gap: 1px;
    }

    .f-contact-label {
      font-size: 0.44rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: rgba(31, 61, 46,0.55);
      font-weight: 600;
    }

    .f-contact-val {
      font-family: var(--serif);
      font-size: 0.88rem;
      color: rgba(255, 255, 255,0.8);
      line-height: 1.45;
      animation: valGlow 3.2s ease-in-out infinite;
    }

    @keyframes valGlow {
      0%,100% { text-shadow: 0 0 4px rgba(255,255,255,0.08); }
      50% { text-shadow: 0 0 8px rgba(255,255,255,0.25), 0 0 16px rgba(31, 61, 46,0.15); }
    }

    .f-contact-val a {
      color: rgba(255, 255, 255,0.8);
      transition: color 0.3s;
    }

    .f-contact-val a:hover { color: var(--gold); }

    /* Social icons — nonstop glow */
    .footer-socials {
      display: flex;
      gap: 8px;
      margin-bottom: 14px;
    }

    .f-social {
      width: 40px;
      height: 40px;
      border-radius: 9px;
      border: 1px solid #1F3D2E;
      background: #1F3D2E;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #F5EFE2;
      transition: all 0.3s;
      animation: socialGlow 2.6s ease-in-out infinite;
    }

    .f-social:nth-child(2){ animation-delay:0.5s; }
    .f-social:nth-child(3){ animation-delay:1.0s; }

    .f-social svg {
      width: 19px;
      height: 19px;
      fill: currentColor;
    }

    @keyframes socialGlow {
      0%,100% { box-shadow:0 2px 10px rgba(31, 61, 46,0.25); }
      50% { box-shadow:0 2px 16px rgba(31, 61, 46,0.45), 0 0 22px rgba(31, 61, 46,0.18); }
    }

    .f-social:hover {
      background: #E8C16A !important;
      border-color: #E8C16A !important;
      color: #1F3D2E !important;
      transform: translateY(-2px);
      box-shadow: 0 4px 18px rgba(232, 193, 106,0.5), 0 0 34px rgba(232, 193, 106,0.28) !important;
      animation: none !important;
    }

    /* Cert tags */
    .f-certs {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .f-cert {
      font-size: 0.48rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(31, 61, 46,0.45);
      border: 1px solid rgba(31, 61, 46,0.16);
      padding: 3px 8px;
      transition: all 0.3s;
      animation: certGlow 4s ease-in-out infinite;
    }

    .f-cert:nth-child(2){ animation-delay:0.6s; }
    .f-cert:nth-child(3){ animation-delay:1.2s; }
    .f-cert:nth-child(4){ animation-delay:1.8s; }

    @keyframes certGlow {
      0%,100% { border-color:rgba(31, 61, 46,0.16); color:rgba(31, 61, 46,0.45); box-shadow:none; }
      50% { border-color:rgba(31, 61, 46,0.55); color:rgba(31, 61, 46,0.85); box-shadow:0 0 8px rgba(31, 61, 46,0.25); }
    }

    /* Column titles — gold neon */
    .f-col-title {
      font-size: 0.54rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 18px;
      font-weight: 600;
      padding-bottom: 10px;
      border-bottom: 1px solid rgba(31, 61, 46,0.12);
      animation: colTitleGlow 3s ease-in-out infinite;
    }

    @keyframes colTitleGlow {
      0%,100% { text-shadow: 0 0 6px rgba(31, 61, 46,0.5), 0 0 14px rgba(31, 61, 46,0.2); }
      50% { text-shadow: 0 0 10px rgba(31, 61, 46,1), 0 0 22px rgba(31, 61, 46,0.55), 0 0 40px rgba(31, 61, 46,0.25); }
    }

    /* Nav links */
    .f-links {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .f-links a {
      font-size: 0.85rem;
      color: rgba(31, 61, 46,0.5);
      transition: color 0.3s, text-shadow 0.3s;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .f-links a::before {
      content: '';
      width: 10px;
      height: 1px;
      background: rgba(31, 61, 46,0.25);
      flex-shrink: 0;
      transition: width 0.3s, background 0.3s;
    }

    .f-links a:hover {
      color: rgba(255,255,255,0.9);
      text-shadow: 0 0 8px rgba(255,255,255,0.5), 0 0 18px rgba(31, 61, 46,0.4);
    }

    .f-links a:hover::before {
      width: 16px;
      background: var(--gold);
    }

    /* Site links */
    .f-sites {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .f-sites a {
      font-size: 0.82rem;
      color: rgba(31, 61, 46,0.5);
      transition: color 0.3s, text-shadow 0.3s;
      display: flex;
      align-items: flex-start;
      gap: 9px;
    }

    .f-sites a::before {
      content: '◆';
      font-size: 0.36rem;
      color: rgba(31, 61, 46,0.3);
      flex-shrink: 0;
      margin-top: 0.4em;
      transition: color 0.3s;
    }

    .f-sites a:hover {
      color: rgba(255,255,255,0.9);
      text-shadow: 0 0 8px rgba(255,255,255,0.4), 0 0 18px rgba(31, 61, 46,0.35);
    }

    .f-sites a:hover::before { color: var(--gold); }

    /* Footer bar */
    .footer-bar {
      border-top: 1px solid rgba(31, 61, 46,0.07);
      padding: 14px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      max-width: 1340px;
      margin: 0 auto;
    }

    @media(max-width:768px) {
      .footer-bar { flex-direction:column; text-align:center; padding:14px 24px; }
    }

    .f-copy {
      font-size: 0.62rem;
      color: rgba(31, 61, 46,0.28);
      letter-spacing: 0.07em;
      animation: copyGlow 4s ease-in-out infinite;
    }

    @keyframes copyGlow {
      0%,100% { text-shadow: none; color: rgba(31, 61, 46,0.28); }
      50% { text-shadow: 0 0 8px rgba(31, 61, 46,0.35); color: rgba(31, 61, 46,0.55); }
    }

    .f-legal {
      list-style: none;
      display: flex;
      gap: 22px;
    }

    .f-legal a {
      font-size: 0.6rem;
      color: rgba(31, 61, 46,0.25);
      transition: color 0.3s, text-shadow 0.3s;
      letter-spacing: 0.05em;
    }

    .f-legal a:hover {
      color: rgba(255,255,255,0.8);
      text-shadow: 0 0 8px rgba(255,255,255,0.4);
    }

    /* ---- LOCATION SECTION ---- */
    .location-section {
      background: var(--black);
      position: relative;
      overflow: hidden;
    }

    .loc-split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: stretch;
      min-height: 80vh;
    }

    .loc-left {
      position: relative;
      overflow: hidden;
      min-height: 400px;
    }

    .loc-left-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 25%;
      transform-origin: center;
      transition: transform 12s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .loc-left.zoomed .loc-left-img {
      transform: scale(1.06);
    }

    .loc-left-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, transparent 60%, rgba(7,7,6,0.7) 100%);
      z-index: 1;
      pointer-events: none;
    }

    .loc-left-tag {
      position: absolute;
      bottom: 36px;
      left: 36px;
      z-index: 2;
      font-size: 0.52rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--gold);
      opacity: 0.85;
    }

    .loc-right {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 40px;
      padding: 100px 72px;
    }

    .loc-map-wrap {
      position: relative;
      overflow: hidden;
      height: 240px;
      border: 1px solid var(--gold-20);
    }

    .loc-map-wrap iframe {
      width: 100%;
      height: 100%;
      border: none;
      filter: grayscale(100%) contrast(1.15) brightness(0.55) sepia(30%);
      transition: filter 0.9s ease;
    }

    .loc-map-wrap:hover iframe {
      filter: grayscale(0%) contrast(1.05) brightness(0.9) sepia(0%);
    }

    .loc-map-gloss {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 2;
      background: linear-gradient(to bottom, rgba(7, 7, 6, 0.3) 0%, transparent 25%, transparent 75%, rgba(7, 7, 6, 0.3) 100%);
      border: 1px solid transparent;
      transition: border-color 0.5s;
    }

    .loc-map-wrap:hover .loc-map-gloss {
      border-color: rgba(31, 61, 46, 0.28);
    }

    .loc-details {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    .loc-detail-row {
      display: flex;
      align-items: flex-start;
      gap: 18px;
    }

    .loc-icon {
      width: 40px;
      height: 40px;
      flex-shrink: 0;
      border: 1px solid rgba(31, 61, 46,0.35);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--gold);
      animation: locIconGlow 2.8s ease-in-out infinite;
    }

    .loc-detail-row:nth-child(2) .loc-icon { animation-delay: 0.5s; }
    .loc-detail-row:nth-child(3) .loc-icon { animation-delay: 1.0s; }
    .loc-detail-row:nth-child(4) .loc-icon { animation-delay: 1.5s; }

    @keyframes locIconGlow {
      0%,100% {
        border-color: rgba(31, 61, 46,0.25);
        box-shadow: 0 0 6px rgba(31, 61, 46,0.15), inset 0 0 4px rgba(31, 61, 46,0.04);
        color: rgba(31, 61, 46,0.8);
      }
      50% {
        border-color: rgba(31, 61, 46,0.75);
        box-shadow: 0 0 14px rgba(31, 61, 46,0.55), 0 0 28px rgba(31, 61, 46,0.2), inset 0 0 10px rgba(31, 61, 46,0.08);
        color: var(--gold-lt);
      }
    }

    .loc-text {
      display: flex;
      flex-direction: column;
      gap: 3px;
    }

    .loc-label {
      font-size: 0.49rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 600;
    }

    .loc-value {
      font-family: var(--serif);
      font-size: 0.98rem;
      color: var(--cream);
      line-height: 1.55;
    }

    .loc-value a {
      color: var(--cream);
      transition: color 0.3s;
    }

    .loc-value a:hover {
      color: var(--gold);
    }

    .loc-ctas {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
    }

    @media(max-width:1000px) {
      .loc-split {
        grid-template-columns: 1fr;
      }


      .loc-right {
        padding: 70px 40px;
      }
    }

    @media(max-width:768px) {
      .loc-right {
        padding: 52px 24px;
        gap: 28px;
      }

      .loc-map-wrap {
        height: 210px;
      }
    }

    /* ---- FLOATING BOOK BUTTON ---- */
    .float-book {
      position: fixed;
      bottom: 98px;
      right: 28px;
      z-index: 499;
      display: flex;
      align-items: center;
      gap: 10px;
      background: var(--gold);
      color: var(--black);
      padding: 13px 20px;
      font-size: 0.57rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      font-weight: 700;
      white-space: nowrap;
      box-shadow: 0 8px 36px rgba(31, 61, 46, 0.45);
      animation: floatUp 3.5s ease-in-out infinite;
      transition: background 0.3s, box-shadow 0.3s, transform 0.2s;
    }

    .float-book:hover {
      background: var(--gold-lt);
      box-shadow: 0 16px 50px rgba(31, 61, 46, 0.6);
      transform: translateY(-3px) !important;
      animation: none;
    }

    .float-book svg {
      flex-shrink: 0;
    }

    @media(max-width:768px) {
      .float-book {
        bottom: 94px;
        right: 18px;
        padding: 11px 13px;
      }

      .float-book span {
        display: none;
      }
    }

    /* ======== OVERHAUL ======== */

    /* Fix trust strip inner divs — seamless marquee */
    .ts-track>div {
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    /* Trust strip → ivory */
    #trust-strip {
      background: #fbfbf7;
      border-color: rgba(188, 201, 183, 0.2);
    }

    #trust-strip::before {
      background: linear-gradient(to right, #fbfbf7 30%, transparent) !important;
    }

    #trust-strip::after {
      background: linear-gradient(to left, #fbfbf7 30%, transparent) !important;
    }

    .ts-item {
      color: var(--ink);
    }

    .ts-badge {
      color: #1f3d2e;
      border-color: rgba(63, 80, 70, 0.4);
    }

    .ts-sep {
      background: rgba(188, 201, 183, 0.22);
    }

    /* Second hero ticker — reverse direction, inside hero at bottom */
    @keyframes marqueeRev {
      from {
        transform: translateX(-50%)
      }

      to {
        transform: translateX(0)
      }
    }

    .hero-ticker-b {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 4;
      overflow: hidden;
      height: 36px;
      display: flex;
      align-items: center;
      background: rgba(5, 5, 4, 0.55);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border-top: 1px solid rgba(31, 61, 46, 0.15);
    }

    .htb-track {
      display: flex;
      align-items: center;
      width: max-content;
      animation: marqueeRev 55s linear infinite;
    }

    .htb-track:hover {
      animation-play-state: paused;
    }

    .htb-track>div {
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    .htb-item {
      display: inline-flex;
      align-items: center;
      padding: 0 24px;
      white-space: nowrap;
      font-size: 0.52rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.35);
    }

    .htb-dot {
      color: rgba(31, 61, 46, 0.45);
      padding: 0 3px;
      font-size: 0.38rem;
      flex-shrink: 0;
    }

    /* ---- PREMIUM GEM-CUT BUTTONS ---- */
    .btn-gold {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-size: 0.6rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      font-weight: 700;
      color: #060504;
      background: linear-gradient(135deg, #bcc9b7 0%, #3f5046 48%, #1f3d2e 100%);
      padding: 0 52px;
      height: 56px;
      line-height: 1;
      position: relative;
      overflow: hidden;
      clip-path: polygon(14px 0%, 100% 0%, calc(100% - 14px) 100%, 0% 100%);
      box-shadow: 0 6px 28px rgba(31, 61, 46, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.2);
      transition: transform 0.38s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
    }

    .btn-gold::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: linear-gradient(105deg, transparent 25%, rgba(255, 255, 255, 0.4) 50%, transparent 75%);
      background-size: 300% 100%;
      background-position: 220% center;
      animation: btnGlint 4.5s ease-in-out 2s infinite;
    }

    .btn-gold::after {
      content: none !important;
    }

    @keyframes btnGlint {

      0%,
      62% {
        background-position: 220% center;
        opacity: 0;
      }

      64% {
        opacity: 1;
      }

      84% {
        background-position: -20% center;
        opacity: 0.85;
      }

      100% {
        opacity: 0;
        background-position: -20% center;
      }
    }

    .btn-gold:hover {
      transform: translateY(-5px) scale(1.025);
      box-shadow: 0 24px 64px rgba(31, 61, 46, 0.58), 0 0 0 1px rgba(31, 61, 46, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.22);
    }

    .btn-outline {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-size: 0.6rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      font-weight: 400;
      color: var(--cream);
      background: rgba(255, 255, 255, 0.06);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      padding: 0 52px;
      height: 56px;
      line-height: 1;
      clip-path: polygon(14px 0%, 100% 0%, calc(100% - 14px) 100%, 0% 100%);
      border: 1px solid rgba(255, 255, 255, 0.22);
      transition: transform 0.38s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.35s, background 0.35s, box-shadow 0.4s;
      position: relative;
    }

    .btn-outline:hover {
      border-color: rgba(31, 61, 46, 0.6);
      background: rgba(31, 61, 46, 0.11);
      transform: translateY(-5px) scale(1.025);
      box-shadow: 0 18px 52px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(31, 61, 46, 0.28);
    }

    @media(max-width:560px) {

      .btn-gold,
      .btn-outline {
        padding: 0 26px;
        height: 50px;
        font-size: 0.55rem;
      }
    }

    /* nav-logo-img override moved to OVERHAUL block below */

    /* ---- WHITE / IVORY SECTIONS ---- */
    .pillars-section {
      background: #ffffff;
    }

    .pillars-header h2 {
      color: var(--ink) !important;
    }

    .pillars-header p {
      color: #586259 !important;
    }

    .founder-section {
      background: #0a0908;
    }

    .fnd-name {
      color: var(--cream) !important;
    }

    .fnd-blockquote {
      color: rgba(228, 236, 223, 0.95) !important;
    }

    .fnd-p {
      color: var(--cream-dim) !important;
    }

    .fnd-tag {
      color: var(--gold) !important;
    }

    .fnd-stat-num {
      color: var(--gold) !important;
    }

    .fnd-stat-lbl {
      color: var(--cream-dim) !important;
    }

    .fnd-stats {
      border-top-color: rgba(31, 61, 46, 0.12) !important;
    }

    .awards-section {
      background: #ffffff;
    }

    .awards-ghost {
      color: rgba(188, 201, 183, 0.035);
    }

    .awards-title {
      color: var(--ink) !important;
    }

    .awards-body {
      color: #2a3a30 !important;
    }

    .award-tag {
      color: #1f3d2e;
      border-color: rgba(63, 80, 70, 0.22);
    }

    .journal-section {
      background: #ffffff;
    }

    .journal-card {
      background: #f5f0ea;
    }

    .journal-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 24px 60px rgba(0, 0, 0, 0.08);
    }

    .display-mid {
      color: var(--ink) !important;
    }

    .link-gold {
      color: #1f3d2e;
    }

    .j-title {
      color: var(--ink) !important;
    }

    .j-excerpt {
      color: #2a3a30 !important;
    }

    .j-img img {
      filter: brightness(0.92) saturate(0.88);
    }

    .j-cat {
      color: var(--gold);
    }

    /* Location right side — white */
    .location-section {
      background: #f8f4ee;
    }

    .loc-right {
      background: #f8f4ee;
    }

    .loc-left-overlay {
      background: linear-gradient(to bottom, transparent 65%, rgba(7,7,6,0.65) 100%);
    }

    .loc-map-wrap iframe {
      filter: grayscale(100%) contrast(1.15) brightness(0.62) sepia(25%);
    }

    /* ---- FOOTER stays dark ---- */

    /* ---- NAV: WHITE, CENTERED LOGO, GRID LAYOUT ---- */
    .nav {
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
      background: #ffffff !important;
    }

    .nav.scrolled {
      background: rgba(255, 255, 255, 0.97) !important;
      backdrop-filter: blur(24px) !important;
      -webkit-backdrop-filter: blur(24px) !important;
      border-bottom-color: rgba(188, 201, 183, 0.14) !important;
    }

    @keyframes navLogoFloat {
      0%, 100% { transform: translateY(0) scale(1) rotate(0deg); }
      25%      { transform: translateY(-3px) scale(1.025) rotate(-0.4deg); }
      50%      { transform: translateY(-5px) scale(1.04) rotate(0deg); }
      75%      { transform: translateY(-3px) scale(1.025) rotate(0.4deg); }
    }

    @keyframes navLogoShine {
      0%, 100% {
        /* Deep saturated gold — always clearly visible on the white nav */
        filter:
          invert(1) sepia(1) saturate(6) hue-rotate(2deg) brightness(0.56) contrast(1.22)
          drop-shadow(0 1px 3px rgba(0, 0, 0, 0.28))
          drop-shadow(0 0 10px rgba(31, 61, 46, 0.75));
      }
      50% {
        /* Lustrous gold peak — brightens but never washes into the white */
        filter:
          invert(1) sepia(1) saturate(7) hue-rotate(6deg) brightness(0.74) contrast(1.25)
          drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3))
          drop-shadow(0 0 16px rgba(188, 201, 183, 0.7))
          drop-shadow(0 0 30px rgba(31, 61, 46, 0.5));
      }
    }

    .nav-logo-img {
      height: 68px !important;
      /* Never blend into the nav background; stay a solid deep-gold crest. */
      mix-blend-mode: normal !important;
      filter:
        invert(1) sepia(1) saturate(6) hue-rotate(2deg) brightness(0.56) contrast(1.22)
        drop-shadow(0 1px 3px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 10px rgba(31, 61, 46, 0.75)) !important;
      /* 4 Aug audit: "keep the logo static on scroll". It was already
         position:fixed; what read as movement was this 3.6s bob and shine
         plus the 68px -> 50px shrink below. Both are gone. */
      animation: none !important;
    }

    .nav.scrolled .nav-logo-img {
      height: 68px !important;   /* same as unscrolled: the logo no longer resizes */
    }

    .nav-brand {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 12px;
      flex-shrink: 0;
    }

    .nav-brand-name {
      color: #1a160d !important;
      font-weight: 600 !important;
      letter-spacing: 0.32em !important;
    }

    .nav-brand-sub {
      color: #1f3d2e !important;
      opacity: 1 !important;
      font-weight: 600 !important;
      letter-spacing: 0.28em !important;
    }

    .nav-right {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
    }

    /* Nav links visible on white + neon hover */
    .nav-links a {
      color: rgba(24, 22, 14, 0.72) !important;
      transition: color 0.3s, text-shadow 0.35s !important;
    }

    .nav-links a:hover {
      color: var(--ink) !important;
      text-shadow: 0 0 12px rgba(31, 61, 46, 0.65), 0 0 24px rgba(31, 61, 46, 0.3) !important;
    }

    .nav-links a::after {
      background: var(--gold) !important;
    }

    /* Glowing gem-cut CTA */
    .nav-cta {
      color: var(--black) !important;
      background: linear-gradient(135deg, #bcc9b7 0%, #3f5046 48%, #1f3d2e 100%) !important;
      animation: navCtaGlow 3.2s ease-in-out infinite;
      clip-path: polygon(10px 0%, 100% 0%, calc(100% - 10px) 100%, 0% 100%);
    }

    @keyframes navCtaGlow {

      0%,
      100% {
        box-shadow: 0 0 10px rgba(31, 61, 46, 0.4), 0 0 20px rgba(31, 61, 46, 0.15);
      }

      50% {
        box-shadow: 0 0 22px rgba(31, 61, 46, 0.68), 0 0 44px rgba(31, 61, 46, 0.3);
      }
    }

    .nav-cta:hover {
      animation: none !important;
      background: linear-gradient(135deg, #bcc9b7 0%, #bcc9b7 100%) !important;
    }

    .nav-burger span {
      background: var(--ink) !important;
    }

    /* ---- TICKER BANNER — in page flow, scrolls away, big neon ---- */
    .ticker-fixed {
      position: relative;
      top: auto;
      left: auto;
      right: auto;
      z-index: 1;
      height: 68px;
      overflow: hidden;
      display: flex;
      align-items: center;
      background: rgba(5, 5, 4, 0.96);
      border-bottom: 1px solid rgba(31, 61, 46, 0.22);
    }

    @media(max-width:768px) {
      .ticker-fixed {
        height: 52px;
      }
    }

    .tf-track {
      display: flex;
      align-items: center;
      width: max-content;
      animation: marquee 55s linear infinite;
    }

    .tf-track:hover {
      animation-play-state: paused;
    }

    .tf-track>div {
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    .tf-item {
      display: inline-flex;
      align-items: center;
      padding: 0 36px;
      white-space: nowrap;
      font-family: var(--serif);
      font-size: 1.05rem;
      letter-spacing: 0.12em;
      color: rgba(31, 61, 46, 0.95);
      text-shadow: 0 0 12px rgba(31, 61, 46, 0.9), 0 0 26px rgba(31, 61, 46, 0.55), 0 0 52px rgba(31, 61, 46, 0.25);
    }

    @media(max-width:768px) {
      .tf-item {
        font-size: 0.82rem;
        padding: 0 22px;
      }
    }

    .tf-dot {
      color: rgba(31, 61, 46, 0.65);
      font-size: 0.55rem;
      flex-shrink: 0;
      text-shadow: 0 0 10px rgba(31, 61, 46, 0.85);
    }

    /* ---- SECOND HERO TICKER NEON ---- */
    .htb-item {
      color: rgba(31, 61, 46, 0.82) !important;
      text-shadow: 0 0 10px rgba(31, 61, 46, 0.72), 0 0 22px rgba(31, 61, 46, 0.36) !important;
    }

    .htb-dot {
      color: rgba(31, 61, 46, 0.55) !important;
    }

    /* ---- HOUSE CREST WATERMARK + NEON STATS ---- */
    @keyframes crestFloat {

      0%,
      100% {
        transform: translate(-50%, -50%) scale(1);
        filter: sepia(0.6) saturate(3) hue-rotate(2deg) brightness(1.1) drop-shadow(0 0 10px rgba(228, 236, 223, 0.9)) drop-shadow(0 0 28px rgba(31, 61, 46, 0.8)) drop-shadow(0 0 65px rgba(31, 61, 46, 0.55)) drop-shadow(0 0 120px rgba(31, 61, 46, 0.28));
      }

      50% {
        transform: translate(-50%, calc(-50% - 22px)) scale(1.07);
        filter: sepia(0.7) saturate(4) hue-rotate(2deg) brightness(1.35) drop-shadow(0 0 18px rgba(251, 251, 247, 1)) drop-shadow(0 0 48px rgba(228, 236, 223, 0.95)) drop-shadow(0 0 100px rgba(31, 61, 46, 0.85)) drop-shadow(0 0 200px rgba(31, 61, 46, 0.5));
      }
    }

    .house-crest-watermark {
      position: absolute;
      z-index: 2;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: clamp(280px, 36vw, 560px);
      height: auto;
      opacity: 0.95;
      animation: crestFloat 5.5s ease-in-out infinite;
      pointer-events: none;
      user-select: none;
    }

    @media(max-width:900px) {
      .house-crest-watermark {
        width: clamp(200px, 60vw, 340px);
        opacity: 0.88;
      }
    }

    @media(max-width:768px) {
      .house-crest-watermark {
        display: none;
      }
    }

    .h-stat-num {
      text-shadow: 0 0 20px rgba(31, 61, 46, 0.85), 0 0 40px rgba(31, 61, 46, 0.45), 0 0 80px rgba(31, 61, 46, 0.2) !important;
    }

    /* ---- COLLECTIONS: product cards contain on white ---- */
    /* Product cards — no shade, neon border, 3D float */
    .coll-card:not(.coll-card-hero) {
      background: #ffffff;
      box-shadow:
        0 0 0 1px rgba(31, 61, 46,0.5),
        0 0 18px rgba(31, 61, 46,0.25),
        0 0 36px rgba(31, 61, 46,0.1),
        0 24px 48px rgba(0,0,0,0.22);
      animation: productFloat 4s ease-in-out infinite;
      transform-style: preserve-3d;
    }

    .coll-card:not(.coll-card-hero):nth-child(2){ animation-delay:0.5s; }
    .coll-card:not(.coll-card-hero):nth-child(3){ animation-delay:1.0s; }
    .coll-card:not(.coll-card-hero):nth-child(4){ animation-delay:1.5s; }

    @keyframes productFloat {
      0%,100% {
        transform: translateY(0);
        box-shadow:
          0 0 0 1px rgba(31, 61, 46,0.4),
          0 0 16px rgba(31, 61, 46,0.2),
          0 0 32px rgba(31, 61, 46,0.08),
          0 20px 40px rgba(0,0,0,0.2);
      }
      50% {
        transform: translateY(-6px);
        box-shadow:
          0 0 0 1px rgba(31, 61, 46,0.75),
          0 0 24px rgba(31, 61, 46,0.5),
          0 0 48px rgba(31, 61, 46,0.22),
          0 32px 64px rgba(0,0,0,0.28);
      }
    }

    .coll-card:not(.coll-card-hero) .coll-img {
      object-fit: contain !important;
      padding: 20px 24px;
      background: #ffffff;
      filter: brightness(1.1) contrast(1.08) saturate(1.15);
      transition: transform 1.1s cubic-bezier(0.25,0.46,0.45,0.94), filter 0.4s;
    }

    .coll-card:not(.coll-card-hero):hover .coll-img {
      filter: brightness(1.18) contrast(1.12) saturate(1.25) drop-shadow(0 8px 24px rgba(31, 61, 46,0.18));
    }

    /* Gold shimmer sweep on hover */
    .coll-card:not(.coll-card-hero)::after {
      content: '';
      position: absolute;
      top: 0; left: -100%;
      width: 55%; height: 100%;
      background: linear-gradient(105deg, transparent 25%, rgba(255,255,255,0.65) 50%, transparent 75%);
      z-index: 4;
      pointer-events: none;
      transition: left 0.65s cubic-bezier(0.25,0.46,0.45,0.94);
    }

    .coll-card:not(.coll-card-hero):hover::after {
      left: 160%;
    }

    /* ---- LOCATION TEXT VISIBILITY ---- */
    .location-section .loc-right h2 {
      color: var(--ink) !important;
    }

    .location-section .loc-right>div>p,
    .location-section .loc-right>div p {
      color: #2a3a30 !important;
    }

    .location-section .loc-value {
      color: rgba(24, 22, 14, 0.82) !important;
    }

    .location-section .loc-value a {
      color: rgba(24, 22, 14, 0.82) !important;
    }

    .location-section .loc-value a:hover {
      color: var(--gold) !important;
    }

    .location-section .loc-label {
      color: #1f3d2e !important;
    }

    .location-section .loc-icon {
      border-color: rgba(63, 80, 70, 0.32) !important;
      color: #1f3d2e !important;
    }

    .location-section .eyebrow {
      color: #1f3d2e !important;
    }

    .location-section .gold-line {
      background: #3f5046 !important;
    }

    /* ---- FOOTER social hover override (nonstop glow handled by .footer CSS) ---- */

    /* ---- DIAMOND CART: circular like WA button ---- */
    @keyframes dcFloat {

      0%,
      100% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-6px);
      }
    }

    @keyframes dcGlow {

      0%,
      100% {
        box-shadow: 0 0 14px rgba(31, 61, 46, 0.38), 0 0 28px rgba(31, 61, 46, 0.16), 0 6px 28px rgba(0, 0, 0, 0.5);
      }

      50% {
        box-shadow: 0 0 26px rgba(31, 61, 46, 0.65), 0 0 52px rgba(31, 61, 46, 0.32), 0 6px 28px rgba(0, 0, 0, 0.5);
      }
    }

    .diamond-cart {
      position: fixed;
      bottom: 98px;
      right: 28px;
      z-index: 499;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, rgba(10, 9, 7, 0.97), rgba(20, 17, 12, 0.98));
      border: 1px solid rgba(31, 61, 46, 0.52);
      color: var(--gold);
      animation: dcFloat 3.8s ease-in-out infinite, dcGlow 3s ease-in-out infinite;
      transition: transform 0.2s, box-shadow 0.3s;
    }

    .diamond-cart svg {
      width: 22px;
      height: 26px;
      flex-shrink: 0;
    }

    .diamond-cart:hover {
      background: rgba(31, 61, 46, 0.16) !important;
      box-shadow: 0 0 30px rgba(31, 61, 46, 0.75), 0 0 60px rgba(31, 61, 46, 0.38) !important;
      transform: scale(1.12) !important;
      animation: none !important;
    }

    @media(max-width:768px) {
      .diamond-cart {
        right: 18px;
        bottom: 94px;
      }
    }

    /* ---- HIDE FLOAT-BOOK (removed per request) ---- */
    .float-book {
      display: none !important;
    }

    /* ---- MAIN: offset for fixed nav ---- */
    main {
      padding-top: 82px;
    }

    @media(max-width:1100px) {
      main {
        padding-top: 82px;
      }
    }

    /* ---- HERO: clean — video full, text over with strong shadows ---- */
    .hero-overlay {
      background: linear-gradient(to bottom,
          rgba(4, 3, 2, 0.18) 0%,
          rgba(4, 3, 2, 0.08) 30%,
          rgba(4, 3, 2, 0.45) 70%,
          rgba(4, 3, 2, 0.92) 100%) !important;
    }

    .hero-video {
      filter: brightness(1.7) contrast(1.08) saturate(1.1) !important;
    }

    .hero-content {
      position: relative;
      padding: 0 !important;
    }

    .hero-content::before {
      content: none !important;
    }

    /* Mini crest above headline — uses pre-cropped logo_crest.png (no tagline text) */
    .hero-mini-crest-wrap {
      display: none;
    }

    .hero-mini-crest {
      width: 200px;
      height: auto;
      display: block;
      margin: 0 auto 28px;
    }

    @keyframes miniCrestGlow {

      0%,
      100% {
        filter: sepia(1) saturate(5) hue-rotate(3deg) brightness(1.6) drop-shadow(0 0 8px rgba(228, 236, 223, 1)) drop-shadow(0 0 24px rgba(63, 80, 70, 0.9)) drop-shadow(0 0 55px rgba(63, 80, 70, 0.5));
      }

      50% {
        filter: sepia(1) saturate(6.5) hue-rotate(1deg) brightness(2.4) drop-shadow(0 0 14px rgba(228, 236, 223, 1)) drop-shadow(0 0 42px rgba(188, 201, 183, 1)) drop-shadow(0 0 90px rgba(63, 80, 70, 0.7));
      }
    }

    .hero-mini-crest {
      animation: miniCrestGlow 3.2s ease-in-out infinite;
    }

    .hero-eyebrow {
      color: var(--gold) !important;
      opacity: 1 !important;
      text-shadow: 0 2px 20px rgba(0, 0, 0, 0.9) !important;
    }

    .hero-rule {
      opacity: 1 !important;
    }

    .hero-h1 {
      filter: drop-shadow(0 2px 18px rgba(0, 0, 0, 0.9)) drop-shadow(0 4px 40px rgba(0, 0, 0, 0.7)) !important;
    }

    .hero-sub {
      color: rgba(255, 255, 255, 0.95) !important;
      opacity: 1 !important;
      text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9) !important;
    }

    /* ---- HERO CREST OVERLAY: world-class motion design ---- */
    .hero-crest-wrap {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      z-index: 2;
      pointer-events: none;
      user-select: none;
      display: flex;
      align-items: center;
      justify-content: center;
      width: clamp(260px, 32vw, 480px);
      height: clamp(260px, 32vw, 480px);
    }

    @keyframes heroCrestFloat {
      0% {
        transform: translateY(0px) scale(1) rotate(0deg);
        filter: sepia(1) saturate(4) hue-rotate(2deg) brightness(1.6) contrast(1.2) drop-shadow(0 0 10px rgba(228, 236, 223, 0.95)) drop-shadow(0 0 28px rgba(31, 61, 46, 0.9)) drop-shadow(0 0 60px rgba(31, 61, 46, 0.65)) drop-shadow(0 0 110px rgba(31, 61, 46, 0.35)) drop-shadow(0 0 200px rgba(31, 61, 46, 0.15));
      }

      25% {
        transform: translateY(-14px) scale(1.04) rotate(0.6deg);
      }

      50% {
        transform: translateY(-22px) scale(1.07) rotate(0deg);
        filter: sepia(1) saturate(5) hue-rotate(2deg) brightness(2.2) contrast(1.4) drop-shadow(0 0 18px rgba(251, 251, 247, 1)) drop-shadow(0 0 48px rgba(228, 236, 223, 1)) drop-shadow(0 0 100px rgba(31, 61, 46, 0.95)) drop-shadow(0 0 180px rgba(31, 61, 46, 0.7)) drop-shadow(0 0 320px rgba(31, 61, 46, 0.35));
      }

      75% {
        transform: translateY(-14px) scale(1.04) rotate(-0.6deg);
      }

      100% {
        transform: translateY(0px) scale(1) rotate(0deg);
        filter: sepia(1) saturate(4) hue-rotate(2deg) brightness(1.6) contrast(1.2) drop-shadow(0 0 10px rgba(228, 236, 223, 0.95)) drop-shadow(0 0 28px rgba(31, 61, 46, 0.9)) drop-shadow(0 0 60px rgba(31, 61, 46, 0.65)) drop-shadow(0 0 110px rgba(31, 61, 46, 0.35)) drop-shadow(0 0 200px rgba(31, 61, 46, 0.15));
      }
    }

    @keyframes heroCrestReveal {
      0% {
        opacity: 0;
        transform: scale(0.78);
      }

      100% {
        opacity: 1;
        transform: scale(1);
      }
    }

    .hero-crest-img {
      width: 100%;
      height: auto;
      clip-path: inset(0 0 28% 0);
      opacity: 0;
      animation:
        heroCrestReveal 1.8s 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards,
        heroCrestFloat 7s 2.4s ease-in-out infinite;
      position: relative;
      z-index: 2;
    }

    /* Orbital rings */
    @keyframes ringPulse1 {

      0%,
      100% {
        transform: scale(1);
        opacity: 0.18;
      }

      50% {
        transform: scale(1.08);
        opacity: 0.38;
      }
    }

    @keyframes ringPulse2 {

      0%,
      100% {
        transform: scale(1);
        opacity: 0.12;
      }

      50% {
        transform: scale(1.12);
        opacity: 0.28;
      }
    }

    @keyframes ringPulse3 {

      0%,
      100% {
        transform: scale(1);
        opacity: 0.07;
      }

      50% {
        transform: scale(1.16);
        opacity: 0.18;
      }
    }

    .hero-crest-ring {
      position: absolute;
      border-radius: 50%;
      border: 1px solid rgba(31, 61, 46, 0.55);
      pointer-events: none;
      box-shadow: 0 0 18px rgba(31, 61, 46, 0.25), inset 0 0 18px rgba(31, 61, 46, 0.12);
    }

    .hero-crest-ring-1 {
      width: 115%;
      height: 115%;
      animation: ringPulse1 4.5s 1s ease-in-out infinite;
    }

    .hero-crest-ring-2 {
      width: 140%;
      height: 140%;
      border-color: rgba(31, 61, 46, 0.3);
      animation: ringPulse2 5.5s 1.5s ease-in-out infinite;
    }

    .hero-crest-ring-3 {
      width: 172%;
      height: 172%;
      border-color: rgba(31, 61, 46, 0.16);
      animation: ringPulse3 7s 2s ease-in-out infinite;
    }

    @media(max-width:768px) {
      .hero-crest-wrap {
        width: clamp(180px, 55vw, 300px);
        height: clamp(180px, 55vw, 300px);
      }
    }

    /* ---- HERO CTA BUTTONS: neon floating border glow ---- */
    @keyframes heroBtnGlow {

      0%,
      100% {
        filter:
          drop-shadow(0 0 2px rgba(228, 236, 223, 1)) drop-shadow(0 0 6px rgba(31, 61, 46, 1)) drop-shadow(0 0 16px rgba(31, 61, 46, 0.85)) drop-shadow(0 0 36px rgba(31, 61, 46, 0.55)) drop-shadow(0 0 68px rgba(31, 61, 46, 0.25));
      }

      40% {
        filter:
          drop-shadow(0 0 4px rgba(251, 251, 247, 1)) drop-shadow(0 0 12px rgba(228, 236, 223, 1)) drop-shadow(0 0 28px rgba(31, 61, 46, 1)) drop-shadow(0 0 56px rgba(31, 61, 46, 0.8)) drop-shadow(0 0 100px rgba(31, 61, 46, 0.45)) drop-shadow(0 0 160px rgba(31, 61, 46, 0.2));
      }

      75% {
        filter:
          drop-shadow(0 0 3px rgba(251, 251, 247, 1)) drop-shadow(0 0 8px rgba(31, 61, 46, 0.95)) drop-shadow(0 0 22px rgba(31, 61, 46, 0.75)) drop-shadow(0 0 50px rgba(31, 61, 46, 0.45)) drop-shadow(0 0 90px rgba(31, 61, 46, 0.2));
      }
    }

    .hero-actions .btn-gold {
      animation: heroBtnGlow 2.4s ease-in-out infinite !important;
    }

    .hero-actions .btn-outline {
      border-color: rgba(31, 61, 46, 0.75) !important;
      animation: heroBtnGlow 2.4s ease-in-out 1.2s infinite !important;
    }

    /* ---- WHAT WE DO — SIX SERVICES ---- */
    .services-section {
      background: var(--black);
      padding: 28px 0 0;
      position: relative;
      overflow: hidden;
    }

    .services-section::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(31, 61, 46, 0.06) 0%, transparent 70%);
    }

    .services-inner {
      max-width: 1340px;
      margin: 0 auto;
      padding: 0 56px;
    }

    @media(max-width:768px) {
      .services-inner {
        padding: 0 24px;
      }
    }

    .services-header {
      text-align: center;
      margin-bottom: 72px;
    }

    .services-eyebrow {
      display: block;
      font-size: 0.52rem;
      letter-spacing: 0.38em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 18px;
    }

    .services-title {
      font-family: var(--serif);
      font-size: clamp(2.4rem, 5vw, 4.2rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.1;
    }

    .services-sub {
      font-family: var(--serif);
      font-style: italic;
      color: var(--cream-70);
      font-size: 1.05rem;
      margin-top: 16px;
      max-width: 560px;
      margin-left: auto;
      margin-right: auto;
      line-height: 1.7;
    }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
    }

    @media(max-width:1000px) {
      .services-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:560px) {
      .services-grid {
        grid-template-columns: 1fr;
      }
    }

    .svc-card {
      position: relative;
      overflow: hidden;
      aspect-ratio: 4/5;
      cursor: default;
    }

    .svc-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .svc-card:hover .svc-img {
      transform: scale(1.06);
    }

    .svc-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(4, 3, 2, 0.96) 0%, rgba(4, 3, 2, 0.55) 45%, rgba(4, 3, 2, 0.12) 100%);
      transition: background 0.5s;
    }

    .svc-card:hover .svc-overlay {
      background: linear-gradient(to top, rgba(4, 3, 2, 0.98) 0%, rgba(4, 3, 2, 0.72) 50%, rgba(4, 3, 2, 0.25) 100%);
    }

    .svc-body {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 32px 28px 36px;
      z-index: 2;
    }

    .svc-num {
      font-family: var(--serif);
      font-size: 0.55rem;
      letter-spacing: 0.3em;
      color: var(--gold);
      display: block;
      margin-bottom: 10px;
      text-shadow: 0 0 14px rgba(31, 61, 46, 0.7);
    }

    .svc-name {
      font-family: var(--serif);
      font-size: 1.35rem;
      font-weight: 300;
      color: var(--cream);
      line-height: 1.2;
      margin-bottom: 10px;
    }

    .svc-desc {
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.62);
      line-height: 1.75;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s;
      opacity: 0;
    }

    .svc-card:hover .svc-desc {
      max-height: 120px;
      opacity: 1;
    }

    .svc-divider {
      width: 28px;
      height: 1px;
      background: linear-gradient(to right, rgba(31, 61, 46, 0.9), transparent);
      margin-bottom: 12px;
    }

    /* Neon border on hover */
    .svc-card::after {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 3;
      pointer-events: none;
      border: 1px solid transparent;
      transition: border-color 0.4s, box-shadow 0.4s;
    }

    .svc-card:hover::after {
      border-color: rgba(31, 61, 46, 0.45);
      box-shadow: inset 0 0 28px rgba(31, 61, 46, 0.08), 0 0 32px rgba(31, 61, 46, 0.18);
    }

    /* Reveal animation */
    .svc-card.reveal {
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
    }

    .svc-card.reveal.in {
      opacity: 1;
      transform: none;
    }

    .svc-card:nth-child(2).reveal {
      transition-delay: 0.1s;
    }

    .svc-card:nth-child(3).reveal {
      transition-delay: 0.2s;
    }

    .svc-card:nth-child(4).reveal {
      transition-delay: 0.15s;
    }

    .svc-card:nth-child(5).reveal {
      transition-delay: 0.25s;
    }

    .svc-card:nth-child(6).reveal {
      transition-delay: 0.3s;
    }

    /* ---- REVIEWS SLIDER ---- */
    .reviews-slider-wrap {
      position: relative;
      overflow: hidden;
      width: 100%;
    }

    .reviews-grid {
      display: flex !important;
      flex-wrap: nowrap !important;
      gap: 0 !important;
      will-change: transform;
    }

    .review-card {
      flex: 0 0 100% !important;
      min-width: 0;
    }

    .reviews-nav {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 22px;
      margin-top: 38px;
    }

    .rv-btn {
      width: 52px;
      height: 52px;
      border: 1px solid rgba(31, 61, 46, 0.25);
      background: transparent;
      color: var(--cream);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-family: var(--sans);
      transition: all 0.3s;
    }

    .rv-btn:hover {
      border-color: var(--gold);
      background: var(--gold);
      color: var(--black);
      box-shadow: 0 0 16px rgba(31, 61, 46, 0.42);
    }

    .rv-btn:disabled {
      opacity: 0.25;
      cursor: default;
      pointer-events: none;
    }

    .rv-dots {
      display: flex;
      gap: 10px;
      align-items: center;
    }

    .rv-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: rgba(188, 201, 183, 0.22);
      cursor: pointer;
      transition: all 0.35s;
    }

    .rv-dot.active {
      background: var(--gold);
      transform: scale(1.45);
      box-shadow: 0 0 7px rgba(31, 61, 46, 0.5);
    }

    /* ======== END OVERHAUL ======== */

    /* ===== SITE LOADER ===== */
    #siteLoader {
      position: fixed; inset: 0;
      z-index: 9999;
      background: #070706;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0;
      transition: opacity 0.7s ease, visibility 0.7s ease;
    }

    #siteLoader.hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    .sl-crest {
      width: 80px;
      filter: sepia(1) saturate(3) hue-rotate(5deg) brightness(1.4);
      animation: slCrestGlow 1.8s ease-in-out infinite, slCrestIn 0.8s ease forwards;
      opacity: 0;
      margin-bottom: 24px;
    }

    @keyframes slCrestIn {
      0% { opacity: 0; transform: scale(0.7) translateY(10px); }
      100% { opacity: 1; transform: scale(1) translateY(0); }
    }

    @keyframes slCrestGlow {
      0%,100% { filter: sepia(1) saturate(3) hue-rotate(5deg) brightness(1.4) drop-shadow(0 0 6px rgba(31, 61, 46,0.6)); }
      50% { filter: sepia(1) saturate(4.5) hue-rotate(3deg) brightness(1.9) drop-shadow(0 0 18px rgba(228, 236, 223,1)) drop-shadow(0 0 36px rgba(31, 61, 46,0.7)); }
    }

    .sl-wordmark {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-size: clamp(1.6rem, 4vw, 2.4rem);
      font-weight: 300;
      letter-spacing: 0.45em;
      text-transform: uppercase;
      color: var(--cream);
      opacity: 0;
      animation: slWordIn 0.9s ease 0.4s forwards;
      margin-bottom: 8px;
      text-shadow: 0 0 18px rgba(31, 61, 46,0.5), 0 0 40px rgba(31, 61, 46,0.25);
    }

    @keyframes slWordIn {
      0% { opacity: 0; letter-spacing: 0.2em; }
      100% { opacity: 1; letter-spacing: 0.45em; }
    }

    .sl-divider {
      width: 40px;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--gold), transparent);
      margin: 10px auto 12px;
      opacity: 0;
      animation: slFadeIn 0.6s ease 0.9s forwards;
    }

    .sl-tagline {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-size: clamp(0.75rem, 2vw, 0.95rem);
      font-style: italic;
      letter-spacing: 0.14em;
      color: rgba(31, 61, 46,0.75);
      opacity: 0;
      animation: slFadeIn 0.6s ease 1.1s forwards;
      margin-bottom: 40px;
    }

    @keyframes slFadeIn {
      0% { opacity: 0; transform: translateY(6px); }
      100% { opacity: 1; transform: translateY(0); }
    }

    .sl-bar-wrap {
      width: clamp(140px, 25vw, 220px);
      height: 1px;
      background: rgba(31, 61, 46,0.15);
      position: relative;
      overflow: hidden;
      opacity: 0;
      animation: slFadeIn 0.4s ease 1.3s forwards;
    }

    .sl-bar {
      position: absolute;
      top: 0; left: -100%;
      width: 100%; height: 100%;
      background: linear-gradient(to right, transparent, var(--gold) 40%, #fbfbf7 60%, var(--gold), transparent);
      animation: slBarSweep 1.4s ease 1.4s forwards;
    }

    @keyframes slBarSweep {
      0% { left: -100%; }
      100% { left: 100%; }
    }

    /* ===== DEMO POPUP ===== */
    #demoPopup {
      position: fixed; inset: 0;
      z-index: 8000;
      background: rgba(7,7,6,0.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.35s ease, visibility 0.35s ease;
    }

    #demoPopup.open {
      opacity: 1;
      visibility: visible;
    }

    .demo-box {
      background: #0f0e0c;
      border: 1px solid rgba(31, 61, 46,0.25);
      padding: 52px 48px;
      max-width: 480px;
      width: 100%;
      text-align: center;
      position: relative;
      box-shadow: 0 0 60px rgba(31, 61, 46,0.12), 0 40px 80px rgba(0,0,0,0.6);
      animation: demoBoxIn 0.4s ease;
    }

    @keyframes demoBoxIn {
      0% { transform: scale(0.94) translateY(10px); opacity: 0; }
      100% { transform: scale(1) translateY(0); opacity: 1; }
    }

    .demo-box::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--gold) 30%, #fbfbf7 50%, var(--gold) 70%, transparent);
      background-size: 200% 100%;
      animation: footerRule 4s linear infinite;
    }

    .demo-crest {
      width: 42px;
      margin: 0 auto 20px;
      filter: sepia(1) saturate(3) brightness(1.4);
      opacity: 0.8;
    }

    .demo-title {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-size: 1.4rem;
      font-weight: 400;
      color: var(--cream);
      letter-spacing: 0.06em;
      margin-bottom: 10px;
    }

    .demo-body {
      font-size: 0.82rem;
      color: rgba(63, 80, 70,0.7);
      line-height: 1.75;
      margin-bottom: 30px;
    }

    .demo-actions {
      display: flex;
      gap: 12px;
      justify-content: center;
      flex-wrap: wrap;
    }

    .demo-close {
      padding: 12px 28px;
      border: 1px solid rgba(31, 61, 46,0.3);
      color: rgba(31, 61, 46,0.7);
      font-size: 0.62rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 600;
      cursor: pointer;
      font-family: inherit;
      background: transparent;
      transition: all 0.3s;
    }

    .demo-close:hover {
      border-color: var(--gold);
      color: var(--cream);
    }

    .demo-visit {
      padding: 12px 28px;
      background: linear-gradient(135deg, #bcc9b7 0%, #3f5046 50%, #1f3d2e 100%);
      color: #060504;
      font-size: 0.62rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 700;
      cursor: pointer;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      transition: all 0.3s;
    }

    .demo-visit:hover {
      box-shadow: 0 4px 20px rgba(31, 61, 46,0.5);
    }

    /* ---- WHATSAPP BUTTON ---- */
    @keyframes waGold {

      0%,
      100% {
        box-shadow: 0 0 12px rgba(31, 61, 46, 0.5), 0 0 24px rgba(31, 61, 46, 0.22), 0 6px 28px rgba(0, 0, 0, 0.38);
      }

      50% {
        box-shadow: 0 0 24px rgba(31, 61, 46, 0.82), 0 0 48px rgba(31, 61, 46, 0.38), 0 6px 28px rgba(0, 0, 0, 0.38);
      }
    }

    .wa-btn {
      position: fixed;
      bottom: 28px;
      right: 28px;
      z-index: 500;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      background: linear-gradient(135deg, #3f5046, #1f3d2e);
      display: flex;
      align-items: center;
      justify-content: center;
      animation: floatUp 3s ease-in-out infinite, waGold 3.5s ease-in-out infinite;
      transition: transform 0.2s, box-shadow 0.2s;
    }

    .wa-btn:hover {
      transform: scale(1.12) !important;
      box-shadow: 0 0 32px rgba(31, 61, 46, 0.9), 0 0 64px rgba(31, 61, 46, 0.45) !important;
      animation: none;
    }

    .wa-btn svg {
      width: 30px;
      height: 30px;
      fill: var(--black);
    }

    .wa-label {
      position: absolute;
      right: 68px;
      background: var(--black);
      color: var(--cream);
      font-size: 0.62rem;
      letter-spacing: 0.12em;
      padding: 7px 14px;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s;
      border: 1px solid var(--gold-20);
    }

    .wa-btn:hover .wa-label {
      opacity: 1;
    }

    /* ==================================================================
       LIGHT THEME — Editorial Luxury Direction (May 2026)
       Warm parchment + ink + warm gold.
       Dark retained only for hero, house section, and museum interstitial.
       ================================================================== */
    :root {
      --bg: #fbfbf7;
      --bg-soft: #FBF7F0;
      --bg-warm: #e4ecdf;
      --bg-edge: rgba(31, 61, 46, 0.18);
      --ink: #1A1814;
      --ink-soft: #3A342B;
      --ink-dim: #2a3a30;
      --gold-deep: #1f3d2e;
      --gold-warm: #3f5046;
    }

    body {
      background: var(--bg) !important;
      color: var(--ink) !important;
    }

    /* === LUXURY APPOINTMENT STRIP (Bulgari pattern) === */
    .appt-bar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      height: 38px;
      background: var(--ink);
      color: var(--bg-soft);
      z-index: 410;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 22px;
      font-family: var(--sans);
      font-size: 0.52rem;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      font-weight: 500;
      border-bottom: 1px solid rgba(31, 61, 46, 0.4);
      padding: 0 24px;
      text-align: center;
    }
    .appt-bar .appt-dot {
      width: 4px;
      height: 4px;
      background: var(--gold);
      border-radius: 50%;
      flex-shrink: 0;
    }
    .appt-bar a {
      color: #FFE9A8 !important;
      position: relative;
      transition: color 0.3s, text-shadow 0.3s, filter 0.3s;
      text-shadow:
        0 0 4px rgba(255, 233, 168, 0.95),
        0 0 10px rgba(232, 193, 106, 0.85),
        0 0 18px rgba(232, 193, 106, 0.6),
        0 0 32px rgba(232, 193, 106, 0.35);
      animation: apptBarNeonPulse 2.4s ease-in-out infinite;
    }
    .appt-bar a::after {
      content: '→';
      margin-left: 10px;
      display: inline-block;
      transition: transform 0.3s;
    }
    .appt-bar a:hover {
      color: #FFFFFF !important;
      text-shadow:
        0 0 6px rgba(255, 255, 255, 1),
        0 0 14px rgba(255, 233, 168, 1),
        0 0 24px rgba(232, 193, 106, 0.9),
        0 0 40px rgba(232, 193, 106, 0.55);
      filter: brightness(1.15);
    }
    .appt-bar a:hover::after { transform: translateX(4px); }
    @keyframes apptBarNeonPulse {
      0%, 100% {
        text-shadow:
          0 0 4px rgba(255, 233, 168, 0.95),
          0 0 10px rgba(232, 193, 106, 0.85),
          0 0 18px rgba(232, 193, 106, 0.6),
          0 0 32px rgba(232, 193, 106, 0.35);
      }
      50% {
        text-shadow:
          0 0 6px rgba(255, 245, 200, 1),
          0 0 14px rgba(255, 233, 168, 1),
          0 0 26px rgba(232, 193, 106, 0.8),
          0 0 46px rgba(232, 193, 106, 0.55);
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .appt-bar a { animation: none; }
    }
    .nav { top: 38px !important; }
    .ticker-fixed { display: none !important; }
    @media(max-width: 768px) {
      .appt-bar {
        font-size: 0.42rem;
        letter-spacing: 0.22em;
        height: 34px;
        padding: 0 12px;
        gap: 10px;
      }
      .appt-bar .appt-hide-mobile { display: none; }
      .nav { top: 34px !important; }
    }

    /* === NAV — light when scrolled, transparent over dark hero retains light type === */
    .nav.scrolled {
      background: rgba(255, 255, 255, 0.96) !important;
      backdrop-filter: blur(20px) !important;
      -webkit-backdrop-filter: blur(20px) !important;
      border-bottom-color: var(--bg-edge) !important;
    }
    .nav.scrolled .nav-brand-name { color: var(--ink) !important; }
    .nav.scrolled .nav-brand-sub { color: var(--gold-deep) !important; opacity: 0.95; }
    .nav.scrolled .nav-links a { color: rgba(26, 24, 20, 0.62) !important; }
    .nav.scrolled .nav-links a:hover { color: var(--ink) !important; }
    .nav.scrolled .nav-links a::after { background: var(--gold-deep) !important; }
    .nav.scrolled .nav-logo-img {
      /* Stay a solid deep-gold crest when scrolled — never go white on the white nav. */
      mix-blend-mode: normal !important;
      filter:
        invert(1) sepia(1) saturate(6) hue-rotate(2deg) brightness(0.56) contrast(1.22)
        drop-shadow(0 1px 3px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 10px rgba(31, 61, 46, 0.75)) !important;
    }
    .nav.scrolled .nav-burger { color: var(--ink) !important; }
    .nav-cta {
      color: var(--bg-soft) !important;
      background: var(--ink) !important;
    }
    .nav-cta:hover {
      background: var(--gold-deep) !important;
      color: var(--bg-soft) !important;
    }

    /* === TRUST STRIP — inverted to parchment === */
    #trust-strip {
      background: linear-gradient(180deg, #0E1A14 0%, #142B20 50%, #0E1A14 100%) !important;
      border-top: 1px solid rgba(228, 194, 119, 0.42) !important;
      border-bottom: 1px solid rgba(228, 194, 119, 0.42) !important;
      box-shadow: inset 0 0 60px rgba(228, 194, 119, 0.06);
    }
    #trust-strip::before { background: linear-gradient(to right, #0E1A14 20%, transparent) !important; }
    #trust-strip::after  { background: linear-gradient(to left,  #0E1A14 20%, transparent) !important; }
    /* Gold trust strip — every item flashes between champagne and bright cream
       continuously, mirroring the hero star treatment. */
    .ts-item {
      color: #C9A55C !important;
      font-weight: 600 !important;
      letter-spacing: 0.16em !important;
      text-shadow: 0 0 12px rgba(212, 175, 110, 0.25);
      animation: tsItemGoldFlash 3.4s ease-in-out infinite;
    }
    @keyframes tsItemGoldFlash {
      0%, 100% {
        color: #C9A55C;
        text-shadow: 0 0 0 rgba(255, 241, 196, 0);
      }
      50% {
        color: #E8C16A;
        text-shadow:
          0 0 14px rgba(255, 241, 196, 0.85),
          0 0 32px rgba(212, 175, 110, 0.55);
      }
    }
    .ts-badge {
      color: #FFF1C4 !important;
      background: linear-gradient(180deg, rgba(228, 194, 119, 0.18) 0%, rgba(212, 175, 110, 0.06) 100%) !important;
      border: 1px solid #E8C16A !important;
      box-shadow: 0 0 12px rgba(228, 194, 119, 0.35);
      animation: tsBadgeGoldFlash 2.6s ease-in-out infinite;
    }
    @keyframes tsBadgeGoldFlash {
      0%, 100% {
        color: #E8C16A !important;
        box-shadow:
          0 0 0 rgba(255, 241, 196, 0),
          inset 0 0 10px rgba(212, 175, 110, 0.25);
      }
      50% {
        color: #FFF1C4 !important;
        box-shadow:
          0 0 18px rgba(255, 241, 196, 0.85),
          inset 0 0 14px rgba(255, 241, 196, 0.45);
      }
    }
    .ts-sep {
      background: linear-gradient(180deg, transparent 0%, rgba(228, 194, 119, 0.55) 50%, transparent 100%) !important;
    }
    @media (prefers-reduced-motion: reduce) {
      .ts-item, .ts-badge { animation: none !important; }
    }

    /* === HOUSE SECTION — retains its cinematic dark gradient over Cape Town image === */
    /* (intentional dark moment, no override needed) */

    /* === PILLARS SECTION — deep emerald ground (client-requested).
       Layered gradient (not a flat fill) so the band has depth and the
       heading flows cohesively into the dark pillar cards below. === */
    .pillars-section {
      background:
        radial-gradient(135% 105% at 50% -8%, #2E5A45 0%, #214031 40%, #173322 78%, #112A1B 100%) !important;
      padding: clamp(40px, 5vw, 72px) 0 clamp(48px, 6vw, 96px) !important;
    }
    .pillars-section .pillars-header h2,
    .pillars-section h2[style*="color:var(--cream)"] { color: var(--cream) !important; }
    .pillars-section [style*="color:var(--cream-dim)"],
    .pillars-section .pillars-header p { color: var(--cream-dim) !important; }
    .pillars-section .eyebrow { color: #E8C16A !important; }
    .pillars-section .gold-line { background: linear-gradient(90deg, transparent, #E8C16A, transparent) !important; }

    /* === FOUNDER SECTION — cinematic dark with animated golden ambience === */
    .founder-section {
      background:
        radial-gradient(ellipse 70% 50% at 28% 38%, rgba(31, 61, 46, 0.55) 0%, rgba(28, 20, 10, 0) 60%),
        radial-gradient(ellipse 60% 55% at 78% 70%, rgba(63, 80, 70, 0.22) 0%, rgba(28, 20, 10, 0) 60%),
        linear-gradient(180deg, #0a0805 0%, #15100a 50%, #0a0805 100%) !important;
      position: relative;
      overflow: hidden;
    }
    /* Slow golden aurora drift behind everything — feels like the hero header */
    .founder-section::before {
      content: '';
      position: absolute;
      inset: -10%;
      background:
        radial-gradient(ellipse 40% 30% at 20% 30%, rgba(188, 201, 183, 0.18) 0%, transparent 60%),
        radial-gradient(ellipse 35% 28% at 80% 70%, rgba(228, 236, 223, 0.16) 0%, transparent 60%),
        radial-gradient(ellipse 30% 25% at 55% 50%, rgba(63, 80, 70, 0.14) 0%, transparent 60%);
      filter: blur(28px);
      pointer-events: none;
      z-index: 0;
      animation: fndAuroraDrift 22s ease-in-out infinite alternate;
    }
    /* Top gilt rule integrated into the section — replaces the standalone gilt-rule */
    .founder-section::after {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent 0%, rgba(188, 201, 183, 0.6) 20%, rgba(228, 236, 223, 0.95) 50%, rgba(188, 201, 183, 0.6) 80%, transparent 100%);
      z-index: 4;
      pointer-events: none;
    }
    @keyframes fndAuroraDrift {
      0%   { transform: translate(0, 0) scale(1); opacity: 0.85; }
      50%  { transform: translate(3%, -2%) scale(1.04); opacity: 1; }
      100% { transform: translate(-2%, 2%) scale(1.02); opacity: 0.9; }
    }
    /* Zero top whitespace — section sits flush against the gilt rule above */
    .founder-section.section,
    .founder-section { padding-top: 0 !important; padding-bottom: clamp(48px, 5vw, 80px) !important; }
    .founder-section .fnd-timeline {
      padding: 26px 9% 0 !important;
      position: relative;
      z-index: 3;
    }
    /* Cream/gold text on dark — matches hero header palette */
    .founder-section .eyebrow,
    .founder-section .fnd-eyebrow { color: var(--gold) !important; }
    .founder-section .gold-line,
    .founder-section .fnd-rule { background: var(--gold) !important; opacity: 0.55; }
    .founder-section .fnd-tl-evt,
    .founder-section .fnd-stat-lbl { color: var(--cream-dim) !important; }
    .founder-section .fnd-tl-year,
    .founder-section .fnd-stat-num,
    .founder-section .fnd-title-strap { color: var(--gold) !important; }
    .founder-section p,
    .founder-section .fnd-p,
    .founder-section .fnd-blockquote { color: rgba(255, 255, 255, 0.85) !important; }
    .founder-section .fnd-blockquote { color: var(--cream) !important; }
    /* Dr Petre Prins — shimmering gold, larger, with luxury text-shadow halo */
    .founder-section .fnd-name {
      font-size: clamp(3.4rem, 6.2vw, 6.4rem) !important;
      font-weight: 300 !important;
      letter-spacing: -0.015em !important;
      line-height: 1 !important;
      background: linear-gradient(95deg, #e4ecdf 0%, #bcc9b7 25%, #3f5046 50%, #bcc9b7 75%, #3f5046 100%);
      background-size: 250% 100%;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent !important;
      text-shadow: 0 0 40px rgba(188, 201, 183, 0.35);
      animation: fndNameShimmer 8s ease-in-out infinite;
      filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.55));
    }
    @keyframes fndNameShimmer {
      0%, 100% { background-position: 0% 50%; }
      50%      { background-position: 100% 50%; }
    }
    /* Credential strap line under the name — needs to be visible too */
    .founder-section .fnd-title-strap {
      font-size: 0.7rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      margin: 18px 0 0;
      font-weight: 600;
    }
    /* Ghost "PRINS" watermark — push warmer so it reads on the dark */
    .founder-section .fnd-ghost { color: rgba(188, 201, 183, 0.055) !important; }
    /* Signature flourish */
    .founder-section .fnd-signature { margin-top: 28px; color: var(--gold); }
    .founder-section .fnd-sig-script {
      font-family: var(--serif);
      font-style: italic;
      font-size: 1.6rem;
      color: var(--gold);
      display: block;
      letter-spacing: 0.02em;
    }
    .founder-section .fnd-sig-cap {
      font-size: 0.5rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: var(--cream-dim);
      display: block;
      margin-top: 6px;
    }
    /* Crest mark hidden — Sasha wants zero whitespace above the timeline */
    .founder-section .fnd-crest-top { display: none !important; }
    /* Quote marks */
    .founder-section .fnd-quote-mark {
      font-family: var(--serif);
      font-size: 1.6em;
      color: var(--gold);
      vertical-align: -0.25em;
      margin-right: 4px;
      opacity: 0.7;
    }
    .founder-section .fnd-quote-mark-close { margin-left: 4px; margin-right: 0; }
    /* Portrait halo + frame on the right side */
    .founder-section .fnd-portrait-halo {
      position: absolute;
      inset: -10%;
      background: radial-gradient(ellipse 60% 50% at 50% 45%, rgba(188, 201, 183, 0.22) 0%, transparent 65%);
      filter: blur(40px);
      pointer-events: none;
      z-index: 0;
    }
    .founder-section .fnd-portrait-frame {
      position: absolute;
      inset: 0;
      overflow: hidden;
      z-index: 1;
    }

    /* === COLLECTIONS SECTION === */
    .collections-section {
      background: var(--bg) !important;
    }
    .collections-section h2,
    .collections-section h2[style*="color:var(--cream)"] { color: var(--ink) !important; }
    .collections-section .eyebrow { color: var(--gold-deep) !important; }
    .collections-section .gold-line { background: var(--gold-deep) !important; }
    .collections-section p { color: var(--ink-soft) !important; }

    /* === SERVICES SECTION === */
    .services-section {
      background: var(--bg-soft) !important;
    }
    .services-section h2,
    .services-section h2[style*="color:var(--cream)"] { color: var(--ink) !important; }
    .services-section .eyebrow { color: var(--gold-deep) !important; }
    .services-section .gold-line { background: var(--gold-deep) !important; }

    /* === CELEBRITY CLIENTS === */
    .celeb-section {
      background: var(--bg) !important;
    }
    .celeb-section .celeb-headline { color: var(--ink) !important; }
    .celeb-section .eyebrow { color: var(--gold-deep) !important; }
    .celeb-section .gold-line { background: var(--gold-deep) !important; }

    /* === AWARDS === */
    .awards-section {
      background: var(--bg-soft) !important;
    }
    .awards-section .awards-title,
    .awards-section h2,
    .awards-section h2[style*="color:var(--cream)"] { color: var(--ink) !important; }
    .awards-section .eyebrow { color: var(--gold-deep) !important; }
    .awards-section .gold-line { background: var(--gold-deep) !important; }

    /* === REVIEWS === */
    .reviews-section {
      background: var(--bg) !important;
    }
    .reviews-section h2,
    .reviews-section h2[style*="color:var(--cream)"] { color: var(--ink) !important; }
    .reviews-section .eyebrow { color: var(--gold-deep) !important; }
    .reviews-section .gold-line { background: var(--gold-deep) !important; }
    .reviews-section [style*="color:var(--cream)"] { color: var(--ink) !important; }
    .reviews-section [style*="color:rgba(160,144,120"] { color: var(--ink-dim) !important; }
    .reviews-section [style*="color:rgba(31, 61, 46,0.5)"] { color: var(--gold-deep) !important; }
    .reviews-section [style*="background:rgba(31, 61, 46,0.03)"] { background: rgba(31, 61, 46, 0.05) !important; }
    .reviews-section [style*="border:1px solid rgba(31, 61, 46,0.12)"] { border-color: rgba(31, 61, 46, 0.2) !important; }
    .reviews-section [style*="background:rgba(31, 61, 46,0.1)"] { background: rgba(31, 61, 46, 0.18) !important; }

    /* === JOURNAL === */
    .journal-section {
      background: var(--bg) !important;
    }
    .journal-section .display-mid,
    .journal-section h2 { color: var(--ink) !important; }
    .journal-section .j-title { color: var(--ink) !important; }
    .journal-section .j-excerpt,
    .journal-section .j-body p { color: var(--ink-soft) !important; }
    .journal-section .j-cat { color: var(--gold-deep) !important; }
    .journal-section .eyebrow { color: var(--gold-deep) !important; }
    .journal-section .gold-line { background: var(--gold-deep) !important; }
    .journal-section .link-gold { color: var(--gold-deep) !important; }

    /* === LOCATION / VISIT === */
    .location-section {
      background: var(--bg-soft) !important;
    }
    .location-section h2,
    .location-section h2[style*="color:var(--cream)"] { color: var(--ink) !important; }
    .location-section .eyebrow { color: var(--gold-deep) !important; }
    .location-section .gold-line { background: var(--gold-deep) !important; }
    .location-section p { color: var(--ink-soft) !important; }

    /* === FINAL CTA SECTION === */
    .cta-section {
      background: var(--bg-warm) !important;
    }
    /* CTA section sits over a dark video — keep cream/gold text for legibility */
    .cta-section .display-xl,
    .cta-section h2 {
      color: var(--cream, #f3ede5) !important;
      text-shadow: 0 2px 24px rgba(0,0,0,0.85), 0 0 60px rgba(0,0,0,0.55) !important;
    }
    .cta-section .eyebrow { color: var(--gold, #3f5046) !important; text-shadow: 0 1px 12px rgba(0,0,0,0.7) !important; }
    .cta-section .gold-line { background: var(--gold, #3f5046) !important; }
    .cta-section p {
      color: rgba(255, 255, 255, 0.95) !important;
      text-shadow: 0 2px 16px rgba(0,0,0,0.85) !important;
    }
    .cta-section .cta-location { color: rgba(255, 255, 255, 0.78) !important; }
    /* Strengthen the video overlay so the text reads against any frame */
    .cta-section .cta-overlay {
      background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.62) 50%, rgba(0,0,0,0.5) 100%) !important;
    }

    /* === BUTTONS on light backgrounds === */
    .pillars-section .btn-outline,
    .founder-section .btn-outline,
    .collections-section .btn-outline,
    .services-section .btn-outline,
    .celeb-section .btn-outline,
    .awards-section .btn-outline,
    .reviews-section .btn-outline,
    .journal-section .btn-outline,
    .location-section .btn-outline,
    .cta-section .btn-outline {
      color: var(--ink) !important;
      border-color: rgba(26, 24, 20, 0.28) !important;
    }
    .pillars-section .btn-outline:hover,
    .founder-section .btn-outline:hover,
    .collections-section .btn-outline:hover,
    .services-section .btn-outline:hover,
    .celeb-section .btn-outline:hover,
    .awards-section .btn-outline:hover,
    .reviews-section .btn-outline:hover,
    .journal-section .btn-outline:hover,
    .location-section .btn-outline:hover,
    .cta-section .btn-outline:hover {
      border-color: var(--gold-deep) !important;
      background: rgba(31, 61, 46, 0.06) !important;
      color: var(--ink) !important;
    }

    /* === FOOTER (kept dark as anchor) === */
    footer { background: var(--ink) !important; color: var(--bg-soft) !important; }

    /* === HIDE Diamond Cart float (cheap retail signal) === */
    .diamond-cart { display: none !important; }

    /* === WHATSAPP — luxury gold treatment, never green === */
    .wa-btn {
      display: flex !important;
      background: linear-gradient(135deg, #bcc9b7 0%, #3f5046 45%, #1f3d2e 100%) !important;
      box-shadow:
        0 6px 20px rgba(31, 61, 46, 0.4),
        0 0 26px rgba(31, 61, 46, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
      animation: waGoldPulse 3.6s ease-in-out infinite, waGoldShine 4.5s ease-in-out infinite !important;
      position: fixed !important;
      overflow: hidden !important;
      border: 1px solid rgba(255, 255, 255, 0.18) !important;
    }
    .wa-btn::before {
      content: '';
      position: absolute;
      top: -150%;
      left: -50%;
      width: 60%;
      height: 400%;
      background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%);
      transform: rotate(20deg);
      animation: waSheen 4.5s ease-in-out infinite;
      pointer-events: none;
    }
    .wa-btn svg {
      fill: var(--ink) !important;
      filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.35)) !important;
      position: relative;
      z-index: 2;
    }
    .wa-btn:hover {
      transform: scale(1.1) !important;
      box-shadow:
        0 10px 28px rgba(31, 61, 46, 0.55),
        0 0 44px rgba(188, 201, 183, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
    }
    .wa-label {
      background: var(--ink) !important;
      color: var(--gold-lt) !important;
      border: 1px solid rgba(31, 61, 46, 0.4) !important;
      font-weight: 500 !important;
    }
    @keyframes waGoldPulse {
      0%   { box-shadow: 0 6px 20px rgba(31, 61, 46, 0.4), 0 0 0 0 rgba(31, 61, 46, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.45); }
      70%  { box-shadow: 0 6px 20px rgba(31, 61, 46, 0.4), 0 0 0 18px rgba(31, 61, 46, 0), inset 0 1px 0 rgba(255, 255, 255, 0.45); }
      100% { box-shadow: 0 6px 20px rgba(31, 61, 46, 0.4), 0 0 0 0 rgba(31, 61, 46, 0), inset 0 1px 0 rgba(255, 255, 255, 0.45); }
    }
    @keyframes waGoldShine {
      0%, 100% { filter: brightness(1); }
      50%      { filter: brightness(1.12); }
    }
    @keyframes waSheen {
      0%   { left: -80%; }
      55%  { left: 130%; }
      100% { left: 130%; }
    }

    /* === LUXURY FLOAT BOOK CONSULTATION === */
    .float-book {
      background: var(--ink) !important;
      color: var(--bg-soft) !important;
      border: 1px solid var(--gold-deep) !important;
    }
    .float-book:hover {
      background: var(--gold-deep) !important;
      color: var(--bg-soft) !important;
    }

    /* === HERO SHIMMER REMOVED (cheap signal per benchmark research) === */
    .hero-h1.shimmer-text {
      animation: none !important;
      -webkit-background-clip: initial !important;
      background-clip: initial !important;
      -webkit-text-fill-color: var(--cream) !important;
      color: var(--cream) !important;
      background: none !important;
    }

    /* === HERO VIDEO FILTER RESET (new video doesn't need brightness boost) === */
    .hero-video {
      filter: brightness(1) contrast(1.03) saturate(1.06) !important;
    }

    /* === MUSEUM OF GEMS — dark cinematic interstitial (the brand's biggest differentiator) === */
    .museum-section {
      position: relative;
      padding: 0;
      background: var(--char);
      overflow: hidden;
      color: var(--cream);
    }
    .museum-frame {
      position: relative;
      min-height: 88vh;
      display: grid;
      grid-template-columns: 1.05fr 1fr;
      align-items: stretch;
    }
    .museum-img-wrap {
      position: relative;
      overflow: hidden;
    }
    .museum-img-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, rgba(7,7,6,0) 0%, rgba(7,7,6,0.65) 100%);
      pointer-events: none;
    }
    .museum-img-wrap img,
    .museum-img-wrap video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transform: scale(1.04);
      transition: transform 9s var(--ease-out);
    }
    .museum-section.in .museum-img-wrap img,
    .museum-section.in .museum-img-wrap video {
      transform: scale(1);
    }
    .museum-body {
      padding: clamp(70px, 9vw, 130px) clamp(40px, 6vw, 90px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      max-width: 640px;
    }
    .museum-eyebrow {
      font-family: var(--sans);
      font-size: 0.59rem;
      font-weight: 600;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--gold);
    }
    .museum-line {
      width: 40px;
      height: 1px;
      background: var(--gold);
      margin: 22px 0 26px;
    }
    .museum-h2 {
      font-family: var(--serif);
      font-size: clamp(2.4rem, 4.6vw, 4.4rem);
      font-weight: 300;
      line-height: 1.04;
      letter-spacing: -0.012em;
      color: var(--cream);
    }
    .museum-h2 em { font-style: italic; color: var(--gold-lt); }
    .museum-lead {
      font-family: var(--serif);
      font-style: italic;
      font-size: 1.18rem;
      line-height: 1.55;
      color: rgba(255, 255, 255, 0.78);
      margin-top: 28px;
      max-width: 480px;
    }
    .museum-body p.museum-body-text {
      color: rgba(255, 255, 255, 0.72);
      margin-top: 22px;
      max-width: 480px;
      line-height: 1.75;
      font-size: 0.95rem;
    }
    .museum-meta {
      display: flex;
      gap: 48px;
      margin-top: 44px;
      padding-top: 32px;
      border-top: 1px solid rgba(31, 61, 46, 0.22);
      flex-wrap: wrap;
    }
    .museum-meta-item { display: flex; flex-direction: column; gap: 8px; }
    .museum-meta-num {
      font-family: var(--serif);
      font-size: 2rem;
      font-weight: 300;
      color: var(--gold-lt);
      line-height: 1;
    }
    .museum-meta-lbl {
      font-size: 0.5rem;
      letter-spacing: 0.26em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.5);
    }
    .museum-cta {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      align-self: flex-start;
      margin-top: 44px;
      font-family: var(--sans);
      font-size: 0.62rem;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--gold);
      padding: 14px 0 16px;
      position: relative;
      border-bottom: 1px solid rgba(31, 61, 46, 0.28);
      transition: color 0.35s, border-color 0.35s;
    }
    .museum-cta svg { transition: transform 0.35s var(--ease-out); }
    .museum-cta:hover { color: var(--gold-lt); border-bottom-color: var(--gold-lt); }
    .museum-cta:hover svg { transform: translateX(6px); }
    @media(max-width: 980px) {
      .museum-frame {
        grid-template-columns: 1fr;
      }
      .museum-img-wrap {
        height: 60vh;
        min-height: 460px;
      }
      .museum-img-wrap::after {
        background: linear-gradient(to bottom, rgba(7,7,6,0) 0%, rgba(7,7,6,0.55) 100%);
      }
      .museum-body {
        padding: 80px 28px 100px;
      }
    }

    /* === ACCESSIBILITY: focus ring + reduced motion (Web Interface Guidelines compliance) === */
    a:focus-visible,
    button:focus-visible,
    [role="button"]:focus-visible {
      outline: 2px solid var(--gold-deep);
      outline-offset: 3px;
      border-radius: 1px;
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.001s !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001s !important;
        scroll-behavior: auto !important;
      }
      .ts-track, .tf-track, .reviews-ticker { animation: none !important; }
      .hero-video, .pillar-bg video, .museum-img-wrap video { display: block; }
    }

    /* ==================================================================
       REFINEMENT PASS (May 2026, second round per client feedback)
       Specific fixes for hero readability, museum tone, reviews redesign,
       awards drama, celebrity mobile, animated section breakers, footer lift
       ================================================================== */

    /* === GOLD FILAMENT SECTION DIVIDER — same refined glow as footer === */
    .section-divider {
      position: relative;
      height: 1px;
      margin: 0 auto;
      overflow: visible;
      pointer-events: none;
      max-width: 1180px;
      width: 88%;
    }
    .section-divider::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, transparent, var(--gold) 50%, transparent);
      opacity: 0.55;
      animation: filamentBreathA 6s ease-in-out infinite;
    }
    .section-divider::after {
      content: '';
      position: absolute;
      left: 0; right: 0;
      top: -3px;
      height: 7px;
      background: linear-gradient(to right, transparent, rgba(31, 61, 46, 0.45) 50%, transparent);
      filter: blur(4px);
      animation: filamentGlowA 6s ease-in-out infinite;
      pointer-events: none;
    }
    .section-divider.flow-b::before { animation-name: filamentBreathB; animation-duration: 7s; }
    .section-divider.flow-b::after  { animation-name: filamentGlowB; animation-duration: 7s; }
    .section-divider.flow-c::before { animation-name: filamentBreathC; animation-duration: 8s; }
    .section-divider.flow-c::after  { animation-name: filamentGlowC; animation-duration: 8s; }
    .section-divider.flow-d::before { animation-name: filamentBreathD; animation-duration: 9s; }
    .section-divider.flow-d::after  { animation-name: filamentGlowD; animation-duration: 9s; }
    .section-divider.flow-e::before { animation-name: filamentBreathE; animation-duration: 10s; }
    .section-divider.flow-e::after  { animation-name: filamentGlowE; animation-duration: 10s; }
    @keyframes filamentBreathA {
      0%, 100% { opacity: 0.35; }
      50%      { opacity: 0.85; }
    }
    @keyframes filamentBreathB {
      0%, 100% { opacity: 0.4; }
      50%      { opacity: 0.9; }
    }
    @keyframes filamentBreathC {
      0%, 100% { opacity: 0.3; }
      50%      { opacity: 0.8; }
    }
    @keyframes filamentBreathD {
      0%, 100% { opacity: 0.45; }
      50%      { opacity: 0.95; }
    }
    @keyframes filamentBreathE {
      0%, 100% { opacity: 0.35; }
      50%      { opacity: 0.78; }
    }
    @keyframes filamentGlowA {
      0%, 100% { opacity: 0.6; filter: blur(4px); }
      50%      { opacity: 1;   filter: blur(6px); }
    }
    @keyframes filamentGlowB {
      0%, 100% { opacity: 0.55; filter: blur(4px); }
      50%      { opacity: 1;    filter: blur(7px); }
    }
    @keyframes filamentGlowC {
      0%, 100% { opacity: 0.5; filter: blur(4px); }
      50%      { opacity: 0.95; filter: blur(6px); }
    }
    @keyframes filamentGlowD {
      0%, 100% { opacity: 0.65; filter: blur(4px); }
      50%      { opacity: 1;    filter: blur(8px); }
    }
    @keyframes filamentGlowE {
      0%, 100% { opacity: 0.6; filter: blur(4px); }
      50%      { opacity: 0.95; filter: blur(7px); }
    }
    .section-divider-wrap {
      padding: 0;
      margin: 0;
      height: 1px;
      position: relative;
      z-index: 5;
      background: transparent;
    }
    .section-divider-wrap .section-divider {
      width: 100%;
      max-width: 1100px;
    }
    /* tighten section padding so divider sits cleanly at the seam */
    .pillars-section,
    .collections-section,
    .services-section,
    .celeb-section,
    .reviews-section,
    .journal-section,
    .location-section,
    .cta-section {
      padding-top: clamp(64px, 7vw, 100px) !important;
      padding-bottom: clamp(64px, 7vw, 100px) !important;
    }
    /* Founder: no top whitespace — timeline sits flush against the section start */
    .founder-section {
      padding-top: 0 !important;
      padding-bottom: clamp(48px, 5vw, 80px) !important;
    }
    /* Pillars: reduce vast empty space above brandmark + heading */
    .pillars-section .pillars-header {
      padding-top: 0 !important;
    }

    /* === HERO: full wordmark logo, white-to-gold loop, gentle float === */
    .sr-only {
      position: absolute !important;
      width: 1px; height: 1px;
      padding: 0; margin: -1px;
      overflow: hidden;
      clip: rect(0,0,0,0);
      white-space: nowrap;
      border: 0;
    }
    .hero-mini-crest, .hero-full-logo, .hero-crest-3d {
      width: clamp(220px, 22vw, 340px) !important;
      max-width: 70vw !important;
      height: auto !important;
      margin: 0 auto 14px !important;
      display: block !important;
      mix-blend-mode: normal !important;
      animation:
        logoEntry 1.4s cubic-bezier(0.16, 1, 0.3, 1) both,
        logoWhiteGoldShine 3s ease-in-out 1.4s infinite,
        logoFloat3D 7s ease-in-out 1.4s infinite !important;
      filter:
        invert(1) brightness(1.85) contrast(1.05) saturate(0)
        drop-shadow(0 6px 14px rgba(0, 0, 0, 0.55))
        drop-shadow(0 0 28px rgba(255, 255, 255, 0.95))
        drop-shadow(0 0 72px rgba(255, 255, 255, 0.6)) !important;
      will-change: transform, filter;
    }
    @keyframes logoEntry {
      0%   { opacity: 0; transform: scale(0.86) translateY(14px) rotateX(8deg); }
      100% { opacity: 1; transform: scale(1) translateY(0) rotateX(0); }
    }
    @keyframes logoFloat3D {
      0%, 100% { transform: translateY(0) rotateX(0) rotateY(0); }
      25%      { transform: translateY(-4px) rotateX(1.4deg) rotateY(-1.4deg); }
      50%      { transform: translateY(-6px) rotateX(0) rotateY(0); }
      75%      { transform: translateY(-4px) rotateX(-1.4deg) rotateY(1.4deg); }
    }
    @keyframes logoWhiteGoldShine {
      0%, 100% {
        /* Pure luminous white */
        filter:
          invert(1) brightness(1.9) contrast(1.05) saturate(0)
          drop-shadow(0 6px 14px rgba(0, 0, 0, 0.55))
          drop-shadow(0 0 32px rgba(255, 255, 255, 1))
          drop-shadow(0 0 84px rgba(255, 255, 255, 0.7));
      }
      50% {
        /* Deep saturated gold peak — unmistakable shift */
        filter:
          invert(1) sepia(1) saturate(9) hue-rotate(6deg) brightness(0.92) contrast(1.18)
          drop-shadow(0 6px 14px rgba(0, 0, 0, 0.55))
          drop-shadow(0 0 18px rgba(228, 236, 223, 1))
          drop-shadow(0 0 48px rgba(188, 201, 183, 1))
          drop-shadow(0 0 120px rgba(31, 61, 46, 0.9));
      }
    }
    @media(max-width: 768px) {
      .hero-mini-crest, .hero-full-logo, .hero-crest-3d {
        width: clamp(190px, 56vw, 280px) !important;
        margin: 4px auto 16px !important;
      }
    }

    /* === HERO RATINGS LINE (Google + TripAdvisor display) === */
    .hero-ratings {
      display: inline-flex;
      align-items: center;
      gap: 22px;
      padding: 10px 22px;
      margin: 2px auto 20px;
      border: 1px solid rgba(31, 61, 46, 0.32);
      background: rgba(7, 7, 6, 0.42);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      opacity: 0;
      animation: fadeUp 1s 1.15s var(--ease-out) forwards;
      flex-wrap: wrap;
      justify-content: center;
      max-width: 92vw;
    }
    .hero-ratings .hr-item {
      display: inline-flex;
      align-items: center;
      gap: 9px;
    }
    .hero-ratings .hr-logo {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 0.66rem;
      font-weight: 700;
      color: #fff;
      flex-shrink: 0;
      line-height: 1;
    }
    .hero-ratings .hr-google {
      background: conic-gradient(from 0deg, #4285F4 0%, #34A853 30%, #1f3d2e 55%, #EA4335 78%, #4285F4 100%);
    }
    .hero-ratings .hr-ta {
      background: #00AA6C;
      font-size: 0.46rem;
      letter-spacing: 0.02em;
    }
    .hero-ratings .hr-score {
      font-family: var(--serif);
      font-size: 1.1rem;
      font-weight: 400;
      color: var(--cream);
      line-height: 1;
      letter-spacing: 0.01em;
    }
    .hero-ratings .hr-stars {
      color: var(--gold);
      font-size: 0.7rem;
      letter-spacing: 2px;
      text-shadow: 0 0 8px rgba(31, 61, 46, 0.45);
    }
    .hero-ratings .hr-platform {
      font-family: var(--sans);
      font-size: 0.46rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.7);
      font-weight: 500;
    }
    .hero-ratings .hr-sep {
      width: 1px;
      height: 28px;
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.45) 50%, transparent);
    }
    @media(max-width: 640px) {
      .hero-ratings {
        gap: 8px 16px;
        padding: 12px 18px;
        margin-bottom: 24px;
      }
      .hero-ratings .hr-sep { display: none; }
      .hero-ratings .hr-platform { display: none; }
      .hero-ratings .hr-score { font-size: 0.96rem; }
    }

    /* === MUSEUM IMAGE: smooth Ken Burns zoom (continuous) === */
    .museum-img-wrap {
      position: relative;
      overflow: hidden;
    }
    .museum-img-wrap img {
      will-change: transform;
      animation: museumZoomLoop 18s ease-in-out infinite alternate !important;
      transform-origin: 56% 48%;
    }
    @keyframes museumZoomLoop {
      0%   { transform: scale(1) translate(0, 0); }
      100% { transform: scale(1.085) translate(-1.5%, -1%); }
    }
    @media (prefers-reduced-motion: reduce) {
      .museum-img-wrap img { animation: none !important; transform: scale(1) !important; }
    }

    /* === Stronger white phase on hero + house shine so the white-to-gold pulse is visible === */
    .hero-mini-crest, .hero-full-logo, .house-crest-watermark {
      /* baseline becomes near-pure-white luminous */
    }
    .hero-sub {
      color: #fbfbf7 !important;
      text-shadow: 0 2px 18px rgba(0, 0, 0, 0.95), 0 0 32px rgba(0, 0, 0, 0.7), 0 0 60px rgba(0, 0, 0, 0.45) !important;
    }

    /* === HERO ON WHITE VIDEO — overrides for the light-background header === */
    .hero-overlay-light {
      background: linear-gradient(180deg,
        rgba(251, 251, 247, 0.0) 0%,
        rgba(228, 236, 223, 0.18) 50%,
        rgba(228, 236, 223, 0.42) 100%) !important;
    }
    .hero:has(.hero-video-light) .hero-eyebrow {
      background: linear-gradient(90deg,
        #2a1d05 0%,
        #4a3613 22%,
        #2a3a30 50%,
        #4a3613 78%,
        #2a1d05 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      color: transparent !important;
      font-weight: 800 !important;
      filter:
        drop-shadow(0 0 1px rgba(251, 251, 247, 1))
        drop-shadow(0 0 3px rgba(251, 251, 247, 1))
        drop-shadow(0 0 9px rgba(251, 251, 247, 0.95))
        drop-shadow(0 0 22px rgba(251, 251, 247, 0.7))
        drop-shadow(0 2px 5px rgba(0, 0, 0, 0.4)) !important;
      text-shadow: none !important;
    }
    .hero:has(.hero-video-light) .hero-sub {
      color: #000000 !important;
      font-weight: 700 !important;
      text-shadow:
        0 0 1px rgba(251, 251, 247, 1),
        0 0 3px rgba(251, 251, 247, 1),
        0 0 7px rgba(251, 251, 247, 1),
        0 0 14px rgba(251, 251, 247, 0.9),
        0 0 26px rgba(251, 251, 247, 0.75),
        0 0 44px rgba(251, 251, 247, 0.55),
        0 1px 2px rgba(0, 0, 0, 0.35) !important;
    }
    .hero:has(.hero-video-light) .hero-mini-crest,
    .hero:has(.hero-video-light) .hero-full-logo,
    .hero:has(.hero-video-light) .hero-crest-3d {
      filter:
        invert(0.88) sepia(0.6) saturate(2) hue-rotate(10deg) brightness(0.17) contrast(1.25)
        /* warm cream legibility halo — same family as .hero-sub text-shadow */
        drop-shadow(0 0 2px rgba(251, 251, 247, 1))
        drop-shadow(0 0 6px rgba(251, 251, 247, 1))
        drop-shadow(0 0 14px rgba(251, 251, 247, 0.95))
        drop-shadow(0 0 30px rgba(251, 251, 247, 0.7))
        drop-shadow(0 0 60px rgba(251, 251, 247, 0.5))
        drop-shadow(0 4px 12px rgba(0, 0, 0, 0.45))
        drop-shadow(0 0 26px rgba(31, 61, 46, 0.4)) !important;
      animation:
        logoEntry 1.4s cubic-bezier(0.16, 1, 0.3, 1) both,
        heroInkBronzeShine 4s ease-in-out 1.4s infinite,
        logoFloat3D 7s ease-in-out 1.4s infinite !important;
    }
    @keyframes heroInkBronzeShine {
      0%, 100% {
        /* Deep ink-brown base with warm cream legibility halo */
        filter:
          invert(0.88) sepia(0.6) saturate(2) hue-rotate(10deg) brightness(0.17) contrast(1.25)
          drop-shadow(0 0 2px rgba(251, 251, 247, 1))
          drop-shadow(0 0 6px rgba(251, 251, 247, 1))
          drop-shadow(0 0 14px rgba(251, 251, 247, 0.95))
          drop-shadow(0 0 30px rgba(251, 251, 247, 0.7))
          drop-shadow(0 0 60px rgba(251, 251, 247, 0.5))
          drop-shadow(0 4px 12px rgba(0, 0, 0, 0.45))
          drop-shadow(0 0 26px rgba(31, 61, 46, 0.4));
      }
      50% {
        /* Rich warm bronze peak — burnished metal catching light, halo intensifies */
        filter:
          invert(0.5) sepia(0.95) saturate(4.5) hue-rotate(8deg) brightness(0.42) contrast(1.3)
          drop-shadow(0 0 2px rgba(251, 251, 247, 1))
          drop-shadow(0 0 7px rgba(251, 251, 247, 1))
          drop-shadow(0 0 18px rgba(251, 251, 247, 0.95))
          drop-shadow(0 0 38px rgba(251, 251, 247, 0.8))
          drop-shadow(0 0 78px rgba(251, 251, 247, 0.6))
          drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5))
          drop-shadow(0 0 36px rgba(188, 201, 183, 0.85))
          drop-shadow(0 0 88px rgba(31, 61, 46, 0.55))
          drop-shadow(0 0 160px rgba(63, 80, 70, 0.3));
      }
    }
    .hero:has(.hero-video-light) .hero-ratings {
      background: rgba(251, 251, 247, 0.55) !important;
      border-color: rgba(63, 80, 70, 0.32) !important;
      backdrop-filter: blur(14px) saturate(1.1) !important;
      -webkit-backdrop-filter: blur(14px) saturate(1.1) !important;
    }
    .hero:has(.hero-video-light) .hero-ratings .hr-score {
      color: #1a160d !important;
    }
    .hero:has(.hero-video-light) .hero-ratings .hr-platform {
      color: rgba(26, 22, 13, 0.7) !important;
    }
    .hero:has(.hero-video-light) .hero-ratings .hr-stars {
      color: #3f5046 !important;
      text-shadow: 0 0 8px rgba(63, 80, 70, 0.35) !important;
    }
    .hero:has(.hero-video-light) .hero-actions .btn-outline {
      color: #1a160d !important;
      border-color: rgba(63, 80, 70, 0.6) !important;
      background: rgba(251, 251, 247, 0.4) !important;
      backdrop-filter: blur(8px) !important;
      -webkit-backdrop-filter: blur(8px) !important;
    }
    .hero:has(.hero-video-light) .hero-actions .btn-outline:hover {
      background: rgba(251, 251, 247, 0.75) !important;
      border-color: #1f3d2e !important;
    }
    .hero:has(.hero-video-light) .hero-scroll {
      color: rgba(26, 22, 13, 0.7) !important;
    }
    .hero:has(.hero-video-light) .hero-scroll-bar {
      background: linear-gradient(to bottom, rgba(26, 22, 13, 0.45), rgba(26, 22, 13, 0)) !important;
    }
    .hero-h1, .hero-h1.shimmer-text {
      text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55) !important;
    }
    .hero-overlay {
      background: linear-gradient(to bottom, rgba(7,7,6,0.0) 0%, rgba(7,7,6,0.15) 60%, rgba(7,7,6,0.55) 100%) !important;
    }
    @media(max-width: 768px) {
      .hero-mini-crest {
        width: clamp(190px, 56vw, 280px) !important;
        margin: 4px auto 16px !important;
      }
      .hero-eyebrow {
        font-size: clamp(0.6rem, 2.4vw, 0.74rem) !important;
        letter-spacing: 0.28em !important;
      }
    }

    /* === HOUSE: bigger crest watermark, stats counter animation === */
    .house-crest-watermark {
      position: absolute !important;
      left: 50% !important;
      top: 50% !important;
      transform: translate(-50%, -50%) !important;
      width: clamp(260px, 32vw, 480px) !important;
      opacity: 1 !important;
      mix-blend-mode: screen !important;
      animation:
        houseCrestFloat 8s ease-in-out infinite,
        houseCrestShine 3s ease-in-out infinite !important;
      will-change: transform, filter;
    }
    @keyframes houseCrestFloat {
      0%, 100% { transform: translate(-50%, -50%) translateY(0) scale(1) rotateY(0); }
      25%      { transform: translate(-50%, -50%) translateY(-6px) scale(1.012) rotateY(-1.2deg); }
      50%      { transform: translate(-50%, -50%) translateY(-10px) scale(1.022) rotateY(0); }
      75%      { transform: translate(-50%, -50%) translateY(-6px) scale(1.012) rotateY(1.2deg); }
    }
    @keyframes houseCrestShine {
      0%, 100% {
        /* Luminous warm-white phase */
        filter:
          invert(1) sepia(0.35) saturate(1.6) hue-rotate(8deg) brightness(1.45) contrast(1.02)
          drop-shadow(0 0 22px rgba(251, 251, 247, 0.85))
          drop-shadow(0 0 60px rgba(251, 251, 247, 0.5));
      }
      50% {
        /* Rich saturated gold peak */
        filter:
          invert(1) sepia(1) saturate(5.5) hue-rotate(4deg) brightness(1.05) contrast(1.08)
          drop-shadow(0 0 36px rgba(188, 201, 183, 0.95))
          drop-shadow(0 0 100px rgba(31, 61, 46, 0.6));
      }
    }
    @media(max-width: 900px) {
      .house-crest-watermark {
        width: clamp(200px, 60vw, 340px) !important;
      }
    }
    @media(max-width: 768px) {
      .house-crest-watermark { display: none !important; }
    }
    .house-stats {
      gap: 38px !important;
    }
    .h-stat-num {
      background: linear-gradient(120deg, var(--cream) 0%, var(--gold-lt) 40%, var(--gold) 70%, var(--cream) 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      animation: statShimmer 7s ease-in-out infinite !important;
    }
    @keyframes statShimmer {
      0%, 100% { background-position: 0% center; }
      50%      { background-position: 100% center; }
    }
    .house-stats > div:nth-child(2) .h-stat-num { animation-delay: -2s !important; }
    .house-stats > div:nth-child(3) .h-stat-num { animation-delay: -4s !important; }

    /* === HOUSE FACADE — modern frame, neon gold pulse, fast vertical float === */
    .stefan-portrait-card {
      position: absolute;
      right: 4%;
      bottom: 6%;
      z-index: 3;
      width: clamp(340px, 32vw, 480px);
      aspect-ratio: 1376 / 768;
      background: #0a0a08;
      border-radius: 2px;
      overflow: hidden;
      opacity: 0;
      animation:
        stefanReveal 1.4s 0.6s cubic-bezier(0.16, 1, 0.3, 1) both,
        stefanFloat 2.5s cubic-bezier(0.45, 0, 0.55, 1) 2s infinite,
        stefanNeonPulse 2.2s ease-in-out 2s infinite;
      transition:
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: transform, box-shadow;
      cursor: default;
    }
    .stefan-portrait-card::before {
      /* Modern neon gold inner edge — single hair-thin frame */
      content: '';
      position: absolute;
      inset: 0;
      z-index: 4;
      pointer-events: none;
      border: 1px solid rgba(228, 236, 223, 0.75);
      box-shadow: inset 0 0 0 1px rgba(7, 7, 6, 0.55);
      border-radius: 2px;
    }
    .stefan-portrait-card::after {
      /* Slow sweeping gold shine across the image */
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: linear-gradient(115deg, transparent 38%, rgba(251, 251, 247, 0.28) 50%, transparent 62%);
      background-size: 260% 100%;
      background-position: 200% 0;
      animation: stefanShine 8s ease-in-out infinite;
      z-index: 5;
      mix-blend-mode: overlay;
    }
    .stefan-portrait-card .spc-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center center;
      display: block;
      animation: stefanKenBurns 18s ease-in-out infinite alternate;
      filter: saturate(1.06) contrast(1.03);
      will-change: transform;
    }
    .stefan-portrait-card .spc-caption {
      position: absolute;
      left: 0; right: 0; bottom: 0;
      z-index: 6;
      color: var(--cream);
      font-family: var(--serif);
      font-size: 0.66rem;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      text-align: center;
      padding: 22px 12px 14px;
      background: linear-gradient(to top, rgba(7, 7, 6, 0.78) 0%, rgba(7, 7, 6, 0.45) 60%, transparent 100%);
      pointer-events: none;
      text-shadow: 0 2px 12px rgba(0, 0, 0, 0.95);
    }
    .stefan-portrait-card:hover {
      transform: rotate(0deg) translateY(-12px) scale(1.03);
      animation-play-state: paused;
      box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.82),
        0 0 0 1px rgba(228, 236, 223, 1),
        0 0 38px rgba(228, 236, 223, 1),
        0 0 90px rgba(228, 236, 223, 0.9),
        0 0 160px rgba(188, 201, 183, 0.55);
    }
    @keyframes stefanFloat {
      0%, 100% { transform: rotate(-1.2deg) translateY(0); }
      50%      { transform: rotate(-0.6deg) translateY(-32px); }
    }
    @keyframes stefanReveal {
      0%   { opacity: 0; transform: rotate(-4deg) translateY(28px) scale(0.94); }
      100% { opacity: 1; transform: rotate(-1.2deg) translateY(0) scale(1); }
    }
    @keyframes stefanNeonPulse {
      0%, 100% {
        box-shadow:
          0 18px 50px rgba(0, 0, 0, 0.7),
          0 0 0 1px rgba(188, 201, 183, 0.85),
          0 0 18px rgba(188, 201, 183, 0.55),
          0 0 42px rgba(228, 236, 223, 0.4),
          0 0 78px rgba(188, 201, 183, 0.22);
      }
      50% {
        box-shadow:
          0 22px 60px rgba(0, 0, 0, 0.78),
          0 0 0 1px rgba(228, 236, 223, 1),
          0 0 28px rgba(228, 236, 223, 0.95),
          0 0 64px rgba(228, 236, 223, 0.75),
          0 0 120px rgba(188, 201, 183, 0.45);
      }
    }
    @keyframes stefanKenBurns {
      0%   { transform: scale(1) translate(0, 0); }
      100% { transform: scale(1.1) translate(-2%, -1.5%); }
    }
    @keyframes stefanShine {
      0%, 55% { background-position: 200% 0; opacity: 0.55; }
      75%     { opacity: 1; }
      100%    { background-position: -200% 0; opacity: 0.55; }
    }
    @media(max-width: 1100px) {
      .stefan-portrait-card {
        right: 4%;
        bottom: 5%;
        width: clamp(180px, 28vw, 240px);
      }
    }
    @media(max-width: 900px) {
      .stefan-portrait-card { display: none; }
    }
    .house-link {
      position: relative;
      overflow: hidden;
    }
    .house-link::before {
      content: '';
      position: absolute;
      left: -100%;
      bottom: 0;
      width: 100%;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--gold), transparent);
      animation: linkSheen 3.5s ease-in-out infinite;
    }
    @keyframes linkSheen {
      0% { left: -100%; }
      60% { left: 100%; }
      100% { left: 100%; }
    }

    /* === MUSEUM: shift body half to warm parchment (split editorial layout) === */
    .museum-section {
      background: var(--bg-warm) !important;
      color: var(--ink) !important;
    }
    .museum-img-wrap::after {
      background: linear-gradient(to right, rgba(7,7,6,0) 0%, rgba(7,7,6,0.12) 70%, rgba(255, 255, 255,0.06) 100%) !important;
    }
    .museum-body {
      background: var(--bg-warm) !important;
      color: var(--ink) !important;
    }
    .museum-eyebrow { color: var(--gold-deep) !important; }
    .museum-line { background: var(--gold-deep) !important; }
    .museum-h2 { color: var(--ink) !important; }
    .museum-h2 em { color: var(--gold-deep) !important; }
    .museum-lead { color: var(--ink-soft) !important; }
    .museum-body-text { color: var(--ink-soft) !important; }
    .museum-meta { border-top-color: rgba(31, 61, 46, 0.35) !important; }
    .museum-meta-num {
      color: var(--gold-deep) !important;
      background: linear-gradient(120deg, var(--gold-deep) 0%, var(--gold-warm) 50%, var(--gold-deep) 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      animation: statShimmer 8s ease-in-out infinite !important;
    }
    .museum-meta-lbl { color: var(--ink-dim) !important; }
    .museum-cta {
      color: var(--ink) !important;
      border-bottom-color: rgba(26, 24, 20, 0.4) !important;
    }
    .museum-cta:hover { color: var(--gold-deep) !important; border-bottom-color: var(--gold-deep) !important; }

    /* === PILLARS: text-led header, no logo, gold particle ambient === */
    .pillars-section {
      padding-top: 28px !important;
      padding-bottom: 0 !important;
      position: relative;
      overflow: hidden;
    }
    .pillars-section .pillars-header {
      position: relative;
      padding-top: 48px !important;
      margin-top: 0 !important;
      z-index: 2;
    }
    .pillars-brandmark {
      position: relative;
      z-index: 2;
      display: block !important;
      width: clamp(220px, 24vw, 340px) !important;
      max-width: 88vw !important;
      height: auto !important;
      margin: 0 auto 18px !important;
      opacity: 1 !important;
      animation:
        brandmarkFloat 6s ease-in-out infinite,
        brandmarkDarkGoldShine 3s ease-in-out infinite !important;
      will-change: transform, filter;
    }
    @keyframes brandmarkFloat {
      0%, 100% { transform: translateY(0); }
      50%      { transform: translateY(-7px); }
    }
    @keyframes brandmarkDarkGoldShine {
      0%, 100% {
        /* Deep ink — readable anchor on cream */
        filter:
          invert(0.88) brightness(0.16) saturate(1.3)
          drop-shadow(0 2px 8px rgba(31, 61, 46, 0.18))
          drop-shadow(0 0 22px rgba(31, 61, 46, 0.32));
      }
      50% {
        /* Rich saturated gold peak — same gold family as the hero crest */
        filter:
          invert(0.32) sepia(1) saturate(7) hue-rotate(6deg) brightness(0.72) contrast(1.15)
          drop-shadow(0 2px 8px rgba(31, 61, 46, 0.2))
          drop-shadow(0 0 22px rgba(228, 236, 223, 0.85))
          drop-shadow(0 0 48px rgba(188, 201, 183, 0.7))
          drop-shadow(0 0 96px rgba(31, 61, 46, 0.45));
      }
    }

    /* === GOLDEN FLOATING PARTICLES — pillars section ambient background === */
    .gold-particles {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      z-index: 1;
    }
    .gold-particles .gp {
      position: absolute;
      left: var(--x);
      top: var(--y);
      width: calc(10px * var(--s, 1));
      height: calc(10px * var(--s, 1));
      border-radius: 50%;
      background: radial-gradient(circle,
        rgba(228, 236, 223, 1) 0%,
        rgba(188, 201, 183, 0.85) 30%,
        rgba(31, 61, 46, 0.35) 55%,
        transparent 75%);
      filter: blur(0.4px);
      opacity: 0;
      animation:
        gpFloat var(--df, 14s) ease-in-out infinite,
        gpGlow var(--dg, 5s) ease-in-out infinite;
      animation-delay: var(--d, 0s), var(--d, 0s);
      will-change: transform, opacity;
    }
    .gold-particles .gp.lg {
      width: calc(16px * var(--s, 1));
      height: calc(16px * var(--s, 1));
      filter: blur(0.8px);
    }
    .gold-particles .gp.sm {
      width: calc(5px * var(--s, 1));
      height: calc(5px * var(--s, 1));
      filter: blur(0.2px);
    }
    @keyframes gpFloat {
      0%   { transform: translate(0, 0) scale(1); }
      25%  { transform: translate(22px, -34px) scale(1.05); }
      50%  { transform: translate(-18px, -58px) scale(1.1); }
      75%  { transform: translate(14px, -28px) scale(1.04); }
      100% { transform: translate(0, 0) scale(1); }
    }
    @keyframes gpGlow {
      0%, 100% { opacity: 0; }
      20%, 80% { opacity: 1; }
    }
    @media(max-width: 768px) {
      .pillars-brandmark {
        width: clamp(180px, 60vw, 260px) !important;
      }
      .pillars-section {
        padding-top: 40px !important;
      }
    }

    /* === ZERO-GAP SECTION POLICY: gilt-rule is the only break between sections === */
    .pillars-section,
    .collections-section,
    .services-section,
    .museum-section {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
    }
    .pillars-section .pillars-header {
      padding-top: 56px !important;
      padding-bottom: 48px !important;
    }
    .collections-section .coll-head {
      margin: 48px auto 36px !important;
    }
    .services-section .srv-head {
      padding: 56px 24px 40px !important;
    }
    /* Hide the rotating-block legacy particle layers — canvas diamonds replace them */
    .coll-particles, .gold-particles { display: none !important; }

    /* === FLOATING DIAMONDS — Collections section (ivory background variant) === */
    .collections-section { position: relative; overflow: hidden; }
    .coll-particles {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      z-index: 0;
    }
    .coll-particles .cp {
      position: absolute;
      left: var(--x);
      top: var(--y);
      width: calc(13px * var(--s, 1));
      height: calc(13px * var(--s, 1));
      transform: rotate(45deg);
      background:
        linear-gradient(135deg,
          rgba(228, 236, 223, 0.95) 0%,
          rgba(188, 201, 183, 0.85) 38%,
          rgba(63, 80, 70, 0.72) 72%,
          rgba(31, 61, 46, 0.55) 100%);
      box-shadow:
        0 0 8px rgba(188, 201, 183, 0.55),
        0 0 18px rgba(188, 201, 183, 0.4),
        0 0 36px rgba(228, 236, 223, 0.28),
        inset 0 0 3px rgba(228, 236, 223, 0.9);
      border-radius: 2px;
      opacity: 0;
      animation:
        cpFloat var(--df, 15s) cubic-bezier(0.45, 0, 0.55, 1) infinite,
        cpGlow var(--dg, 5.4s) ease-in-out infinite;
      animation-delay: var(--d, 0s), var(--d, 0s);
      will-change: transform, opacity;
    }
    .coll-particles .cp.lg {
      width: calc(18px * var(--s, 1));
      height: calc(18px * var(--s, 1));
    }
    .coll-particles .cp.sm {
      width: calc(6px * var(--s, 1));
      height: calc(6px * var(--s, 1));
    }
    @keyframes cpFloat {
      0%   { transform: translate(0, 0) rotate(45deg) scale(1); }
      25%  { transform: translate(18px, -28px) rotate(85deg) scale(1.06); }
      50%  { transform: translate(-14px, -52px) rotate(135deg) scale(1.12); }
      75%  { transform: translate(12px, -24px) rotate(195deg) scale(1.04); }
      100% { transform: translate(0, 0) rotate(225deg) scale(1); }
    }
    @keyframes cpGlow {
      0%, 100% { opacity: 0; }
      18%, 82% { opacity: 0.9; }
    }
    .coll-head, .coll-grid { position: relative; z-index: 2; }
    @media (prefers-reduced-motion: reduce) {
      .coll-particles .cp { animation: none !important; opacity: 0 !important; }
    }
    @media(max-width: 768px) {
      .coll-particles .cp { display: none; }
    }

    /* === PILLAR CARDS: imagery first, only the faintest dim at the very bottom for caption legibility === */
    .pillars-section .pillar .pillar-shade {
      background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.16) 26%, rgba(0,0,0,0) 52%) !important;
      transition: background 0.5s var(--ease-out), opacity 0.5s var(--ease-out) !important;
    }
    .pillars-section .pillar:hover .pillar-shade {
      background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.08) 26%, rgba(0,0,0,0) 52%) !important;
      opacity: 1 !important;
    }
    .pillars-section .pillar .pillar-body {
      transition: transform 0.5s var(--ease-out) !important;
    }
    .pillars-section .pillar:hover .pillar-body {
      transform: translateY(-4px) !important;
    }
    .pillars-section .pillar .pillar-title,
    .pillars-section .pillar .pillar-desc,
    .pillars-section .pillar .pillar-link,
    .pillars-section .pillar .pillar-num {
      transition: color 0.4s, text-shadow 0.4s, opacity 0.4s !important;
    }
    .pillars-section .pillar:hover .pillar-title {
      color: var(--cream) !important;
      text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5) !important;
    }
    .pillars-section .pillar:hover .pillar-desc {
      color: rgba(255, 255, 255, 0.95) !important;
      opacity: 1 !important;
      text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55) !important;
    }
    .pillars-section .pillar:hover .pillar-link {
      color: var(--gold-lt) !important;
      text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5) !important;
    }

    /* === FOUNDER PORTRAIT: clean editorial frame, no dissolve === */
    .founder-section .fnd-right {
      -webkit-mask-image: none !important;
      mask-image: none !important;
      border-left: 1px solid rgba(31, 61, 46, 0.22);
      position: relative;
    }
    .founder-section .fnd-right::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 2;
      background:
        linear-gradient(180deg, rgba(7,5,3,0) 50%, rgba(7,5,3,0.55) 88%, rgba(7,5,3,0.92) 100%),
        linear-gradient(90deg, rgba(255, 255, 255,0.55) 0%, rgba(255, 255, 255,0.05) 10%, transparent 22%);
    }
    .founder-section .fnd-veil {
      background:
        linear-gradient(to bottom, rgba(7,5,3,0) 40%, rgba(7,5,3,0.18) 70%, rgba(7,5,3,0.7) 100%) !important;
    }
    .founder-section .fnd-portrait {
      filter: brightness(1.05) contrast(1.06) saturate(1.06) !important;
    }
    .founder-section .fnd-portrait-line {
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.6) 25%, rgba(31, 61, 46, 0.85) 50%, rgba(31, 61, 46, 0.6) 75%, transparent) !important;
      left: auto !important;
      right: 0 !important;
      opacity: 0.7;
      width: 2px !important;
      box-shadow: 0 0 14px rgba(31, 61, 46, 0.3);
    }
    .founder-section .fnd-badge {
      background: rgba(8, 6, 4, 0.94) !important;
      border: 1px solid rgba(31, 61, 46, 0.55) !important;
      backdrop-filter: blur(20px) !important;
      -webkit-backdrop-filter: blur(20px) !important;
      box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.55),
        0 0 0 1px rgba(31, 61, 46, 0.12),
        inset 0 1px 0 rgba(31, 61, 46, 0.18) !important;
      padding: 26px 32px !important;
      bottom: 56px !important;
      left: 56px !important;
      max-width: 360px;
      z-index: 4 !important;
    }
    .founder-section .fnd-badge::before {
      content: '';
      position: absolute;
      top: -1px; left: -1px; right: -1px;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--gold), transparent);
      pointer-events: none;
    }
    .founder-section .fnd-badge-name {
      color: var(--cream) !important;
      text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
      font-size: 1.18rem !important;
      letter-spacing: 0.03em !important;
    }
    .founder-section .fnd-badge-crest {
      color: var(--gold) !important;
      font-size: 0.7rem !important;
      letter-spacing: 0.4em !important;
      margin-bottom: 6px !important;
      opacity: 0.85;
    }
    .founder-section .fnd-badge-title {
      color: rgba(255, 255, 255, 0.88) !important;
      letter-spacing: 0.22em !important;
      font-size: 0.55rem !important;
      line-height: 2 !important;
      margin-top: 10px !important;
      text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55);
    }
    @media(max-width: 980px) {
      .founder-section .fnd-right { border-left: none; }
      .founder-section .fnd-badge { left: 28px !important; bottom: 36px !important; padding: 20px 24px !important; }
    }

    /* === FOUNDER: parchment card behind text so dark portrait reads cleanly === */
    .founder-section {
      background: linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 100%) !important;
      position: relative;
    }
    .founder-section .fnd-name {
      color: var(--ink) !important;
      background: linear-gradient(110deg, var(--ink) 0%, var(--gold-deep) 50%, var(--ink) 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      animation: statShimmer 10s ease-in-out infinite !important;
    }
    .founder-section [class*="fnd-cred"],
    .founder-section [class*="cred-pill"],
    .founder-section .credential {
      border-color: rgba(31, 61, 46, 0.5) !important;
      color: var(--gold-deep) !important;
      background: rgba(31, 61, 46, 0.05) !important;
    }
    .founder-section .fnd-quote,
    .founder-section blockquote {
      color: var(--ink) !important;
      border-left-color: var(--gold-deep) !important;
    }
    .founder-section [style*="color:var(--cream"] { color: var(--ink) !important; }
    .founder-section [style*="color:rgba(243"] { color: var(--ink-soft) !important; }
    .founder-section [style*="color:rgba(200,169,109"] { color: var(--gold-deep) !important; }
    .founder-section [style*="background:rgba(200,169,109"] { background: rgba(31, 61, 46, 0.08) !important; }
    .founder-section [style*="border:1px solid rgba(200,169,109"] { border-color: rgba(31, 61, 46, 0.4) !important; }
    .founder-section [style*="background:rgba(0,0,0"] { background: rgba(26, 24, 20, 0.03) !important; }
    .founder-section [style*="background:var(--char"] { background: transparent !important; }

    /* === COLLECTIONS / SERVICES card refinement on light bg === */
    .collections-section .coll-card,
    .services-section .srv-card {
      box-shadow: 0 12px 40px rgba(26, 24, 20, 0.08), 0 2px 8px rgba(26, 24, 20, 0.04);
      transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out) !important;
    }
    .collections-section .coll-card:hover,
    .services-section .srv-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 24px 60px rgba(26, 24, 20, 0.14), 0 4px 14px rgba(26, 24, 20, 0.06);
    }
    .collections-section .coll-cta,
    .services-section .srv-link {
      color: var(--cream) !important;
    }

    /* === CELEBRITY: brighten on small screens so visible without hover === */
    @media(hover: none) {
      .celeb-card .celeb-img {
        filter: brightness(1.05) contrast(1.02) !important;
      }
      .celeb-card .celeb-shade {
        opacity: 0.55 !important;
        background: linear-gradient(to top, rgba(7,7,6,0.92) 0%, rgba(7,7,6,0.55) 45%, rgba(7,7,6,0.08) 100%) !important;
      }
      .celeb-card .celeb-body {
        opacity: 1 !important;
        transform: none !important;
      }
      .celeb-card .celeb-name,
      .celeb-card .celeb-role,
      .celeb-card .celeb-bio {
        opacity: 1 !important;
        transform: none !important;
      }
    }
    @media(max-width: 768px) {
      .celeb-section { background: var(--bg-soft) !important; }
      .celeb-card .celeb-img { filter: brightness(1.08) contrast(1.04) !important; }
      .celeb-card .celeb-shade { opacity: 0.52 !important; }
    }

    /* === AWARDS: horizontal credibility strip with sparkle bg === */
    .awards-section {
      background: radial-gradient(ellipse at 50% 30%, #2A2218 0%, #1A1612 60%, #0D0B09 100%) !important;
      position: relative;
      padding: 56px 0 64px !important;
      overflow: hidden;
    }
    .awards-section::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 20% 30%, rgba(31, 61, 46, 0.06) 0%, transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(31, 61, 46, 0.05) 0%, transparent 40%);
      pointer-events: none;
    }
    .awards-section #awardsSparkleCanvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    .awards-section .awards-aurora {
      position: absolute;
      inset: -20% -5% -10% -5%;
      pointer-events: none;
      z-index: 0;
      background:
        radial-gradient(ellipse 60% 40% at 30% 50%, rgba(31, 61, 46, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse 50% 50% at 75% 60%, rgba(228, 236, 223, 0.08) 0%, transparent 65%);
      filter: blur(40px);
      animation: awardsAurora 14s ease-in-out infinite alternate;
    }
    @keyframes awardsAurora {
      0%   { transform: translate(0, 0) scale(1); opacity: 0.85; }
      50%  { transform: translate(-3%, 1%) scale(1.06); opacity: 1; }
      100% { transform: translate(2%, -1%) scale(1.02); opacity: 0.9; }
    }
    .awards-section .awards-ghost {
      color: rgba(31, 61, 46, 0.06) !important;
      font-size: clamp(8rem, 16vw, 16rem) !important;
      font-family: var(--serif) !important;
      font-weight: 300 !important;
      letter-spacing: 0.05em !important;
      z-index: 1;
    }
    .awards-section .container { position: relative; z-index: 3; }
    .awards-strip {
      display: grid;
      grid-template-columns: minmax(220px, 280px) 1px 1fr;
      align-items: center;
      gap: 56px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .awards-strip-stat {
      text-align: left;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .awards-strip-divider {
      width: 1px;
      align-self: stretch;
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.5) 30%, rgba(31, 61, 46, 0.5) 70%, transparent);
      min-height: 140px;
    }
    .awards-strip-body { max-width: 580px; }
    .awards-strip-sub {
      font-family: var(--serif);
      font-size: clamp(1.05rem, 1.55vw, 1.35rem);
      color: var(--cream);
      letter-spacing: 0.01em;
      line-height: 1.15;
      margin-top: 4px;
    }
    .awards-section .eyebrow { color: var(--gold) !important; font-size: 0.6rem !important; letter-spacing: 0.36em !important; }
    .awards-section .awards-big {
      font-size: clamp(4.5rem, 7vw, 7rem) !important;
      line-height: 0.95 !important;
      margin: 8px 0 0 !important;
      background: linear-gradient(140deg, var(--cream) 0%, var(--gold-lt) 30%, var(--gold) 55%, var(--cream) 100%) !important;
      background-size: 240% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      filter: drop-shadow(0 6px 24px rgba(31, 61, 46, 0.32)) !important;
      animation: statShimmer 8s ease-in-out infinite !important;
    }
    .awards-section .awards-body {
      color: rgba(255, 255, 255, 0.82) !important;
      font-size: 0.85rem !important;
      line-height: 1.85 !important;
      margin: 0 0 18px !important;
      max-width: 580px !important;
    }
    .awards-section .awards-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px !important;
      margin-top: 6px !important;
    }
    .awards-section .award-tag {
      font-size: 0.5rem !important;
      letter-spacing: 0.22em !important;
      padding: 8px 16px !important;
      border: 1px solid rgba(31, 61, 46, 0.38) !important;
      color: var(--gold-lt) !important;
      background: rgba(31, 61, 46, 0.04) !important;
      transition: all 0.4s var(--ease-out);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
    }
    .awards-section .award-tag:hover {
      border-color: var(--gold) !important;
      background: rgba(31, 61, 46, 0.12) !important;
      color: var(--cream) !important;
      transform: translateY(-1px);
    }
    @media (max-width: 880px) {
      .awards-strip {
        grid-template-columns: 1fr;
        gap: 28px;
        text-align: center;
      }
      .awards-strip-stat { align-items: center; text-align: center; }
      .awards-strip-divider {
        width: 80%;
        height: 1px;
        min-height: 0;
        justify-self: center;
        background: linear-gradient(to right, transparent, rgba(31, 61, 46, 0.5), transparent);
      }
      .awards-section .awards-body { margin: 0 auto 18px !important; }
      .awards-section .awards-tags { justify-content: center; }
    }

    /* === REVIEWS: modern editorial cards, no more black-on-cream === */
    /* Compact-mode (2026-05-20): section trimmed to roughly half its prior
       height — tighter padding, smaller heading, slimmer cards, clickable
       platform tiles that link out to leave a review. */
    .reviews-section {
      background: linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%) !important;
      padding: 32px 0 36px !important;
      position: relative;
      overflow: hidden;
    }
    .reviews-section .reviews-head { text-align: center; margin-bottom: 14px; }
    .reviews-section .reviews-h2 {
      font-family: var(--serif);
      font-size: clamp(1.6rem, 2.6vw, 2.4rem);
      font-weight: 400;
      line-height: 1.08;
      color: var(--ink);
      margin: 10px 0 0;
    }

    /* --- ONE-ROW INFINITE MARQUEE REVIEW CAROUSEL --- */
    .rv-carousel {
      position: relative;
      width: 100%;
      max-width: 1280px;
      margin: 0 auto;
      overflow: hidden;
      padding: 4px 0 8px;
    }
    .rv-track {
      display: flex;
      gap: 22px;
      width: max-content;
      will-change: transform;
      animation: rvMarquee 60s linear infinite;
    }
    .rv-carousel:hover .rv-track { animation-play-state: paused; }
    @keyframes rvMarquee {
      from { transform: translateX(0); }
      to   { transform: translateX(calc(-50% - 11px)); }
    }
    .rv-card {
      flex: 0 0 340px;
      width: 340px;
      box-sizing: border-box;
      background:
        linear-gradient(180deg, #FFFDF7 0%, #FAF3E2 100%);
      border: 1px solid rgba(201, 169, 110, 0.55);
      box-shadow:
        0 18px 44px -22px rgba(31, 61, 46, 0.28),
        0 4px 14px -6px rgba(26, 24, 20, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
      padding: 22px 22px 18px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      min-height: 200px;
      position: relative;
    }
    /* Brass top hairline — premium accent that separates each card */
    .rv-card::after {
      content: '';
      position: absolute;
      top: -1px; left: -1px; right: -1px;
      height: 2px;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(201, 169, 110, 0.0) 4%,
        #C9A55C 18%,
        #F5E0A8 50%,
        #C9A55C 82%,
        rgba(201, 169, 110, 0.0) 96%,
        transparent 100%);
      pointer-events: none;
    }
    .rv-card::before {
      content: '\201C';
      position: absolute;
      top: 8px;
      right: 16px;
      font-family: var(--serif);
      font-size: 3rem;
      line-height: 1;
      color: rgba(201, 169, 110, 0.42);
      pointer-events: none;
    }
    .rv-meta { display: flex; align-items: center; gap: 10px; }
    .rv-platform {
      width: 26px; height: 26px;
      border-radius: 50%;
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 0.72rem; font-weight: 700; color: #fff; line-height: 1;
      flex-shrink: 0;
    }
    .rv-platform-g {
      background: conic-gradient(from 0deg, #4285F4 0%, #34A853 30%, #1f3d2e 50%, #EA4335 75%, #4285F4 100%);
    }
    .rv-platform-ta { background: #00AA6C; letter-spacing: 0.02em; font-size: 0.5rem; }
    .rv-platform-label {
      font-size: 0.5rem;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: #A07A35;
      font-weight: 700;
    }
    .rv-card .rv-stars {
      color: #E8C16A;
      font-size: 0.94rem;
      letter-spacing: 4px;
      filter: drop-shadow(0 0 4px rgba(245, 224, 168, 0.55));
      animation: heroStarsGoldFlash 2.6s ease-in-out infinite;
    }
    .rv-card .rv-text {
      font-family: var(--serif);
      font-style: italic;
      font-size: 0.94rem;
      line-height: 1.55;
      color: #1A1814;
      margin: 2px 0 6px;
      flex: 1;
      display: -webkit-box;
      -webkit-line-clamp: 5;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .rv-byline {
      border-top: 1px solid rgba(201, 169, 110, 0.45);
      padding-top: 10px;
      display: flex;
      flex-direction: column;
      gap: 3px;
    }
    .rv-author {
      font-size: 0.72rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: #1A1814;
      font-weight: 700;
    }
    .rv-source {
      font-size: 0.58rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: #6B5A3A;
    }
    .rv-fade {
      position: absolute;
      top: 0; bottom: 0;
      width: 80px;
      pointer-events: none;
      z-index: 4;
    }
    .rv-fade-l {
      left: 0;
      background: linear-gradient(to right, var(--bg-soft) 0%, rgba(255, 255, 255, 0) 100%);
    }
    .rv-fade-r {
      right: 0;
      background: linear-gradient(to left, var(--bg-soft) 0%, rgba(255, 255, 255, 0) 100%);
    }
    @media (max-width: 980px) {
      .rv-card { flex: 0 0 290px; width: 290px; min-height: 150px; }
    }
    @media (max-width: 640px) {
      .rv-card { flex: 0 0 80vw; width: 80vw; min-height: 150px; padding: 16px 18px 14px; }
      .rv-fade { width: 32px; }
      .rv-track { gap: 14px; animation-duration: 48s; }
      @keyframes rvMarquee {
        from { transform: translateX(0); }
        to   { transform: translateX(calc(-50% - 7px)); }
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .rv-track { animation: none !important; }
    }
    .reviews-section .reviews-platforms {
      display: flex !important;
      align-items: stretch !important;
      justify-content: center !important;
      gap: 0 !important;
      margin: 14px auto 18px !important;
      max-width: 680px !important;
      border: 1px solid rgba(31, 61, 46, 0.25) !important;
      background: var(--bg-soft) !important;
      box-shadow: 0 4px 20px rgba(26, 24, 20, 0.04);
    }
    .reviews-section .rp-badge {
      flex: 1;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 14px 20px;
      justify-content: center;
      text-decoration: none;
      color: inherit;
      cursor: pointer;
      transition: background-color 0.32s ease, transform 0.32s ease;
    }
    .reviews-section .rp-badge:hover {
      background: rgba(31, 61, 46, 0.05);
    }
    .reviews-section .rp-badge:hover .rp-cta {
      color: var(--ink);
      letter-spacing: 0.28em;
    }
    .reviews-section .rp-badge:hover .rp-cta::after {
      transform: translateX(4px);
    }
    .reviews-section .rp-divider {
      width: 1px;
      background: rgba(31, 61, 46, 0.2);
      align-self: stretch;
      margin: 10px 0;
    }
    .reviews-section .rp-cta {
      display: inline-block;
      margin-top: 6px;
      font-size: 0.5rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 700;
      color: var(--gold-deep) !important;
      transition: color 0.32s ease, letter-spacing 0.32s ease;
      position: relative;
    }
    .reviews-section .rp-logo-g,
    .reviews-section .rp-logo-ta {
      width: 28px; height: 28px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 0.68rem;
      font-weight: 700;
      color: #fff;
      flex-shrink: 0;
    }
    .reviews-section .rp-logo-g {
      background: conic-gradient(from 0deg, #4285F4 0%, #34A853 30%, #1f3d2e 50%, #EA4335 75%, #4285F4 100%);
    }
    .reviews-section .rp-logo-ta { background: #00AA6C; letter-spacing: 0.02em; font-size: 0.56rem; }
    .reviews-section .rp-platform-name {
      font-size: 0.46rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--ink-dim) !important;
    }
    .reviews-section .rp-score-row {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 4px;
    }
    .reviews-section .rp-score {
      font-family: var(--serif);
      font-size: 1.18rem;
      font-weight: 400;
      color: var(--ink) !important;
      line-height: 1;
    }
    .reviews-section .rp-stars {
      color: #E8C16A !important;
      font-size: 0.82rem;
      letter-spacing: 2px;
      filter: drop-shadow(0 0 5px rgba(245, 224, 168, 0.6));
      animation: heroStarsGoldFlash 2.6s ease-in-out infinite;
    }
    .reviews-section .rp-count {
      font-size: 0.52rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: #6B5A3A !important;
      margin-top: 4px;
      font-weight: 600;
    }
    .reviews-section .rp-platform-name {
      color: #1A1814 !important;
    }
    .reviews-section .rp-cta {
      color: #A07A35 !important;
    }
    .reviews-section .reviews-slider-wrap {
      position: relative;
      max-width: 1100px;
      margin: 0 auto;
    }
    .reviews-section .reviews-grid {
      display: grid !important;
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 24px !important;
    }
    @media(max-width: 980px) {
      .reviews-section .reviews-grid { grid-template-columns: repeat(2, 1fr) !important; }
    }
    @media(max-width: 640px) {
      .reviews-section .reviews-grid { grid-template-columns: 1fr !important; }
    }
    .reviews-section .review-card {
      background: var(--bg-soft) !important;
      color: var(--ink) !important;
      padding: 36px 32px 32px !important;
      border: 1px solid rgba(31, 61, 46, 0.18) !important;
      box-shadow: 0 4px 24px rgba(26, 24, 20, 0.05), 0 1px 4px rgba(26, 24, 20, 0.03) !important;
      transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out), border-color 0.5s !important;
      position: relative;
      display: flex !important;
      flex-direction: column !important;
      min-height: 280px;
    }
    .reviews-section .review-card::before {
      content: '"';
      position: absolute;
      top: 18px;
      right: 24px;
      font-family: var(--serif);
      font-size: 5rem;
      line-height: 1;
      color: rgba(31, 61, 46, 0.15);
      pointer-events: none;
    }
    .reviews-section .review-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 50px rgba(26, 24, 20, 0.12), 0 4px 12px rgba(26, 24, 20, 0.05) !important;
      border-color: rgba(31, 61, 46, 0.45) !important;
    }
    .reviews-section .review-card [style*="color:rgba(31, 61, 46,0.55)"] { color: var(--gold-deep) !important; }
    .reviews-section .rv-stars {
      color: var(--gold-deep) !important;
      font-size: 0.82rem;
      letter-spacing: 3px;
      margin-bottom: 18px;
    }
    .reviews-section .rv-text {
      color: var(--ink) !important;
      font-family: var(--serif);
      font-style: italic;
      font-size: 1.02rem;
      line-height: 1.65;
      margin-bottom: auto;
      padding-bottom: 22px;
    }
    .reviews-section .rv-author {
      color: var(--ink) !important;
      font-family: var(--sans);
      font-size: 0.6rem;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 600;
      padding-top: 18px;
      border-top: 1px solid rgba(31, 61, 46, 0.18);
    }
    .reviews-section .rv-source {
      color: var(--ink-dim) !important;
      font-size: 0.5rem;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      margin-top: 6px;
    }
    .reviews-section .reviews-nav {
      display: none !important;
    }
    .reviews-section .reviews-ticker-wrap {
      margin-top: 70px !important;
      padding-top: 60px;
      border-top: 1px solid rgba(31, 61, 46, 0.18);
    }
    .reviews-section .ticker-item {
      color: var(--ink) !important;
    }
    .reviews-section .ticker-quote {
      color: var(--ink-soft) !important;
      font-family: var(--serif);
      font-style: italic;
    }
    .reviews-section .ticker-author {
      color: var(--ink-dim) !important;
    }
    .reviews-section .ticker-stars { color: var(--gold-deep) !important; }
    .reviews-section .reviews-ticker {
      mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
      -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%);
    }

    /* === FOOTER: lift to warm depth, not pitch black === */
    footer {
      background: linear-gradient(180deg, #211D17 0%, #18150F 100%) !important;
      color: var(--bg-soft) !important;
      position: relative;
    }
    footer::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0; right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, var(--gold) 50%, transparent);
      opacity: 0.4;
    }
    footer a { color: var(--cream-70) !important; }
    footer a:hover { color: var(--gold-lt) !important; }
    footer [class*="footer-heading"],
    footer [class*="ft-heading"],
    footer h4, footer h5,
    footer [style*="letter-spacing:0.24em"],
    footer [style*="letter-spacing:0.22em"] {
      color: var(--gold) !important;
    }

    /* === SUPPRESS BROWSER TEXT-SELECTION HIGHLIGHT (Sasha noted gray boxes around pillars headings) === */
    ::selection { background: rgba(31, 61, 46, 0.28); color: var(--ink); }

    /* ==================================================================
       LOADER — elegant text-only welcome, diamond bar, 2s total
       ================================================================== */
    #siteLoader {
      background: linear-gradient(180deg, #FBF7F0 0%, #fbfbf7 100%) !important;
      gap: 0 !important;
    }
    .sl-welcome {
      font-family: var(--sans);
      font-size: clamp(0.6rem, 1.2vw, 0.74rem);
      letter-spacing: 0.5em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--gold-deep);
      opacity: 0;
      margin-bottom: 22px;
      animation: slFadeIn 0.5s ease 0.05s forwards;
    }
    #siteLoader .sl-wordmark {
      font-family: var(--serif) !important;
      font-size: clamp(2.6rem, 6vw, 4.4rem) !important;
      font-weight: 300 !important;
      letter-spacing: 0.18em !important;
      color: var(--ink) !important;
      margin: 0 !important;
      text-shadow: none !important;
      opacity: 0;
      animation:
        slWordmarkIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.18s both,
        slWordmarkShine 2.4s ease-in-out 1.1s infinite;
      background: linear-gradient(90deg,
        #3a2d10 0%,
        #2a3a30 25%,
        #3f5046 50%,
        #2a3a30 75%,
        #3a2d10 100%);
      background-size: 220% 100%;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      filter: drop-shadow(0 1px 2px rgba(31, 61, 46, 0.18));
    }
    @keyframes slWordmarkIn {
      0%   { opacity: 0; letter-spacing: 0.32em; transform: translateY(8px); }
      100% { opacity: 1; letter-spacing: 0.18em; transform: translateY(0); }
    }
    @keyframes slWordmarkShine {
      0%, 100% { background-position: 0% center; }
      50%      { background-position: 100% center; }
    }
    #siteLoader .sl-place {
      font-family: var(--sans);
      font-size: clamp(0.56rem, 1vw, 0.7rem);
      letter-spacing: 0.42em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--gold-deep);
      opacity: 0;
      margin: 16px 0 0;
      animation: slFadeIn 0.5s ease 0.55s forwards;
    }
    #siteLoader .sl-tagline {
      font-family: var(--sans) !important;
      font-style: normal;
      font-size: clamp(0.6rem, 1.1vw, 0.78rem) !important;
      letter-spacing: 0.48em !important;
      text-transform: uppercase;
      font-weight: 600 !important;
      color: transparent !important;
      background-image: linear-gradient(
        100deg,
        #B58A35 0%,
        #C9A55C 32%,
        #E6C783 48%,
        #FFF1C4 50%,
        #E6C783 52%,
        #C9A55C 68%,
        #B58A35 100%
      ) !important;
      background-size: 260% 100%;
      background-position: 100% 0;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.8));
      margin: 36px 0 22px !important;
      opacity: 0;
      animation:
        slFadeIn 0.6s ease 0.8s forwards,
        slTaglineShimmer 4.2s ease-in-out 1.4s infinite !important;
      padding-left: 0.48em;
    }
    @keyframes slTaglineShimmer {
      0%, 100% { background-position: 100% 0; }
      50%      { background-position: 0% 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      #siteLoader .sl-tagline { animation: slFadeIn 0.5s ease 0.8s forwards !important; }
    }
    #siteLoader .sl-bar-wrap {
      width: clamp(220px, 32vw, 360px);
      height: 2px;
      background: rgba(31, 61, 46, 0.18) !important;
      position: relative;
      overflow: visible;
      opacity: 0;
      animation: slFadeIn 0.4s ease 1s forwards !important;
    }
    #siteLoader .sl-bar {
      position: absolute;
      top: 0; left: 0;
      width: 0%; height: 100%;
      background: linear-gradient(to right,
        transparent 0%,
        rgba(31, 61, 46, 0.6) 15%,
        var(--gold) 45%,
        #fbfbf7 60%,
        var(--gold) 75%,
        rgba(31, 61, 46, 0.6) 95%,
        transparent 100%) !important;
      box-shadow: 0 0 10px rgba(31, 61, 46, 0.55), 0 0 24px rgba(188, 201, 183, 0.35);
      animation: slBarFill 0.95s cubic-bezier(0.65, 0, 0.35, 1) 0.9s forwards !important;
    }
    @keyframes slBarFill {
      0%   { width: 0%; }
      100% { width: 100%; }
    }
    #siteLoader .sl-diamond {
      position: absolute;
      top: 50%;
      left: 0;
      transform: translate(-50%, -50%) rotate(45deg);
      width: 12px;
      height: 12px;
      font-size: 0;
      background: linear-gradient(135deg, #fbfbf7 0%, var(--gold) 50%, var(--gold-deep) 100%);
      box-shadow:
        0 0 8px rgba(228, 236, 223, 1),
        0 0 18px rgba(31, 61, 46, 0.85),
        0 0 40px rgba(188, 201, 183, 0.5);
      opacity: 0;
      animation:
        slDiamondTravel 0.95s cubic-bezier(0.65, 0, 0.35, 1) 0.9s forwards,
        slDiamondSpin 0.95s linear 0.9s forwards;
    }
    @keyframes slDiamondTravel {
      0%   { left: 0%;   opacity: 1; }
      100% { left: 100%; opacity: 1; }
    }
    @keyframes slDiamondSpin {
      0%   { transform: translate(-50%, -50%) rotate(45deg); }
      100% { transform: translate(-50%, -50%) rotate(405deg); }
    }

    /* ==================================================================
       HOUSE WATERMARK — white-into-gold shine matching hero (final)
       ================================================================== */
    .house-crest-watermark {
      animation:
        crestGoldFloat 7s ease-in-out infinite,
        houseWhiteGoldShine 7s ease-in-out infinite !important;
    }
    @keyframes houseWhiteGoldShine {
      0%, 100% {
        filter:
          invert(1) brightness(1.4)
          drop-shadow(0 0 18px rgba(255, 255, 255, 0.35))
          drop-shadow(0 0 50px rgba(255, 255, 255, 0.18));
      }
      28% {
        filter:
          invert(1) sepia(0.45) saturate(2.1) hue-rotate(3deg) brightness(1.25)
          drop-shadow(0 0 24px rgba(228, 236, 223, 0.55))
          drop-shadow(0 0 58px rgba(188, 201, 183, 0.32));
      }
      52% {
        filter:
          invert(1) sepia(1) saturate(3.6) hue-rotate(5deg) brightness(1.15)
          drop-shadow(0 0 30px rgba(31, 61, 46, 0.8))
          drop-shadow(0 0 78px rgba(188, 201, 183, 0.55));
      }
      76% {
        filter:
          invert(1) sepia(0.45) saturate(2.1) hue-rotate(3deg) brightness(1.25)
          drop-shadow(0 0 24px rgba(228, 236, 223, 0.55))
          drop-shadow(0 0 58px rgba(188, 201, 183, 0.32));
      }
    }

    /* ==================================================================
       VISIT / FIND THE HOUSE — Editorial redesign (2026-05-18)
       Three-band module: editorial split, facade band, modern map.
       ================================================================== */

    .visit-redesign {
      padding: 0 !important;
      background: var(--bg-soft) !important;
      overflow: visible !important;
    }

    .visit-redesign .loc-split { display: none !important; }

    .visit-top {
      display: grid;
      grid-template-columns: 0.92fr 1fr;
      align-items: stretch;
      min-height: 640px;
      border-bottom: 1px solid rgba(31, 61, 46, 0.16);
    }

    /* Flipped variant — text on the left, editorial photo stack on the right.
       Main: clients portrait (9:16). Inset: facade card overlapping. */
    .visit-top.visit-top-flipped {
      grid-template-columns: 1fr 0.95fr;
      align-items: stretch;
      min-height: 0;
      padding: 96px 76px 120px;
      gap: 80px;
      background:
        radial-gradient(circle at 0% 0%, rgba(31, 61, 46, 0.08), transparent 50%),
        radial-gradient(circle at 100% 100%, rgba(31, 61, 46, 0.05), transparent 50%),
        var(--bg-soft);
      position: relative;
      overflow: hidden;
    }
    .visit-top.visit-top-flipped::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(31, 61, 46, 0.35) 50%, transparent);
      pointer-events: none;
      z-index: 2;
    }
    /* Sage cosmic dust — sparse green orbs drifting down across the cream
       ground, brand-matched to the engagement and reviews sections. */
    .visit-top .visit-top-dust {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 0;
    }
    .visit-top.visit-top-flipped .visit-content,
    .visit-top.visit-top-flipped .visit-photo-stack {
      position: relative;
      z-index: 1;
    }
    @media (prefers-reduced-motion: reduce) {
      .visit-top .visit-top-dust { display: none !important; }
    }
    .visit-top.visit-top-flipped .visit-content {
      padding: 0 !important;
      background: transparent !important;
      gap: 36px;
      align-self: start;
    }
    /* 25 Aug 2026, Stefan: "House image should be higher up next to
       The House at the...". The photo column was centring itself against a
       620px floor, so it floated well below the heading. Both columns now
       start at the same top edge. */
    .visit-photo-stack {
      position: relative;
      align-self: start;
      display: flex;
      align-items: flex-start;
      justify-content: center;
      min-height: 0;
    }
    .visit-photo-stack .vps-main {
      position: relative;
      margin: 0;
      width: 86%;
      /* The frame carries the showroom photograph at its native 1160x1440, so
         the whole creative shows instead of a 9:16 slice of it. 26 Aug 2026. */
      aspect-ratio: 1160 / 1440;
      max-height: 720px;
      align-self: flex-start;
      overflow: hidden;
      background: #1a1814;
      box-shadow:
        0 50px 100px rgba(26, 24, 20, 0.28),
        0 14px 30px rgba(26, 24, 20, 0.12),
        0 0 0 1px rgba(31, 61, 46, 0.28);
    }
    .visit-photo-stack .vps-main img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      /* the frame matches the photograph's own ratio, so cover crops nothing */
      object-position: center;
      transform: scale(1.02);
      transition: transform 14s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .visit-photo-stack:hover .vps-main img { transform: scale(1.06); }
    .visit-photo-stack .vps-main::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 1;
      background: linear-gradient(180deg, rgba(7,7,6,0.12) 0%, rgba(7,7,6,0) 28%, rgba(7,7,6,0) 70%, rgba(7,7,6,0.5) 100%);
    }
    .visit-photo-stack .vps-main::after {
      content: '';
      position: absolute;
      inset: 14px;
      z-index: 2;
      border: 1px solid rgba(251, 251, 247, 0.22);
      pointer-events: none;
    }
    .visit-photo-stack .vps-tag {
      position: absolute;
      bottom: 28px;
      left: 28px;
      z-index: 3;
      font-size: 0.5rem;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.95);
      padding: 10px 16px;
      background: rgba(10, 9, 6, 0.55);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: 1px solid rgba(31, 61, 46, 0.35);
      font-weight: 600;
    }
    .visit-photo-stack .vps-inset {
      position: absolute;
      bottom: -40px;
      right: -40px;
      width: 320px;
      aspect-ratio: 16 / 9;
      margin: 0;
      overflow: hidden;
      background: #1a1814;
      border: 1px solid rgba(31, 61, 46, 0.55);
      box-shadow:
        0 32px 64px rgba(26, 24, 20, 0.4),
        0 10px 24px rgba(26, 24, 20, 0.22),
        0 0 0 4px rgba(251, 251, 247, 0.85);
      transform: rotate(0deg);
      transition: transform 0.7s var(--ease-out), box-shadow 0.7s var(--ease-out);
      z-index: 4;
    }
    .visit-photo-stack .vps-inset:hover {
      transform: rotate(0deg) translateY(-6px);
      box-shadow:
        0 40px 80px rgba(26, 24, 20, 0.48),
        0 14px 28px rgba(26, 24, 20, 0.28),
        0 0 0 4px rgba(251, 251, 247, 0.92);
    }
    .visit-photo-stack .vps-inset img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center center;
    }
    .visit-photo-stack .vps-inset::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: linear-gradient(180deg, rgba(7,7,6,0) 45%, rgba(7,7,6,0.78) 100%);
    }
    .visit-photo-stack .vps-inset-tag {
      position: absolute;
      bottom: 10px;
      left: 12px;
      right: 12px;
      z-index: 2;
      font-size: 0.5rem;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: rgba(251, 251, 247, 0.96);
      font-weight: 600;
      text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
    }
    @media (max-width: 1180px) {
      .visit-photo-stack .vps-inset { width: 270px; right: -16px; bottom: -32px; }
    }
    @media (max-width: 980px) {
      .visit-top.visit-top-flipped {
        grid-template-columns: 1fr;
        padding: 60px 32px 90px;
        gap: 56px;
      }
      .visit-photo-stack { min-height: 0; order: 2; }
      .visit-photo-stack .vps-main { width: min(440px, 100%); max-height: 620px; }
      .visit-photo-stack .vps-inset { width: 220px; right: 4px; bottom: -28px; }
    }
    @media (max-width: 640px) {
      .visit-top.visit-top-flipped { padding: 44px 18px 70px; gap: 40px; }
      .visit-photo-stack .vps-main { width: 100%; }
      .visit-photo-stack .vps-inset { width: 168px; right: -4px; bottom: -32px; }
      .visit-photo-stack .vps-tag { left: 16px; bottom: 16px; font-size: 0.46rem; }
    }

    .visit-photo {
      position: relative;
      overflow: hidden;
      background: #1a1814;
      min-height: 460px;
    }

    .visit-photo img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 32%;
      transform: scale(1.02);
      transition: transform 14s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .visit-photo:hover img,
    .visit-photo.zoomed img { transform: scale(1.09); }

    .visit-photo::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(180deg, rgba(7,7,6,0.18) 0%, rgba(7,7,6,0) 32%, rgba(7,7,6,0) 65%, rgba(7,7,6,0.55) 100%);
      pointer-events: none;
    }

    .visit-photo::after {
      content: '';
      position: absolute;
      inset: 18px;
      z-index: 2;
      border: 1px solid rgba(251, 251, 247, 0.22);
      pointer-events: none;
    }

    .visit-photo-tag {
      position: absolute;
      bottom: 38px;
      left: 38px;
      z-index: 3;
      font-size: 0.52rem;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.95);
      padding: 11px 18px;
      background: rgba(10, 9, 6, 0.55);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: 1px solid rgba(31, 61, 46, 0.35);
      font-weight: 600;
    }

    .visit-content {
      padding: 100px 76px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 38px;
      background:
        radial-gradient(circle at 100% 0%, rgba(31, 61, 46, 0.07), transparent 55%),
        var(--bg-soft);
    }

    .visit-content .eyebrow { color: var(--gold-deep) !important; }

    .visit-hero-h {
      font-family: var(--serif);
      font-size: clamp(2.1rem, 3.6vw, 3.6rem);
      font-weight: 400;
      line-height: 1.06;
      color: var(--ink);
      letter-spacing: -0.01em;
      margin-top: 6px;
    }

    .visit-intro {
      margin-top: 22px;
      font-size: 0.94rem;
      color: var(--ink-soft);
      line-height: 1.85;
      max-width: 480px;
    }

    .visit-details-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      margin-top: 12px;
      position: relative;
    }

    .visit-detail {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 24px 26px;
      position: relative;
      background:
        linear-gradient(135deg, rgba(251, 251, 247, 0.92) 0%, rgba(251, 251, 247, 0.88) 100%);
      border: 1px solid rgba(31, 61, 46, 0.22);
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.7) inset,
        0 18px 36px rgba(26, 24, 20, 0.06),
        0 2px 8px rgba(26, 24, 20, 0.04);
      overflow: hidden;
      isolation: isolate;
      transition: transform 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out), border-color 0.6s var(--ease-out);
    }

    /* gold corner accents — top-left and bottom-right */
    .visit-detail::before {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 22px; height: 22px;
      border-top: 1px solid var(--gold-deep);
      border-left: 1px solid var(--gold-deep);
      opacity: 0.7;
      z-index: 2;
      transition: width 0.55s var(--ease-out), height 0.55s var(--ease-out), opacity 0.55s var(--ease-out);
      pointer-events: none;
    }
    .visit-detail::after {
      content: '';
      position: absolute;
      bottom: 0; right: 0;
      width: 22px; height: 22px;
      border-bottom: 1px solid var(--gold-deep);
      border-right: 1px solid var(--gold-deep);
      opacity: 0.7;
      z-index: 2;
      transition: width 0.55s var(--ease-out), height 0.55s var(--ease-out), opacity 0.55s var(--ease-out);
      pointer-events: none;
    }

    .visit-detail:hover {
      transform: translateY(-3px);
      border-color: rgba(31, 61, 46, 0.42);
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 26px 50px rgba(26, 24, 20, 0.1),
        0 6px 14px rgba(26, 24, 20, 0.06);
    }
    .visit-detail:hover::before,
    .visit-detail:hover::after {
      width: 32px; height: 32px;
      opacity: 1;
    }

    /* gold shimmer sweep — runs once per cycle across the row, staggered */
    .visit-detail .vd-shine {
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
      overflow: hidden;
    }
    .visit-detail .vd-shine::before {
      content: '';
      position: absolute;
      top: 0; bottom: 0;
      left: -60%;
      width: 45%;
      background: linear-gradient(
        110deg,
        rgba(251, 251, 247, 0) 0%,
        rgba(228, 236, 223, 0.0) 35%,
        rgba(228, 236, 223, 0.55) 50%,
        rgba(228, 236, 223, 0.0) 65%,
        rgba(251, 251, 247, 0) 100%
      );
      transform: skewX(-18deg);
      animation: vdShine 7s cubic-bezier(0.6, 0, 0.2, 1) infinite;
    }
    .visit-detail:nth-child(1) .vd-shine::before { animation-delay: 0s; }
    .visit-detail:nth-child(2) .vd-shine::before { animation-delay: 1.4s; }
    .visit-detail:nth-child(3) .vd-shine::before { animation-delay: 2.8s; }
    .visit-detail:nth-child(4) .vd-shine::before { animation-delay: 4.2s; }

    @keyframes vdShine {
      0%   { left: -60%; }
      35%  { left: 130%; }
      100% { left: 130%; }
    }
    @media (prefers-reduced-motion: reduce) {
      .visit-detail .vd-shine::before { animation: none; }
    }

    .visit-detail-label {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-size: 0.5rem;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: var(--gold-deep);
      font-weight: 700;
      position: relative;
      z-index: 3;
    }

    .visit-detail-icon {
      flex-shrink: 0;
      color: var(--gold-deep);
      filter: drop-shadow(0 0 6px rgba(31, 61, 46, 0.35));
      transition: filter 0.5s var(--ease-out), transform 0.5s var(--ease-out);
    }
    .visit-detail:hover .visit-detail-icon {
      filter: drop-shadow(0 0 12px rgba(31, 61, 46, 0.7));
      transform: scale(1.08);
    }

    .visit-detail-value {
      font-family: var(--serif);
      font-size: 1.02rem;
      color: var(--ink);
      line-height: 1.55;
      font-weight: 400;
      position: relative;
      z-index: 3;
    }

    .visit-detail-value a { color: var(--ink); transition: color 0.3s; }
    .visit-detail-value a:hover { color: var(--gold-deep); }

    /* Facade band — show the full image, no crop. Container ratio matches the source image exactly (1376x768). */
    .visit-facade {
      position: relative;
      width: 100%;
      overflow: hidden;
      background: #0e0c08;
      aspect-ratio: 1376 / 768;
    }

    .visit-facade img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center center;
    }

    .visit-facade::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background:
        linear-gradient(180deg, rgba(7,7,6,0.4) 0%, rgba(7,7,6,0) 30%, rgba(7,7,6,0) 55%, rgba(7,7,6,0.78) 100%),
        linear-gradient(90deg, rgba(7,7,6,0.35) 0%, transparent 35%, transparent 65%, rgba(7,7,6,0.35) 100%);
    }

    .visit-facade-frame {
      position: absolute;
      inset: 22px;
      z-index: 2;
      border: 1px solid rgba(31, 61, 46, 0.22);
      pointer-events: none;
    }

    .visit-facade-cap {
      position: absolute;
      bottom: 38px;
      left: 0;
      right: 0;
      padding: 0 76px;
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 30px;
      z-index: 3;
    }

    .vfc-eyebrow {
      display: block;
      font-size: 0.5rem;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: rgba(31, 61, 46, 0.95);
      margin-bottom: 14px;
      font-weight: 600;
    }

    .visit-facade-cap h3 {
      font-family: var(--serif);
      font-size: clamp(1.6rem, 2.8vw, 2.4rem);
      font-weight: 400;
      line-height: 1.1;
      color: var(--cream);
      letter-spacing: 0.005em;
      text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6);
    }

    .vfc-meta {
      font-family: var(--serif);
      font-size: 0.86rem;
      letter-spacing: 0.06em;
      color: rgba(255, 255, 255, 0.85);
      text-align: right;
      line-height: 1.7;
      text-shadow: 0 2px 18px rgba(0, 0, 0, 0.5);
    }

    .visit-map-section {
      padding: 96px 76px 110px;
      background:
        radial-gradient(ellipse 80% 60% at 50% 30%, rgba(31, 61, 46, 0.08) 0%, transparent 70%),
        linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 55%, var(--bg-soft) 100%);
      position: relative;
      overflow: hidden;
    }
    .visit-map-section::before {
      content: '';
      position: absolute;
      inset: -10% -5%;
      pointer-events: none;
      z-index: 0;
      background:
        radial-gradient(ellipse 55% 40% at 18% 28%, rgba(31, 61, 46, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse 50% 45% at 82% 70%, rgba(228, 236, 223, 0.09) 0%, transparent 60%);
      filter: blur(50px);
      animation: awardsAurora 16s ease-in-out infinite alternate;
    }
    .visit-map-section #mapSparkleCanvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    .visit-map-section > .visit-map-header,
    .visit-map-section > .visit-map-wrap { position: relative; z-index: 2; }

    .visit-map-header {
      max-width: 1400px;
      margin: 0 auto 44px;
      text-align: center;
    }

    .visit-map-header .gold-line {
      margin: 18px auto 22px;
      background: var(--gold-deep) !important;
    }

    .visit-map-h {
      font-family: var(--serif);
      font-size: clamp(1.8rem, 3.2vw, 2.8rem);
      font-weight: 400;
      line-height: 1.1;
      color: var(--ink);
    }

    .visit-map-wrap {
      position: relative;
      max-width: 1400px;
      margin: 0 auto;
      border: 1px solid rgba(31, 61, 46, 0.22);
      overflow: hidden;
      background: #1a1814;
      box-shadow:
        0 50px 110px rgba(20, 15, 8, 0.16),
        0 12px 36px rgba(20, 15, 8, 0.08);
    }

    .visit-map-frame {
      position: relative;
      height: 560px;
      overflow: hidden;
    }

    .visit-map-frame iframe {
      width: 100%;
      height: 100%;
      border: none;
      filter: saturate(0.78) contrast(0.94) brightness(0.99);
      transition: filter 0.8s ease;
    }

    .visit-map-wrap:hover .visit-map-frame iframe {
      filter: saturate(0.95) contrast(1) brightness(1.02);
    }

    .visit-map-gloss {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 2;
      background:
        linear-gradient(180deg, rgba(7, 7, 6, 0.08) 0%, transparent 18%, transparent 82%, rgba(7, 7, 6, 0.1) 100%);
    }

    .visit-map-card {
      position: absolute;
      top: 32px;
      right: 32px;
      z-index: 5;
      width: 360px;
      max-width: calc(100% - 64px);
      background: rgba(251, 251, 247, 0.97);
      backdrop-filter: blur(22px) saturate(140%);
      -webkit-backdrop-filter: blur(22px) saturate(140%);
      border: 1px solid rgba(31, 61, 46, 0.28);
      padding: 28px 28px 26px;
      box-shadow:
        0 30px 80px rgba(20, 15, 8, 0.22),
        0 8px 24px rgba(20, 15, 8, 0.1);
    }

    .visit-map-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(31, 61, 46, 0.6) 30%, rgba(31, 61, 46, 0.6) 70%, transparent);
    }

    .vmc-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 0.48rem;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--gold-deep);
      font-weight: 700;
      margin-bottom: 14px;
    }

    .vmc-eyebrow::before {
      content: '';
      display: inline-block;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #2f8a4d;
      box-shadow: 0 0 0 3px rgba(47, 138, 77, 0.22);
      animation: vmcPulse 2.6s ease-in-out infinite;
    }

    @keyframes vmcPulse {
      0%, 100% { box-shadow: 0 0 0 3px rgba(47, 138, 77, 0.22); }
      50% { box-shadow: 0 0 0 7px rgba(47, 138, 77, 0.08); }
    }

    .vmc-title {
      font-family: var(--serif);
      font-size: 1.55rem;
      font-weight: 400;
      color: var(--ink);
      line-height: 1.15;
      margin-bottom: 6px;
    }

    .vmc-address {
      font-size: 0.92rem;
      color: var(--ink);
      line-height: 1.75;
      margin-bottom: 16px;
      font-family: var(--serif);
      font-weight: 500;
    }

    .vmc-meta {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 14px 0 18px;
      border-top: 1px solid rgba(31, 61, 46, 0.18);
      border-bottom: 1px solid rgba(31, 61, 46, 0.18);
      margin-bottom: 18px;
    }

    .vmc-meta-row {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-size: 0.86rem;
      color: var(--ink);
      letter-spacing: 0.02em;
      font-weight: 500;
    }

    .vmc-meta-row svg { flex-shrink: 0; color: var(--gold-deep); }

    .vmc-chips {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin-bottom: 20px;
    }

    .vmc-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 11px 10px;
      font-size: 0.56rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--ink);
      border: 1px solid rgba(31, 61, 46, 0.32);
      background: rgba(255, 255, 255, 0.55);
      font-weight: 700;
      font-family: var(--sans);
      transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      cursor: pointer;
    }

    .vmc-chip svg { flex-shrink: 0; transition: transform 0.3s; }

    .vmc-chip:hover {
      background: var(--ink);
      border-color: var(--ink);
      color: var(--cream);
      transform: translateY(-1px);
      box-shadow: 0 8px 20px rgba(20, 15, 8, 0.18);
    }

    .vmc-chip:hover svg { transform: scale(1.1); }

    .vmc-chip-primary {
      background: var(--gold-deep);
      border-color: var(--gold-deep);
      color: #fff;
    }

    .vmc-chip-primary:hover {
      background: var(--ink);
      border-color: var(--ink);
      color: var(--cream);
    }

    .vmc-ctas { display: flex; gap: 10px; flex-wrap: wrap; }

    .vmc-ctas .btn-gold,
    .vmc-ctas .btn-outline {
      flex: 1;
      min-width: 120px;
      justify-content: center;
      display: inline-flex;
      align-items: center;
    }

    .visit-map-pin {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 22px;
      height: 22px;
      z-index: 3;
      pointer-events: none;
    }

    .vmp-dot {
      position: absolute;
      inset: 6px;
      border-radius: 50%;
      background: var(--gold-deep);
      box-shadow: 0 0 0 2px #fff, 0 6px 14px rgba(20, 15, 8, 0.35);
    }

    .vmp-pulse {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      background: rgba(31, 61, 46, 0.4);
      animation: vmpPulse 2.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
    }

    @keyframes vmpPulse {
      0% { transform: scale(0.6); opacity: 0.9; }
      100% { transform: scale(3.6); opacity: 0; }
    }

    @media (max-width: 1100px) {
      .visit-top {
        grid-template-columns: 1fr;
        min-height: auto;
      }
      .visit-photo {
        min-height: 380px;
        aspect-ratio: 16 / 10;
      }
      .visit-photo img { object-position: center 30%; }
      .visit-content { padding: 64px 40px 56px; }
      .visit-facade-cap { padding: 0 40px; }
      .visit-map-section { padding: 72px 40px 88px; }
      .visit-map-card {
        position: absolute;
        top: 24px;
        right: 24px;
        width: 320px;
      }
    }

    @media (max-width: 760px) {
      .visit-photo {
        min-height: 320px;
        aspect-ratio: 4 / 5;
        max-height: 540px;
      }
      .visit-photo img { object-position: center center; }
      .visit-photo::after { inset: 12px; }
      .visit-photo-tag {
        bottom: 22px;
        left: 22px;
        padding: 9px 14px;
        font-size: 0.48rem;
      }
      .visit-content {
        padding: 48px 22px 42px;
        gap: 28px;
      }
      .visit-details-grid { grid-template-columns: 1fr; gap: 14px; }
      .visit-detail { padding: 20px 22px; }
      .visit-facade-frame { inset: 14px; }
      .visit-facade-cap {
        padding: 0 22px;
        bottom: 22px;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
      }
      .vfc-meta { text-align: left; }
      .visit-facade-cap h3 { font-size: 1.45rem; }
      .visit-map-section { padding: 56px 16px 72px; }
      .visit-map-header { margin-bottom: 28px; }
      .visit-map-wrap {
        background: transparent;
        border: none;
        box-shadow: none;
        display: flex;
        flex-direction: column;
        gap: 0;
      }
      .visit-map-frame {
        height: 320px;
        border: 1px solid rgba(31, 61, 46, 0.22);
      }
      .visit-map-card {
        position: static;
        width: 100%;
        max-width: none;
        top: auto;
        right: auto;
        border: 1px solid rgba(31, 61, 46, 0.22);
        border-top: none;
        box-shadow: 0 12px 30px rgba(20, 15, 8, 0.08);
        padding: 24px 22px 22px;
      }
      .vmc-chips {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
      }
      .vmc-ctas { flex-direction: column; gap: 10px; }
      .vmc-ctas .btn-gold,
      .vmc-ctas .btn-outline {
        width: 100%;
        flex: 0 1 auto;
      }
    }

    @media (max-width: 420px) {
      .vmc-chips { grid-template-columns: 1fr; }
    }

    .visit-redesign h2,
    .visit-redesign h3,
    .visit-redesign h4 { color: var(--ink); }

    .visit-redesign .visit-facade-cap h3,
    .visit-redesign .visit-photo-tag { color: var(--cream) !important; }

    .visit-redesign .vfc-eyebrow { color: rgba(31, 61, 46, 0.95) !important; }

    .visit-redesign .vfc-meta { color: rgba(255, 255, 255, 0.85) !important; }

    .visit-redesign .eyebrow { color: var(--gold-deep) !important; }

    .visit-redesign .gold-line { background: var(--gold-deep) !important; }

    .visit-redesign p.visit-intro { color: var(--ink-soft) !important; }

    .visit-redesign .btn-outline {
      color: var(--ink) !important;
      border-color: rgba(26, 24, 20, 0.32) !important;
    }

    .visit-redesign .btn-outline:hover {
      background: var(--ink) !important;
      color: var(--cream) !important;
      border-color: var(--ink) !important;
    }

    /* ==========================================================================
       SECTION SEAM FIX — Celebrity → Awards: zero white gap, gilt-rule only
       ========================================================================== */
    .celeb-section { padding-bottom: 0 !important; }
    .celeb-section + .gilt-rule { margin: 0; }
    .celeb-section + .gilt-rule + .awards-section { padding-top: 0 !important; }
    .celeb-section + .gilt-rule + .awards-section .container { padding-top: 56px; }

    /* ==========================================================================
       FOOTER — match the PlatAfrica/awards animated golden background, fix the
       hard-to-read sublabels in "Our Three Houses" + final tagline.
       ========================================================================== */
    .footer {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 30%, #2A2218 0%, #1A1612 60%, #0D0B09 100%) !important;
      overflow: hidden;
    }
    .footer::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 20% 30%, rgba(31, 61, 46, 0.06) 0%, transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(31, 61, 46, 0.05) 0%, transparent 40%);
      pointer-events: none;
      z-index: 0;
    }
    /* Animated cosmic-dust canvas — matches the PlatAfrica section */
    .footer #footerSparkleCanvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }
    /* Soft drifting aurora — same engine as .awards-aurora */
    .footer .footer-aurora {
      position: absolute;
      inset: -20% -5% -10% -5%;
      pointer-events: none;
      z-index: 0;
      background:
        radial-gradient(ellipse 60% 40% at 30% 50%, rgba(31, 61, 46, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse 50% 50% at 75% 60%, rgba(228, 236, 223, 0.08) 0%, transparent 65%);
      filter: blur(40px);
      animation: awardsAurora 14s ease-in-out infinite alternate;
    }
    /* Keep all footer content above the canvas */
    .footer > *:not(#footerSparkleCanvas):not(.footer-aurora) { position: relative; z-index: 2; }
    .footer .footer-crest-band,
    .footer .footer-main,
    .footer .footer-bar { position: relative; z-index: 2; }
    @media (prefers-reduced-motion: reduce) {
      .footer #footerSparkleCanvas { display: none !important; }
      .footer .footer-aurora { animation: none !important; }
    }
    /* Sublabels in the "Our Three Houses" column — bumped from 0.28 to readable */
    .footer .f-sites a > span,
    .footer .f-sites li > a > span[style*="color:rgba(63, 80, 70,0.28)"] {
      color: rgba(228, 236, 223, 0.78) !important;
    }
    /* Tagline at the bottom of column 4 */
    .footer p[style*="color:rgba(63, 80, 70,0.28)"] {
      color: rgba(228, 236, 223, 0.82) !important;
    }
    /* Diamond accent line above the tagline — slightly brighter */
    .footer div[style*="opacity:0.3"] { opacity: 0.55 !important; }

    /* ==========================================================================
       FOOTER — READABILITY PASS (2026-05-20)
       The original footer used --gold (#3f5046, actually a deep green) for
       every label, link and accent on a near-black background — invisible.
       This block re-skins the footer with true brass + cream typography so
       every line is legible, while keeping the animated cosmic-dust + aurora.
       Brass palette is local to the footer (--fb-*) so the rest of the site
       is untouched.
       ========================================================================== */
    .footer {
      --fb-brass:      #C7A878;
      --fb-brass-lt:   #E6CFA3;
      --fb-brass-dim:  rgba(199, 168, 120, 0.55);
      --fb-brass-faint:rgba(199, 168, 120, 0.22);
      --fb-cream:      rgba(243, 237, 229, 0.92);
      --fb-cream-mid:  rgba(243, 237, 229, 0.72);
      --fb-cream-dim:  rgba(243, 237, 229, 0.52);
      --fb-cream-faint:rgba(243, 237, 229, 0.32);
      --fb-sage:       rgba(188, 201, 183, 0.85);
      background:
        radial-gradient(ellipse at 50% 25%, #1F1A12 0%, #131008 55%, #0A0806 100%) !important;
    }
    /* ==========================================================================
       UNIFIED FOOTER LED BEAM (2026-05-29)
       One golden energy strip at the very top of the footer, identical on every
       page, connecting the section above into the footer.  Bold champagne-gold
       beam + centre diamond node + slow breathing glow.  Mirrors the Journal /
       Our Team seam so the whole site reads as one.
       ========================================================================== */
    .footer .footer-crest-band::before {
      height: 2px !important;
      background: linear-gradient(90deg,
        rgba(232, 193, 106, 0) 0%,
        rgba(232, 193, 106, 0.85) 22%,
        #FFF1C4 50%,
        rgba(232, 193, 106, 0.85) 78%,
        rgba(232, 193, 106, 0) 100%) !important;
      background-size: 100% 100% !important;
      animation: ppFooterLed 3.8s ease-in-out infinite !important;
      z-index: 3;
    }
    .footer .footer-crest-band::after {
      content: '';
      position: absolute;
      top: 0; left: 50%;
      width: 9px; height: 9px;
      transform: translate(-50%, -45%) rotate(45deg);
      background: #FFF1C4;
      box-shadow: 0 0 14px rgba(232, 193, 106, 0.9);
      z-index: 4;
      pointer-events: none;
    }
    @keyframes ppFooterLed {
      0%, 100% { box-shadow: 0 0 14px rgba(232, 193, 106, 0.55), 0 0 34px rgba(232, 193, 106, 0.22); }
      50%      { box-shadow: 0 0 22px rgba(232, 193, 106, 0.95), 0 0 52px rgba(232, 193, 106, 0.45); }
    }
    @media (prefers-reduced-motion: reduce) {
      .footer .footer-crest-band::before { animation: none !important; box-shadow: 0 0 18px rgba(232, 193, 106, 0.6) !important; }
    }
    .footer .footer-crest-img {
      opacity: 0.92 !important;
      filter: sepia(0.7) saturate(2.6) hue-rotate(-8deg) brightness(1.45) !important;
      animation: fbCrest 4s ease-in-out infinite !important;
    }
    @keyframes fbCrest {
      0%, 100% { filter: sepia(0.7) saturate(2.6) hue-rotate(-8deg) brightness(1.4) drop-shadow(0 0 4px rgba(199, 168, 120, 0.5)); }
      50%      { filter: sepia(0.7) saturate(3) hue-rotate(-8deg) brightness(1.7) drop-shadow(0 0 14px rgba(230, 207, 163, 0.75)); }
    }

    /* Wordmark — cream with soft brass glow */
    .footer .footer-wordmark {
      color: var(--fb-cream) !important;
      animation: fbWordmark 4s ease-in-out infinite !important;
    }
    @keyframes fbWordmark {
      0%, 100% { text-shadow: 0 0 8px rgba(199, 168, 120, 0.25), 0 0 22px rgba(199, 168, 120, 0.08); }
      50%      { text-shadow: 0 0 14px rgba(230, 207, 163, 0.55), 0 0 32px rgba(199, 168, 120, 0.22); }
    }

    /* Tagline */
    .footer .footer-tagline {
      color: var(--fb-cream-mid) !important;
      animation: none !important;
    }

    /* Contact rows */
    .footer .f-contact-icon {
      border-color: var(--fb-brass-faint) !important;
      color: var(--fb-brass) !important;
      animation: fbIcon 3s ease-in-out infinite !important;
    }
    .footer .f-contact-row:nth-child(2) .f-contact-icon { animation-delay: 0.5s !important; }
    .footer .f-contact-row:nth-child(3) .f-contact-icon { animation-delay: 1.0s !important; }
    .footer .f-contact-row:nth-child(4) .f-contact-icon { animation-delay: 1.5s !important; }
    @keyframes fbIcon {
      0%, 100% { border-color: var(--fb-brass-faint); color: var(--fb-brass-dim); box-shadow: 0 0 3px rgba(199, 168, 120, 0.1); }
      50%      { border-color: var(--fb-brass); color: var(--fb-brass-lt); box-shadow: 0 0 12px rgba(199, 168, 120, 0.4), inset 0 0 5px rgba(199, 168, 120, 0.06); }
    }
    .footer .f-contact-label {
      color: var(--fb-brass) !important;
      font-size: 0.6rem !important;
      letter-spacing: 0.28em !important;
      opacity: 0.9;
    }
    .footer .f-contact-val,
    .footer .f-contact-val a {
      color: var(--fb-cream) !important;
      animation: none !important;
      text-shadow: none !important;
    }
    .footer .f-contact-val a:hover { color: var(--fb-brass-lt) !important; }

    /* Social icons */
    .footer .f-social {
      width: 36px;
      height: 36px;
      border-radius: 0;
      background: transparent !important;
      border-color: var(--fb-brass-faint) !important;
      color: var(--fb-brass-dim) !important;
      animation: fbSocial 3s ease-in-out infinite !important;
    }
    .footer .f-social svg { width: 16px; height: 16px; }
    .footer .f-social:nth-child(2) { animation-delay: 0.5s !important; }
    .footer .f-social:nth-child(3) { animation-delay: 1.0s !important; }
    @keyframes fbSocial {
      0%, 100% { border-color: var(--fb-brass-faint); color: var(--fb-brass-dim); box-shadow: 0 0 4px rgba(199, 168, 120, 0.15); }
      50%      { border-color: var(--fb-brass); color: var(--fb-brass-lt); box-shadow: 0 0 14px rgba(199, 168, 120, 0.4), 0 0 28px rgba(199, 168, 120, 0.18); }
    }
    .footer .f-social:hover {
      border-color: var(--fb-brass-lt) !important;
      color: #FFFFFF !important;
      background: rgba(199, 168, 120, 0.08) !important;
      box-shadow: 0 0 18px rgba(199, 168, 120, 0.55), 0 0 36px rgba(199, 168, 120, 0.22) !important;
      animation: none !important;
    }

    /* Certs */
    .footer .f-cert {
      color: var(--fb-cream-mid) !important;
      border-color: var(--fb-brass-faint) !important;
      font-size: 0.56rem !important;
      letter-spacing: 0.14em !important;
      padding: 4px 9px !important;
      animation: fbCert 4.4s ease-in-out infinite !important;
    }
    .footer .f-cert:nth-child(2) { animation-delay: 0.6s !important; }
    .footer .f-cert:nth-child(3) { animation-delay: 1.2s !important; }
    .footer .f-cert:nth-child(4) { animation-delay: 1.8s !important; }
    @keyframes fbCert {
      0%, 100% { border-color: var(--fb-brass-faint); color: var(--fb-cream-mid); box-shadow: none; }
      50%      { border-color: var(--fb-brass); color: var(--fb-cream); box-shadow: 0 0 8px rgba(199, 168, 120, 0.22); }
    }

    /* Column titles */
    .footer .f-col-title {
      color: var(--fb-brass) !important;
      font-size: 0.64rem !important;
      letter-spacing: 0.3em !important;
      border-bottom-color: var(--fb-brass-faint) !important;
      animation: fbColTitle 3.4s ease-in-out infinite !important;
    }
    @keyframes fbColTitle {
      0%, 100% { text-shadow: 0 0 6px rgba(199, 168, 120, 0.35), 0 0 14px rgba(199, 168, 120, 0.12); }
      50%      { text-shadow: 0 0 12px rgba(230, 207, 163, 0.7), 0 0 26px rgba(199, 168, 120, 0.32); }
    }

    /* Nav links */
    .footer .f-links a {
      color: var(--fb-cream-mid) !important;
      font-size: 0.86rem !important;
    }
    .footer .f-links a::before {
      background: var(--fb-brass-faint) !important;
    }
    .footer .f-links a:hover {
      color: #FFFFFF !important;
      text-shadow: 0 0 8px rgba(230, 207, 163, 0.45), 0 0 18px rgba(199, 168, 120, 0.25) !important;
    }
    .footer .f-links a:hover::before {
      background: var(--fb-brass-lt) !important;
    }

    /* Site links (Our Three Houses) */
    .footer .f-sites a {
      color: var(--fb-cream-mid) !important;
      font-size: 0.86rem !important;
    }
    .footer .f-sites a::before {
      color: var(--fb-brass-dim) !important;
      font-size: 0.42rem !important;
    }
    .footer .f-sites a:hover {
      color: #FFFFFF !important;
      text-shadow: 0 0 8px rgba(230, 207, 163, 0.45), 0 0 18px rgba(199, 168, 120, 0.25) !important;
    }
    .footer .f-sites a:hover::before { color: var(--fb-brass-lt) !important; }

    /* Sublabels under each site name (inline-styled in HTML) */
    .footer .f-sites a > span[style] {
      color: var(--fb-cream-faint) !important;
      font-size: 0.66rem !important;
      letter-spacing: 0.08em;
      margin-top: 4px !important;
      font-style: italic;
      font-family: var(--serif);
    }

    /* Italic tagline at the bottom of column 4 (inline-styled) */
    .footer p[style*="font-style:italic"] {
      color: var(--fb-cream-dim) !important;
    }

    /* Diamond accent line above the italic tagline */
    .footer div[style*="opacity:0.3"] {
      opacity: 0.7 !important;
    }
    .footer div[style*="opacity:0.3"] > span[style*="--gold"],
    .footer div[style*="opacity:0.3"] span {
      color: var(--fb-brass) !important;
    }

    /* Footer bar */
    .footer .footer-bar {
      border-top-color: var(--fb-brass-faint) !important;
    }
    .footer .f-copy {
      color: var(--fb-cream-dim) !important;
      font-size: 0.68rem !important;
      animation: none !important;
      text-shadow: none !important;
    }
    .footer .f-legal a {
      color: var(--fb-cream-dim) !important;
      font-size: 0.66rem !important;
    }
    .footer .f-legal a:hover {
      color: var(--fb-brass-lt) !important;
      text-shadow: 0 0 8px rgba(230, 207, 163, 0.45) !important;
    }

    /* Override the older sublabel patch that targeted the wrong color */
    .footer .f-sites a > span,
    .footer .f-sites li > a > span[style*="color:rgba"] {
      color: var(--fb-cream-faint) !important;
    }
    .footer p[style*="color:rgba(63, 80, 70,0.28)"],
    .footer p[style*="color:rgba(160,144,120,0.28)"] {
      color: var(--fb-cream-dim) !important;
    }

    @media (prefers-reduced-motion: reduce) {
      .footer .footer-wordmark,
      .footer .f-contact-icon,
      .footer .f-social,
      .footer .f-cert,
      .footer .f-col-title,
      .footer .footer-crest-img { animation: none !important; }
    }

    /* ==========================================================================
       FOUNDER SECTION — FINAL REWORK (2026-05-18)
       Editorial parchment. Portrait dissolves into the bg (no copy-pasted edge).
       Section bottom anchored at portrait bottom. Neon strip divider follows.
       ========================================================================== */

    /* Background: warm parchment with ambient gold pools */
    .founder-section {
      background:
        radial-gradient(ellipse 70% 50% at 22% 36%, rgba(188, 201, 183, 0.12) 0%, transparent 60%),
        radial-gradient(ellipse 60% 55% at 78% 70%, rgba(31, 61, 46, 0.08) 0%, transparent 60%),
        linear-gradient(180deg, #fbfbf7 0%, #fbfbf7 55%, #e4ecdf 100%) !important;
      position: relative !important;
      overflow: hidden !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
    }
    /* Kill the dark-aurora ::before that was leaking through the cream */
    .founder-section::before { display: none !important; }
    /* Top gold seam */
    .founder-section::after {
      content: '' !important;
      position: absolute !important;
      top: 0; left: 0; right: 0;
      height: 1px !important;
      background: linear-gradient(90deg, transparent 0%, rgba(31, 61, 46, 0.45) 20%, rgba(31, 61, 46, 0.9) 50%, rgba(31, 61, 46, 0.45) 80%, transparent 100%) !important;
      z-index: 6 !important;
      pointer-events: none !important;
    }

    /* Grid — both columns share a height; section ends where portrait ends */
    .founder-section .fnd-grid {
      min-height: 0 !important;
      align-items: stretch !important;
      grid-template-columns: 58% 42% !important;
    }
    .founder-section .fnd-left {
      padding-top: 64px !important;
      padding-bottom: 72px !important;
      justify-content: flex-start !important;
    }
    @media(max-width:1200px) {
      .founder-section .fnd-left { padding-top: 56px !important; padding-bottom: 64px !important; }
    }
    @media(max-width:980px) {
      .founder-section .fnd-grid { grid-template-columns: 1fr !important; }
    }
    @media(max-width:768px) {
      .founder-section .fnd-left { padding-top: 44px !important; padding-bottom: 52px !important; }
    }

    /* Right column hosts the portrait — smaller, no longer forces section height */
    .founder-section .fnd-right {
      position: relative !important;
      min-height: 0 !important;
      overflow: visible !important;
      border-left: none !important;
    }
    /* Wipe the harsh edge gradient that made the picture look pasted on */
    .founder-section .fnd-right::after { display: none !important; }

    /* Portrait frame — soft-mask the LEFT, TOP and BOTTOM edges so the image
       grows organically out of the parchment instead of sitting on top of it. */
    .founder-section .fnd-portrait-frame {
      position: absolute !important;
      inset: 0 !important;
      overflow: hidden !important;
      z-index: 1 !important;
      -webkit-mask-image:
        linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.25) 4%, rgba(0,0,0,0.7) 12%, #000 22%, #000 100%),
        linear-gradient(180deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
      mask-image:
        linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.25) 4%, rgba(0,0,0,0.7) 12%, #000 22%, #000 100%),
        linear-gradient(180deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
      -webkit-mask-composite: source-in;
      mask-composite: intersect;
    }
    .founder-section .fnd-portrait {
      filter: brightness(1.02) contrast(1.06) saturate(1.04) !important;
      animation: fndKenBurns 22s ease-in-out alternate infinite !important;
    }
    /* Veil — whisper of parchment along the left + bottom so the portrait
       blends with the warm bg even where the mask is fully opaque */
    .founder-section .fnd-veil {
      position: absolute !important;
      inset: 0 !important;
      pointer-events: none !important;
      background:
        linear-gradient(90deg, rgba(228, 236, 223, 0.55) 0%, rgba(228, 236, 223, 0.18) 10%, transparent 26%),
        linear-gradient(180deg, rgba(228, 236, 223, 0.5) 0%, transparent 12%, transparent 78%, rgba(228, 236, 223, 0.55) 100%) !important;
    }
    /* Right-edge gold filament */
    .founder-section .fnd-portrait-line {
      position: absolute !important;
      top: 0 !important; bottom: 0 !important;
      left: auto !important;
      right: 0 !important;
      width: 1px !important;
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.55) 22%, rgba(31, 61, 46, 0.95) 50%, rgba(31, 61, 46, 0.55) 78%, transparent) !important;
      box-shadow: 0 0 14px rgba(31, 61, 46, 0.35) !important;
      z-index: 2 !important;
    }

    /* Ghost "PRINS" watermark — warm gold on parchment, very faint */
    .founder-section .fnd-ghost {
      color: rgba(31, 61, 46, 0.06) !important;
    }

    /* === TEXT COLORS rebalanced for cream bg === */
    .founder-section .fnd-eyebrow { color: var(--gold-deep) !important; }
    .founder-section .fnd-rule { background: var(--gold-deep) !important; opacity: 0.7 !important; }
    .founder-section .fnd-name {
      background: linear-gradient(110deg, #1A1814 0%, #2a3a30 26%, #1f3d2e 50%, #2a3a30 74%, #1A1814 100%) !important;
      background-size: 220% 100% !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      color: transparent !important;
      text-shadow: none !important;
      filter: none !important;
      animation: fndNameShimmer 14s ease-in-out infinite !important;
      font-weight: 600 !important;
      letter-spacing: -0.02em !important;
      font-size: clamp(3.8rem, 6.8vw, 7.2rem) !important;
    }
    .founder-section .fnd-title-strap {
      color: var(--gold-deep) !important;
      opacity: 0.95 !important;
    }
    .founder-section .fnd-blockquote {
      color: var(--ink) !important;
      border-left-color: var(--gold-deep) !important;
      font-size: clamp(1.25rem, 2vw, 1.7rem) !important;
      line-height: 1.55 !important;
      margin: 22px 0 28px !important;
      padding-left: 26px !important;
      max-width: 640px !important;
    }
    .founder-section .fnd-quote-mark { font-size: 1.5em !important; }
    .founder-section .fnd-quote-mark,
    .founder-section .fnd-quote-mark-close { color: var(--gold-deep) !important; opacity: 0.8 !important; }

    /* === FOUNDER SECTION — readable type sizes (Sasha 2026-05-18) ===
       Boost the all-caps labels and body copy without growing the section.
       Padding tightens to keep the overall height roughly the same. */
    .founder-section .fnd-eyebrow {
      font-size: 1.05rem !important;
      letter-spacing: 0.34em !important;
      font-weight: 600 !important;
    }
    .founder-section .fnd-title-strap {
      font-size: 1.18rem !important;
      letter-spacing: 0.22em !important;
      margin-top: 10px !important;
      font-weight: 500 !important;
    }
    .founder-section .fnd-tag {
      font-size: 0.96rem !important;
      letter-spacing: 0.16em !important;
      padding: 11px 20px !important;
      font-weight: 600 !important;
    }
    .founder-section .fnd-p {
      font-size: 1.28rem !important;
      line-height: 1.65 !important;
      max-width: 660px !important;
      margin-top: 12px !important;
    }
    .founder-section .fnd-blockquote {
      font-size: clamp(1.5rem, 2.2vw, 2rem) !important;
      font-weight: 400 !important;
      line-height: 1.5 !important;
      margin: 18px 0 26px !important;
      padding-left: 28px !important;
      border-left-width: 3px !important;
      max-width: 720px !important;
    }
    .founder-section .fnd-quote-mark { font-size: 1.6em !important; }
    .founder-section .fnd-sig-script { font-size: 2.4rem !important; }
    .founder-section .fnd-sig-cap {
      font-size: 0.98rem !important;
      letter-spacing: 0.24em !important;
      font-weight: 500 !important;
    }
    .founder-section .fnd-signature { margin-top: 20px !important; }
    .founder-section .fnd-tl-year {
      font-size: clamp(2.2rem, 3.2vw, 3rem) !important;
      font-weight: 500 !important;
    }
    .founder-section .fnd-tl-evt {
      font-size: 0.96rem !important;
      letter-spacing: 0.18em !important;
      font-weight: 600 !important;
    }
    .founder-section .fnd-stat-num {
      font-size: clamp(3rem, 4.6vw, 4rem) !important;
      font-weight: 500 !important;
    }
    .founder-section .fnd-stat-lbl {
      font-size: 0.98rem !important;
      letter-spacing: 0.18em !important;
      font-weight: 600 !important;
    }
    .founder-section .fnd-yt-lbl { font-size: 1rem !important; letter-spacing: 0.24em !important; font-weight: 600 !important; }
    .founder-section .fnd-yt-bar { font-size: 1rem !important; }
    /* Tighten gaps + padding so bigger type doesn't expand the section */
    .founder-section .fnd-grid { padding: 0 !important; }
    .founder-section .fnd-left {
      padding-top: 48px !important;
      padding-bottom: 56px !important;
      gap: 14px !important;
    }
    .founder-section .fnd-tags { margin-top: 14px !important; gap: 8px !important; }
    .founder-section .fnd-stats { margin-top: 24px !important; }
    .founder-section .fnd-blockquote { margin: 16px 0 22px !important; }
    .founder-section .fnd-yt { margin-top: 24px !important; }
    @media (max-width: 1200px) {
      .founder-section .fnd-left { padding-top: 40px !important; padding-bottom: 48px !important; }
    }
    @media (max-width: 768px) {
      .founder-section .fnd-tl-year { font-size: 1.9rem !important; }
      .founder-section .fnd-tl-evt { font-size: 0.84rem !important; }
      .founder-section .fnd-stat-num { font-size: 2.6rem !important; }
      .founder-section .fnd-stat-lbl { font-size: 0.88rem !important; }
      .founder-section .fnd-p { font-size: 1.12rem !important; }
      .founder-section .fnd-eyebrow { font-size: 0.95rem !important; }
      .founder-section .fnd-title-strap { font-size: 1.05rem !important; }
      .founder-section .fnd-tag { font-size: 0.88rem !important; padding: 9px 16px !important; }
      .founder-section .fnd-sig-script { font-size: 2rem !important; }
      .founder-section .fnd-sig-cap { font-size: 0.86rem !important; }
      .founder-section .fnd-blockquote { font-size: 1.35rem !important; }
      .founder-section .fnd-left { padding-top: 36px !important; padding-bottom: 44px !important; }
    }
    .founder-section .fnd-p { color: var(--ink-soft) !important; }
    .founder-section .fnd-signature { color: var(--gold-deep) !important; }
    .founder-section .fnd-sig-script { color: var(--gold-deep) !important; }
    .founder-section .fnd-sig-cap { color: var(--ink-dim) !important; }

    /* Timeline strip — ink + deep gold */
    .founder-section .fnd-tl-year { color: var(--gold-deep) !important; text-shadow: none !important; }
    .founder-section .fnd-tl-evt { color: var(--ink-soft) !important; }
    .founder-section .fnd-tl-line { background: rgba(31, 61, 46, 0.4) !important; }

    /* Stats */
    .founder-section .fnd-stat-num { color: var(--ink) !important; }
    .founder-section .fnd-stat-lbl { color: var(--ink-soft) !important; }
    .founder-section .fnd-stat:not(:last-child) {
      border-right-color: rgba(31, 61, 46, 0.28) !important;
    }

    /* Vertical accent line on left of content */
    .founder-section .fnd-vline {
      background: linear-gradient(to bottom, transparent, rgba(31, 61, 46, 0.45) 25%, rgba(31, 61, 46, 0.45) 75%, transparent) !important;
    }

    /* Credential tags — keep flicker, tune base palette for parchment */
    .founder-section .fnd-tag {
      background: rgba(31, 61, 46, 0.05) !important;
      border-color: rgba(31, 61, 46, 0.32) !important;
      color: var(--gold-deep) !important;
    }

    /* YouTube card frame */
    .founder-section .fnd-yt::before {
      border-color: rgba(31, 61, 46, 0.32) !important;
    }
    .founder-section .fnd-yt:hover::before {
      border-color: rgba(31, 61, 46, 0.7) !important;
    }

    /* Badge — keep dark so it pops on the portrait */
    .founder-section .fnd-badge {
      background: rgba(14, 11, 7, 0.9) !important;
      border-color: rgba(31, 61, 46, 0.5) !important;
      backdrop-filter: blur(18px) !important;
      -webkit-backdrop-filter: blur(18px) !important;
      padding: 22px 28px !important;
      bottom: 44px !important;
      left: 44px !important;
      max-width: 340px !important;
      z-index: 4 !important;
    }
    .founder-section .fnd-badge-name { color: var(--cream) !important; }
    .founder-section .fnd-badge-title { color: rgba(255, 255, 255, 0.85) !important; }
    .founder-section .fnd-badge-crest { color: var(--gold) !important; }
    @media(max-width:980px) {
      .founder-section .fnd-badge { left: 24px !important; bottom: 28px !important; padding: 18px 22px !important; }
      .founder-section .fnd-portrait-frame {
        -webkit-mask-image:
          linear-gradient(180deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
        mask-image:
          linear-gradient(180deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
      }
      .founder-section .fnd-right { min-height: 460px !important; }
    }

    /* Founder canvas (particles) — dim it on cream so it doesn't muddy */
    .founder-section #founderCanvas {
      opacity: 0.55 !important;
      mix-blend-mode: multiply !important;
    }

    /* ==========================================================================
       NEON STRIP — page section breaker (Founder → Celebrity)
       Gold neon filament with breathing flicker + sweep highlight.
       ========================================================================== */
    .neon-strip {
      position: relative;
      display: block;
      width: 100%;
      height: 4px;
      margin: 0;
      pointer-events: none;
      z-index: 5;
      background: linear-gradient(90deg,
        rgba(31, 61, 46, 0) 0%,
        rgba(31, 61, 46, 0.45) 12%,
        rgba(31, 61, 46, 0.9) 32%,
        #bcc9b7 50%,
        rgba(31, 61, 46, 0.9) 68%,
        rgba(31, 61, 46, 0.45) 88%,
        rgba(31, 61, 46, 0) 100%);
      box-shadow:
        0 0 14px rgba(228, 236, 223, 0.85),
        0 0 32px rgba(31, 61, 46, 0.55),
        0 0 70px rgba(31, 61, 46, 0.32),
        inset 0 0 2px rgba(251, 251, 247, 1);
      animation: neonStripFlicker 4.6s ease-in-out infinite;
    }
    .neon-strip::before {
      content: '';
      position: absolute;
      left: 0; right: 0;
      top: -10px; bottom: -10px;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(228, 236, 223, 0.22) 25%,
        rgba(251, 251, 247, 0.4) 50%,
        rgba(228, 236, 223, 0.22) 75%,
        transparent 100%);
      filter: blur(9px);
      pointer-events: none;
      animation: neonStripFlicker 4.6s ease-in-out infinite;
    }
    .neon-strip::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, transparent 0%, rgba(251, 251, 247, 0.95) 50%, transparent 100%);
      background-size: 220% 100%;
      animation: neonStripSweep 5.2s linear infinite;
      pointer-events: none;
      opacity: 0.55;
      mix-blend-mode: screen;
    }
    @keyframes neonStripFlicker {
      0%, 17%, 21%, 58%, 62%, 84%, 86%, 100% { opacity: 1; filter: brightness(1); }
      19% { opacity: 0.5; filter: brightness(0.55); }
      60% { opacity: 0.6; filter: brightness(0.7); }
      85% { opacity: 0.4; filter: brightness(0.55); }
      90% { opacity: 0.95; }
    }
    @keyframes neonStripSweep {
      0% { background-position: -220% 0; }
      100% { background-position: 220% 0; }
    }

/* ==========================================================================
   LANGUAGE PICKER on the preloader + nav language switcher
   ========================================================================== */
#siteLoader.is-lang-picker { transition: opacity 0.5s ease; }
#siteLoader.is-fade { opacity: 0; pointer-events: none; }

.sl-lang {
  width: min(720px, 90vw);
  margin: 24px auto 0;
  text-align: center;
  animation: slLangFade 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes slLangFade {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
.sl-lang-prompt {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1rem, 1.6vw, 1.3rem);
  font-style: italic;
  color: rgba(255, 255, 255, 0.78);
  margin-bottom: 20px;
  letter-spacing: 0.02em;
}
.sl-lang-prompt em { color: var(--gold, #3f5046); font-style: italic; }
.sl-lang-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
@media (max-width: 760px) { .sl-lang-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; } }
@media (max-width: 380px) { .sl-lang-grid { grid-template-columns: repeat(2, 1fr); } }
.sl-flag {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 14px 8px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(31, 61, 46, 0.28);
  color: rgba(255, 255, 255, 0.88);
  cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.25s, color 0.25s;
  font-family: 'Inter', sans-serif;
}
.sl-flag:hover {
  background: rgba(31, 61, 46, 0.12);
  border-color: var(--gold, #3f5046);
  transform: translateY(-3px);
  color: #fff;
}
.sl-flag.is-chosen {
  background: rgba(31, 61, 46, 0.22);
  border-color: var(--gold, #3f5046);
  color: #fff;
  box-shadow: 0 8px 24px rgba(31, 61, 46, 0.25);
}
.sl-flag-img {
  width: 60px;
  display: block;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.4));
}
.sl-flag-img svg { width: 100%; height: auto; display: block; }
.sl-flag-native {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}
.sl-flag-label {
  font-size: 0.56rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}
.sl-flag:hover .sl-flag-label,
.sl-flag.is-chosen .sl-flag-label { color: var(--gold, #3f5046); }
.sl-lang-fine {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.4);
  font-style: italic;
  font-family: 'Cormorant Garamond', serif;
}

/* In-nav language switcher (added later via JS) */
.nav-lang {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 14px;
  cursor: pointer;
  padding: 6px 10px;
  border: 1px solid rgba(31, 61, 46, 0.3);
  background: transparent;
  color: inherit;
  font-family: inherit;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  transition: background 0.25s, border-color 0.25s, color 0.25s;
}
.nav-lang:hover { border-color: var(--gold, #3f5046); }
.nav-lang-flag { width: 22px; line-height: 0; display: inline-block; }
.nav-lang-flag svg { width: 100%; height: auto; display: block; border-radius: 2px; }
.nav-lang-caret { margin-left: 4px; opacity: 0.6; }
.nav-lang-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 180px;
  background: rgba(7, 5, 3, 0.96);
  border: 1px solid rgba(31, 61, 46, 0.32);
  padding: 6px;
  z-index: 200;
  display: none;
  backdrop-filter: blur(12px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
}
.nav-lang-menu.is-open { display: block; }
.nav-lang-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.86);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-align: left;
  transition: background 0.2s, color 0.2s;
}
.nav-lang-item:hover { background: rgba(31, 61, 46, 0.14); color: #fff; }
.nav-lang-item.is-active { color: var(--gold, #3f5046); }
.nav-lang-item .nav-lang-flag { width: 24px; }
.nav-lang-item-native {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem;
  letter-spacing: 0;
  text-transform: none;
}

/* ==========================================================================
   LANGUAGE POPUP — shown after the preloader on first visit
   ========================================================================== */
.lang-popup {
  position: fixed; inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  animation: lpFadeIn 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}
.lang-popup.is-closing { animation: lpFadeOut 0.38s ease forwards; }
@keyframes lpFadeIn  { from { opacity: 0; } to { opacity: 1; } }
@keyframes lpFadeOut { from { opacity: 1; } to { opacity: 0; } }
.lang-popup-backdrop {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 30% 40%, rgba(31, 61, 46, 0.55) 0%, rgba(7, 5, 3, 0) 65%),
    radial-gradient(ellipse 55% 50% at 75% 70%, rgba(63, 80, 70, 0.22) 0%, rgba(7, 5, 3, 0) 65%),
    rgba(7, 5, 3, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.lang-popup-card {
  position: relative;
  width: min(760px, 100%);
  text-align: center;
  background: linear-gradient(180deg, #0d0b09 0%, #15110a 60%, #0a0805 100%);
  border: 1px solid rgba(31, 61, 46, 0.35);
  padding: clamp(28px, 4vw, 56px) clamp(24px, 4vw, 48px) clamp(24px, 4vw, 44px);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(31, 61, 46, 0.12), inset 0 1px 0 rgba(31, 61, 46, 0.18);
  animation: lpCardIn 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  color: rgba(255, 255, 255, 0.92);
  font-family: 'Inter', system-ui, sans-serif;
}
.lang-popup-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(188, 201, 183, 0.95), transparent);
  pointer-events: none;
}
@keyframes lpCardIn {
  from { opacity: 0; transform: translateY(24px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}
.lang-popup-crest {
  color: var(--gold, #3f5046);
  font-size: 0.9rem;
  letter-spacing: 0.4em;
  margin-bottom: 14px;
}
.lang-popup-eyebrow {
  display: inline-block;
  font-size: 0.62rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold, #3f5046);
  font-weight: 600;
  margin-bottom: 14px;
}
.lang-popup-h {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #fff;
  margin: 0 0 12px;
}
.lang-popup-sub {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(0.85rem, 1.4vw, 1.05rem);
  color: rgba(255, 255, 255, 0.62);
  margin: 0 0 28px;
  letter-spacing: 0.02em;
}
.lang-popup-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-bottom: 22px;
}
@media (max-width: 720px) { .lang-popup-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; } }
@media (max-width: 380px) { .lang-popup-grid { grid-template-columns: repeat(2, 1fr); } }
.lang-popup-flag {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 8px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(31, 61, 46, 0.28);
  color: rgba(255, 255, 255, 0.88);
  cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.25s, color 0.25s, box-shadow 0.25s;
  font-family: inherit;
}
.lang-popup-flag:hover {
  background: rgba(31, 61, 46, 0.14);
  border-color: var(--gold, #3f5046);
  transform: translateY(-3px);
  color: #fff;
  box-shadow: 0 14px 30px rgba(31, 61, 46, 0.18);
}
.lang-popup-flag.is-chosen {
  background: rgba(31, 61, 46, 0.22);
  border-color: var(--gold, #3f5046);
  color: #fff;
  box-shadow: 0 14px 30px rgba(31, 61, 46, 0.3);
}
.lang-popup-flag-img {
  width: 56px;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}
.lang-popup-flag-img svg { width: 100%; height: auto; display: block; }
.lang-popup-flag-native {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}
.lang-popup-flag-label {
  font-size: 0.54rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 600;
}
.lang-popup-flag:hover .lang-popup-flag-label,
.lang-popup-flag.is-chosen .lang-popup-flag-label { color: var(--gold, #3f5046); }
.lang-popup-skip {
  margin-top: 8px;
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.55);
  font-family: inherit;
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 8px 12px;
  transition: color 0.25s;
  font-weight: 600;
}
.lang-popup-skip:hover { color: var(--gold, #3f5046); }

/* ============================================================
   SUBPAGE SHARED SYSTEM
   Hero band, prose, timeline, gallery, team, press, streetview.
   Used by huguenot-house, dr-petre-prins, our-team,
   jewellery-designers, diamond-museum, press.
   ============================================================ */

body.subpage { background: var(--char); color: var(--cream); }

/* ---- SUBPAGE HERO ---- */
.sub-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: flex-end;
  padding: 200px 0 110px;
  overflow: hidden;
  isolation: isolate;
}
.sub-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--bg-image, none) center/cover no-repeat;
  z-index: -2;
  transform: scale(1.04);
  filter: saturate(0.95) contrast(1.02);
}
.sub-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(0,0,0,0.25), transparent 60%),
    linear-gradient(180deg, rgba(7,7,6,0.65) 0%, rgba(7,7,6,0.45) 35%, rgba(7,7,6,0.92) 100%);
  z-index: -1;
}
.sub-hero-inner {
  max-width: 1340px;
  width: 100%;
  margin: 0 auto;
  padding: 0 56px;
}
.sub-hero-crumb {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 0.6rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 22px;
}
.sub-hero-crumb a { color: var(--cream-70); transition: color 0.25s; }
.sub-hero-crumb a:hover { color: var(--gold); }
.sub-hero-crumb .sep { color: rgba(31, 61, 46,0.45); }
.sub-hero-eyebrow {
  display: inline-block;
  font-size: 0.62rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 18px;
}
.sub-hero-h {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(2.6rem, 6.2vw, 5.4rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  color: var(--cream);
  margin: 0 0 26px;
  max-width: 980px;
}
.sub-hero-h em { font-style: italic; color: var(--gold-lt); }
.sub-hero-rule {
  width: 64px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 28px;
}
.sub-hero-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.6vw, 1.4rem);
  color: var(--cream-70);
  max-width: 720px;
  line-height: 1.55;
  margin: 0 0 36px;
}
.sub-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 50px;
  color: var(--cream-70);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
}
.sub-hero-meta strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gold-lt);
  font-size: 1.4rem;
  margin-top: 6px;
}
@media (max-width: 1100px) { .sub-hero-inner { padding: 0 36px; } }
@media (max-width: 768px) {
  .sub-hero { min-height: 64vh; padding: 160px 0 80px; }
  .sub-hero-inner { padding: 0 24px; }
  .sub-hero-meta { gap: 22px 32px; font-size: 0.62rem; }
  .sub-hero-meta strong { font-size: 1.1rem; }
}

/* ---- PROSE SECTION ---- */
.prose-section {
  padding: 120px 0;
  background: var(--char);
  position: relative;
}
.prose-section.alt { background: var(--char-mid); }
.prose-section.dark { background: var(--black); }
.prose-wrap {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 56px;
}
.prose-eyebrow {
  display: inline-block;
  font-size: 0.6rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 22px;
}
.prose-h {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(2rem, 4.4vw, 3.6rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--cream);
  margin: 0 0 32px;
}
.prose-h em { font-style: italic; color: var(--gold-lt); }
.prose-lead {
  font-family: var(--serif);
  font-size: clamp(1.15rem, 1.7vw, 1.5rem);
  line-height: 1.6;
  color: var(--cream);
  margin: 0 0 30px;
}
.prose-p {
  font-size: 1rem;
  line-height: 1.85;
  color: var(--cream-70);
  margin: 0 0 24px;
  font-weight: 300;
}
.prose-p strong { color: var(--cream); font-weight: 500; }
.prose-h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  color: var(--cream);
  margin: 50px 0 20px;
  letter-spacing: 0.005em;
}
.prose-rule {
  width: 40px;
  height: 1px;
  background: var(--gold);
  margin: 28px 0;
}
@media (max-width: 1100px) { .prose-wrap { padding: 0 36px; } }
@media (max-width: 768px) {
  .prose-section { padding: 80px 0; }
  .prose-wrap { padding: 0 24px; }
}

/* ---- SPLIT (image + text) ---- */
.split-section {
  padding: 110px 0;
  background: var(--char);
}
.split-section.alt { background: var(--char-mid); }
.split-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
}
.split-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: center;
}
.split-row.reverse { direction: rtl; }
.split-row.reverse > * { direction: ltr; }
.split-figure {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
}
.split-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease);
}
.split-figure:hover img { transform: scale(1.04); }
.split-figure::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(31, 61, 46,0.18);
  pointer-events: none;
  transition: border-color 0.5s;
}
.split-figure:hover::after { border-color: var(--gold); }
.split-fig-caption {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 2;
  color: var(--cream);
}
.split-fig-caption .scap-title {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.25rem;
  margin-bottom: 4px;
  color: var(--gold-lt);
}
.split-fig-caption .scap-text {
  font-size: 0.78rem;
  color: var(--cream-70);
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.split-eyebrow {
  display: inline-block;
  font-size: 0.6rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 20px;
}
.split-h {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.8rem, 3.6vw, 3rem);
  line-height: 1.1;
  color: var(--cream);
  margin: 0 0 24px;
}
.split-h em { font-style: italic; color: var(--gold-lt); }
.split-p {
  font-size: 1rem;
  line-height: 1.85;
  color: var(--cream-70);
  margin: 0 0 20px;
  font-weight: 300;
}
.split-rule {
  width: 40px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 24px;
}
@media (max-width: 1100px) { .split-wrap { padding: 0 36px; } .split-row { gap: 60px; } }
@media (max-width: 880px) {
  .split-section { padding: 70px 0; }
  .split-wrap { padding: 0 24px; }
  .split-row { grid-template-columns: 1fr; gap: 40px; }
  .split-row.reverse { direction: ltr; }
  .split-figure { aspect-ratio: 4/3; }
}

/* ---- TIMELINE ---- */
.timeline-section {
  padding: 120px 0;
  background: var(--char-mid);
}
.timeline-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 56px;
}
.timeline-head {
  text-align: center;
  margin-bottom: 70px;
}
.tl-list {
  position: relative;
  padding-left: 0;
  list-style: none;
}
.tl-list::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, var(--gold-20) 8%, var(--gold-20) 92%, transparent);
  transform: translateX(-50%);
}
.tl-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  padding: 28px 0;
  align-items: center;
}
.tl-item:nth-child(even) .tl-content { grid-column: 2; text-align: left; padding-left: 50px; }
.tl-item:nth-child(even) .tl-year { grid-column: 1; text-align: right; padding-right: 50px; }
.tl-item:nth-child(odd) .tl-year { text-align: right; padding-right: 50px; }
.tl-item:nth-child(odd) .tl-content { padding-left: 50px; }
.tl-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 11px;
  height: 11px;
  background: var(--gold);
  transform: translate(-50%, -50%) rotate(45deg);
  box-shadow: 0 0 0 6px var(--char-mid), 0 0 22px rgba(31, 61, 46,0.45);
}
.tl-year {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(2rem, 3.6vw, 3rem);
  color: var(--gold-lt);
  letter-spacing: -0.005em;
  line-height: 1;
}
.tl-title {
  font-family: var(--serif);
  font-size: 1.4rem;
  color: var(--cream);
  margin: 0 0 12px;
  letter-spacing: 0.005em;
}
.tl-text {
  font-size: 0.94rem;
  line-height: 1.75;
  color: var(--cream-70);
  font-weight: 300;
}
@media (max-width: 880px) {
  .timeline-section { padding: 80px 0; }
  .timeline-wrap { padding: 0 24px; }
  .tl-list::before { left: 14px; transform: none; }
  .tl-item { grid-template-columns: 1fr; gap: 6px; padding: 22px 0 22px 40px; }
  .tl-item:nth-child(even) .tl-content,
  .tl-item:nth-child(odd) .tl-content { grid-column: 1; padding-left: 0; text-align: left; }
  .tl-item:nth-child(even) .tl-year,
  .tl-item:nth-child(odd) .tl-year { grid-column: 1; padding: 0 0 8px; text-align: left; }
  .tl-dot { left: 14px; top: 38px; transform: translate(-50%, 0) rotate(45deg); }
  .tl-year { font-size: 1.8rem; }
}

/* ---- TEAM GRID ---- */
.team-section {
  padding: 130px 0 80px;
  background: var(--char);
}
.team-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
}
.team-head {
  text-align: center;
  margin-bottom: 70px;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.team-card {
  background: var(--char-card);
  border: 1px solid rgba(31, 61, 46,0.12);
  padding: 0;
  transition: border-color 0.4s, transform 0.4s, box-shadow 0.4s;
  display: flex;
  flex-direction: column;
}
.team-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 30px 70px rgba(0,0,0,0.55);
}
.team-portrait {
  aspect-ratio: 4/5;
  background: linear-gradient(160deg, var(--char-el) 0%, var(--char-mid) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.team-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.team-portrait .tp-monogram {
  font-family: var(--serif);
  font-style: italic;
  font-size: 5rem;
  color: var(--gold);
  letter-spacing: -0.02em;
  text-shadow: 0 4px 30px rgba(31, 61, 46,0.25);
}
.team-portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.55) 100%);
  pointer-events: none;
}
.team-body { padding: 32px 30px 36px; flex: 1; display: flex; flex-direction: column; }
.team-name {
  font-family: var(--serif);
  font-size: 1.65rem;
  color: var(--cream);
  margin: 0 0 4px;
  letter-spacing: 0.005em;
}
.team-quals {
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 14px;
}
.team-role {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  color: var(--cream-70);
  margin-bottom: 18px;
}
.team-rule {
  width: 32px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 18px;
}
.team-bio {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--cream-70);
  font-weight: 300;
}
@media (max-width: 1100px) { .team-wrap { padding: 0 36px; } .team-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 700px) {
  .team-section { padding: 80px 0 60px; }
  .team-wrap { padding: 0 24px; }
  .team-grid { grid-template-columns: 1fr; }
}

/* ---- GALLERY ---- */
.gallery-section {
  padding: 120px 0;
  background: var(--char-mid);
}
.gallery-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
}
.gallery-head { text-align: center; margin-bottom: 60px; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.gallery-tile {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--char-el);
}
.gallery-tile.wide { grid-column: span 2; aspect-ratio: 16/9; }
.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.3s var(--ease);
}
.gallery-tile:hover img { transform: scale(1.05); }
.gallery-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(31, 61, 46,0.16);
  pointer-events: none;
  transition: border-color 0.4s;
}
.gallery-tile:hover::after { border-color: var(--gold); }
.gallery-cap {
  position: absolute;
  left: 22px;
  bottom: 20px;
  right: 22px;
  z-index: 2;
  color: var(--cream);
}
.gallery-cap .gcap-t {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--gold-lt);
}
.gallery-cap .gcap-s {
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream-70);
  font-weight: 500;
}
@media (max-width: 1100px) { .gallery-wrap { padding: 0 36px; } }
@media (max-width: 768px) {
  .gallery-section { padding: 80px 0; }
  .gallery-wrap { padding: 0 24px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .gallery-tile.wide { grid-column: span 2; }
}

/* ---- STREET VIEW EMBED ---- */
.streetview-section {
  padding: 120px 0;
  background: var(--black);
  position: relative;
}
.streetview-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
}
.streetview-head {
  text-align: center;
  margin-bottom: 50px;
}
.streetview-card {
  position: relative;
  border: 1px solid rgba(31, 61, 46,0.25);
  background: var(--char-card);
  overflow: hidden;
  box-shadow: 0 50px 120px rgba(0,0,0,0.55);
}
.streetview-card iframe {
  display: block;
  width: 100%;
  height: 70vh;
  min-height: 520px;
  max-height: 760px;
  border: 0;
  background: var(--char);
}
.streetview-note {
  text-align: center;
  margin-top: 22px;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream-70);
  font-weight: 500;
}
.streetview-note .sv-dot { color: var(--gold); margin: 0 14px; }
@media (max-width: 1100px) { .streetview-wrap { padding: 0 36px; } }
@media (max-width: 768px) {
  .streetview-section { padding: 80px 0; }
  .streetview-wrap { padding: 0 24px; }
  .streetview-card iframe { height: 56vh; min-height: 380px; }
}

/* ---- PULL QUOTE ---- */
.pullquote {
  padding: 110px 0;
  background: var(--char);
  position: relative;
}
.pullquote-wrap {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 56px;
  text-align: center;
}
.pullquote-mark {
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold);
  font-size: 6rem;
  line-height: 1;
  margin-bottom: 10px;
}
.pullquote-text {
  font-family: var(--serif);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.4;
  color: var(--cream);
  margin: 0 0 30px;
}
.pullquote-attr {
  font-size: 0.7rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
}
@media (max-width: 768px) {
  .pullquote { padding: 80px 0; }
  .pullquote-wrap { padding: 0 24px; }
}

/* ---- FACT STRIP ---- */
.fact-strip {
  padding: 70px 0;
  background: var(--black);
  border-top: 1px solid rgba(31, 61, 46,0.12);
  border-bottom: 1px solid rgba(31, 61, 46,0.12);
}
.fact-strip-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  text-align: center;
}
.fact-item {
  position: relative;
}
.fact-item + .fact-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  height: 60%;
  width: 1px;
  background: rgba(31, 61, 46,0.18);
  transform: translateY(-50%);
}
.fact-num {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  color: var(--gold-lt);
  line-height: 1;
  margin-bottom: 10px;
}
.fact-label {
  font-size: 0.66rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--cream-70);
  font-weight: 600;
}
@media (max-width: 880px) {
  .fact-strip-wrap { grid-template-columns: repeat(2, 1fr); padding: 0 24px; gap: 30px 20px; }
  .fact-item + .fact-item::before { display: none; }
  .fact-item:nth-child(odd):not(:first-child)::before {
    content: '';
    position: absolute;
    top: -15px;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(31, 61, 46,0.14);
    width: 100%;
    transform: none;
  }
}

/* ---- DESIGNER GRID ---- */
.designer-section {
  padding: 130px 0;
  background: var(--char-mid);
}
.designer-wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 56px;
}
.designer-head { text-align: center; margin-bottom: 70px; }
.designer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.designer-card {
  background: var(--char-card);
  border: 1px solid rgba(31, 61, 46,0.14);
  padding: 50px 36px;
  text-align: center;
  transition: border-color 0.4s, transform 0.4s, box-shadow 0.4s;
}
.designer-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 30px 70px rgba(0,0,0,0.55);
}
.designer-mono {
  width: 90px;
  height: 90px;
  margin: 0 auto 26px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 2.6rem;
  color: var(--gold-lt);
  background: rgba(31, 61, 46,0.05);
}
.designer-name {
  font-family: var(--serif);
  font-size: 1.8rem;
  color: var(--cream);
  margin: 0 0 6px;
}
.designer-since {
  font-size: 0.62rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 22px;
  font-weight: 600;
}
.designer-rule {
  width: 32px;
  height: 1px;
  background: var(--gold);
  margin: 0 auto 22px;
}
.designer-bio {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--cream-70);
  font-weight: 300;
}
@media (max-width: 1100px) { .designer-wrap { padding: 0 36px; } .designer-grid { grid-template-columns: 1fr; gap: 22px; } }
@media (max-width: 768px) {
  .designer-section { padding: 80px 0; }
  .designer-wrap { padding: 0 24px; }
}

/* ---- BESPOKE STEPS ---- */
.steps-section { padding: 120px 0; background: var(--char); }
.steps-wrap { max-width: 1340px; margin: 0 auto; padding: 0 56px; }
.steps-head { text-align: center; margin-bottom: 70px; }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; }
.step-item { text-align: center; position: relative; }
.step-num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 4.4rem;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 18px;
  display: block;
}
.step-title {
  font-family: var(--serif);
  font-size: 1.5rem;
  color: var(--cream);
  margin: 0 0 16px;
}
.step-text {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--cream-70);
  font-weight: 300;
}
@media (max-width: 1100px) { .steps-wrap { padding: 0 36px; } .steps-grid { gap: 36px; } }
@media (max-width: 768px) {
  .steps-section { padding: 80px 0; }
  .steps-wrap { padding: 0 24px; }
  .steps-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ---- FAQ ---- */
.faq-section { padding: 120px 0; background: var(--char-mid); }
.faq-wrap { max-width: 980px; margin: 0 auto; padding: 0 56px; }
.faq-head { text-align: center; margin-bottom: 60px; }
.faq-list { border-top: 1px solid rgba(31, 61, 46,0.16); }
.faq-item {
  border-bottom: 1px solid rgba(31, 61, 46,0.16);
  transition: background 0.3s;
}
.faq-item:hover { background: rgba(31, 61, 46,0.04); }
.faq-q {
  width: 100%;
  text-align: left;
  padding: 28px 50px 28px 0;
  font-family: var(--serif);
  font-size: 1.3rem;
  color: var(--cream);
  background: none;
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.faq-q-text { flex: 1; }
.faq-toggle {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  position: relative;
}
.faq-toggle::before,
.faq-toggle::after {
  content: '';
  position: absolute;
  background: var(--gold);
  transition: transform 0.4s;
}
.faq-toggle::before { left: 0; right: 0; top: 50%; height: 1px; margin-top: -0.5px; }
.faq-toggle::after { top: 0; bottom: 0; left: 50%; width: 1px; margin-left: -0.5px; }
.faq-item.open .faq-toggle::after { transform: scaleY(0); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease);
}
.faq-a-inner {
  padding: 0 50px 32px 0;
  font-size: 0.96rem;
  line-height: 1.85;
  color: var(--cream-70);
  font-weight: 300;
}
.faq-item.open .faq-a { max-height: 500px; }
@media (max-width: 768px) {
  .faq-section { padding: 80px 0; }
  .faq-wrap { padding: 0 24px; }
  .faq-q { font-size: 1.1rem; padding: 22px 36px 22px 0; }
  .faq-a-inner { padding: 0 36px 26px 0; font-size: 0.9rem; }
}

/* ---- PRESS GRID ---- */
.press-section { padding: 130px 0 80px; background: var(--char); }
.press-wrap { max-width: 1340px; margin: 0 auto; padding: 0 56px; }
.press-head { text-align: center; margin-bottom: 70px; }
.press-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}
.press-card {
  background: var(--char-card);
  border: 1px solid rgba(31, 61, 46,0.14);
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  transition: border-color 0.4s, transform 0.4s, box-shadow 0.4s;
}
.press-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 30px 70px rgba(0,0,0,0.55);
}
.press-pub {
  font-size: 0.62rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 14px;
}
.press-title {
  font-family: var(--serif);
  font-size: 1.75rem;
  color: var(--cream);
  margin: 0 0 18px;
  line-height: 1.2;
}
.press-rule { width: 32px; height: 1px; background: var(--gold); margin-bottom: 22px; }
.press-blurb {
  font-size: 0.96rem;
  line-height: 1.75;
  color: var(--cream-70);
  font-weight: 300;
  flex: 1;
  margin-bottom: 30px;
}
.press-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.66rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  transition: gap 0.3s, color 0.3s;
}
.press-link:hover { gap: 18px; color: var(--gold-lt); }
.press-link svg { width: 14px; height: 10px; }
@media (max-width: 1100px) { .press-wrap { padding: 0 36px; } }
@media (max-width: 768px) {
  .press-section { padding: 80px 0 60px; }
  .press-wrap { padding: 0 24px; }
  .press-grid { grid-template-columns: 1fr; gap: 20px; }
  .press-card { padding: 32px 28px; }
}

/* ---- CTA RIBBON ---- */
.cta-ribbon {
  padding: 120px 0;
  background: var(--black);
  position: relative;
  text-align: center;
  border-top: 1px solid rgba(31, 61, 46,0.12);
}
.cta-ribbon-wrap { max-width: 880px; margin: 0 auto; padding: 0 56px; }
.cta-ribbon-eyebrow {
  font-size: 0.62rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 22px;
  display: block;
}
.cta-ribbon-h {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.8rem, 3.8vw, 3rem);
  color: var(--cream);
  margin: 0 0 24px;
  line-height: 1.1;
}
.cta-ribbon-h em { font-style: italic; color: var(--gold-lt); }
.cta-ribbon-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--cream-70);
  margin: 0 0 36px;
}
.cta-ribbon-actions {
  display: flex;
  gap: 18px;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .cta-ribbon { padding: 80px 0; }
  .cta-ribbon-wrap { padding: 0 24px; }
}

/* ---- SECTION HEADER (reusable centered) ---- */
.sec-eyebrow {
  display: inline-block;
  font-size: 0.6rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 22px;
}
.sec-h {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.08;
  color: var(--cream);
  margin: 0 0 20px;
}
.sec-h em { font-style: italic; color: var(--gold-lt); }
.sec-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  color: var(--cream-70);
  max-width: 720px;
  margin: 0 auto;
  line-height: 1.55;
}
.sec-rule {
  width: 50px;
  height: 1px;
  background: var(--gold);
  margin: 26px auto;
}

/* ==========================================================================
   VISIT SECTION — HEADLINE + CONTACT REWORK (2026-05-20)
   Matches the homepage headline system (ink + italic gold em on light ground)
   and turns the four contact cards into a featured dark-emerald ribbon —
   same family as the cat-trio timeline so the page reads as one design.
   ========================================================================== */

/* Headline — ink base, italic em becomes a champagne sweep */
.visit-hero-h.h-shimmer {
  position: relative;
  color: var(--ink) !important;
  margin-top: 6px;
}
.visit-hero-h.h-shimmer em {
  font-style: italic;
  background-image: linear-gradient(
    100deg,
    #B58A35 0%,
    #C9A55C 32%,
    #E6C783 48%,
    #F0DBA0 50%,
    #E6C783 52%,
    #C9A55C 68%,
    #B58A35 100%
  );
  background-size: 240% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: hShimmer 9s ease-in-out 1.4s infinite;
}

/* The four contact cards become a single dark featured ribbon */
.visit-redesign .visit-details-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 !important;
  margin-top: 28px !important;
  padding: clamp(22px, 2.6vw, 32px);
  background:
    radial-gradient(120% 110% at 50% 0%, rgba(232, 193, 106, 0.12) 0%, transparent 60%),
    linear-gradient(180deg, #0F2A1E 0%, #133424 50%, #0B2017 100%);
  border: 1px solid rgba(232, 193, 106, 0.45);
  box-shadow:
    0 28px 60px -28px rgba(11, 32, 23, 0.55),
    0 0 0 1px rgba(232, 193, 106, 0.10),
    inset 0 1px 0 rgba(255, 233, 168, 0.10),
    inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  overflow: hidden;
  isolation: isolate;
}
/* Travelling gleam sweep — alive like the cat-trio ribbon */
.visit-redesign .visit-details-grid::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 38%,
    rgba(255, 233, 168, 0.05) 47%,
    rgba(255, 246, 214, 0.14) 50%,
    rgba(255, 233, 168, 0.05) 53%,
    transparent 62%,
    transparent 100%
  );
  background-size: 240% 100%;
  background-position: 100% 0;
  mix-blend-mode: screen;
  animation: visitRibbonSweep 7s ease-in-out 1.6s infinite;
  z-index: 1;
}
@keyframes visitRibbonSweep {
  0%   { background-position: 200% 0; }
  55%  { background-position: -100% 0; }
  100% { background-position: -100% 0; }
}

/* Each detail cell — transparent on the ribbon, with a thin brass divider */
.visit-redesign .visit-detail {
  position: relative;
  z-index: 2;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: clamp(16px, 1.8vw, 24px) clamp(20px, 2.2vw, 28px) !important;
  gap: 10px !important;
}
.visit-redesign .visit-detail::before,
.visit-redesign .visit-detail::after {
  display: none !important;
}
/* Subtle brass dividers between cells */
.visit-redesign .visit-detail:nth-child(odd) {
  border-right: 1px solid rgba(232, 193, 106, 0.18) !important;
}
.visit-redesign .visit-detail:nth-child(-n+2) {
  border-bottom: 1px solid rgba(232, 193, 106, 0.18) !important;
}
@media (max-width: 720px) {
  .visit-redesign .visit-details-grid { grid-template-columns: 1fr; }
  .visit-redesign .visit-detail:nth-child(odd) { border-right: none !important; }
  .visit-redesign .visit-detail:not(:last-child) {
    border-bottom: 1px solid rgba(232, 193, 106, 0.18) !important;
  }
}
.visit-redesign .visit-detail:hover {
  transform: none !important;
}

/* Label: bright champagne uppercase — reads loud and clear */
.visit-redesign .visit-detail-label {
  font-size: 0.58rem !important;
  letter-spacing: 0.32em !important;
  color: #E8C16A !important;
  font-weight: 700 !important;
  text-shadow: 0 0 14px rgba(232, 193, 106, 0.35);
  margin-bottom: 4px;
}
.visit-redesign .visit-detail-icon {
  color: #E8C16A !important;
  filter: drop-shadow(0 0 6px rgba(232, 193, 106, 0.55)) !important;
}
.visit-redesign .visit-detail:hover .visit-detail-icon {
  filter: drop-shadow(0 0 12px rgba(255, 233, 168, 0.85)) !important;
  transform: scale(1.06);
}

/* Value: bright cream serif, weighted up so it pops against the dark-green ribbon */
.visit-redesign .visit-detail-value,
.visit-redesign .visit-detail-value a {
  color: #FFFFFF !important;
  font-size: 1.08rem !important;
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55), 0 0 24px rgba(0, 0, 0, 0.35);
}
.visit-redesign .visit-detail-value a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  transition: color 0.3s ease, border-color 0.3s ease;
}
.visit-redesign .visit-detail-value a:hover {
  color: #FFE9A8 !important;
  border-bottom-color: rgba(255, 233, 168, 0.85);
}

/* The shine sweep already on the cards — re-tinted brass on the dark ribbon */
.visit-redesign .visit-detail .vd-shine::before {
  background: linear-gradient(
    110deg,
    rgba(232, 193, 106, 0) 0%,
    rgba(232, 193, 106, 0) 35%,
    rgba(255, 233, 168, 0.30) 50%,
    rgba(232, 193, 106, 0) 65%,
    rgba(232, 193, 106, 0) 100%
  ) !important;
}

/* ============================================================================
   LED PAGE-BREAKER — elegant luxury transition strip between content and footer.
   Smooth vertical fade from cream paper to deep emerald, with a centred brass
   diamond ornament flanked by an animated LED-like brass hairline that runs
   slowly across.
   ============================================================================ */
.led-breaker {
  position: relative;
  width: 100%;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(80% 100% at 50% 50%, rgba(31, 61, 46, 0.06) 0%, transparent 70%),
    linear-gradient(180deg,
      #FBFBF7 0%,
      #F2F5EE 25%,
      rgba(188, 201, 183, 0.45) 55%,
      rgba(31, 61, 46, 0.75) 82%,
      var(--ink, #1A1814) 100%);
  overflow: hidden;
  isolation: isolate;
  pointer-events: none;
}
.led-breaker-fade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 80% at 50% 100%, rgba(232, 193, 106, 0.18) 0%, transparent 60%);
  mix-blend-mode: screen;
}
.led-breaker-strip {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: min(90vw, 1080px);
  margin: 0 auto;
}
.led-breaker-line {
  position: relative;
  flex: 1;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(232, 193, 106, 0.25) 18%,
    rgba(232, 193, 106, 0.65) 50%,
    rgba(232, 193, 106, 0.25) 82%,
    transparent 100%);
  overflow: hidden;
  border-radius: 1px;
}
.led-breaker-line::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -30%;
  width: 30%;
  height: 4px;
  background: linear-gradient(90deg, transparent 0%, #FFF1C4 50%, transparent 100%);
  box-shadow: 0 0 16px rgba(255, 241, 196, 0.9), 0 0 28px rgba(232, 193, 106, 0.7);
  border-radius: 2px;
  animation: ledRunRight 6s ease-in-out infinite;
}
.led-breaker-line:last-child::before {
  animation: ledRunLeft 6s ease-in-out infinite;
  left: auto;
  right: -30%;
}
@keyframes ledRunRight {
  0%   { transform: translateX(0); opacity: 0; }
  10%  { opacity: 1; }
  50%  { transform: translateX(380%); opacity: 1; }
  60%  { opacity: 0; }
  100% { transform: translateX(380%); opacity: 0; }
}
@keyframes ledRunLeft {
  0%   { transform: translateX(0); opacity: 0; }
  10%  { opacity: 1; }
  50%  { transform: translateX(-380%); opacity: 1; }
  60%  { opacity: 0; }
  100% { transform: translateX(-380%); opacity: 0; }
}
.led-breaker-diamond {
  flex-shrink: 0;
  display: inline-block;
  font-size: 18px;
  line-height: 1;
  color: transparent;
  background: linear-gradient(180deg, #FFF6D6 0%, #E8C16A 55%, #8C6B29 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 6px rgba(232, 193, 106, 0.7));
  animation: ledDiamondPulse 3.4s ease-in-out infinite;
  transform: rotate(45deg);
}
@keyframes ledDiamondPulse {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(232, 193, 106, 0.55)); transform: rotate(45deg) scale(1); }
  50%      { filter: drop-shadow(0 0 18px rgba(255, 241, 196, 1)); transform: rotate(45deg) scale(1.12); }
}
@media (prefers-reduced-motion: reduce) {
  .led-breaker-line::before,
  .led-breaker-diamond { animation: none; }
}
@media (max-width: 720px) {
  .led-breaker { height: 140px; }
  .led-breaker-strip { gap: 12px; width: 92vw; }
}

/* Tuck the footer flush to the breaker so the transition reads as one */
.led-breaker + .footer { margin-top: 0 !important; }

/* ===== POLICIES NAV DROPDOWN (added 2026) ===== */
.nav-dd { position: relative; }
.nav-dd-top { cursor: pointer; }
.nav-dd-top::after { content: "\25BE"; font-size: 0.6em; margin-left: 5px; opacity: 0.65; vertical-align: middle; }
.nav-dd-menu {
  position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%) translateY(10px);
  min-width: 218px; margin: 0; padding: 10px 0; list-style: none;
  background: rgba(11, 17, 14, 0.98);
  border: 1px solid var(--bg-edge);
  box-shadow: 0 26px 54px -26px rgba(0,0,0,0.65);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .28s ease, transform .28s ease;
  z-index: 200;
}
.nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dd-menu li { margin: 0; }
.nav-dd-menu a {
  display: block; padding: 11px 24px; white-space: nowrap;
  font-size: 0.82rem; letter-spacing: 0.01em;
  color: var(--cream-70); transition: color .2s, background .2s;
}
.nav-dd-menu a:hover { color: var(--cream); background: rgba(255,255,255,0.05); }
.mm-policy-label {
  font-family: var(--sans); font-size: 0.58rem; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--gold); opacity: 0.75; margin: 8px 0 2px;
}
/* dropdown contrast polish (2026) */
.nav-dd-menu { background: rgba(8,12,10,0.99); border-color: rgba(160,144,120,0.42); }
.nav-dd-menu a { color: rgba(246,241,227,0.92); }
.nav-dd-menu a:hover { color: #E8C16A; background: rgba(255,255,255,0.06); }
/* dropdown legibility fix: force light text regardless of nav (white) state */
.nav .nav-links li.nav-dd .nav-dd-menu a, .nav-dd-menu a { color: #f3ede5 !important; }
.nav .nav-links li.nav-dd .nav-dd-menu a:hover, .nav-dd-menu a:hover { color: #E8C16A !important; background: rgba(255,255,255,0.06); }
.nav-dd-menu { background: rgba(8,12,10,0.99) !important; }

/* === MOBILE POLISH MANAGED: srv-cards-mobile === */
@media (max-width: 600px){
  body .srv-card .srv-overlay{
    background: linear-gradient(180deg, rgba(8,14,10,.10) 0%, rgba(8,14,10,.55) 55%, rgba(8,14,10,.92) 100%) !important; }
  body .srv-card .srv-title{ color:#fff !important; text-shadow:0 2px 14px rgba(0,0,0,.85) !important; font-size:1.4rem !important; }
  body .srv-card .srv-body{ color:rgba(255,255,255,.94) !important; text-shadow:0 1px 8px rgba(0,0,0,.8) !important; }
  body .srv-card .srv-num{ color:rgba(255,255,255,.85) !important; }
}
/* === END MOBILE POLISH: srv-cards-mobile === */

/* ===== FOOTER PAYMENT MARKS (2026) ===== */
.footer-pay { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; max-width:1180px; margin:0 auto 26px; padding:0 24px; }
.footer-pay-label { font-family:var(--sans); font-size:0.56rem; letter-spacing:0.28em; text-transform:uppercase; color:rgba(232,193,106,0.72); margin-right:6px; }
.pay-mark { display:inline-flex; align-items:center; justify-content:center; height:30px; min-width:56px; padding:0 13px; border:1px solid rgba(232,193,106,0.3); border-radius:5px; background:rgba(255,255,255,0.03); font-family:var(--sans); font-weight:600; font-size:0.7rem; letter-spacing:0.14em; color:rgba(243,237,229,0.9); transition:border-color .3s, background .3s; }
.pay-mark:hover { border-color:rgba(232,193,106,0.6); background:rgba(255,255,255,0.06); }
.pay-mark svg { height:17px; width:auto; display:block; }
.pay-visa { font-style:italic; letter-spacing:0.2em; }

/* ===================================================================
   NAV REBUILD 2026-06 : jewellery-first mega menu + mobile accordion
   =================================================================== */

/* ---- Desktop mega menu (Jewellery, Services) ---- */
.nav-mega-li { position: static; }
.nav-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: rgba(8,12,10,0.99);
  border-top: 1px solid rgba(201,165,92,0.55);
  box-shadow: 0 44px 70px -34px rgba(0,0,0,0.72);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(8px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
  z-index: 380;
}
.nav-mega-li:hover > .nav-mega,
.nav-mega-li:focus-within > .nav-mega {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.nav-mega-inner {
  max-width: 1200px; margin: 0 auto; padding: 42px 56px 48px;
  display: grid; grid-template-columns: 1fr 1fr 1.05fr 1.12fr; gap: 44px;
}
.nav-mega-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nav-mega-h {
  font-family: var(--sans); font-size: 0.58rem; letter-spacing: 0.26em;
  text-transform: uppercase; color: #C9A55C; margin-bottom: 4px;
}
.nav .nav-links li.nav-mega-li .nav-mega-col a,
.nav.scrolled .nav-links li.nav-mega-li .nav-mega-col a {
  display: block; font-family: var(--serif); font-size: 1.04rem;
  letter-spacing: 0.005em; text-transform: none; white-space: nowrap;
  color: #f3ede5 !important; padding: 1px 0;
  transition: color .2s, transform .25s var(--ease);
}
.nav-mega-col a::after { display: none !important; }
.nav .nav-links li.nav-mega-li .nav-mega-col a:hover,
.nav.scrolled .nav-links li.nav-mega-li .nav-mega-col a:hover {
  color: #C9A55C !important; transform: translateX(4px);
}

/* feature image card */
.nav-mega-feature {
  position: relative; overflow: hidden; min-height: 236px;
  display: flex; align-items: flex-end;
}
.nav-mega-feature::after { display: none !important; }
.nav-mega-feature img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transition: transform 1.2s var(--ease);
}
.nav-mega-feature:hover img { transform: scale(1.05); }
.nmf-cap {
  position: relative; z-index: 1; width: 100%; box-sizing: border-box; padding: 16px 18px;
  background: linear-gradient(to top, rgba(6,9,7,0.9), rgba(6,9,7,0));
}
.nmf-k { display: block; font-family: var(--sans); font-size: 0.54rem;
  letter-spacing: 0.26em; text-transform: uppercase; color: #C9A55C; margin-bottom: 4px; }
.nmf-t { display: block; font-family: var(--serif); font-size: 1.1rem; line-height: 1.14; color: #fff; white-space: normal; overflow-wrap: break-word; word-break: break-word; }

/* services grid */
.nav-srv-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 4px 40px !important; }
.nav .nav-links li.nav-mega-li .nav-srv,
.nav.scrolled .nav-links li.nav-mega-li .nav-srv {
  display: block; padding: 17px 0; text-transform: none; white-space: normal;
  border-top: 1px solid rgba(201,165,92,0.16);
}
.nav-srv::after { display: none !important; }
.nav-srv-num { font-family: var(--sans); font-size: 0.56rem; letter-spacing: 0.2em; color: #C9A55C; }
.nav-srv-title { display: block; font-family: var(--serif); font-size: 1.16rem;
  color: #f3ede5 !important; margin: 3px 0 5px; transition: color .2s; }
.nav-srv-desc { display: block; font-family: var(--sans); font-size: 0.74rem;
  line-height: 1.5; color: rgba(246,241,227,0.62); white-space: normal; }
.nav-srv:hover .nav-srv-title { color: #C9A55C !important; }

@media (max-width: 1100px) { .nav-mega { display: none !important; } }

:root { interpolate-size: allow-keywords; }
/* ---- Mobile drawer : details accordion ---- */
@media (max-width: 1100px) {
  .mobile-menu {
    justify-content: flex-start; align-items: stretch; gap: 0;
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding: 96px 0 76px;
  }
  .mobile-menu::before {
    content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0;
    background: radial-gradient(130% 55% at 50% -10%, rgba(255,255,255,0.75), rgba(255,255,255,0) 62%);
  }
  .mm-scroll { position: relative; z-index: 1; width: 100%; max-width: 560px; margin: 0 auto;
    padding: 0 32px; display: flex; flex-direction: column; }
  .mm-acc { border-bottom: 1px solid rgba(36,48,41,0.10); }
  .mm-acc-trigger {
    width: 100%; background: none; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    font-family: var(--serif); font-weight: 400;
    font-size: clamp(1.55rem, 6vw, 2.05rem); color: #243029;
    padding: 21px 2px; text-align: left; letter-spacing: 0.004em; list-style: none;
    transition: color .3s var(--ease);
  }
  .mm-acc[open] > .mm-acc-trigger { color: #16301F; }
  .mm-acc-trigger:active { color: #5F7E64; }
  .mm-acc-trigger::-webkit-details-marker { display: none; }
  .mm-acc-trigger::marker { content: ""; }
  .mm-acc-trigger::after {
    content: "+"; font-family: var(--sans); font-weight: 300; line-height: 1;
    font-size: 1.5rem; color: #9C7B3E;
    transition: transform .45s cubic-bezier(.6,.04,.2,1), color .3s var(--ease);
  }
  .mm-acc[open] .mm-acc-trigger::after { transform: rotate(135deg); color: #16301F; }
  .mm-acc-body { display: flex; flex-direction: column; padding: 0 2px 22px; }
  .mm-acc[open] .mm-acc-body { animation: mmAccFade .42s var(--ease); }
  @keyframes mmAccFade { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
  .mm-acc::details-content {
    overflow: hidden; height: 0; opacity: 0;
    transition: height .45s cubic-bezier(.6,.04,.2,1), opacity .4s var(--ease), content-visibility .45s allow-discrete;
  }
  .mm-acc[open]::details-content { height: auto; opacity: 1; }
  .mm-acc-group { font-family: var(--sans); font-size: 0.58rem; letter-spacing: 0.26em;
    text-transform: uppercase; color: #9C7B3E; margin: 18px 0 4px; }
  .mm-acc-body .ml {
    font-family: var(--serif) !important; font-weight: 400;
    font-size: 1.18rem !important; color: rgba(36,48,41,0.64) !important;
    padding: 10px 0; letter-spacing: 0.004em;
    transition: color .25s var(--ease), transform .25s var(--ease);
  }
  .mm-acc-body .ml:active, .mm-acc-body .ml:hover { color: #16301F !important; transform: translateX(5px); }
  .mm-scroll > .mm-top-link {
    font-family: var(--serif) !important; font-weight: 400; color: #243029 !important;
    font-size: clamp(1.55rem, 6vw, 2.05rem) !important; padding: 21px 2px !important;
    display: block; border-bottom: 1px solid rgba(36,48,41,0.10); transition: color .3s var(--ease);
  }
  .mm-scroll > .mm-top-link:active { color: #5F7E64 !important; }
  .mobile-menu .mm-book { margin: 36px auto 0; display: inline-block; align-self: center; }
  .mobile-menu.open .mm-scroll > * { animation: mmRise .62s var(--ease) both; }
  .mobile-menu.open .mm-scroll > *:nth-child(1){ animation-delay:.04s }
  .mobile-menu.open .mm-scroll > *:nth-child(2){ animation-delay:.09s }
  .mobile-menu.open .mm-scroll > *:nth-child(3){ animation-delay:.14s }
  .mobile-menu.open .mm-scroll > *:nth-child(4){ animation-delay:.19s }
  .mobile-menu.open .mm-scroll > *:nth-child(5){ animation-delay:.24s }
  .mobile-menu.open .mm-scroll > *:nth-child(6){ animation-delay:.29s }
  .mobile-menu.open .mm-scroll > *:nth-child(7){ animation-delay:.34s }
  .mobile-menu.open .mm-scroll > *:nth-child(8){ animation-delay:.39s }
  .mobile-menu.open .mm-scroll > *:nth-child(9){ animation-delay:.44s }
  .mobile-menu.open .mm-scroll > *:nth-child(n+10){ animation-delay:.48s }
  @keyframes mmRise { from { opacity:0; transform: translateY(16px); } to { opacity:1; transform:none; } }
  body:has(.mobile-menu.open) .nav { background: transparent !important; box-shadow: none !important; }
  body:has(.mobile-menu.open) .nav-brand-name { color: #1E2A22 !important; }
  body:has(.mobile-menu.open) .nav-brand-sub { color: rgba(30,42,34,0.55) !important; }
  body:has(.mobile-menu.open) .nav-logo-img { filter: brightness(0); opacity: .9; }
  body:has(.mobile-menu.open) .nav-burger span { background: #1E2A22 !important; }
}


/* ---- NAV REBUILD MOBILE BRANDFIT : keep the burger on-screen on phones ---- */
@media (max-width: 600px) {
  .nav { padding-left: 18px; padding-right: 18px; }
  .nav.scrolled { padding-left: 18px; padding-right: 18px; }
  .nav-brand { gap: 9px; min-width: 0; flex: 0 1 auto; }
  .nav-brand-sub { display: none; }
  .nav-brand-name { font-size: 1rem; letter-spacing: 0.16em; }
  .nav-logo-img { height: 30px; }
  .nav.scrolled .nav-logo-img { height: 28px; }
  .nav-right { flex: 0 0 auto; gap: 10px; }
  .nav-lang { transform: scale(0.92); transform-origin: right center; }
}


/* =================================================================
   NAV REBUILD 2026-06b : Stefan full IA (9 items, 3 megas, dropdowns)
   ================================================================= */

/* 9 items need to collapse to burger earlier */
@media (max-width: 1200px) {
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .nav-cta { display: none; }
}

/* tighter top-level labels so 9 fit on desktop */
.nav-links { gap: clamp(9px, 1.3vw, 24px); }
.nav .nav-links a.nav-dd-top { font-size: 0.575rem; letter-spacing: 0.12em; }

/* mega inner -> flexible column count + optional feature */
.nav-mega-inner {
  display: flex !important; gap: clamp(24px, 2vw, 42px);
  align-items: flex-start; max-width: 1300px; padding: 36px 56px 42px;
}
.nav-mega-col { flex: 1 1 0; min-width: 0; }
.nav-mega-feature { flex: 0 0 214px; align-self: stretch; min-height: 0; }

/* mega section header is now a link: keep it brass, kill the underline */
.nav .nav-links li.nav-mega-li a.nav-mega-h,
.nav.scrolled .nav-links li.nav-mega-li a.nav-mega-h {
  display: block; font-family: var(--sans); font-size: 0.58rem;
  letter-spacing: 0.22em; text-transform: uppercase; white-space: nowrap;
  color: #C9A55C !important; margin-bottom: 9px; padding: 0;
}
.nav-mega-h::after { display: none !important; }
.nav .nav-links li.nav-mega-li a.nav-mega-h:hover { color: #E8C16A !important; }

/* mega item links may wrap (long subcategory names) */
.nav .nav-links li.nav-mega-li .nav-mega-col a,
.nav.scrolled .nav-links li.nav-mega-li .nav-mega-col a {
  white-space: normal; font-size: 0.97rem; line-height: 1.25; padding: 2px 0;
}

/* grouped dropdowns: Loose Diamonds & Tanzanite, Blog */
.nav-dd-grouped { display: flex; gap: 8px 30px; padding: 16px 24px !important; }
.nav-dd-grp { display: flex; flex-direction: column; min-width: 156px; }
.nav .nav-links li.nav-dd a.nav-dd-grp-h,
.nav.scrolled .nav-links li.nav-dd a.nav-dd-grp-h {
  font-family: var(--sans); font-size: 0.54rem; letter-spacing: 0.22em;
  text-transform: uppercase; color: #C9A55C !important; padding: 2px 0 9px;
  white-space: nowrap;
}
.nav-dd-grp-h::after { display: none !important; }
.nav .nav-links li.nav-dd .nav-dd-grp a:not(.nav-dd-grp-h) { padding: 8px 0 !important; }

/* keep right-edge dropdowns (Blog, Contact) from clipping off-screen */
.nav-links li.nav-dd:nth-last-child(-n+2) .nav-dd-menu {
  left: auto; right: 0; transform: translateX(0) translateY(10px);
}
.nav-links li.nav-dd:nth-last-child(-n+2):hover .nav-dd-menu,
.nav-links li.nav-dd:nth-last-child(-n+2):focus-within .nav-dd-menu {
  transform: translateX(0) translateY(0);
}

.nav-dd-top.nav-top-plain::after { content: none !important; }


/* === NAV HOVER BRIDGE : stop mega/dropdown panels closing in the gap === */
/* 1) top-level hover zone fills the full nav height (kills the dead band
      between the label text and the bottom of the nav) */
.nav .nav-links { align-self: stretch; }
.nav .nav-links > li { display: flex; align-items: center; }
/* 2) invisible bridge spanning the small remaining gap down to the panel,
      so the cursor never crosses unhoverable space. Only interactive while
      the panel itself is shown (panels are pointer-events:none when hidden). */
.nav-mega::before,
.nav-dd-menu::before {
  content: ""; position: absolute; left: 0; right: 0;
  top: -18px; height: 18px; background: transparent;
}


/* === NAV HOVER BRIDGE v2 : items must fill the list height === */
.nav .nav-links { align-items: stretch; }       /* li stretches to full nav height */
.nav .nav-links > li { display: flex; align-items: center; }  /* label stays vertically centred */
.nav-mega::before, .nav-dd-menu::before { top: -20px; height: 20px; }

/* ============================================================================
   MEGA-MENU — golden space-dust + standout, beautifully-revealed categories
   Applies to the dark dropdown panels: Bridal, Jewellery,
   Loose Diamonds & Tanzanite, Services.
   ============================================================================ */

/* gold dust canvas sits behind the menu content, fades in with the panel */
.nav-mega-dust {
  position: absolute; inset: 0; width: 100%; height: 100%;
  z-index: 0; pointer-events: none; opacity: 0;
  transition: opacity .7s var(--ease);
}
.nav-mega-li:hover > .nav-mega .nav-mega-dust,
.nav-mega-li:focus-within > .nav-mega .nav-mega-dust { opacity: 1; }

/* warm the near-black panel so the gold dust reads like light in a dark room */
.nav-mega {
  background:
    radial-gradient(135% 130% at 50% -12%, rgba(58,46,20,0.5), rgba(8,12,10,0) 56%),
    rgba(8,12,10,0.985);
}
/* lift the real content above the canvas */
.nav-mega-inner { position: relative; z-index: 1; }

/* --- category headings: a true gold hairline that extends on open --- */
.nav .nav-links li.nav-mega-li a.nav-mega-h,
.nav.scrolled .nav-links li.nav-mega-li a.nav-mega-h {
  position: relative; padding-bottom: 11px; margin-bottom: 13px;
  color: #E8C16A !important;
  font-size: 0.6rem; letter-spacing: 0.3em;
}
.nav-mega-h::before {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 28px; height: 1px;
  background: linear-gradient(90deg, #E8C16A, rgba(232,193,106,0));
  transition: width .55s var(--ease);
}
.nav-mega-li:hover .nav-mega-h::before,
.nav-mega-li:focus-within .nav-mega-h::before { width: 56px; }

/* --- links read brighter and slide a touch further on hover --- */
.nav .nav-links li.nav-mega-li .nav-mega-col a:hover,
.nav.scrolled .nav-links li.nav-mega-li .nav-mega-col a:hover {
  color: #E8C16A !important; transform: translateX(5px);
}

/* --- staggered reveal: columns rise and fade in as the panel opens --- */
.nav-mega-col,
.nav-mega-feature {
  opacity: 0; transform: translateY(12px);
  transition: opacity .55s var(--ease), transform .55s var(--ease);
}
.nav-mega-li:hover > .nav-mega .nav-mega-col,
.nav-mega-li:hover > .nav-mega .nav-mega-feature,
.nav-mega-li:focus-within > .nav-mega .nav-mega-col,
.nav-mega-li:focus-within > .nav-mega .nav-mega-feature {
  opacity: 1; transform: none;
}
.nav-mega-li:hover > .nav-mega .nav-mega-col:nth-child(1),
.nav-mega-li:focus-within > .nav-mega .nav-mega-col:nth-child(1) { transition-delay: .05s; }
.nav-mega-li:hover > .nav-mega .nav-mega-col:nth-child(2),
.nav-mega-li:focus-within > .nav-mega .nav-mega-col:nth-child(2) { transition-delay: .10s; }
.nav-mega-li:hover > .nav-mega .nav-mega-col:nth-child(3),
.nav-mega-li:focus-within > .nav-mega .nav-mega-col:nth-child(3) { transition-delay: .15s; }
.nav-mega-li:hover > .nav-mega .nav-mega-col:nth-child(4),
.nav-mega-li:focus-within > .nav-mega .nav-mega-col:nth-child(4) { transition-delay: .20s; }
.nav-mega-li:hover > .nav-mega .nav-mega-col:nth-child(5),
.nav-mega-li:focus-within > .nav-mega .nav-mega-col:nth-child(5) { transition-delay: .25s; }
.nav-mega-li:hover > .nav-mega .nav-mega-feature,
.nav-mega-li:focus-within > .nav-mega .nav-mega-feature { transition-delay: .28s; }

/* --- feature image card: a gold frame that ignites on hover --- */
.nav-mega-feature {
  border: 1px solid rgba(232,193,106,0.22);
  box-shadow: 0 24px 50px -28px rgba(0,0,0,0.8);
  transition: opacity .55s var(--ease), transform .55s var(--ease),
              border-color .5s var(--ease), box-shadow .5s var(--ease);
}
.nav-mega-feature:hover {
  border-color: rgba(232,193,106,0.6);
  box-shadow: 0 24px 60px -24px rgba(232,193,106,0.28);
}
.nav-mega-feature .nmf-k { color: #E8C16A; }

/* reduced motion: drop the reveal offset and the dust entirely */
@media (prefers-reduced-motion: reduce) {
  .nav-mega-col,
  .nav-mega-feature { opacity: 1 !important; transform: none !important; }
  .nav-mega-dust { display: none !important; }
}



/* ============================================================================
   TOUCH CARD LEGIBILITY (appended block, safe to delete as one unit)
   ============================================================================
   WHY: the pillar and service cards use a hover to reveal pattern. A touch
   screen has no hover, so the @media(hover:none) fallbacks above tried to
   stand in for it with a fixed pixel cap. Measured on an emulated iPhone at
   390px, hover:none matching true, on index.html:
       .pillar-desc "Every diamond is GIA or EGL certified..."    needs  88px, got 80px
       .pillar-desc "Tanzanite is found only near Kilimanjaro..." needs  88px, got 80px
       .pillar-desc "Designed, created, set, and finished..."     needs 155px, got 80px
       .pillar-desc computed opacity 0.75, which is the washed out look
   Every one of those sentences was cut mid word. A fixed cap cannot know how
   tall a sentence is, so the cap itself is the bug. Below it is removed, the
   copy is shown at full opacity, and the card box is allowed to grow so that
   the card cannot clip the body either.
   Everything here sits inside @media(hover:none), so desktop hover behaviour
   is unchanged. Verified: desktop 1440 measures identical to the baseline.
   ============================================================================ */

@media (hover: none) {

  /* 1. No height cap and no fade. The copy is the point, show all of it. */
  .pillar-desc,
  .srv-desc,
  .coll-desc,
  .celeb-bio,
  .svc-desc {
    max-height: none !important;
    opacity: 1 !important;
  }

  /* 2. Calls to action that only faded in on hover stay permanently visible. */
  .pillar-link,
  .srv-link,
  .coll-cta {
    opacity: 1 !important;
  }

  /* 3. The card box has to grow with its own text. .pillar was a fixed
        height with an absolutely positioned .pillar-body and overflow:hidden,
        so the longest card overflowed the top edge and would have lost its
        title once the description was allowed its full 155px. Flex column with
        the body in normal flow keeps the copy pinned to the bottom and lets
        the card stretch. min-height preserves the original proportion as a
        floor, so short cards look exactly as before. */
  .pillars-section .pillar {
    height: auto !important;
    min-height: 640px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .pillars-section .pillar .pillar-body {
    position: relative;
  }

  /* 4. Legibility over the photographic and video backgrounds. The imagery
        first scrim further up this file drops to 0.55 black at the very
        bottom, which is not enough behind three lines of small body copy on a
        handset. Deepen the scrim and add a shadow rather than touching the
        copy colour, so the cream and gold palette is untouched. */
  .pillars-section .pillar .pillar-shade {
    background: linear-gradient(to top,
        rgba(6, 10, 8, 0.94) 0%,
        rgba(6, 10, 8, 0.74) 34%,
        rgba(6, 10, 8, 0.36) 62%,
        rgba(6, 10, 8, 0.06) 100%) !important;
  }
  .pillars-section .pillar .pillar-title {
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.82), 0 1px 3px rgba(0, 0, 0, 0.6);
  }
  .pillars-section .pillar .pillar-desc {
    color: #ffffff;
    /* Three stops on purpose. The tight 2px stop gives the glyph a hard edge
       where a diamond highlight in the background video hits pure white,
       measured at luminance 1.0 in the brightest five percent of pixels
       behind the first card. The wider stops carry the general lift. */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 1px 10px rgba(0, 0, 0, 0.85), 0 0 24px rgba(0, 0, 0, 0.55);
  }
  .pillars-section .pillar .pillar-link {
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.85);
  }
  .pillars-section .pillar .pillar-num {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.75);
  }

  /* 5. Same treatment on the service cards. Their descriptions measured clear
        of the 120px cap today, 43px to 64px, but the cap is the same latent
        bug so it goes. The overlay gets a little more weight at the foot of
        the card because several of those photographs are pale. */
  .services-section .srv-card .srv-overlay {
    background: linear-gradient(to top,
        rgba(6, 10, 8, 0.95) 0%,
        rgba(6, 10, 8, 0.66) 34%,
        rgba(6, 10, 8, 0.24) 66%,
        rgba(6, 10, 8, 0) 100%) !important;
  }
  .services-section .srv-card .srv-desc {
    color: #f3ede5;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.9), 0 0 20px rgba(0, 0, 0, 0.6);
  }
  .services-section .srv-card .srv-link {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.85);
  }
}

/* 6. Phone widths. The pillar is 340px tall by design and 46px of top padding
      plus 40px each side wastes room the longest sentence now needs. Tighten
      the padding and keep the original height as a floor only, so the card
      still grows if the copy ever gets longer. */
@media (hover: none) and (max-width: 900px) {
  .pillars-section .pillar {
    min-height: 340px;
  }
  .pillars-section .pillar .pillar-body {
    padding: 30px 26px 34px;
  }
}
/* === END TOUCH CARD LEGIBILITY === */

/* =============================================================================
   CONTACT, "However you prefer to begin." was invisible
   .prose-h is styled for a dark section: cream #F3EDE5 on deep emerald. The one
   place it is used, the ct-methods block on contact.html, sits on the light body
   #FBFBF7, so it rendered cream on near white at 1.06:1 and the italic accent
   at 1.60:1. Measured, not guessed.
   Every other label in that same section already uses deep emerald #1F3D2E, so
   this brings the heading into line rather than inventing a new treatment.
   New ratios on #FBFBF7: heading 11.5:1, italic accent 4.86:1. Both pass AA.
   Scoped to the contact page so no dark section can pick it up.
   ============================================================================= */
body.page-contact .ct-methods .prose-h { color: #1F3D2E; }
body.page-contact .ct-methods .prose-h em { color: #8A6A28; }

/* ============================================================================
   LOADER, PHONE. Gold crest on top, and a wordmark that actually fits.

   MEASURED at 390px: .sl-wordmark rendered at 41.6px with 7.5px of tracking,
   which needs more than 390px for "PRINS &" alone, so the first thing a
   visitor saw was the house name cut off at both edges. There was also no mark
   of any kind on the screen, just type.

   The crest is the same gold gradient masked by the logo that the hero uses,
   so it is one brand asset rendered one way, not a second flat copy. On the
   cream loader ground the deeper end of the gradient carries it.

   The wordmark is sized in vw with tracking that scales with it, so it fits
   from 320px up with room to spare, and it stays on one line.
   ============================================================================ */
#siteLoader .sl-crest {
  width: clamp(64px, 19vw, 96px);
  aspect-ratio: 1 / 1;
  margin: 0 0 clamp(16px, 3vw, 26px);
  background: linear-gradient(155deg,
    #E7C87F 0%, #C99A3C 26%, #A8761F 52%, #E2BE73 76%, #C9A55C 100%);
  -webkit-mask: url(../assets/images/logo_transparent.webp) center / contain no-repeat;
          mask: url(../assets/images/logo_transparent.webp) center / contain no-repeat;
  opacity: 0;
  animation: slFadeIn 0.6s ease 0.02s forwards;
  filter: drop-shadow(0 6px 18px rgba(120, 90, 30, 0.28));
}

@media (max-width: 720px) {
  #siteLoader { padding: 0 6vw !important; }
  #siteLoader .sl-wordmark {
    font-size: clamp(1.6rem, 8.2vw, 2.4rem) !important;
    letter-spacing: 0.1em !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
    max-width: 100% !important;
  }
  .sl-welcome {
    font-size: 0.56rem !important;
    letter-spacing: 0.38em !important;
    margin-bottom: 14px !important;
  }
  #siteLoader .sl-place {
    font-size: 0.52rem !important;
    letter-spacing: 0.24em !important;
  }
  #siteLoader .sl-tagline {
    font-size: 0.54rem !important;
    letter-spacing: 0.26em !important;
  }
  #siteLoader .sl-bar-wrap { width: min(230px, 62vw) !important; }
}
@media (max-width: 720px) and (prefers-reduced-motion: reduce) {
  #siteLoader .sl-crest { animation: none; opacity: 1; }
}
