.campaign-page { background: #fbfaf7; }
    .campaign-page .site-header.scrolled { background: rgba(247,245,239,.96); }

    .campaign-hero {
      position: relative;
      overflow: hidden;
      padding: 144px 0 92px;
      background:
        radial-gradient(circle at 6% 92%, rgba(223,204,176,.42), transparent 30%),
        linear-gradient(180deg, #fbfaf6 0%, #edf5f3 100%);
    }
    .campaign-hero::after {
      content: '';
      position: absolute;
      right: -16vw;
      bottom: -27vw;
      width: 76vw;
      height: 43vw;
      border-radius: 50% 50% 0 0;
      background: rgba(155,185,181,.16);
      transform: rotate(-4deg);
    }
    .campaign-hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0,1.08fr) minmax(350px,.72fr);
      align-items: center;
      gap: clamp(44px,6vw,84px);
    }
    .campaign-hero h1 {
      max-width: 790px;
      font-size: clamp(3.25rem,5.9vw,6.2rem);
    }
    .campaign-hero .lead { max-width: 690px; }
    .campaign-hero .hero-actions { margin-bottom: 20px; }
    .campaign-hero-card {
      position: relative;
      min-height: 590px;
    }
    .campaign-hero-card .photo-frame {
      position: absolute;
      inset: 0;
      border: 10px solid rgba(255,255,255,.72);
      border-radius: 42px 42px 125px 42px;
    }
    .campaign-hero-card img { object-position: 50% 34%; }
    .campaign-hero-note {
      position: absolute;
      right: 18px;
      bottom: 22px;
      left: 18px;
      padding: 17px 20px;
      border-radius: 20px;
      color: var(--ink);
      background: rgba(255,255,255,.92);
      box-shadow: 0 14px 35px rgba(49,94,102,.13);
      backdrop-filter: blur(10px);
    }
    .campaign-hero-note p { margin: 0; font-size: .88rem; line-height: 1.55; }
    .campaign-hero-note strong { color: var(--navy); }

    .expect-section { background: #fbfaf7; }
    .campaign-heading { max-width: 790px; margin-bottom: 50px; }
    .campaign-heading p:not(.eyebrow) { max-width: 650px; color: var(--muted); }
    .expect-list {
      display: grid;
      grid-template-columns: repeat(2,minmax(0,1fr));
      gap: 16px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .expect-list li {
      display: grid;
      grid-template-columns: 48px 1fr;
      gap: 18px;
      min-height: 180px;
      padding: 30px;
      border: 1px solid rgba(49,94,102,.09);
      border-radius: 28px;
      background: rgba(255,255,255,.84);
      box-shadow: 0 12px 35px rgba(49,94,102,.045);
    }
    .expect-list .list-number {
      display: grid;
      width: 42px;
      height: 42px;
      place-items: center;
      border-radius: 50%;
      color: var(--navy);
      background: #dfeceb;
      font-size: .72rem;
      font-weight: 800;
    }
    .expect-list h3 { color: var(--navy); font-size: 1.22rem; }
    .expect-list p { margin: 0; color: var(--muted); }

    .fit-section { padding: 0; background: #fbfaf7; }
    .fit-shell {
      display: grid;
      grid-template-columns: minmax(300px,.72fr) minmax(0,1fr);
      overflow: hidden;
      border-radius: 42px 42px 120px 42px;
      background: #e6f0ee;
      box-shadow: var(--shadow);
    }
    .fit-visual { min-height: 650px; }
    .fit-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
    .fit-content { align-self: center; padding: clamp(48px,7vw,90px); }
    .fit-content h2 { max-width: 620px; }
    .fit-questions { display: grid; gap: 0; margin-top: 34px; border-top: 1px solid var(--line); }
    .fit-question {
      display: grid;
      grid-template-columns: 34px 1fr;
      gap: 15px;
      padding: 20px 0;
      border-bottom: 1px solid var(--line);
    }
    .fit-question span {
      display: grid;
      width: 26px;
      height: 26px;
      place-items: center;
      border-radius: 50%;
      color: var(--navy);
      background: rgba(255,255,255,.78);
      font-size: .78rem;
      font-weight: 800;
    }
    .fit-question p { margin: 0; color: #3c5559; }
    .fit-note { margin: 24px 0 0; color: var(--muted); font-size: .9rem; }

    .steps-section { background: #fbfaf7; }
    .campaign-steps {
      display: grid;
      grid-template-columns: repeat(4,minmax(0,1fr));
      gap: 14px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .campaign-steps li {
      min-height: 250px;
      padding: 28px;
      border: 1px solid var(--line);
      border-radius: 24px;
      background: rgba(255,255,255,.72);
    }
    .campaign-steps .step-number { margin-bottom: 52px; }
    .campaign-steps h3 { color: var(--navy); font-size: 1.2rem; }
    .campaign-steps p { margin: 0; color: var(--muted); font-size: .91rem; }

    .campaign-safety {
      padding: 76px 0;
      color: var(--ink);
      background: #dfeceb;
    }
    .campaign-safety .safety-grid p,
    .campaign-safety .safety-grid a { color: var(--ink); }
    .campaign-safety .safety-icon { border-color: rgba(49,94,102,.3); }
    .campaign-safety .eyebrow { color: var(--navy); }
    .campaign-safety h2 { max-width: 780px; }

    .campaign-final { position: relative; overflow: hidden; color: var(--cream); background: var(--navy); }
    .campaign-final::after {
      content: '';
      position: absolute;
      right: -170px;
      bottom: -360px;
      width: 690px;
      height: 690px;
      border: 1px solid rgba(223,204,176,.18);
      border-radius: 50%;
      box-shadow: 0 0 0 80px rgba(223,204,176,.035), 0 0 0 160px rgba(223,204,176,.02);
    }
    .campaign-final-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0,1fr) auto;
      align-items: center;
      gap: 50px;
    }
    .campaign-final h2 { max-width: 770px; }
    .campaign-final p:not(.eyebrow) { max-width: 650px; color: rgba(247,245,239,.76); }
    .campaign-final .button { color: var(--navy); background: var(--sand); white-space: nowrap; }
    .campaign-final .button:hover { color: #fff; background: var(--dusty-blue); }
    .campaign-final .eyebrow { color: var(--sand); }

    @media (max-width: 960px) {
      .campaign-hero-grid { grid-template-columns: 1fr .72fr; gap: 38px; }
      .campaign-hero-card { min-height: 510px; }
      .fit-shell { grid-template-columns: minmax(250px,.55fr) minmax(0,1fr); }
      .campaign-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
    }
    @media (max-width: 820px) {
      .campaign-hero { padding-top: 116px; }
      .campaign-hero-grid { grid-template-columns: 1fr; }
      .campaign-hero-card { min-height: 520px; }
      .fit-shell { grid-template-columns: 1fr; border-radius: 32px 32px 88px 32px; }
      .fit-visual { min-height: 480px; }
      .campaign-final-grid { grid-template-columns: 1fr; gap: 12px; }
      .campaign-final .button { justify-self: start; }
    }
    @media (max-width: 560px) {
      .campaign-hero { padding: 112px 0 64px; }
      .campaign-hero h1 { font-size: clamp(2.45rem,11.6vw,3.3rem); }
      .campaign-hero-card { min-height: 430px; }
      .campaign-hero-card .photo-frame { border-width: 7px; border-radius: 30px 30px 92px 30px; }
      .expect-list, .campaign-steps { grid-template-columns: 1fr; }
      .expect-list li { min-height: auto; padding: 24px 21px; }
      .fit-shell { margin-inline: -2px; }
      .fit-visual { min-height: 390px; }
      .fit-content { padding: 42px 24px 52px; }
      .campaign-steps li { min-height: auto; }
      .campaign-steps .step-number { margin-bottom: 28px; }
      .campaign-final .button { width: 100%; white-space: normal; }
    }

