@font-face {
  font-family: 'Lora';
  src: url('../content/Lora-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'Nunito-Sans';
  src: url('../content/NunitoSans.ttf') format('truetype');
  font-weight: 700;
  font-style: bold;
}
@font-face {
  font-family: 'Fields';
  src: url('../content/Fields-SemiBold.otf') format('opentype');
  font-weight: 600; /* semibold */
  font-style: normal;
}

    :root {
      --blue:    #5985C4;
      --sky:     #9BB6DC;
      --linen:   #F7F1E4;
      --olive:   #68672B;
      --sage:    #BAAF69;
      --blush:   #F4C5B4;
      --clay:    #C6803D;
      --white:   #FFFFFF;
      --charcoal:#2E2D1E;
      --text-soft:#4A4A35;
      --text-muted:#7A7A60;
    }

    html { scroll-behavior: smooth; }
    body {
      font-family: 'DM Sans', sans-serif;
      background-color: var(--linen);
      color: var(--charcoal);
      overflow-x: hidden;
    }

    /* ── HERO ── */
    .hero {
      min-height: 100vh;
      display: grid;
      grid-template-columns: 1fr 1fr;
      position: relative;
      overflow: hidden;
    }

    .hero-left {
      background: var(--white);
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 80px 60px 80px 80px;
      position: relative;
      z-index: 2;
    }

    .hero-left::after {
      content: '';
      position: absolute;
      right: -40px; top: 0; bottom: 0;
      width: 80px;
      background: var(--white);
      clip-path: polygon(0 0, 0% 100%, 100% 100%);
      z-index: 3;
    }

    .eyebrow {
      font-family: 'Nunito-Sans';
      font-size: 16px;
      font-weight: 400;
      letter-spacing: 1px;  
      font-size: 15px; 
      font-weight: 500;
      letter-spacing: 3px; text-transform: uppercase;
      color: var(--clay); margin-bottom: 28px;
      opacity: 0; animation: fadeUp 0.8s ease 0.2s forwards;
    }

    .hero-headline {
      font-family: 'Nunito-Sans';
      font-size: clamp(52px, 6vw, 82px);
      font-weight: 300; 
      line-height: 1.1;
      color: var(--charcoal); 
      margin-bottom: 28px;
      opacity: 0; 
      animation: fadeUp 0.8s ease 0.4s forwards;
    }

    .hero-headline em { font-style: italic; color: var(--blue); }

    .hero-body {
      font-family: 'Lora';
      font-size: 17px; 
      line-height: 1.75;
      color: var(--text-soft); 
      font-weight: 300;
      max-width: 440px; 
      margin-bottom: 48px;
      opacity: 0; 
      animation: fadeUp 0.8s ease 0.6s forwards;
    }

    .cta-group {
      display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
      opacity: 0; animation: fadeUp 0.8s ease 0.8s forwards;
    }

    .btn-primary {
      background: var(--blue); 
      color: black; 
      border: 1.5px solid black;;
      padding: 10px 20px; 
      font-family: 'Fields', sans-serif;
      font-size: 16px; 
      font-weight: 600; 
      letter-spacing: 0.5px;
      cursor: pointer; 
      text-decoration: none; 
      display: inline-block;
      transition: background 0.3s ease, transform 0.2s ease;
    }
    .btn-primary:hover { background: var(--olive); transform: translateY(-1px); }

    .btn-ghost {
      color: var(--text-soft); 
      font-family: 'Lora', sans-serif;
      font-size: 14px; 
      font-weight: 400;
      text-decoration: none; 
      border-bottom: 1px solid var(--blush);
      padding-bottom: 2px; 
      transition: color 0.3s ease, border-color 0.3s ease;
    }
    .btn-ghost:hover { color: var(--blue); border-color: var(--blue); }

    .hero-right {
      background: linear-gradient(135deg, var(--blue) 0%, var(--sky) 60%, #c2d5ee 100%);
      position: relative; overflow: hidden;
    }
    .hero-right img {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -60%);
      z-index: 2;
      width: 78%;
      height: auto;
      border-radius: 12px;
      filter: drop-shadow(0 16px 48px rgba(0,0,0,0.3));
    }
    .hero-right::before {
      content: ''; position: absolute; inset: 0;
      background:
        radial-gradient(ellipse at 30% 70%, rgba(104,103,43,0.25) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(247,241,228,0.15) 0%, transparent 50%);
    }

    .hero-quote {
      position: absolute; bottom: 48px; left: 60px; right: 60px;
      opacity: 0; animation: fadeUp 1s ease 1s forwards;
      z-index: 2;
    }
    .hero-quote blockquote {
      font-family: 'Cormorant Garamond', serif; font-size: 22px;
      font-weight: 300; font-style: italic;
      color: rgba(255,255,255,0.93); line-height: 1.6; margin-bottom: 16px;
    }
    .hero-quote cite {
      font-family: 'DM Sans', sans-serif; font-size: 12px;
      letter-spacing: 2px; text-transform: uppercase;
      color: rgba(255,255,255,0.55); font-style: normal;
    }

        .deco-circle {
      position: absolute; z-index: 1; top: 10%; right: 5%;
      width: 200px; height: 200px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 20s linear infinite;
    }
    .deco-circle::before {
      content: ''; position: absolute;
      top: 20px; left: 20px; right: 20px; bottom: 20px;
      border-radius: 50%; border: 1px solid rgba(255,255,255,0.12);
    }
    @keyframes spin { to { transform: rotate(360deg); } }
        .deco-circle-2 {
      position: absolute; z-index: 1; top: 2%; left: 20%;
      width: 70px; height: 70px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 35s linear infinite;
    }
        .deco-circle-3 {
      position: absolute; z-index: 3; top: 8%; right: 25%;
      width: 55px; height: 55px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 22s reverse linear infinite;
    }
        .deco-circle-4 {
      position: absolute; z-index: 1; top: 20%; right: 4%;
      width: 85px; height: 85px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 40s linear infinite;
    }
        .deco-circle-5 {
      position: absolute; z-index: 3; top: 12%; left: 38%;
      width: 45px; height: 45px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 18s reverse linear infinite;
    }
        .deco-circle-sm {
      position: absolute; z-index: 1; top: 15%; left: 5%;
      width: 90px; height: 90px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 28s reverse linear infinite;
    }
    .deco-circle-6 {
      position: absolute; z-index: 1; bottom: 12%; left: 8%;
      width: 90px; height: 90px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.18);
      animation: spin 32s linear infinite;
    }
    .deco-circle-7 {
      position: absolute; z-index: 1; bottom: 18%; right: 28%;
      width: 65px; height: 65px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.15);
      animation: spin 25s reverse linear infinite;
    }
    .deco-circle-8 {
      position: absolute; z-index: 1; bottom: 5%; right: 3%;
      width: 110px; height: 110px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.13);
      animation: spin 38s linear infinite;
    }
    .deco-circle-8::before {
      content: ''; position: absolute;
      top: 14px; left: 14px; right: 14px; bottom: 14px;
      border-radius: 50%; border: 1px solid rgba(255,255,255,0.1);
    }
    .deco-circle-sm::before {
      content: ''; position: absolute;
      top: 12px; left: 12px; right: 12px; bottom: 12px;
      border-radius: 50%; border: 1px solid rgba(255,255,255,0.1);
    }

    /* ── UNDERSTANDING ── */
    .understanding {
      padding: 120px 80px; background: var(--linen);
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 80px; align-items: center;
    }

    .section-label {
        font-family: 'Nunito-Sans';
      font-size: 15px; font-weight: 500;
      letter-spacing: 4px; text-transform: uppercase;
      color: var(--sage); margin-bottom: 20px;
    }

    .section-heading {
      font-family: 'Nunito-Sans';
      font-size: clamp(42px, 4.5vw, 64px);
      font-weight: 300; line-height: 1.2;
      color: var(--charcoal); margin-bottom: 32px;
    }
    .section-heading em { font-style: italic; color: var(--blue); }

    .section-body {
        font-family: 'Lora';
      font-size: 16px; line-height: 1.85;
      color: var(--text-soft); font-weight: 300; margin-bottom: 20px;
    }

    .pain-cards { display: flex; flex-direction: column; gap: 16px; }

    .pain-card {
      background: var(--white);
      border-left: 3px solid var(--sky);
      padding: 24px 28px;
      transition: border-color 0.3s ease;
    }
    .pain-card:hover { border-left-color: var(--blue); }
    .pain-card h4 {
      font-family: 'Nunito-Sans'; font-size: 24px;
      font-weight: 500; color: var(--charcoal); margin-bottom: 8px;
    }
    .pain-card p { 
        font-family: 'Lora';
        font-size: 14px; line-height: 1.7; color: var(--text-muted); font-weight: 300; }

    /* ── APPROACH ── */
    .approach { background: var(--olive); padding: 120px 80px; }

    .approach-intro { max-width: 680px; margin: 0 auto 80px; text-align: center; }
    .approach-intro .section-label { color: var(--sage); }
    .approach-intro .section-heading { color: var(--linen); }
    .approach-intro .section-heading em { color: var(--blush); }
    .approach-intro .section-body { color: rgba(247,241,228,0.65); }

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

    .pillar {
      background: rgba(255,255,255,0.06); padding: 28px 36px;
      transition: background 0.3s ease;
    }
    .pillar:hover { background: rgba(255,255,255,0.11); }
    .pillar-number {
      font-family: 'Cormorant Garamond', serif; font-size: 64px;
      font-weight: 300; color: rgba(186,175,105,0.35); line-height: 1; margin-bottom: 24px;
    }
    .pillar h3 {
      font-family: 'Nunito-Sans'; font-size: 40px;
      font-weight: 400; color: var(--linen); margin-bottom: 16px;
    }
    .pillar p { 
        font-family: 'Lora';
        font-size: 14px; line-height: 1.8; color: rgba(247,241,228,0.6); font-weight: 300; }

    /* ── VALIDATION ── */
    .validation { padding: 120px 80px; background: var(--white); }
    .validation-inner { max-width: 800px; margin: 0 auto; text-align: center; }

    .feels-list { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 48px 0; }

    .feel-tag {
      background: var(--linen); border: 1px solid var(--blush);
      color: var(--text-soft); font-size: 14px; font-weight: 300;
      padding: 10px 22px; border-radius: 100px;
      transition: all 0.3s ease; cursor: default;
    }
    .feel-tag:hover { background: var(--blue); color: white; border-color: var(--blue); }

    .validation-closing {
      font-family: 'Cormorant Garamond', serif; font-size: 28px;
      font-weight: 300; font-style: italic;
      color: var(--charcoal); line-height: 1.5;
      max-width: 580px; margin: 0 auto;
    }

    /* ── PROCESS ── */
    .process { padding: 120px 80px; background: var(--linen); }
    .process-inner { max-width: 960px; margin: 0 auto; }
    .process-header { margin-bottom: 64px; }

    .steps {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 40px; position: relative;
    }
    .steps::before {
      content: ''; position: absolute;
      top: 20px; left: 20px; right: 20px; height: 1px;
      background: linear-gradient(to right, var(--sky), var(--blue), var(--sky));
    }
    .step { text-align: center; position: relative; }
    .step-dot {
      width: 40px; height: 40px; border-radius: 50%;
      background: var(--white); border: 2px solid var(--sky);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 24px; position: relative; z-index: 1;
      transition: border-color 0.3s ease, background 0.3s ease;
    }
    .step:hover .step-dot { border-color: var(--blue); background: var(--blue); }
    .step:hover .step-dot span { color: white; }
    .step-dot span {
      font-family: 'Nunito-Sans'; font-size: 18px;
      font-weight: 500; color: var(--blue); transition: color 0.3s ease;
    }
    .step h4 {
      font-family: 'Nunito-Sans'; font-size: 24px;
      font-weight: 500; color: var(--charcoal); margin-bottom: 12px;
    }
    .step p { 
        font-family: 'Lora';
        font-size: 13px; line-height: 1.75; color: var(--text-muted); font-weight: 300; }

    /* ── CTA ── */
    .cta-section {
      background: linear-gradient(135deg, var(--blue) 0%, var(--sky) 100%);
      padding: 120px 80px; text-align: center;
      position: relative; overflow: hidden;
    }
    .cta-section::before {
      content: ''; position: absolute; top: -100px; right: -100px;
      width: 400px; height: 400px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.12);
    }
    .cta-section::after {
      content: ''; position: absolute; bottom: -80px; left: -60px;
      width: 300px; height: 300px; border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.08);
    }
    .cta-section .section-label { color: rgba(255,255,255,0.65); }
    .cta-section .section-heading { color: white; max-width: 600px; margin: 0 auto 20px; }
    .cta-section .section-body { color: rgba(255,255,255,0.75); max-width: 480px; margin: 0 auto 48px; }

    .btn-white {
      background: white; color: var(--blue); border: none;
      padding: 18px 48px; font-family: 'DM Sans', sans-serif;
      font-size: 14px; font-weight: 500; letter-spacing: 0.5px;
      cursor: pointer; text-decoration: none; display: inline-block;
      transition: transform 0.2s ease, box-shadow 0.3s ease;
      position: relative; z-index: 1;
    }
    .btn-white:hover { transform: translateY(-2px); box-shadow: 0 12px 40px rgba(0,0,0,0.15); }
    .cta-note { margin-top: 24px; font-size: 13px; color: rgba(255,255,255,0.55); font-weight: 300; }

    /* ── FOOTER ── */
    footer {
      background: var(--charcoal); padding: 48px 80px;
      display: flex; justify-content: space-between; align-items: center;
    }
    .footer-brand {
      font-family: 'Cormorant Garamond', serif; font-size: 22px;
      font-weight: 300; color: var(--linen); letter-spacing: 1px;
    }
    .footer-note { font-size: 12px; color: rgba(247,241,228,0.3); font-weight: 300; }

    /* ── ANIMATIONS ── */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(24px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.8s ease, transform 0.8s ease; }
    .reveal.visible { opacity: 1; transform: translateY(0); }

    /* ── RESPONSIVE ── */
    @media (max-width: 900px) {
      .hero { grid-template-columns: 1fr; }
      .hero-left { padding: 80px 40px; }
      .hero-left::after { display: none; }
      .hero-right { min-height: 300px; }
      .understanding { grid-template-columns: 1fr; padding: 80px 40px; }
      .pillars { grid-template-columns: 1fr; }
      .approach { padding: 80px 40px; }
      .validation { padding: 80px 40px; }
      .process { padding: 80px 40px; }
      .steps { grid-template-columns: 1fr 1fr; }
      .steps::before { display: none; }
      .cta-section { padding: 80px 40px; }
      footer { flex-direction: column; gap: 16px; text-align: center; padding: 40px; }
    }