*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --forest:       #2D4A2D;
      --forest-mid:   #3E6B3E;
      --forest-light: #5A8F5A;
      --forest-pale:  #C5D9C0;
      --beige:        #F5F0E8;
      --beige-warm:   #EDE5D5;
      --beige-deep:   #D4C4A8;
      --accent:       #8B6914;
      --accent-light: #C9A84C;
      --cream:        #FAF7F2;
      --text-dark:    #1A2A1A;
      --text-mid:     #3D5C3D;
      --text-muted:   #7A8C7A;
      --white:        #FFFFFF;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      font-weight: 300;
      background: var(--cream);
      color: var(--text-dark);
      overflow-x: hidden;
    }

    
    /* ════════════════════════════
       SHARED UTILITIES
    ════════════════════════════ */
    .container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 2rem;
    }

    .section-eyebrow {
      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--forest-mid);
      margin-bottom: 1rem;
      display: flex; align-items: center; gap: 0.75rem;
    }
    
    .section-eyebrow.light { color: var(--forest-pale); }
    .section-eyebrow.light::before { background: var(--forest-pale); }
    .section-eyebrow.centered { justify-content: center; }

    .section-heading {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 3.5vw, 3rem);
      line-height: 1.2; color: var(--text-dark);
      margin-bottom: 1rem;
    }
    .section-heading.white { color: var(--white); }

    .section-sub {
      font-size: 1rem; line-height: 1.8;
      color: var(--text-mid); font-weight: 300;
      max-width: 580px;
    }

    .btn-primary {
      display: inline-flex; align-items: center; gap: 0.5rem;
      background: var(--forest); color: var(--cream);
      padding: 0.9rem 2rem; border-radius: 3rem; font-size: 0.95rem;
      font-family: 'DM Sans', sans-serif; font-weight: 500;
      text-decoration: none; transition: all 0.25s;
      cursor: pointer; border: none;
    }
    .btn-primary:hover { background: var(--forest-mid); transform: translateY(-1px); }

    .btn-outline {
      display: inline-flex; align-items: center; gap: 0.5rem;
      background: transparent; color: var(--forest);
      padding: 0.9rem 2rem; border-radius: 3rem; font-size: 0.95rem;
      font-family: 'DM Sans', sans-serif; font-weight: 500;
      text-decoration: none; transition: all 0.25s;
      border: 1.5px solid var(--forest);
    }
    .btn-outline:hover { background: var(--forest-pale); }

    .btn-white {
      display: inline-flex; align-items: center; gap: 0.5rem;
      background: var(--white); color: var(--forest);
      padding: 0.9rem 2rem; border-radius: 3rem; font-size: 0.95rem;
      font-family: 'DM Sans', sans-serif; font-weight: 500;
      text-decoration: none; transition: all 0.25s;
      border: none; cursor: pointer;
    }
    .btn-white:hover { background: var(--forest-pale); transform: translateY(-1px); }

    .btn-outline-white {
      display: inline-flex; align-items: center; gap: 0.5rem;
      background: transparent; color: var(--white);
      padding: 0.9rem 2rem; border-radius: 3rem; font-size: 0.95rem;
      font-family: 'DM Sans', sans-serif; font-weight: 500;
      text-decoration: none; transition: all 0.25s;
      border: 1.5px solid rgba(255,255,255,0.5);
    }
    .btn-outline-white:hover { background: rgba(255,255,255,0.1); border-color: var(--white); }

    /* ════════════════════════════
       HERO — bg-forest
    ════════════════════════════ */
    .consult-hero {
      background: var(--forest);
      padding: 10rem 2rem 7rem;
      position: relative;
      overflow: hidden;
    }
    .consult-hero::before {
      content: '';
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 70% at 75% 40%, rgba(90,143,90,0.2) 0%, transparent 65%);
      pointer-events: none;
    }
    .consult-hero::after {
      content: '';
      position: absolute; bottom: -2px; left: 0; right: 0;
      height: 80px;
      background: var(--white);
      clip-path: ellipse(55% 100% at 50% 100%);
      pointer-events: none;
    }
    .consult-hero-inner {
      max-width: 1200px; margin: 0 auto;
      position: relative; z-index: 2;
    }
    .consult-hero-eyebrow {
      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--forest-pale);
      display: flex; align-items: center; gap: 0.75rem;
      margin-bottom: 1.75rem;
    }
    
    .consult-hero h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2.8rem, 5vw, 4.4rem);
      font-weight: 600; line-height: 1.1;
      color: var(--white); max-width: 700px;
      margin-bottom: 1.5rem;
    }
    .consult-hero h1 em { color: var(--accent-light); font-style: italic; }
    .consult-hero-sub {
      font-size: 1.05rem; line-height: 1.8;
      color: var(--forest-pale); font-weight: 300;
      max-width: 560px; margin-bottom: 3rem;
    }
    .consult-hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

    /* Hero quick-links strip */
    .consult-hero-quicklinks {
      display: flex; gap: 1rem; margin-top: 3.5rem;
      padding-top: 2.5rem;
      border-top: 1px solid rgba(255,255,255,0.1);
      flex-wrap: wrap;
    }
    .consult-quicklink {
      display: flex; align-items: center; gap: 0.65rem;
      font-size: 0.82rem; color: var(--forest-pale);
      text-decoration: none;
      padding: 0.55rem 1.1rem;
      border-radius: 2rem;
      border: 1px solid rgba(255,255,255,0.15);
      transition: all 0.2s;
    }
    .consult-quicklink:hover {
      background: rgba(255,255,255,0.1);
      color: var(--white);
      border-color: rgba(255,255,255,0.35);
    }
    .consult-quicklink-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--accent-light); flex-shrink: 0;
    }

    /* ════════════════════════════
       SECTION SPACINGS
    ════════════════════════════ */
    .section-white   { background: var(--white);      padding: 6rem 2rem; }
    .section-beige   { background: var(--beige);      padding: 6rem 2rem; }
    .section-forest  { background: var(--forest);     padding: 6rem 2rem; }
    .section-beige-warm { background: var(--beige-warm); padding: 6rem 2rem; }

    /* ════════════════════════════
       TWO-COLUMN SERVICE LAYOUT
    ════════════════════════════ */
    .service-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5rem;
      align-items: start;
    }
    .service-layout.reversed {
      direction: rtl;
    }
    .service-layout.reversed > * {
      direction: ltr;
    }

    .service-text-col { display: flex; flex-direction: column; gap: 0; }

    .service-label {
      display: inline-flex; align-items: center; gap: 0.5rem;
      font-size: 0.68rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--forest-mid);
      margin-bottom: 1.25rem;
    }
    

    .service-heading {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      line-height: 1.2; color: var(--text-dark);
      margin-bottom: 1.25rem;
    }

    .service-desc {
      font-size: 1rem; line-height: 1.85;
      color: var(--text-mid); font-weight: 300;
      margin-bottom: 1.5rem;
    }

    .service-meta-tag {
      display: inline-flex; align-items: center; gap: 0.5rem;
      font-size: 0.78rem; color: var(--accent);
      letter-spacing: 0.04em; margin-bottom: 2rem;
      font-weight: 500;
    }
    .service-meta-tag::before {
      content: ''; width: 8px; height: 8px;
      border-radius: 50%; background: var(--accent-light);
      display: block; flex-shrink: 0;
    }

    .service-cta-row {
      display: flex; gap: 0.85rem; flex-wrap: wrap;
      margin-top: 2rem;
    }

    /* What You Receive checklist card */
    .checklist-card {
      background: var(--white);
      border-radius: 1.5rem;
      padding: 2rem 2.25rem;
      box-shadow: 0 8px 40px rgba(45,74,45,0.08);
      border: 1px solid rgba(45,74,45,0.06);
    }
    .checklist-card-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.15rem; color: var(--text-dark);
      margin-bottom: 1.5rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid var(--beige-deep);
    }
    .checklist-item {
      display: flex; align-items: flex-start; gap: 0.85rem;
      padding: 0.8rem 0;
      border-bottom: 1px solid var(--beige);
    }
    .checklist-item:last-child { border-bottom: none; padding-bottom: 0; }
    .checklist-icon {
      width: 22px; height: 22px; border-radius: 50%;
      background: var(--forest); color: var(--white);
      display: flex; align-items: center; justify-content: center;
      font-size: 0.65rem; flex-shrink: 0; margin-top: 0.1rem;
    }
    .checklist-text { font-size: 0.9rem; line-height: 1.65; color: var(--text-mid); font-weight: 300; }
    .checklist-text strong { color: var(--text-dark); font-weight: 500; }

    /* Fragrance service visual panel */
    .fragrance-visual-panel {
      position: relative;
    }
    .fragrance-feature-card {
      background: linear-gradient(145deg, var(--forest) 0%, var(--forest-mid) 100%);
      border-radius: 2rem;
      padding: 2.75rem;
      color: var(--white);
      position: relative;
      overflow: hidden;
      margin-bottom: 1.5rem;
    }
    .fragrance-feature-card::before {
      content: '🌿';
      position: absolute; top: 1.5rem; right: 2rem;
      font-size: 3.5rem; opacity: 0.15;
    }
    .ffcard-eyebrow {
      font-size: 0.68rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--forest-pale);
      margin-bottom: 0.75rem;
    }
    .ffcard-heading {
      font-family: 'Playfair Display', serif;
      font-size: 1.5rem; color: var(--white);
      line-height: 1.3; margin-bottom: 1rem;
    }
    .ffcard-body {
      font-size: 0.88rem; line-height: 1.75;
      color: var(--forest-pale); font-weight: 300;
      margin-bottom: 1.5rem;
    }
    .ffcard-detail {
      font-size: 0.75rem; color: var(--accent-light);
      letter-spacing: 0.06em;
    }
    .fragrance-mini-cards {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
    }
    .fragrance-mini-card {
      background: var(--beige);
      border-radius: 1.25rem;
      padding: 1.25rem;
    }
    .fmc-icon { font-size: 1.4rem; margin-bottom: 0.6rem; }
    .fmc-title {
      font-size: 0.85rem; font-weight: 500;
      color: var(--text-dark); margin-bottom: 0.35rem;
    }
    .fmc-body { font-size: 0.78rem; color: var(--text-muted); line-height: 1.6; font-weight: 300; }

    /* ════════════════════════════
       HEALTHCARE ADVISORY MODULE
    ════════════════════════════ */
    .healthcare-visual-panel { position: relative; }

    .healthcare-feature-card {
      background: var(--beige-warm);
      border-radius: 2rem;
      padding: 2.75rem;
      border: 1px solid var(--beige-deep);
      position: relative;
      overflow: hidden;
      margin-bottom: 1.5rem;
    }
    .healthcare-feature-card::before {
      content: '🏥';
      position: absolute; top: 1.5rem; right: 2rem;
      font-size: 3rem; opacity: 0.18;
    }
    .hfcard-eyebrow {
      font-size: 0.68rem; font-weight: 500; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--text-muted);
      margin-bottom: 0.75rem;
    }
    .hfcard-heading {
      font-family: 'Playfair Display', serif;
      font-size: 1.4rem; color: var(--text-dark);
      line-height: 1.3; margin-bottom: 1rem;
    }
    .hfcard-body {
      font-size: 0.88rem; line-height: 1.75;
      color: var(--text-mid); font-weight: 300;
      margin-bottom: 1.5rem;
    }
    .hfcard-detail {
      font-size: 0.75rem; color: var(--accent);
      letter-spacing: 0.04em; font-weight: 500;
    }

    .healthcare-mini-cards {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
    }
    .healthcare-mini-card {
      background: var(--white);
      border-radius: 1.25rem;
      padding: 1.25rem;
      border: 1px solid var(--beige-deep);
    }
    .hmc-icon { font-size: 1.4rem; margin-bottom: 0.6rem; }
    .hmc-title {
      font-size: 0.85rem; font-weight: 500;
      color: var(--text-dark); margin-bottom: 0.35rem;
    }
    .hmc-body { font-size: 0.78rem; color: var(--text-muted); line-height: 1.6; font-weight: 300; }

    /* ════════════════════════════
       DISCLAIMER BOX — Section 11.3
       PRD spec: beige background, 4px solid accent-light left border,
       padding 1rem 1.25rem, border-radius 0.75rem
    ════════════════════════════ */
    .disclaimer-box {
      background: var(--beige);
      border-left: 4px solid var(--accent-light);
      padding: 1.25rem 1.5rem;
      border-radius: 0.75rem;
      margin-top: 2rem;
    }
    .disclaimer-box-header {
      display: flex; align-items: center; gap: 0.65rem;
      margin-bottom: 0.85rem;
    }
    .disclaimer-box-icon {
      width: 28px; height: 28px; border-radius: 50%;
      background: var(--accent-light); color: var(--white);
      display: flex; align-items: center; justify-content: center;
      font-size: 0.75rem; font-weight: 700; flex-shrink: 0;
    }
    .disclaimer-box-label {
      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.1em;
      text-transform: uppercase; color: var(--accent);
    }
    .disclaimer-box-text {
      font-size: 0.88rem; line-height: 1.8;
      color: var(--text-mid); font-weight: 300;
    }
    .disclaimer-box-text a {
      color: var(--accent); text-decoration: underline;
    }
    .disclaimer-box-text a:hover { color: var(--forest); }

    /* ════════════════════════════
       HOW IT WORKS — 4-step timeline
    ════════════════════════════ */
    .how-it-works { background: var(--white); padding: 6rem 2rem; }
    .how-header { text-align: center; margin-bottom: 4rem; }
    .steps-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      position: relative;
      max-width: 1100px;
      margin: 0 auto;
    }
    /* Connecting line between steps */
    .steps-grid::before {
      content: '';
      position: absolute;
      top: 2.1rem; left: calc(12.5% + 1.5rem); right: calc(12.5% + 1.5rem);
      height: 2px;
      background: linear-gradient(90deg, var(--forest-pale), var(--forest), var(--forest-pale));
      z-index: 0;
    }
    .step-item {
      display: flex; flex-direction: column;
      align-items: center; text-align: center;
      padding: 0 1.25rem;
      position: relative; z-index: 1;
    }
    .step-num {
      width: 48px; height: 48px; border-radius: 50%;
      background: var(--forest); color: var(--white);
      display: flex; align-items: center; justify-content: center;
      font-family: 'Playfair Display', serif;
      font-size: 1.05rem; font-weight: 600;
      margin-bottom: 1.25rem;
      box-shadow: 0 4px 18px rgba(45,74,45,0.22);
      flex-shrink: 0;
    }
    .step-title {
      font-family: 'Playfair Display', serif;
      font-size: 1rem; color: var(--text-dark);
      margin-bottom: 0.65rem; line-height: 1.3;
    }
    .step-body {
      font-size: 0.84rem; color: var(--text-muted);
      line-height: 1.7; font-weight: 300;
    }

    /* ════════════════════════════
       BOOKING SECTION — Calendly
    ════════════════════════════ */
    .booking-section {
      background: var(--beige);
      padding: 6rem 2rem;
    }
    .booking-inner {
      max-width: 900px; margin: 0 auto;
    }
    .booking-header {
      text-align: center; margin-bottom: 3.5rem;
    }
    .booking-header h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 3.5vw, 3rem);
      color: var(--text-dark); line-height: 1.2;
      margin-bottom: 1rem;
    }
    .booking-header p {
      font-size: 1rem; color: var(--text-mid);
      line-height: 1.8; font-weight: 300;
      max-width: 540px; margin: 0 auto;
    }

    /* Calendly embed wrapper */
    .calendly-embed-container {
      background: var(--white);
      border-radius: 2rem;
      overflow: hidden;
      box-shadow: 0 12px 60px rgba(45,74,45,0.1);
      border: 1px solid rgba(45,74,45,0.07);
    }
    .calendly-embed-placeholder {
      min-height: 660px;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 1.25rem;
      padding: 4rem 2rem;
      text-align: center;
    }
    .calendly-placeholder-icon {
      width: 72px; height: 72px; border-radius: 1.5rem;
      background: var(--beige);
      display: flex; align-items: center; justify-content: center;
      font-size: 2rem; margin-bottom: 0.5rem;
    }
    .calendly-placeholder-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.35rem; color: var(--text-dark);
    }
    .calendly-placeholder-sub {
      font-size: 0.9rem; color: var(--text-muted);
      line-height: 1.7; max-width: 420px; font-weight: 300;
    }
    .calendly-placeholder-tag {
      font-size: 0.72rem; font-weight: 500; letter-spacing: 0.1em;
      text-transform: uppercase; color: var(--text-muted);
      padding: 0.4rem 1rem; border-radius: 2rem;
      border: 1px solid var(--beige-deep);
    }

    /* Fallback note below Calendly */
    .booking-fallback {
      text-align: center; margin-top: 2rem;
    }
    .booking-fallback p {
      font-size: 0.88rem; color: var(--text-muted); line-height: 1.7;
    }
    .booking-fallback a {
      color: var(--forest); font-weight: 500; text-decoration: none;
    }
    .booking-fallback a:hover { text-decoration: underline; }

    /* ════════════════════════════
       CLOSING CTA — bg-forest
    ════════════════════════════ */
    .consult-cta {
      background: var(--forest);
      padding: 6rem 2rem;
      text-align: center;
    }
    .consult-cta-inner { max-width: 580px; margin: 0 auto; }
    .consult-cta h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 3.5vw, 3rem);
      color: var(--white); line-height: 1.2; margin-bottom: 1.25rem;
    }
    .consult-cta p {
      font-size: 1rem; color: var(--forest-pale);
      line-height: 1.8; margin-bottom: 2.5rem; font-weight: 300;
    }
    .consult-cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

    
    /* ════════════════════════════
       RESPONSIVE
    ════════════════════════════ */
    @media (max-width: 1024px) {
      
    }
    @media (max-width: 900px) {
      

      .consult-hero { padding: 8rem 1.5rem 5rem; }
      .consult-hero::after { display: none; }

      .section-white,
      .section-beige,
      .section-forest,
      .section-beige-warm,
      .how-it-works,
      .booking-section,
      .consult-cta { padding: 4rem 1.5rem; }

      .service-layout,
      .service-layout.reversed {
        grid-template-columns: 1fr;
        direction: ltr;
        gap: 2.5rem;
      }
      .service-layout.reversed > * { direction: ltr; }

      .steps-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
      }
      .steps-grid::before { display: none; }
      .step-item { flex-direction: row; text-align: left; gap: 1.25rem; align-items: flex-start; }
      .step-num { flex-shrink: 0; }

      .fragrance-mini-cards,
      .healthcare-mini-cards { grid-template-columns: 1fr; }

      .consult-cta-actions { flex-direction: column; align-items: center; }

      
    }

    /* Entry animation */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .hero-animate > * { animation: fadeUp 0.7s ease both; }
    .hero-animate > *:nth-child(1) { animation-delay: 0.08s; }
    .hero-animate > *:nth-child(2) { animation-delay: 0.2s; }
    .hero-animate > *:nth-child(3) { animation-delay: 0.34s; }
    .hero-animate > *:nth-child(4) { animation-delay: 0.48s; }
    .hero-animate > *:nth-child(5) { animation-delay: 0.6s; }