/** Shopify CDN: Minification failed

Line 2546:186 Unexpected "/"
Line 3031:186 Unexpected "/"
Line 3329:186 Unexpected "/"
Line 3696:37 Unexpected "("

**/
    :root {
      --color-cream: #FFFBFD;
      --color-blush: #EFE1E2;
      --color-taupe: #947B72;
      --color-charcoal: #1f1a17;
      --color-muted: #4a4340;
    }

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

    body {
      font-family: 'Montserrat', sans-serif;
      background-color: var(--color-cream);
      color: var(--color-charcoal);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }

    /* Top announcement bar */
    .top-bar {
      background-color: var(--color-taupe);
      color: var(--color-cream);
      text-align: center;
      padding: 12px 20px;
      font-size: 11px;
      letter-spacing: 0.22em;
      font-weight: 500;
      text-transform: uppercase;
    }
    .top-bar span { margin: 0 18px; }
    .top-bar .divider { opacity: 0.6; }

    /* Navigation — luxury upgrade */
    nav {
      background-color: var(--color-blush);
      padding: 30px 6vw;
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: relative;
      z-index: 50;
      overflow: hidden;
    }
    /* Visible-but-subtle ghost script word inside nav strip */
    .nav-bg-word {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: 92px;
      color: rgba(148, 123, 114, 0.13);
      bottom: -16px;
      right: 24px;
      line-height: 1;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    nav > *:not(.nav-bg-word) {
      position: relative;
      z-index: 1;
    }

    .logo {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 28px;
      letter-spacing: 0.04em;
      color: var(--color-charcoal);
      line-height: 1.1;
    }
    .logo small {
      display: block;
      font-family: 'Montserrat', sans-serif;
      font-size: 9px;
      letter-spacing: 0.28em;
      font-style: normal;
      font-weight: 400;
      margin-top: 4px;
      text-transform: uppercase;
      color: var(--color-taupe);
    }

    /* Desktop nav links */
    .nav-links {
      display: flex;
      list-style: none;
      gap: 44px;
      align-items: center;
    }
    .nav-links a {
      color: var(--color-charcoal);
      text-decoration: none;
      font-size: 12px;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      font-weight: 500;
      position: relative;
      padding: 6px 0;
      transition: color 0.3s ease;
    }
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 0;
      height: 1px;
      background: var(--color-taupe);
      transition: width 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                  left 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .nav-links a:hover { color: var(--color-taupe); }
    .nav-links a:hover::after { width: 100%; left: 0; }
    .nav-links a.is-current { color: var(--color-taupe); }
    .nav-links a.is-current::after {
      width: 100%;
      left: 0;
      background: var(--color-taupe);
      opacity: 0.85;
    }

    /* Right side: cart + hamburger */
    .nav-right {
      display: flex;
      align-items: center;
      gap: 28px;
    }

    .nav-cart {
      background: none;
      border: none;
      padding: 0;
      width: 24px;
      height: 24px;
      cursor: pointer;
      color: var(--color-charcoal);
      transition: color 0.3s, transform 0.3s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .nav-cart:hover {
      color: var(--color-taupe);
      transform: translateY(-1px);
    }
    .nav-cart svg {
      width: 100%;
      height: 100%;
      stroke-width: 1.25;
    }

    /* Hamburger button — animated */
    .menu-toggle {
      display: none;
      background: transparent;
      border: none;
      width: 30px;
      height: 22px;
      position: relative;
      cursor: pointer;
      padding: 0;
      z-index: 1001;
    }
    .menu-toggle span {
      display: block;
      position: absolute;
      height: 1.5px;
      width: 100%;
      background: var(--color-charcoal);
      left: 0;
      transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .menu-toggle span:nth-child(1) { top: 3px; }
    .menu-toggle span:nth-child(2) { top: 50%; transform: translateY(-50%); }
    .menu-toggle span:nth-child(3) { bottom: 3px; }
    .menu-toggle.is-open span:nth-child(1) {
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
    }
    .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
    .menu-toggle.is-open span:nth-child(3) {
      bottom: 50%;
      transform: translateY(50%) rotate(-45deg);
    }

    /* Full-screen luxury menu overlay */
    .menu-overlay {
      position: fixed;
      inset: 0;
      background:
        radial-gradient(ellipse at 25% 20%, rgba(239, 225, 226, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 75% 80%, rgba(148, 123, 114, 0.08) 0%, transparent 50%),
        var(--color-cream);
      z-index: 1000;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      text-align: center;
      padding: 56px 8vw 44px;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
                  visibility 0.55s linear;
      overflow: hidden;
    }
    .menu-overlay.is-open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
    .menu-overlay-bg {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: 60vw;
      color: rgba(148, 123, 114, 0.07);
      bottom: -18%;
      right: -14%;
      line-height: 0.8;
      pointer-events: none;
      user-select: none;
      letter-spacing: -0.02em;
      z-index: 1;
    }
    .menu-overlay-close {
      position: absolute;
      top: 22px;
      right: 22px;
      width: 44px;
      height: 44px;
      border: 1px solid rgba(148, 123, 114, 0.4);
      border-radius: 50%;
      background: transparent;
      color: var(--color-taupe);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.4s ease, opacity 0.4s ease;
      opacity: 0;
      transform: scale(0.85);
      z-index: 3;
    }
    .menu-overlay.is-open .menu-overlay-close {
      opacity: 1;
      transform: scale(1);
      transition-delay: 0.35s;
    }
    .menu-overlay-close:hover {
      background: var(--color-taupe);
      color: var(--color-cream);
      border-color: var(--color-taupe);
    }
    .menu-overlay-close svg {
      width: 16px;
      height: 16px;
      transition: transform 0.4s ease;
    }
    .menu-overlay-close:hover svg { transform: rotate(90deg); }

    .menu-overlay-brand {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 16px;
      opacity: 0;
      transform: translateY(-12px);
      transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .menu-overlay.is-open .menu-overlay-brand {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.18s;
    }
    .menu-overlay-logo-text {
      font-family: 'Allura', cursive;
      font-size: 54px;
      color: var(--color-charcoal);
      margin: 0;
      line-height: 1;
    }
    .menu-overlay-logo-img {
      max-width: 180px;
      height: auto;
      display: block;
    }
    .menu-overlay-eyebrow {
      font-size: 10px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0;
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .menu-overlay-eyebrow::before,
    .menu-overlay-eyebrow::after {
      content: '';
      width: 32px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }

    .menu-overlay-list {
      list-style: none;
      padding: 0;
      margin: 0;
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 2px;
    }
    .menu-overlay-list li {
      overflow: hidden;
    }
    .menu-overlay-list a {
      font-family: 'Playfair Display', serif;
      font-size: clamp(36px, 9vw, 64px);
      font-weight: 400;
      color: var(--color-charcoal);
      text-decoration: none;
      letter-spacing: -0.015em;
      line-height: 1.15;
      display: inline-block;
      transform: translateY(110%);
      opacity: 0;
      transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
                  opacity 0.85s ease,
                  color 0.3s ease,
                  font-style 0.3s ease;
    }
    .menu-overlay.is-open .menu-overlay-list li:nth-child(1) a { transition-delay: 0.30s; }
    .menu-overlay.is-open .menu-overlay-list li:nth-child(2) a { transition-delay: 0.38s; }
    .menu-overlay.is-open .menu-overlay-list li:nth-child(3) a { transition-delay: 0.46s; }
    .menu-overlay.is-open .menu-overlay-list li:nth-child(4) a { transition-delay: 0.54s; }
    .menu-overlay.is-open .menu-overlay-list li:nth-child(5) a { transition-delay: 0.62s; }
    .menu-overlay.is-open .menu-overlay-list a {
      transform: translateY(0);
      opacity: 1;
    }
    .menu-overlay-list a:hover {
      font-style: italic;
      color: var(--color-taupe);
    }

    .menu-overlay-footer {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
      color: var(--color-taupe);
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
      position: relative;
      z-index: 2;
    }
    .menu-overlay.is-open .menu-overlay-footer {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.85s;
    }
    .menu-overlay-footer-icons {
      display: flex;
      gap: 14px;
    }
    .menu-overlay-footer-icons a {
      width: 40px;
      height: 40px;
      border: 1px solid rgba(148, 123, 114, 0.35);
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--color-taupe);
      transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    }
    .menu-overlay-footer-icons a:hover {
      background: var(--color-taupe);
      color: var(--color-cream);
      border-color: var(--color-taupe);
    }
    .menu-overlay-footer-icons a svg { width: 16px; height: 16px; }
    .menu-overlay-email {
      font-family: 'Montserrat', sans-serif;
      font-size: 11px;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      text-decoration: none;
      transition: color 0.3s;
    }
    .menu-overlay-email:hover { color: var(--color-charcoal); }

    /* Hero — dramatic, editorial, layered */
    .hero {
      position: relative;
      background:
        radial-gradient(ellipse at 0% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.1) 0%, transparent 55%),
        var(--color-blush);
      padding: 70px 6vw 110px;
      display: grid;
      grid-template-columns: 1.12fr 0.78fr;
      gap: 70px;
      align-items: center;
      min-height: 88vh;
      overflow: hidden;
    }

    /* Giant ghost script word behind hero */
    .hero-bg-script {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(180px, 26vw, 420px);
      color: rgba(148, 123, 114, 0.08);
      bottom: -8%;
      left: -3%;
      line-height: 0.8;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
    }

    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 720px;
    }

    /* Eyebrow with thin accent line */
    .hero-eyebrow {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-bottom: 36px;
      font-size: 11px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
    }
    .hero-eyebrow::before {
      content: '';
      width: 56px;
      height: 1px;
      background: currentColor;
      flex-shrink: 0;
    }

    /* Dramatic layered headline */
    .hero h1 {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(54px, 7.4vw, 112px);
      line-height: 0.96;
      letter-spacing: -0.025em;
      color: var(--color-charcoal);
      margin-bottom: 38px;
    }
    .hero h1 .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.35em;
      color: var(--color-taupe);
      line-height: 0.65;
      display: inline-block;
      padding: 0 8px;
      transform: translateY(0.08em);
    }

    .hero-subtitle {
      font-size: 16px;
      line-height: 1.75;
      color: var(--color-muted);
      margin-bottom: 48px;
      max-width: 480px;
      font-weight: 300;
    }

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

    .btn {
      display: inline-block;
      padding: 18px 38px;
      font-size: 11px;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      font-weight: 500;
      text-decoration: none;
      transition: all 0.25s ease;
      cursor: pointer;
      border: 1px solid var(--color-taupe);
    }
    .btn-primary {
      background-color: var(--color-taupe);
      color: var(--color-cream);
    }
    .btn-primary:hover {
      background-color: var(--color-charcoal);
      border-color: var(--color-charcoal);
    }
    .btn-secondary {
      background-color: transparent;
      color: var(--color-taupe);
    }
    .btn-secondary:hover {
      background-color: var(--color-taupe);
      color: var(--color-cream);
    }

    /* Hero visual — image with offset frame and founder name plaque */
    .hero-visual {
      position: relative;
      z-index: 1;
      align-self: stretch;
      aspect-ratio: 4/5.2;
      max-height: 78vh;
    }
    .hero-frame-line {
      position: absolute;
      inset: 0;
      transform: translate(20px, 20px);
      border: 1px solid rgba(148, 123, 114, 0.45);
      z-index: 0;
      pointer-events: none;
    }
    .hero-image {
      position: relative;
      z-index: 1;
      width: 100%;
      height: 100%;
      overflow: hidden;
      box-shadow: 0 40px 100px rgba(0,0,0,0.18);
    }
    .hero-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      animation: kenBurns 22s ease-in-out infinite alternate;
    }
    @keyframes kenBurns {
      0%   { transform: scale(1) translate(0, 0); }
      100% { transform: scale(1.08) translate(-1.5%, -1.5%); }
    }

    /* Founder plaque overlay */
    .hero-tag {
      position: absolute;
      bottom: 28px;
      left: 28px;
      background: rgba(255, 251, 253, 0.96);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      padding: 16px 24px;
      z-index: 3;
      border: 1px solid rgba(148, 123, 114, 0.18);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    }
    .hero-tag-eyebrow {
      font-size: 9px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      margin-bottom: 4px;
      font-weight: 500;
    }
    .hero-tag-name {
      font-family: 'Allura', cursive;
      font-size: 32px;
      color: var(--color-charcoal);
      line-height: 1;
      letter-spacing: -0.01em;
    }

    /* Scroll cue at bottom-left of hero */
    .scroll-cue {
      position: absolute;
      bottom: 40px;
      left: 6vw;
      display: flex;
      align-items: center;
      gap: 14px;
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-taupe);
      z-index: 3;
      font-weight: 500;
    }
    .scroll-cue-line {
      width: 56px;
      height: 1px;
      background: rgba(148, 123, 114, 0.3);
      position: relative;
      overflow: hidden;
    }
    .scroll-cue-line::after {
      content: '';
      position: absolute;
      top: 0;
      left: -40%;
      width: 40%;
      height: 100%;
      background: var(--color-taupe);
      animation: scrollPulse 2.4s ease-in-out infinite;
    }
    @keyframes scrollPulse {
      0%   { left: -40%; }
      100% { left: 100%; }
    }

    /* Scroll-triggered reveal animations */
    .reveal {
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 1s ease, transform 1.3s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .reveal.in-view {
      opacity: 1;
      transform: translateY(0);
    }
    .reveal.delay-1 { transition-delay: 0.15s; }
    .reveal.delay-2 { transition-delay: 0.3s; }
    .reveal.delay-3 { transition-delay: 0.45s; }

    /* Trust bar — slimline credibility strip */
    .trust-bar {
      background:
        radial-gradient(ellipse at 50% 0%, #3d2f29 0%, transparent 60%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.25), transparent 60%),
        #2a201c;
      color: var(--color-cream);
      padding: 44px 6vw;
    }
    .trust-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      max-width: 1200px;
      margin: 0 auto;
    }
    .trust-item {
      text-align: center;
      padding: 6px 24px;
      border-right: 1px solid rgba(255, 251, 253, 0.1);
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .trust-item:last-child { border-right: none; }
    .trust-icon {
      width: 26px;
      height: 26px;
      margin: 0 0 12px;
      color: var(--color-blush);
      stroke-width: 1.25;
      opacity: 0.85;
    }
    .trust-title {
      font-family: 'Playfair Display', serif;
      font-size: 17px;
      font-weight: 500;
      letter-spacing: 0.01em;
      margin-bottom: 6px;
      color: var(--color-cream);
    }
    .trust-text {
      font-size: 11px;
      line-height: 1.55;
      color: rgba(255, 251, 253, 0.62);
      font-weight: 300;
      letter-spacing: 0.04em;
      max-width: 200px;
      margin: 0 auto;
    }

    /* Signature method section — asymmetric image + editorial text */
    .method {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.55) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(239, 225, 226, 0.4) 0%, transparent 50%),
        var(--color-cream);
      padding: 130px 6vw;
      position: relative;
      overflow: hidden;
    }
    .method-inner {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 0.95fr 1.1fr;
      gap: 90px;
      align-items: center;
    }
    .method-image {
      aspect-ratio: 4/5;
      position: relative;
    }
    .method-image .image-placeholder,
    .method-image img {
      width: 100%;
      height: 100%;
    }
    .method-image img {
      object-fit: cover;
      display: block;
    }
    .method-text-block {
      position: relative;
      text-align: left;
    }
    .method .eyebrow {
      margin-bottom: 32px;
    }
    .method-headline {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(40px, 5vw, 64px);
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      margin-bottom: 36px;
      text-align: left;
    }
    .method-headline .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.35em;
      color: var(--color-taupe);
      line-height: 0.85;
      display: inline-block;
      padding: 0 6px;
    }
    .method-divider {
      width: 110px;
      height: 12px;
      margin: 0 0 36px;
      position: relative;
    }
    .method-divider::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, rgba(148, 123, 114, 0.55) 0%, rgba(148, 123, 114, 0.55) 75%, transparent);
      transform: translateY(-50%);
    }
    .method-divider::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 65%;
      width: 6px;
      height: 6px;
      background: var(--color-taupe);
      transform: translate(-50%, -50%) rotate(45deg);
    }
    .method-text {
      font-size: 16px;
      line-height: 1.85;
      color: var(--color-muted);
      margin: 0 0 22px;
      font-weight: 300;
      max-width: 540px;
    }
    .method-signature {
      font-family: 'Allura', cursive;
      font-size: 42px;
      color: var(--color-taupe);
      margin: 40px 0 44px;
      line-height: 1;
    }

    /* Reusable image placeholder — designed as an elegant gallery frame.
       In Shopify, replace each placeholder div with an <img> tag */
    .image-placeholder {
      background:
        radial-gradient(ellipse at 50% 35%, rgba(255, 251, 253, 0.75) 0%, rgba(239, 225, 226, 0.3) 60%, rgba(239, 225, 226, 0.55) 100%);
      border: 1px solid rgba(148, 123, 114, 0.22);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 40px 30px;
      color: var(--color-taupe);
      position: relative;
      overflow: hidden;
    }
    .image-placeholder::after {
      content: '';
      position: absolute;
      inset: 10px;
      border: 1px solid rgba(148, 123, 114, 0.1);
      pointer-events: none;
    }
    .image-placeholder::before {
      content: '';
      display: block;
      width: 38px;
      height: 38px;
      margin-bottom: 22px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23947B72' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='0.5'/%3E%3Cpath d='M3 16l5-4 4 3 4-5 5 5'/%3E%3Ccircle cx='8' cy='9' r='1.3' fill='%23947B72'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      opacity: 0.55;
    }
    .image-placeholder strong {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: 16px;
      letter-spacing: 0.04em;
      text-transform: none;
      margin-bottom: 10px;
      color: var(--color-taupe);
    }
    .image-placeholder small {
      font-size: 10px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      opacity: 0.65;
      line-height: 1.7;
      max-width: 220px;
    }
    /* Soft placeholder for course cards — blends with card */
    .image-placeholder--soft {
      background: linear-gradient(180deg, rgba(239, 225, 226, 0.45) 0%, rgba(255, 251, 253, 0.95) 100%);
      border: none;
    }
    .image-placeholder--soft::after { display: none; }
    .image-placeholder--soft::before { opacity: 0.35; margin-bottom: 14px; }
    .image-placeholder--soft small { opacity: 0.5; }

    /* Courses preview */
    .courses-preview {
      background:
        radial-gradient(ellipse at 0% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.08) 0%, transparent 55%),
        var(--color-blush);
      padding: 130px 6vw;
    }
    .section-header {
      text-align: center;
      max-width: 720px;
      margin: 0 auto 80px;
    }
    .section-header h2 {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(36px, 4.6vw, 56px);
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      margin: 8px 0 24px;
    }
    .section-intro {
      font-size: 16px;
      line-height: 1.75;
      color: var(--color-muted);
      font-weight: 300;
      max-width: 580px;
      margin: 0 auto;
    }
    .courses-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 36px;
      max-width: 1280px;
      margin: 0 auto 64px;
    }
    .course-card {
      background: var(--color-cream);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: opacity 1s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s ease;
    }
    .course-card.reveal.in-view:hover {
      transform: translateY(-6px);
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
    }
    .course-card:hover:not(.reveal) {
      transform: translateY(-6px);
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
    }
    .course-image {
      aspect-ratio: 4/5;
      width: 100%;
    }
    .course-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .course-content {
      padding: 32px 30px 38px;
    }
    .course-tag {
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 500;
      margin-bottom: 14px;
    }
    .course-card h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 22px;
      line-height: 1.25;
      color: var(--color-charcoal);
      margin-bottom: 14px;
      letter-spacing: 0.01em;
    }
    .course-description {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-muted);
      margin-bottom: 24px;
    }
    .course-link {
      font-size: 11px;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      text-decoration: none;
      border-bottom: 1px solid var(--color-taupe);
      padding-bottom: 4px;
      transition: color 0.2s, border-color 0.2s;
    }
    .course-link:hover {
      color: var(--color-charcoal);
      border-color: var(--color-charcoal);
    }
    .courses-cta-row { text-align: center; }

    /* Founder Quote — dramatic full-bleed dark band with pull quote */
    .founder-quote {
      position: relative;
      background:
        radial-gradient(ellipse at 25% 25%, #3d2f29 0%, transparent 55%),
        radial-gradient(ellipse at 80% 75%, rgba(148, 123, 114, 0.18) 0%, transparent 55%),
        #261c19;
      color: var(--color-cream);
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: stretch;
      overflow: hidden;
    }
    /* Ghost graduation-cap icon in this section */
    .founder-quote-bg-icon {
      position: absolute;
      width: clamp(180px, 20vw, 300px);
      height: auto;
      color: rgba(239, 225, 226, 0.18);
      bottom: 8%;
      right: 6%;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      stroke-width: 1.2;
      transform: rotate(-12deg);
      filter: blur(2.5px);
      transform-origin: center;
    }
    .founder-quote-image {
      position: relative;
      min-height: 620px;
      overflow: hidden;
      z-index: 1;
    }
    .founder-quote-image img,
    .founder-quote-image .image-placeholder {
      width: 100%;
      height: 100%;
      display: block;
    }
    .founder-quote-image img { object-fit: cover; }
    /* Dark-variant placeholder for this section */
    .founder-quote-image .image-placeholder {
      background:
        radial-gradient(ellipse at 50% 35%, rgba(255, 251, 253, 0.06) 0%, rgba(148, 123, 114, 0.1) 60%, rgba(255, 251, 253, 0.03) 100%);
      border-color: rgba(255, 251, 253, 0.2);
      color: var(--color-blush);
    }
    .founder-quote-image .image-placeholder strong { color: var(--color-blush); }
    .founder-quote-image .image-placeholder::after {
      border-color: rgba(255, 251, 253, 0.08);
    }
    .founder-quote-image .image-placeholder::before {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EFE1E2' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='0.5'/%3E%3Cpath d='M3 16l5-4 4 3 4-5 5 5'/%3E%3Ccircle cx='8' cy='9' r='1.3' fill='%23EFE1E2'/%3E%3C/svg%3E");
      opacity: 0.55;
    }
    .founder-quote-content {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 100px 6vw;
      position: relative;
      z-index: 2;
    }
    .founder-quote-eyebrow {
      font-size: 11px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.7);
      font-weight: 600;
      margin-bottom: 36px;
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .founder-quote-eyebrow::before {
      content: '';
      width: 50px;
      height: 1px;
      background: currentColor;
    }
    .founder-quote-text {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(28px, 3vw, 42px);
      line-height: 1.35;
      letter-spacing: -0.01em;
      color: var(--color-cream);
      margin: 0 0 48px;
      max-width: 620px;
    }
    .founder-quote-text .em {
      font-style: normal;
      color: var(--color-blush);
    }
    .founder-quote-divider {
      width: 110px;
      height: 12px;
      margin: 0 0 28px;
      position: relative;
    }
    .founder-quote-divider::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, rgba(239, 225, 226, 0.45) 0%, rgba(239, 225, 226, 0.45) 75%, transparent);
      transform: translateY(-50%);
    }
    .founder-quote-divider::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 65%;
      width: 6px;
      height: 6px;
      background: var(--color-blush);
      transform: translate(-50%, -50%) rotate(45deg);
    }
    .founder-quote-signature {
      font-family: 'Allura', cursive;
      font-size: 38px;
      color: var(--color-blush);
      line-height: 1;
      margin: 0 0 12px;
    }
    .founder-quote-caption {
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.7);
      font-weight: 500;
      margin: 0;
    }

    /* ═══════════════════════════════════════════════════════════
       FOOTER — editorial luxury close
       ═══════════════════════════════════════════════════════════ */
    .site-footer {
      position: relative;
      background:
        radial-gradient(ellipse at 20% 0%, rgba(148, 123, 114, 0.18) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 100%, rgba(61, 47, 41, 0.5) 0%, transparent 55%),
        #15100e;
      color: var(--color-cream);
      padding: 110px 6vw 0;
      overflow: hidden;
    }

    /* Massive script signature */
    .footer-hero {
      text-align: center;
      padding-bottom: 90px;
      border-bottom: 1px solid rgba(239, 225, 226, 0.09);
      margin-bottom: 90px;
      position: relative;
    }
    .footer-eyebrow {
      font-size: 11px;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--color-blush);
      font-weight: 600;
      margin: 0 0 28px;
      display: inline-flex;
      align-items: center;
      gap: 14px;
      opacity: 0.85;
    }
    .footer-eyebrow::before,
    .footer-eyebrow::after {
      content: '';
      width: 36px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .footer-script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: clamp(38px, 5.5vw, 88px);
      color: var(--color-blush);
      line-height: 0.95;
      letter-spacing: -0.02em;
      margin: 0 0 16px;
    }
    /* Logo placeholder in footer — replace with <img> when logo file is uploaded */
    .footer-logo {
      width: clamp(160px, 16vw, 260px);
      margin: 0 auto 22px;
      aspect-ratio: 2 / 1;
    }
    .footer-logo img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }
    .footer-logo .image-placeholder {
      width: 100%;
      height: 100%;
      padding: 16px;
      background:
        radial-gradient(ellipse at 50% 35%, rgba(255, 251, 253, 0.06) 0%, rgba(148, 123, 114, 0.12) 60%, rgba(255, 251, 253, 0.03) 100%);
      border-color: rgba(255, 251, 253, 0.2);
      color: var(--color-blush);
    }
    .footer-logo .image-placeholder strong {
      color: var(--color-blush);
      font-size: 12px;
      margin-bottom: 6px;
    }
    .footer-logo .image-placeholder small {
      font-size: 9px;
      line-height: 1.6;
      letter-spacing: 0.18em;
    }
    .footer-logo .image-placeholder::after {
      border-color: rgba(255, 251, 253, 0.08);
    }
    .footer-logo .image-placeholder::before {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EFE1E2' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='0.5'/%3E%3Cpath d='M3 16l5-4 4 3 4-5 5 5'/%3E%3Ccircle cx='8' cy='9' r='1.3' fill='%23EFE1E2'/%3E%3C/svg%3E");
      opacity: 0.55;
      width: 24px;
      height: 24px;
      margin-bottom: 8px;
    }
    .footer-subscript {
      font-size: 10px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.6);
      font-weight: 500;
      margin: 0;
    }

    /* Main 4-column information architecture */
    .footer-main {
      display: grid;
      grid-template-columns: 1.35fr 1fr 1.15fr 1.3fr;
      gap: 60px;
      max-width: 1400px;
      margin: 0 auto 60px;
      padding-bottom: 70px;
      border-bottom: 1px solid rgba(239, 225, 226, 0.09);
    }
    .footer-col-eyebrow {
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-blush);
      font-weight: 600;
      margin: 0 0 28px;
      position: relative;
      padding-left: 22px;
    }
    .footer-col-eyebrow::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 14px;
      height: 1px;
      background: currentColor;
    }

    /* About column */
    .footer-about-text {
      font-size: 14px;
      line-height: 1.85;
      color: rgba(239, 225, 226, 0.72);
      font-weight: 300;
      margin: 0 0 26px;
    }
    .footer-credentials {
      display: flex;
      gap: 12px;
      align-items: center;
      flex-wrap: wrap;
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-blush);
      font-weight: 600;
    }
    .footer-cred-divider { opacity: 0.45; }

    /* Quick links */
    .footer-links {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .footer-links li { margin-bottom: 14px; }
    .footer-links a {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: 17px;
      color: var(--color-cream);
      text-decoration: none;
      display: inline-block;
      position: relative;
      padding-left: 0;
      transition: color 0.35s ease, padding-left 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .footer-links a::before {
      content: '→';
      position: absolute;
      left: -4px;
      opacity: 0;
      font-style: normal;
      transition: opacity 0.35s ease, left 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .footer-links a:hover {
      color: var(--color-blush);
      padding-left: 22px;
    }
    .footer-links a:hover::before {
      opacity: 1;
      left: 0;
    }

    /* Contact */
    .footer-contact {
      font-size: 14px;
      line-height: 1.75;
      color: rgba(239, 225, 226, 0.72);
      font-style: normal;
      font-weight: 300;
      margin: 0 0 22px;
    }
    .footer-contact-link {
      display: block;
      font-size: 13px;
      color: var(--color-cream);
      text-decoration: none;
      margin-bottom: 8px;
      letter-spacing: 0.02em;
      font-weight: 400;
      transition: color 0.3s ease;
    }
    .footer-contact-link:hover { color: var(--color-blush); }

    /* Newsletter signup */
    .footer-newsletter-text {
      font-size: 14px;
      line-height: 1.75;
      color: rgba(239, 225, 226, 0.72);
      font-weight: 300;
      margin: 0 0 26px;
    }
    .footer-newsletter {
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(239, 225, 226, 0.3);
      padding-bottom: 4px;
      transition: border-color 0.3s ease;
    }
    .footer-newsletter:focus-within { border-color: var(--color-blush); }
    .footer-newsletter input {
      flex: 1;
      background: transparent;
      border: none;
      outline: none;
      color: var(--color-cream);
      font-family: 'Montserrat', sans-serif;
      font-size: 13px;
      padding: 12px 0;
      letter-spacing: 0.04em;
      min-width: 0;
    }
    .footer-newsletter input::placeholder {
      color: rgba(239, 225, 226, 0.4);
      letter-spacing: 0.06em;
    }
    .footer-newsletter button {
      background: transparent;
      border: none;
      color: var(--color-blush);
      font-family: 'Montserrat', sans-serif;
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      font-weight: 600;
      padding: 0 0 0 16px;
      cursor: pointer;
      transition: color 0.3s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    .footer-newsletter button::after {
      content: '→';
      transition: transform 0.3s ease;
    }
    .footer-newsletter button:hover { color: var(--color-cream); }
    .footer-newsletter button:hover::after { transform: translateX(4px); }

    /* Social row */
    .footer-social {
      display: flex;
      justify-content: center;
      gap: 40px;
      padding: 8px 0 36px;
      max-width: 1400px;
      margin: 0 auto;
    }
    .footer-social-link {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: rgba(239, 225, 226, 0.78);
      text-decoration: none;
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      font-weight: 600;
      transition: color 0.3s ease;
    }
    .footer-social-link svg {
      width: 16px;
      height: 16px;
      stroke-width: 1.4;
    }
    .footer-social-link:hover { color: var(--color-blush); }

    /* Bottom strip */
    .footer-bottom {
      max-width: 1400px;
      margin: 0 auto;
      border-top: 1px solid rgba(239, 225, 226, 0.09);
      padding: 28px 0 36px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 16px;
      font-size: 10px;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.48);
      font-weight: 500;
    }
    .footer-legal {
      display: flex;
      gap: 28px;
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .footer-legal a {
      color: inherit;
      text-decoration: none;
      transition: color 0.3s ease;
    }
    .footer-legal a:hover { color: var(--color-blush); }

    /* Builder credit — subtle final sign-off */
    .footer-built {
      max-width: 1400px;
      margin: 0 auto;
      border-top: 1px solid rgba(239, 225, 226, 0.06);
      padding: 22px 0 32px;
      text-align: center;
      font-size: 9px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.42);
      font-weight: 500;
    }
    .footer-built a {
      color: inherit;
      text-decoration: none;
      border-bottom: 1px solid currentColor;
      padding-bottom: 1px;
      transition: color 0.3s ease, border-color 0.3s ease;
    }
    .footer-built a:hover {
      color: var(--color-blush);
      border-color: var(--color-blush);
    }

    /* Accreditation badge — clickable link to accreditation body */
    .footer-accreditation {
      display: block;
      max-width: 1400px;
      margin: 0 auto;
      padding: 32px 0 28px;
      text-align: center;
      text-decoration: none;
      border-top: 1px solid rgba(239, 225, 226, 0.09);
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    .footer-accreditation:hover {
      opacity: 0.85;
      transform: translateY(-1px);
    }
    .footer-accreditation-eyebrow {
      display: block;
      font-size: 9px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: rgba(239, 225, 226, 0.55);
      font-weight: 600;
      margin: 0 0 14px;
    }
    .footer-accreditation-logo {
      width: 130px;
      margin: 0 auto;
      aspect-ratio: 2 / 1;
    }
    .footer-accreditation-logo img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }
    .footer-accreditation-logo .image-placeholder {
      width: 100%;
      height: 100%;
      padding: 8px;
      background:
        radial-gradient(ellipse at 50% 35%, rgba(255, 251, 253, 0.05) 0%, rgba(148, 123, 114, 0.1) 60%, rgba(255, 251, 253, 0.03) 100%);
      border-color: rgba(255, 251, 253, 0.18);
      color: var(--color-blush);
    }
    .footer-accreditation-logo .image-placeholder strong {
      color: var(--color-blush);
      font-size: 10px;
      margin-bottom: 3px;
      letter-spacing: 0.2em;
    }
    .footer-accreditation-logo .image-placeholder small {
      font-size: 8px;
      line-height: 1.5;
      letter-spacing: 0.18em;
    }
    .footer-accreditation-logo .image-placeholder::after {
      border-color: rgba(255, 251, 253, 0.06);
    }
    .footer-accreditation-logo .image-placeholder::before {
      width: 18px;
      height: 18px;
      margin-bottom: 6px;
      opacity: 0.5;
    }

    /* Final CTA — compact cinematic close before footer */
    .cta-final {
      position: relative;
      background:
        radial-gradient(ellipse at 30% 30%, rgba(148, 123, 114, 0.22) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 75%, rgba(61, 47, 41, 0.6) 0%, transparent 60%),
        #1f1714;
      color: var(--color-cream);
      padding: 60px 6vw;
      text-align: center;
      overflow: hidden;
    }
    .cta-final-bg {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(200px, 26vw, 400px);
      color: rgba(239, 225, 226, 0.07);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(-12deg);
      line-height: 0.85;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    .cta-final-content {
      position: relative;
      z-index: 1;
      max-width: 600px;
      margin: 0 auto;
    }
    .cta-eyebrow {
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-blush);
      font-weight: 600;
      margin: 0 0 20px;
      display: inline-flex;
      align-items: center;
      gap: 12px;
    }
    .cta-eyebrow::before,
    .cta-eyebrow::after {
      content: '';
      width: 28px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .cta-headline {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(22px, 2.4vw, 36px);
      line-height: 1.1;
      letter-spacing: -0.015em;
      color: var(--color-cream);
      margin: 0 0 20px;
    }
    .cta-headline .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.35em;
      color: var(--color-blush);
      line-height: 0.7;
      display: inline-block;
      padding: 0 6px;
      transform: translateY(0.08em);
    }
    .cta-subtitle {
      font-size: 13px;
      line-height: 1.7;
      color: rgba(239, 225, 226, 0.72);
      font-weight: 300;
      letter-spacing: 0.04em;
      margin: 0 auto 28px;
      max-width: 460px;
    }
    .cta-buttons {
      display: flex;
      gap: 12px;
      justify-content: center;
      flex-wrap: wrap;
    }
    /* CTA-specific button colours (light on dark) */
    .cta-final .btn-primary {
      background: var(--color-blush);
      color: var(--color-charcoal);
      border-color: var(--color-blush);
    }
    .cta-final .btn-primary:hover {
      background: var(--color-cream);
      color: var(--color-charcoal);
      border-color: var(--color-cream);
    }
    .cta-final .btn-secondary {
      background: transparent;
      color: var(--color-cream);
      border-color: rgba(239, 225, 226, 0.45);
    }
    .cta-final .btn-secondary:hover {
      background: var(--color-cream);
      color: var(--color-charcoal);
      border-color: var(--color-cream);
    }

    /* Testimonials — magazine-style editorial section */
    .testimonials {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.65) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(148, 123, 114, 0.06) 0%, transparent 55%),
        var(--color-blush);
      padding: 55px 6vw 110px;
      overflow: hidden;
    }
    .testimonials .section-header { margin-bottom: 50px; }
    .testimonials-bg-mark {
      position: absolute;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: clamp(220px, 24vw, 420px);
      color: rgba(148, 123, 114, 0.08);
      top: 38%;
      right: 3%;
      line-height: 0.8;
      pointer-events: none;
      user-select: none;
      z-index: 0;
    }
    .testimonials > * { position: relative; z-index: 1; }

    /* Featured testimonial — magazine spread layout */
    .featured-testimonial {
      display: grid;
      grid-template-columns: 0.9fr 1.15fr;
      gap: 70px;
      align-items: center;
      max-width: 1240px;
      margin: 0 auto 80px;
      text-align: left;
    }
    .featured-testimonial-image {
      aspect-ratio: 4/5;
      position: relative;
    }
    .featured-testimonial-image .image-placeholder,
    .featured-testimonial-image img {
      width: 100%;
      height: 100%;
    }
    .featured-testimonial-image img {
      object-fit: cover;
      display: block;
    }
    .featured-testimonial-content {
      position: relative;
    }
    .featured-testimonial-tag {
      font-size: 10px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 28px;
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .featured-testimonial-tag::before {
      content: '';
      width: 36px;
      height: 1px;
      background: currentColor;
    }
    .featured-testimonial-mark {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: 86px;
      color: var(--color-taupe);
      line-height: 0.35;
      margin: 0 0 26px;
      opacity: 0.55;
    }
    .featured-testimonial-quote {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(24px, 2.6vw, 38px);
      line-height: 1.4;
      letter-spacing: -0.005em;
      color: var(--color-charcoal);
      margin: 0 0 40px;
    }
    .featured-testimonial-attribution {
      display: flex;
      align-items: center;
      gap: 20px;
    }
    .featured-testimonial-badge {
      width: 60px;
      height: 60px;
      border-radius: 50%;
      background: var(--color-taupe);
      color: var(--color-cream);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 22px;
      font-weight: 500;
      letter-spacing: 0.02em;
      flex-shrink: 0;
    }
    .featured-testimonial-meta {
      flex-grow: 1;
    }
    .featured-testimonial-author {
      font-family: 'Allura', cursive;
      font-size: 40px;
      color: var(--color-taupe);
      line-height: 1;
      margin: 0 0 6px;
    }
    .featured-testimonial-role {
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      opacity: 0.85;
      margin: 0;
    }

    /* Supporting cards — infinite auto-scrolling marquee */
    .testimonial-marquee {
      position: relative;
      overflow: hidden;
      /* Soft fade edges so cards drift in/out */
      -webkit-mask-image: linear-gradient(to right,
        transparent 0,
        black 100px,
        black calc(100% - 100px),
        transparent 100%);
      mask-image: linear-gradient(to right,
        transparent 0,
        black 100px,
        black calc(100% - 100px),
        transparent 100%);
    }
    .testimonial-marquee-track {
      display: flex;
      width: max-content;
      animation: testimonialMarquee 65s linear infinite;
    }
    .testimonial-marquee:hover .testimonial-marquee-track,
    .testimonial-marquee:focus-within .testimonial-marquee-track {
      animation-play-state: paused;
    }
    @keyframes testimonialMarquee {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }

    .testimonial-card {
      flex: 0 0 380px;
      margin-right: 32px;
      background: var(--color-cream);
      padding: 54px 36px 40px;
      border: 1px solid rgba(148, 123, 114, 0.15);
      display: flex;
      flex-direction: column;
      position: relative;
      overflow: hidden;
      transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
                  box-shadow 0.5s ease;
    }
    .testimonial-card:hover {
      transform: translateY(-10px);
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
    }

    /* Big decorative number behind each card */
    .testimonial-card-number {
      position: absolute;
      top: -20px;
      right: 16px;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: 140px;
      color: rgba(148, 123, 114, 0.09);
      line-height: 1;
      pointer-events: none;
      user-select: none;
      z-index: 0;
    }
    .testimonial-card > *:not(.testimonial-card-number) {
      position: relative;
      z-index: 1;
    }

    .testimonial-card-tag {
      font-size: 9px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 24px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .testimonial-card-tag::before {
      content: '';
      width: 18px;
      height: 1px;
      background: currentColor;
    }
    .testimonial-card-mark {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: 52px;
      color: var(--color-taupe);
      line-height: 0.35;
      margin: 0 0 18px;
      opacity: 0.55;
    }
    .testimonial-quote {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.65;
      color: var(--color-charcoal);
      margin: 0 0 32px;
      flex-grow: 1;
    }
    .testimonial-attribution {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .testimonial-badge {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: var(--color-taupe);
      color: var(--color-cream);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 16px;
      font-weight: 500;
      letter-spacing: 0.02em;
      flex-shrink: 0;
    }
    .testimonial-meta { flex-grow: 1; }
    .testimonial-author {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 15px;
      color: var(--color-charcoal);
      margin: 0 0 4px;
      letter-spacing: 0.01em;
    }
    .testimonial-role {
      font-size: 9px;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0;
    }

    /* The Work / Portfolio gallery — asymmetric staggered layout */
    .work-section {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.4) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 100%, rgba(239, 225, 226, 0.35) 0%, transparent 55%),
        var(--color-cream);
      padding: 110px 6vw 140px;
      position: relative;
      overflow: hidden;
    }
    /* Ghost script word that sits behind the gallery */
    .work-bg-word {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(150px, 18vw, 290px);
      color: rgba(148, 123, 114, 0.09);
      bottom: 5%;
      left: -2%;
      line-height: 0.85;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
    }
    .work-section > .section-header,
    .work-section > .work-grid {
      position: relative;
      z-index: 1;
    }
    .work-grid {
      display: grid;
      grid-template-columns: 1fr 1.18fr 0.92fr;
      gap: 38px;
      max-width: 1280px;
      margin: 0 auto;
      align-items: start;
    }
    .work-item {
      --y-offset: 0px;
      --reveal-y: 60px;
      display: flex;
      flex-direction: column;
      transform: translateY(calc(var(--y-offset) + var(--reveal-y)));
      opacity: 0;
      transition: opacity 1s ease, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .work-item.in-view {
      --reveal-y: 0px;
      opacity: 1;
    }
    .work-item:nth-child(1) { --y-offset: 60px; transition-delay: 0s; }
    .work-item:nth-child(2) { --y-offset: 0px;  transition-delay: 0.2s; }
    .work-item:nth-child(3) { --y-offset: 110px; transition-delay: 0.4s; }

    .work-image {
      aspect-ratio: 4/5;
      overflow: hidden;
      position: relative;
    }
    .work-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .work-item:hover .work-image img {
      transform: scale(1.06);
    }
    .work-image .image-placeholder {
      height: 100%;
      width: 100%;
    }

    /* Mobile */
    @media (max-width: 800px) {
      .hero {
        grid-template-columns: 1fr;
        padding: 40px 6vw 80px;
        min-height: auto;
        gap: 50px;
      }
      .hero h1 { font-size: clamp(46px, 11.5vw, 72px); margin-bottom: 28px; }
      .hero-eyebrow::before { width: 36px; }
      .hero-bg-script { font-size: 56vw; bottom: -4%; }
      .hero-visual { aspect-ratio: 4/5; max-height: none; }
      .hero-frame-line { transform: translate(12px, 12px); }
      .hero-tag { bottom: 18px; left: 18px; padding: 12px 18px; }
      .hero-tag-name { font-size: 26px; }
      .scroll-cue { display: none; }

      .method { padding: 90px 6vw; }
      .method-inner {
        grid-template-columns: 1fr;
        gap: 50px;
      }
      .method-text { font-size: 16px; }
      .method-signature { font-size: 36px; }
      .method-headline { font-size: clamp(38px, 9vw, 56px); }

      .courses-preview { padding: 80px 6vw; }
      .section-header { margin-bottom: 50px; }
      .courses-grid {
        grid-template-columns: 1fr;
        gap: 32px;
      }

      .work-section { padding: 80px 6vw 100px; }
      .work-grid {
        grid-template-columns: 1fr;
        gap: 24px;
      }
      .work-item {
        --y-offset: 0px !important;
      }
      .work-bg-word { font-size: 32vw; bottom: 2%; }

      .founder-quote { grid-template-columns: 1fr; }
      .founder-quote-image { min-height: 0; aspect-ratio: 16/11; max-height: 50vh; }
      .founder-quote-content { padding: 60px 6vw 70px; }
      .founder-quote-eyebrow { margin-bottom: 26px; }
      .founder-quote-text { font-size: clamp(22px, 5vw, 30px); line-height: 1.4; margin-bottom: 30px; }
      .founder-quote-signature { font-size: 32px; }
      .founder-quote-bg-icon { width: clamp(120px, 32vw, 180px); bottom: 4%; right: 4%; opacity: 0.6; }

      .cta-final { padding: 90px 6vw; }
      .cta-eyebrow {
        flex-direction: column;
        gap: 10px;
      }
      .cta-eyebrow::before, .cta-eyebrow::after { width: 60px; }
      .cta-buttons { flex-direction: column; align-items: stretch; }
      .cta-buttons .btn { width: 100%; text-align: center; }
      .cta-final-bg { font-size: 70vw; bottom: -8%; }

      /* Footer mobile */
      .site-footer { padding: 70px 6vw 0; }
      .footer-hero { padding-bottom: 60px; margin-bottom: 60px; }
      .footer-script { font-size: clamp(70px, 22vw, 160px); }
      .footer-eyebrow {
        flex-direction: row;
        gap: 10px;
      }
      .footer-eyebrow::before, .footer-eyebrow::after { width: 24px; }
      .footer-main {
        grid-template-columns: 1fr;
        gap: 50px;
        padding-bottom: 50px;
      }
      .footer-social {
        gap: 22px;
        padding: 8px 0 30px;
      }
      .footer-bottom {
        flex-direction: column;
        text-align: center;
        gap: 20px;
        padding: 24px 0 32px;
      }
      .footer-legal {
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px 22px;
      }

      .testimonials { padding: 80px 0 100px; }
      .testimonials .section-header,
      .testimonials .featured-testimonial { padding: 0 6vw; }
      .featured-testimonial {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 80px;
      }
      .featured-testimonial-image { aspect-ratio: 4/5; max-width: 380px; }
      .testimonial-card {
        flex: 0 0 300px;
        padding: 44px 28px 36px;
        margin-right: 20px;
      }
      .testimonial-card-number { font-size: 110px; top: -12px; right: 12px; }
      .testimonials-bg-mark { font-size: 60vw; top: 30%; right: -8%; }
      .testimonial-marquee-track { animation-duration: 50s; }
      .top-bar span { display: block; margin: 2px 0; }
      .top-bar .divider { display: none; }
      .nav-links { display: none; }
      .menu-toggle { display: block; }
      nav { padding: 22px 6vw; }
      .nav-bg-word { font-size: 64px; bottom: -10px; right: 14px; }
      .nav-right { gap: 20px; }
      .menu-overlay { padding: 100px 8vw 60px; }
      .menu-overlay-footer { margin-top: 48px; gap: 22px; flex-wrap: wrap; }

      .trust-bar { padding: 60px 6vw; }
      .trust-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 0;
      }
      .trust-item {
        border-right: none;
        padding: 10px 20px;
      }
      .trust-item:nth-child(odd) {
        border-right: 1px solid rgba(255, 251, 253, 0.12);
      }
    }

    /* ═══════════════════════════════════════════════════════════
       ACADEMY PAGE — page-specific sections
       ═══════════════════════════════════════════════════════════ */

    /* Academy hero — centred editorial declaration */
    .academy-hero {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(148, 123, 114, 0.1) 0%, transparent 55%),
        var(--color-blush);
      padding: 110px 6vw 110px;
      text-align: center;
      min-height: 84vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
    .academy-hero-bg-script {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(220px, 32vw, 520px);
      color: rgba(148, 123, 114, 0.07);
      bottom: -6%;
      left: 50%;
      transform: translateX(-50%);
      line-height: 0.85;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    .academy-hero-content {
      position: relative;
      z-index: 1;
      max-width: 980px;
      margin: 0 auto;
    }
    .academy-hero-eyebrow {
      font-size: 11px;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 36px;
      display: inline-flex;
      align-items: center;
      gap: 16px;
    }
    .academy-hero-eyebrow::before,
    .academy-hero-eyebrow::after {
      content: '';
      width: 42px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .academy-hero-headline {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(56px, 7vw, 108px);
      line-height: 0.98;
      letter-spacing: -0.025em;
      color: var(--color-charcoal);
      margin: 0 0 40px;
    }
    .academy-hero-headline .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.3em;
      color: var(--color-taupe);
      line-height: 0.7;
      display: inline-block;
      padding: 0 8px;
      transform: translateY(0.08em);
    }
    .academy-hero-subtitle {
      font-size: 16px;
      line-height: 1.85;
      color: var(--color-muted);
      font-weight: 300;
      max-width: 640px;
      margin: 0 auto 52px;
    }
    .academy-hero .ctas {
      display: flex;
      gap: 14px;
      justify-content: center;
      flex-wrap: wrap;
    }

    /* The Method — 4-pillar explainer */
    .academy-method {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.45) 0%, transparent 50%),
        var(--color-cream);
      padding: 130px 6vw;
    }
    .method-pillars {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 30px;
      max-width: 1300px;
      margin: 0 auto;
    }
    .pillar {
      padding: 32px 28px 28px;
      border-top: 1px solid rgba(148, 123, 114, 0.3);
      position: relative;
    }
    .pillar-num {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 0.04em;
      color: var(--color-taupe);
      display: block;
      margin-bottom: 24px;
    }
    .pillar h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 22px;
      line-height: 1.2;
      color: var(--color-charcoal);
      margin: 0 0 14px;
      letter-spacing: -0.005em;
    }
    .pillar p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-muted);
      margin: 0;
      font-weight: 400;
    }

    /* Courses lineup — alternating magazine spread */
    .academy-courses {
      position: relative;
      background:
        radial-gradient(ellipse at 0% 0%, rgba(255, 251, 253, 0.6) 0%, transparent 50%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.08) 0%, transparent 50%),
        var(--color-blush);
      padding: 130px 6vw 140px;
      overflow: hidden;
    }
    .course-feature {
      display: grid;
      grid-template-columns: 0.95fr 1.05fr;
      gap: 80px;
      align-items: center;
      max-width: 1280px;
      margin: 0 auto 110px;
    }
    .course-feature:last-of-type { margin-bottom: 0; }
    .course-feature.course-feature-reverse {
      direction: rtl;
    }
    .course-feature.course-feature-reverse > * {
      direction: ltr;
    }
    .course-feature-image {
      aspect-ratio: 4/5;
      position: relative;
    }
    .course-feature-image .image-placeholder,
    .course-feature-image img {
      width: 100%;
      height: 100%;
    }
    .course-feature-image img {
      object-fit: cover;
      display: block;
    }
    .course-feature-content { position: relative; }
    .course-feature-tag {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-size: 10px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 24px;
    }
    .course-feature-tag::before {
      content: '';
      width: 28px;
      height: 1px;
      background: currentColor;
    }
    .course-feature h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(36px, 4.2vw, 56px);
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      margin: 0 0 26px;
    }
    .course-feature-desc {
      font-size: 16px;
      line-height: 1.8;
      color: var(--color-muted);
      font-weight: 300;
      margin: 0 0 28px;
      max-width: 540px;
    }
    .course-feature-list {
      list-style: none;
      padding: 0;
      margin: 0 0 36px;
      max-width: 540px;
    }
    .course-feature-list li {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 13px;
      line-height: 1.65;
      color: var(--color-charcoal);
      margin-bottom: 12px;
      letter-spacing: 0.01em;
    }
    .course-feature-list li::before {
      content: '';
      width: 5px;
      height: 5px;
      background: var(--color-taupe);
      transform: rotate(45deg);
      flex-shrink: 0;
      margin-top: 8px;
    }
    .course-feature-actions {
      display: flex;
      align-items: center;
      gap: 28px;
      flex-wrap: wrap;
    }
    .course-feature-price {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 24px;
      color: var(--color-taupe);
      letter-spacing: -0.01em;
    }

    /* What's included — universal benefits */
    .academy-included {
      background:
        radial-gradient(ellipse at 50% 50%, rgba(239, 225, 226, 0.3) 0%, transparent 60%),
        var(--color-cream);
      padding: 120px 6vw;
    }
    .included-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 50px 60px;
      max-width: 1280px;
      margin: 0 auto;
    }
    .included-item {
      text-align: left;
      position: relative;
      padding-left: 48px;
    }
    .included-item svg {
      position: absolute;
      left: 0;
      top: 2px;
      width: 32px;
      height: 32px;
      color: var(--color-taupe);
      stroke-width: 1.2;
    }
    .included-item h4 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 18px;
      line-height: 1.25;
      color: var(--color-charcoal);
      margin: 0 0 10px;
      letter-spacing: -0.005em;
    }
    .included-item p {
      font-size: 13px;
      line-height: 1.7;
      color: var(--color-muted);
      margin: 0;
    }

    /* FAQ — smooth editorial accordion */
    .academy-faq {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.65) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(148, 123, 114, 0.08) 0%, transparent 55%),
        var(--color-blush);
      padding: 110px 6vw 130px;
      overflow: hidden;
    }
    .faq-list {
      max-width: 880px;
      margin: 0 auto;
    }
    .faq-item {
      border-top: 1px solid rgba(148, 123, 114, 0.22);
    }
    .faq-item:last-child {
      border-bottom: 1px solid rgba(148, 123, 114, 0.22);
    }
    .faq-question {
      width: 100%;
      background: none;
      border: none;
      padding: 32px 4px;
      display: flex;
      align-items: baseline;
      gap: 32px;
      text-align: left;
      cursor: pointer;
      font-family: inherit;
      color: inherit;
      transition: color 0.3s ease;
    }
    .faq-question:hover .faq-text { color: var(--color-taupe); }
    .faq-num {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 14px;
      color: var(--color-taupe);
      flex-shrink: 0;
      min-width: 24px;
      letter-spacing: 0.02em;
    }
    .faq-text {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(20px, 2vw, 24px);
      line-height: 1.35;
      color: var(--color-charcoal);
      flex-grow: 1;
      letter-spacing: -0.005em;
      transition: color 0.3s ease;
    }
    .faq-icon {
      position: relative;
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      margin-top: 6px;
    }
    .faq-icon::before,
    .faq-icon::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      width: 100%;
      height: 1px;
      background: var(--color-taupe);
      transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .faq-icon::after { transform: translateY(-0.5px) rotate(90deg); }
    .faq-item.is-open .faq-icon::after { transform: translateY(-0.5px) rotate(0deg); }
    /* Smooth height transition via grid-template-rows trick */
    .faq-answer-wrap {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .faq-item.is-open .faq-answer-wrap {
      grid-template-rows: 1fr;
    }
    .faq-answer {
      overflow: hidden;
      min-height: 0;
    }
    .faq-answer p {
      padding: 0 0 32px 56px;
      max-width: 720px;
      font-size: 15px;
      line-height: 1.85;
      color: var(--color-muted);
      font-weight: 300;
      margin: 0;
    }

    /* Academy-page mobile */
    @media (max-width: 800px) {
      .academy-hero { padding: 80px 6vw 90px; min-height: auto; }
      .academy-hero-eyebrow {
        flex-direction: column;
        gap: 10px;
      }
      .academy-hero-eyebrow::before, .academy-hero-eyebrow::after { width: 60px; }
      .academy-hero .ctas { flex-direction: column; align-items: stretch; }
      .academy-hero .ctas .btn { width: 100%; text-align: center; }
      .academy-hero-bg-script { font-size: 70vw; }

      .academy-method { padding: 80px 6vw; }
      .method-pillars {
        grid-template-columns: 1fr;
        gap: 0;
      }
      .pillar { padding: 26px 0; }

      .academy-courses { padding: 80px 6vw 90px; }
      .course-feature {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 80px;
      }
      .course-feature.course-feature-reverse { direction: ltr; }
      .course-feature-actions { gap: 18px; }

      .academy-included { padding: 70px 6vw; }
      .included-grid {
        grid-template-columns: 1fr;
        gap: 36px;
      }

      .academy-faq { padding: 70px 6vw 80px; }
      .faq-question { padding: 24px 4px; gap: 18px; }
      .faq-text { font-size: 17px; }
      .faq-answer p { padding-left: 42px; padding-bottom: 24px; font-size: 14px; }
    }


       ABOUT PAGE — page-specific sections
       ═══════════════════════════════════════════════════════════ */

       /* About hero — meet the founder */
    .about-hero {
      position: relative;
      background:
        radial-gradient(ellipse at 100% 0%, rgba(255, 251, 253, 0.65) 0%, transparent 55%),
        radial-gradient(ellipse at 0% 100%, rgba(148, 123, 114, 0.1) 0%, transparent 55%),
        var(--color-blush);
      padding: 80px 6vw 110px;
      display: grid;
                  grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      min-height: 88vh;
      overflow: hidden;
    }
    .about-hero-bg-script {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(180px, 26vw, 420px);
      color: rgba(148, 123, 114, 0.08);
      bottom: -8%;
      right: -3%;
      line-height: 0.8;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
    }
    .about-hero-visual {
      position: relative;
      z-index: 1;
      align-self: stretch;
      max-height: 82vh;
      aspect-ratio: 1/1.1;
    }
    .about-hero-frame {
      position: absolute;
      top: 24px;
      left: 24px;
      width: 86%;
      height: 86%;
      border: 1px solid rgba(148, 123, 114, 0.45);
      z-index: 0;
      pointer-events: none;
    }
    .about-hero-image-primary {
      position: absolute;
      top: 0;
      left: 0;
      width: 82%;
      aspect-ratio: 4/5;
      overflow: hidden;
      z-index: 1;
      box-shadow: 0 40px 100px rgba(0, 0, 0, 0.18);
    }
    .about-hero-image-primary img,
    .about-hero-image-primary .image-placeholder {
      width: 100%;
      height: 100%;
    }
    .about-hero-image-primary img {
      object-fit: cover;
      display: block;
      animation: kenBurns 22s ease-in-out infinite alternate;
    }
    .about-hero-image-secondary {
      position: absolute;
      bottom: 0;
      right: 0;
      width: 50%;
      aspect-ratio: 3/4;
      overflow: hidden;
      z-index: 2;
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.22);
      border: 5px solid var(--color-blush);
    }
    .about-hero-image-secondary img,
    .about-hero-image-secondary .image-placeholder {
      width: 100%;
      height: 100%;
    }
    .about-hero-image-secondary img {
      object-fit: cover;
      display: block;
    }
    .about-hero-tag {
      position: absolute;
      top: 28px;
      left: 28px;
      background: rgba(255, 251, 253, 0.95);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      padding: 16px 22px;
      z-index: 3;
      border: 1px solid rgba(148, 123, 114, 0.2);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    }
    .about-hero-tag-name {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 20px;
      color: var(--color-charcoal);
      line-height: 1;
      margin: 0 0 5px;
    }
    .about-hero-tag-location {
      font-size: 8px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0;
    }

    .about-hero-content {
      position: relative;
      z-index: 2;
      max-width: 680px;
    }
    .about-hero h1 {
      overflow: hidden;
    }
    .about-hero h1 .word {
      display: inline-block;
      opacity: 0;
      transform: translateY(80%);
      animation: aboutHeroWord 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
      animation-delay: calc(var(--d, 1) * 0.11s + 0.15s);
    }
    @keyframes aboutHeroWord {
      to { opacity: 1; transform: translateY(0); }
    }
    .about-hero .ctas { margin-top: 8px; }

    .about-story-content p:first-of-type::first-letter {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 4.2em;
      line-height: 0.85;
      float: left;
      padding: 6px 14px 0 0;
      color: var(--color-taupe);
    }

    .about-story {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.45) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 100%, rgba(239, 225, 226, 0.35) 0%, transparent 55%),
        var(--color-cream);
      padding: 130px 6vw;
    }
    .about-story-inner {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1.05fr 1fr;
      gap: 90px;
      align-items: center;
    }
    .about-story-image {
      aspect-ratio: 4/5;
      position: relative;
    }
    .about-story-image .image-placeholder,
    .about-story-image img {
      width: 100%;
      height: 100%;
    }
    .about-story-image img {
      object-fit: cover;
      display: block;
    }
    .about-story-content { position: relative; }
    .about-story-content .eyebrow {
      margin-bottom: 28px;
    }
    .about-story-content h2 {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(40px, 5vw, 64px);
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      margin: 0 0 36px;
    }
    .about-story-content p {
      font-size: 16px;
      line-height: 1.85;
      color: var(--color-muted);
      margin: 0 0 22px;
      font-weight: 300;
      max-width: 540px;
    }
    .about-story-signature {
      font-family: 'Allura', cursive;
      font-size: 42px;
      color: var(--color-taupe);
      margin: 40px 0 0;
      line-height: 1;
    }

    .marquee-strip {
      background: var(--color-cream);
      border-top: 1px solid rgba(148, 123, 114, 0.15);
      border-bottom: 1px solid rgba(148, 123, 114, 0.15);
      padding: 38px 0;
      overflow: hidden;
      position: relative;
    }
    .marquee-strip-track {
      display: flex;
      width: max-content;
      align-items: center;
      animation: marqueeStrip 48s linear infinite;
    }
    .marquee-strip:hover .marquee-strip-track,
    .marquee-strip:focus-within .marquee-strip-track {
      animation-play-state: paused;
    }
    @keyframes marqueeStrip {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
    .marquee-strip-item {
      display: inline-flex;
      align-items: center;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(34px, 4.4vw, 64px);
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      white-space: nowrap;
      padding: 0 50px;
    }
    .marquee-strip-item::after {
      content: '✦';
      font-style: normal;
      font-size: 0.32em;
      color: var(--color-taupe);
      margin-left: 50px;
      position: relative;
      top: -0.18em;
    }

    .about-beliefs {
      position: relative;
      background:
        radial-gradient(ellipse at 0% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.08) 0%, transparent 55%),
        var(--color-blush);
      padding: 120px 6vw;
      overflow: hidden;
    }
    .beliefs-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      max-width: 1300px;
      margin: 0 auto;
    }
    .belief-card {
      background: var(--color-cream);
      padding: 54px 36px 42px;
      border: 1px solid rgba(148, 123, 114, 0.15);
      position: relative;
      overflow: hidden;
      transform-style: preserve-3d;
    }
    .belief-card.reveal {
      --tilt-x: 0deg;
      --tilt-y: 0deg;
      --hover-y: 0px;
      --reveal-y: 50px;
      opacity: 0;
      transform: perspective(1000px)
                 translateY(calc(var(--hover-y) + var(--reveal-y)))
                 rotateX(var(--tilt-x))
                 rotateY(var(--tilt-y));
      transition: opacity 1s ease,
                  transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
                  box-shadow 0.5s ease;
    }
    .belief-card.reveal.in-view {
      --reveal-y: 0px;
      opacity: 1;
    }
    .belief-card.reveal:hover {
      --hover-y: -8px;
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
    }
    .belief-card.is-tilting {
      transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1),
                  box-shadow 0.5s ease;
    }
    .belief-number {
      position: absolute;
      top: -16px;
      right: 18px;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 700;
      font-size: 130px;
      color: rgba(148, 123, 114, 0.09);
      line-height: 1;
      pointer-events: none;
      user-select: none;
      z-index: 0;
    }
    .belief-card > *:not(.belief-number) {
      position: relative;
      z-index: 1;
    }
    .belief-card h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 22px;
      line-height: 1.25;
      color: var(--color-charcoal);
      margin: 0 0 16px;
      letter-spacing: -0.005em;
    }
    .belief-card p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-muted);
      margin: 0;
      font-weight: 400;
    }

    .about-mission {
      position: relative;
      background:
        radial-gradient(ellipse at 25% 25%, #3d2f29 0%, transparent 55%),
        radial-gradient(ellipse at 80% 75%, rgba(148, 123, 114, 0.2) 0%, transparent 55%),
        #261c19;
      color: var(--color-cream);
      padding: 140px 6vw;
      text-align: center;
      overflow: hidden;
    }
    .about-mission-bg-icon {
      position: absolute;
      width: clamp(200px, 22vw, 360px);
      height: auto;
      color: rgba(239, 225, 226, 0.13);
      bottom: 10%;
      right: 6%;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      stroke-width: 1.2;
      transform: rotate(-12deg);
      filter: blur(2.5px);
    }
    .about-mission-content {
      position: relative;
      z-index: 1;
      max-width: 880px;
      margin: 0 auto;
    }
    .about-mission-content .cta-eyebrow {
      color: var(--color-blush);
      margin-bottom: 36px;
    }
    .about-mission-quote {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(28px, 3vw, 44px);
      line-height: 1.35;
      letter-spacing: -0.01em;
      color: var(--color-cream);
      margin: 0 0 44px;
    }
    .about-mission-quote .em {
      font-style: normal;
      color: var(--color-blush);
    }
    .about-mission .founder-quote-divider {
      margin-left: auto;
      margin-right: auto;
    }

    .about-credentials {
      background:
        radial-gradient(ellipse at 50% 50%, rgba(239, 225, 226, 0.35) 0%, transparent 60%),
        var(--color-cream);
      padding: 90px 6vw;
    }
    .credentials-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      max-width: 1200px;
      margin: 0 auto;
    }
    .cred-item {
      text-align: center;
      padding: 0 24px;
      border-right: 1px solid rgba(148, 123, 114, 0.18);
    }
    .cred-item:last-child { border-right: none; }
    .cred-number {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 400;
      font-size: clamp(56px, 5.4vw, 84px);
      line-height: 1;
      color: var(--color-taupe);
      margin: 0 0 14px;
      letter-spacing: -0.02em;
    }
    .cred-number span {
      font-size: 0.55em;
      vertical-align: super;
      margin-left: 2px;
    }
    .cred-label {
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-charcoal);
      font-weight: 600;
      margin: 0;
    }

    /* About-page mobile */
    @media (max-width: 800px) {
      .about-hero {
        grid-template-columns: 1fr;
        gap: 60px;
        padding: 40px 6vw 90px;
        min-height: auto;
      }
      .about-hero-visual { aspect-ratio: 1/1.05; max-height: none; }
      .about-hero-frame { top: 14px; left: 14px; }
      .about-hero-image-primary { width: 80%; }
      .about-hero-image-secondary { width: 52%; border-width: 4px; }
      .about-hero-tag {
        top: 14px;
        left: 14px;
        padding: 10px 14px;
      }
      .about-hero-tag-name { font-size: 16px; }
      .about-hero-bg-script { font-size: 56vw; bottom: -4%; }
      .about-hero .scroll-cue { display: none; }

      .about-story { padding: 80px 6vw; }
      .about-story-inner {
        grid-template-columns: 1fr;
        gap: 50px;
      }
      .about-story-content h2 { font-size: clamp(34px, 8vw, 50px); }

      .about-beliefs { padding: 80px 6vw; }
      .beliefs-grid {
        grid-template-columns: 1fr;
        gap: 22px;
      }
      .belief-card { padding: 44px 28px 36px; }
      .belief-number { font-size: 110px; top: -10px; right: 14px; }

      .about-mission { padding: 90px 6vw; }
      .about-mission-quote { font-size: clamp(24px, 5.5vw, 32px); margin-bottom: 32px; }
      .about-mission-bg-icon { width: clamp(140px, 38vw, 220px); bottom: 6%; right: 4%; }

      .about-credentials { padding: 60px 6vw; }
      .credentials-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 36px 0;
      }
      .cred-item {
        border-right: none;
        padding: 0 12px;
      }
      .cred-item:nth-child(odd) { border-right: 1px solid rgba(148, 123, 114, 0.18); }
    }


       CONTACT PAGE — page-specific sections
       ═══════════════════════════════════════════════════════════ */

    /* Contact hero — centred editorial declaration */
    .contact-hero {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(148, 123, 114, 0.1) 0%, transparent 55%),
        var(--color-blush);
      padding: 100px 6vw 90px;
      text-align: center;
      min-height: 60vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
    .contact-hero-bg-script {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(220px, 32vw, 520px);
      color: rgba(148, 123, 114, 0.07);
      bottom: -6%;
      left: 50%;
      transform: translateX(-50%);
      line-height: 0.85;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    .contact-hero-content {
      position: relative;
      z-index: 1;
      max-width: 880px;
      margin: 0 auto;
    }
    .contact-hero-eyebrow {
      font-size: 11px;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 32px;
      display: inline-flex;
      align-items: center;
      gap: 16px;
    }
    .contact-hero-eyebrow::before,
    .contact-hero-eyebrow::after {
      content: '';
      width: 42px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .contact-hero-headline {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(56px, 7vw, 108px);
      line-height: 0.98;
      letter-spacing: -0.025em;
      color: var(--color-charcoal);
      margin: 0 0 36px;
    }
    .contact-hero-headline .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.35em;
      color: var(--color-taupe);
      line-height: 0.7;
      display: inline-block;
      padding: 0 8px;
      transform: translateY(0.08em);
    }
    .contact-hero-subtitle {
      font-size: 16px;
      line-height: 1.85;
      color: var(--color-muted);
      font-weight: 300;
      max-width: 620px;
      margin: 0 auto;
    }

    /* Contact form section — two-column form + info */
    .contact-form-section {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.4) 0%, transparent 50%),
        var(--color-cream);
      padding: 110px 6vw;
    }
    .contact-form-grid {
      display: grid;
      grid-template-columns: 1.25fr 0.85fr;
      gap: 80px;
      max-width: 1280px;
      margin: 0 auto;
      align-items: start;
    }
    .contact-form-block .section-header { text-align: left; margin-bottom: 50px; }
    .contact-form-block .section-header h2 {
      font-size: clamp(34px, 4.2vw, 52px);
      margin-bottom: 0;
    }
    .contact-form-block .section-header .eyebrow {
      display: inline-block;
      margin-bottom: 20px;
    }

    /* Contact form */
    .contact-form {
      display: flex;
      flex-direction: column;
      gap: 28px;
    }
    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
    }
    .form-field {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .form-field label {
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
    }
    .form-field input,
    .form-field select,
    .form-field textarea {
      background: transparent;
      border: none;
      border-bottom: 1px solid rgba(148, 123, 114, 0.3);
      padding: 12px 0;
      font-family: 'Montserrat', sans-serif;
      font-size: 15px;
      color: var(--color-charcoal);
      letter-spacing: 0.01em;
      outline: none;
      transition: border-color 0.3s ease;
      width: 100%;
    }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus {
      border-bottom-color: var(--color-taupe);
    }
    .form-field textarea {
      resize: vertical;
      min-height: 110px;
      line-height: 1.6;
      font-family: 'Montserrat', sans-serif;
    }
    .form-field select {
      appearance: none;
      -webkit-appearance: none;
      cursor: pointer;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23947B72' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 0 center;
      background-size: 16px 16px;
      padding-right: 24px;
    }
    .contact-form button[type="submit"] {
      align-self: flex-start;
      margin-top: 14px;
    }

    /* Contact info aside */
    .contact-info-block {
      background: var(--color-blush);
      padding: 44px 36px;
      position: relative;
    }
    .contact-info-block .eyebrow {
      margin-bottom: 26px;
      display: block;
    }
    .contact-info-items {
      display: flex;
      flex-direction: column;
      gap: 28px;
      margin-bottom: 40px;
    }
    .contact-info-label {
      font-size: 9px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 6px;
    }
    .contact-info-value {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 17px;
      line-height: 1.5;
      color: var(--color-charcoal);
      margin: 0;
      text-decoration: none;
      display: block;
      transition: color 0.3s ease;
    }
    a.contact-info-value:hover { color: var(--color-taupe); }
    .contact-social {
      padding-top: 28px;
      border-top: 1px solid rgba(148, 123, 114, 0.25);
      margin-bottom: 32px;
    }
    .contact-social .eyebrow { margin-bottom: 18px; }
    .contact-social-links {
      display: flex;
      gap: 24px;
    }
    .contact-social-links a {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 16px;
      color: var(--color-charcoal);
      text-decoration: none;
      transition: color 0.3s ease;
    }
    .contact-social-links a:hover { color: var(--color-taupe); }
    .contact-livechat {
      padding-top: 28px;
      border-top: 1px solid rgba(148, 123, 114, 0.25);
    }
    .contact-livechat-text {
      font-size: 13px;
      line-height: 1.7;
      color: var(--color-muted);
      margin: 0;
      font-weight: 300;
    }
    .contact-livechat-text strong {
      font-weight: 500;
      color: var(--color-charcoal);
      font-style: italic;
    }

    /* Studio location section — map */
    .contact-studio {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.6) 0%, transparent 50%),
        var(--color-blush);
      padding: 110px 6vw 120px;
    }
    .contact-studio .section-header {
      margin-bottom: 50px;
    }
    .studio-map {
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      box-shadow: 0 30px 70px rgba(0, 0, 0, 0.1);
      overflow: hidden;
    }
    .studio-map iframe {
      width: 100%;
      height: 480px;
      border: 0;
      display: block;
      filter: grayscale(0.4) sepia(0.12) brightness(1.02);
    }

    /* Contact-page mobile */
    @media (max-width: 800px) {
      .contact-hero { padding: 70px 6vw 70px; min-height: auto; }
      .contact-hero-eyebrow {
        flex-direction: column;
        gap: 10px;
      }
      .contact-hero-eyebrow::before, .contact-hero-eyebrow::after { width: 60px; }
      .contact-hero-bg-script { font-size: 70vw; }

      .contact-form-section { padding: 70px 6vw; }
      .contact-form-grid {
        grid-template-columns: 1fr;
        gap: 50px;
      }
      .form-row {
        grid-template-columns: 1fr;
        gap: 28px;
      }
      .contact-info-block { padding: 36px 28px; }

      .contact-studio { padding: 70px 6vw 80px; }
      .studio-map iframe { height: 360px; }
    }


       SHOP PAGE — page-specific sections
       ═══════════════════════════════════════════════════════════ */

    /* Shop hero — centered editorial */
    .shop-hero {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.7) 0%, transparent 55%),
        radial-gradient(ellipse at 50% 100%, rgba(148, 123, 114, 0.1) 0%, transparent 55%),
        var(--color-blush);
      padding: 100px 6vw 90px;
      text-align: center;
      min-height: 60vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }
    .shop-hero-bg-script {
      position: absolute;
      font-family: 'Allura', cursive;
      font-size: clamp(220px, 32vw, 520px);
      color: rgba(148, 123, 114, 0.07);
      bottom: -6%;
      left: 50%;
      transform: translateX(-50%);
      line-height: 0.85;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    .shop-hero-content {
      position: relative;
      z-index: 1;
      max-width: 880px;
      margin: 0 auto;
    }
    .shop-hero-eyebrow {
      font-size: 11px;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 32px;
      display: inline-flex;
      align-items: center;
      gap: 16px;
    }
    .shop-hero-eyebrow::before,
    .shop-hero-eyebrow::after {
      content: '';
      width: 42px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .shop-hero-headline {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(56px, 7vw, 108px);
      line-height: 0.98;
      letter-spacing: -0.025em;
      color: var(--color-charcoal);
      margin: 0 0 36px;
    }
    .shop-hero-headline .script {
      font-family: 'Allura', cursive;
      font-weight: 400;
      font-size: 1.35em;
      color: var(--color-taupe);
      line-height: 0.7;
      display: inline-block;
      padding: 0 8px;
      transform: translateY(0.08em);
    }
    .shop-hero-subtitle {
      font-size: 16px;
      line-height: 1.85;
      color: var(--color-muted);
      font-weight: 300;
      max-width: 620px;
      margin: 0 auto;
    }

    /* Featured product — magazine spread */
    .shop-featured {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.4) 0%, transparent 50%),
        var(--color-cream);
      padding: 120px 6vw;
    }
    .shop-featured-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 90px;
      align-items: center;
      max-width: 1280px;
      margin: 0 auto;
    }
    .shop-featured-image {
      aspect-ratio: 4/5;
      position: relative;
    }
    .shop-featured-image .image-placeholder,
    .shop-featured-image img {
      width: 100%;
      height: 100%;
    }
    .shop-featured-image img {
      object-fit: cover;
      display: block;
    }
    .shop-featured-content { position: relative; }
    .shop-featured-tag {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      font-size: 10px;
      letter-spacing: 0.34em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 24px;
    }
    .shop-featured-tag::before {
      content: '';
      width: 28px;
      height: 1px;
      background: currentColor;
    }
    .shop-featured h2 {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(36px, 4.4vw, 56px);
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: var(--color-charcoal);
      margin: 0 0 26px;
    }
    .shop-featured-desc {
      font-size: 16px;
      line-height: 1.8;
      color: var(--color-muted);
      font-weight: 300;
      margin: 0 0 28px;
      max-width: 540px;
    }
    .shop-featured-list {
      list-style: none;
      padding: 0;
      margin: 0 0 36px;
      max-width: 540px;
    }
    .shop-featured-list li {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 13px;
      line-height: 1.65;
      color: var(--color-charcoal);
      margin-bottom: 12px;
      letter-spacing: 0.01em;
    }
    .shop-featured-list li::before {
      content: '';
      width: 5px;
      height: 5px;
      background: var(--color-taupe);
      transform: rotate(45deg);
      flex-shrink: 0;
      margin-top: 8px;
    }
    .shop-featured-buy {
      display: flex;
      align-items: center;
      gap: 28px;
      flex-wrap: wrap;
    }
    .shop-featured-price {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 32px;
      color: var(--color-taupe);
      letter-spacing: -0.01em;
    }

    /* Product grid */
    .shop-grid-section {
      background:
        radial-gradient(ellipse at 0% 0%, rgba(255, 251, 253, 0.6) 0%, transparent 50%),
        radial-gradient(ellipse at 100% 100%, rgba(148, 123, 114, 0.08) 0%, transparent 50%),
        var(--color-blush);
      padding: 120px 6vw;
    }
    .shop-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px;
      max-width: 1300px;
      margin: 0 auto;
    }
    .product-card {
      background: var(--color-cream);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      position: relative;
      transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
    }
    .product-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
    }
    .product-card-image {
      aspect-ratio: 4/5;
      overflow: hidden;
      position: relative;
    }
    .product-card-image .image-placeholder,
    .product-card-image img {
      width: 100%;
      height: 100%;
      display: block;
    }
    .product-card-image img {
      object-fit: cover;
      transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .product-card:hover .product-card-image img {
      transform: scale(1.05);
    }
    .product-card-content {
      padding: 32px 30px 36px;
      display: flex;
      flex-direction: column;
      flex-grow: 1;
    }
    .product-card-tag {
      font-size: 10px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 500;
      margin: 0 0 14px;
    }
    .product-card h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 22px;
      line-height: 1.25;
      color: var(--color-charcoal);
      margin: 0 0 14px;
      letter-spacing: -0.005em;
    }
    .product-card-desc {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-muted);
      margin: 0 0 24px;
      flex-grow: 1;
    }
    .product-card-buy {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 16px;
      padding-top: 22px;
      border-top: 1px solid rgba(148, 123, 114, 0.18);
    }
    .product-card-price {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 22px;
      color: var(--color-taupe);
      letter-spacing: -0.01em;
    }
    .product-card-price del {
      font-size: 14px;
      color: var(--color-muted);
      font-style: normal;
      font-weight: 400;
      margin-right: 8px;
      text-decoration: line-through;
      opacity: 0.7;
    }
    .product-card-add {
      font-size: 11px;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      text-decoration: none;
      border-bottom: 1px solid var(--color-taupe);
      padding-bottom: 4px;
      transition: color 0.2s ease, border-color 0.2s ease;
    }
    .product-card-add:hover {
      color: var(--color-charcoal);
      border-color: var(--color-charcoal);
    }

    /* What's included with every order */
    .shop-included {
      background:
        radial-gradient(ellipse at 50% 50%, rgba(239, 225, 226, 0.3) 0%, transparent 60%),
        var(--color-cream);
      padding: 110px 6vw;
    }
    .shop-included-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 40px;
      max-width: 1280px;
      margin: 0 auto;
    }
    .shop-included-item {
      text-align: center;
      padding: 0 16px;
    }
    .shop-included-item svg {
      width: 36px;
      height: 36px;
      color: var(--color-taupe);
      margin: 0 auto 22px;
      display: block;
      stroke-width: 1.2;
      opacity: 0.85;
    }
    .shop-included-item h4 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: 17px;
      line-height: 1.3;
      color: var(--color-charcoal);
      margin: 0 0 10px;
      letter-spacing: 0.01em;
    }
    .shop-included-item p {
      font-size: 13px;
      line-height: 1.65;
      color: var(--color-muted);
      margin: 0;
      font-weight: 400;
    }

    /* Shop-page mobile */
    @media (max-width: 800px) {
      .shop-hero { padding: 70px 6vw 70px; min-height: auto; }
      .shop-hero-eyebrow { flex-direction: column; gap: 10px; }
      .shop-hero-eyebrow::before, .shop-hero-eyebrow::after { width: 60px; }
      .shop-hero-bg-script { font-size: 70vw; }

      .shop-featured { padding: 70px 6vw; }
      .shop-featured-inner { grid-template-columns: 1fr; gap: 50px; }
      .shop-featured-buy { gap: 20px; }

      .shop-grid-section { padding: 70px 6vw; }
      .shop-grid { grid-template-columns: 1fr; gap: 24px; }

      .shop-included { padding: 70px 6vw; }
      .shop-included-grid { grid-template-columns: repeat(2, 1fr); gap: 40px 16px; }
    }


       LEGAL PAGES — shared layout (Terms · Privacy · Refund)
       ═══════════════════════════════════════════════════════════ */

    /* Compact hero — page title + last updated date */
    .legal-hero {
      position: relative;
      background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 251, 253, 0.65) 0%, transparent 55%),
        var(--color-blush);
      padding: 90px 6vw 80px;
      text-align: center;
      overflow: hidden;
    }
    .legal-hero-eyebrow {
      font-size: 10px;
      letter-spacing: 0.36em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 22px;
      display: inline-flex;
      align-items: center;
      gap: 14px;
    }
    .legal-hero-eyebrow::before,
    .legal-hero-eyebrow::after {
      content: '';
      width: 38px;
      height: 1px;
      background: currentColor;
      opacity: 0.55;
    }
    .legal-hero-title {
      font-family: 'Playfair Display', serif;
      font-weight: 400;
      font-size: clamp(40px, 5vw, 72px);
      line-height: 1.05;
      letter-spacing: -0.02em;
      color: var(--color-charcoal);
      margin: 0 0 20px;
    }
    .legal-hero-meta {
      font-size: 11px;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 500;
      margin: 0;
      opacity: 0.85;
    }

    /* Body — two-column with sticky TOC */
    .legal-body {
      background:
        radial-gradient(ellipse at 50% 0%, rgba(239, 225, 226, 0.35) 0%, transparent 50%),
        var(--color-cream);
      padding: 90px 6vw 130px;
    }
    .legal-body-inner {
      display: grid;
      grid-template-columns: 220px 1fr;
      gap: 90px;
      max-width: 1180px;
      margin: 0 auto;
      align-items: start;
    }

    .legal-toc {
      position: sticky;
      top: 40px;
    }
    .legal-toc-eyebrow {
      font-size: 9px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--color-taupe);
      font-weight: 600;
      margin: 0 0 22px;
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(148, 123, 114, 0.2);
    }
    .legal-toc-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .legal-toc-list a {
      display: flex;
      align-items: baseline;
      gap: 10px;
      font-size: 12px;
      line-height: 1.5;
      color: var(--color-muted);
      text-decoration: none;
      letter-spacing: 0.02em;
      transition: color 0.3s ease;
    }
    .legal-toc-list a:hover { color: var(--color-taupe); }
    .legal-toc-list a span {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 11px;
      color: var(--color-taupe);
      flex-shrink: 0;
      min-width: 16px;
      opacity: 0.8;
    }

    /* Long-form content */
    .legal-content {
      max-width: 720px;
      color: var(--color-charcoal);
    }
    .legal-content h2 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-size: clamp(24px, 2.2vw, 30px);
      line-height: 1.25;
      letter-spacing: -0.005em;
      color: var(--color-charcoal);
      margin: 56px 0 18px;
      scroll-margin-top: 100px;
    }
    .legal-content h2:first-child { margin-top: 0; }
    .legal-content h2 .num {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-weight: 500;
      font-size: 0.65em;
      color: var(--color-taupe);
      margin-right: 12px;
    }
    .legal-content h3 {
      font-family: 'Playfair Display', serif;
      font-weight: 500;
      font-style: italic;
      font-size: 17px;
      color: var(--color-charcoal);
      margin: 28px 0 10px;
      letter-spacing: 0.01em;
    }
    .legal-content p {
      font-size: 15px;
      line-height: 1.85;
      color: var(--color-muted);
      margin: 0 0 16px;
      font-weight: 400;
    }
    .legal-content strong {
      color: var(--color-charcoal);
      font-weight: 500;
    }
    .legal-content ul {
      list-style: none;
      padding: 0;
      margin: 0 0 22px;
    }
    .legal-content ul li {
      display: flex;
      gap: 14px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--color-muted);
      margin-bottom: 8px;
      padding-left: 4px;
    }
    .legal-content ul li::before {
      content: '';
      width: 5px;
      height: 5px;
      background: var(--color-taupe);
      transform: rotate(45deg);
      flex-shrink: 0;
      margin-top: 11px;
    }
    .legal-content a {
      color: var(--color-taupe);
      text-decoration: none;
      border-bottom: 1px solid currentColor;
      padding-bottom: 1px;
      transition: color 0.2s ease;
    }
    .legal-content a:hover { color: var(--color-charcoal); }
    .legal-content hr {
      border: none;
      border-top: 1px solid rgba(148, 123, 114, 0.25);
      margin: 56px 0;
      width: 100px;
    }
    .legal-callout {
      background: rgba(239, 225, 226, 0.45);
      border-left: 2px solid var(--color-taupe);
      padding: 22px 28px;
      margin: 28px 0;
    }
    .legal-callout p { margin: 0; font-size: 14px; line-height: 1.7; }
    .legal-callout p + p { margin-top: 12px; }
    .legal-callout strong { color: var(--color-taupe); }

    /* Mobile */
    @media (max-width: 800px) {
      .legal-hero { padding: 60px 6vw 60px; }
      .legal-hero-eyebrow { flex-direction: row; }

      .legal-body { padding: 60px 6vw 90px; }
      .legal-body-inner {
        grid-template-columns: 1fr;
        gap: 40px;
      }
      .legal-toc {
        position: static;
        padding: 24px 24px;
        background: var(--color-blush);
      }
      .legal-content h2 { margin-top: 44px; }
    }
