/* ── Switching context callout ── */
    .switch-context {
      max-width: var(--max);
      margin: 0 auto;
      padding: 0 var(--gutter) 56px;
    }

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

    .switch-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 28px 26px;
      display: flex;
      gap: 16px;
      align-items: flex-start;
      transition: box-shadow .25s;
    }

    .switch-card:hover {
      box-shadow: 0 4px 20px rgba(28, 23, 32, 0.07)
    }

    .switch-card-icon {
      width: 44px;
      height: 44px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
      flex-shrink: 0;
      background: var(--blackberry-tint);
      border: 1px solid var(--blackberry-tint-border);
    }

    .switch-card-title {
      font-family: var(--serif);
      font-size: 17px;
      font-weight: 500;
      color: var(--text);
      line-height: 1.3;
      margin-bottom: 6px
    }

    .switch-card-body {
      font-size: 13.5px;
      color: var(--body);
      line-height: 1.7
    }

    /* ═══ DIVIDER ═══ */
    .section-divider {
      max-width: var(--max);
      margin: 0 auto;
      padding: 0 var(--gutter);
    }

    .section-divider hr {
      border: none;
      height: 1px;
      background: var(--border);
    }

    /* ── Reassurance strip ── */
    .reassurance {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 var(--gutter);
    }

    .reassurance--spaced {
      padding-top: 48px;
    }

    .reassurance-inner {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      padding: 20px 24px;
      border-radius: 12px;
      background: var(--sage-tint);
      border: 1px solid var(--sage-border);
    }

    .reassurance-icon {
      font-size: 16px;
      flex-shrink: 0;
      margin-top: 1px
    }

    .reassurance-text {
      font-size: 14px;
      color: var(--body);
      line-height: 1.7
    }

    .reassurance-text strong {
      color: var(--text);
      font-weight: 600
    }

    /* ═══ ONBOARDING SECTION (main feature) ═══ */
    .onboarding {
      max-width: 1100px;
      margin: 0 auto;
      padding: 64px var(--gutter) 80px;
      position: relative;
    }

    /* ── Section intro ── */
    .ob-intro {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 32px 80px;
      align-items: end;
      margin-bottom: 56px;
      animation: fadeUp .5s ease .05s both;
    }

    .ob-eyebrow {
      font-size: 10.5px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--coral-text);
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 16px;
    }

    .ob-eyebrow::before {
      content: '';
      width: 22px;
      height: 1.5px;
      background: var(--coral-text);
      flex-shrink: 0
    }

    .ob-headline {
      font-family: var(--serif);
      font-size: clamp(28px, 4vw, 46px);
      font-weight: 500;
      color: var(--text);
      line-height: 1.15;
      letter-spacing: -0.01em;
    }

    .ob-headline em {
      font-style: italic;
      color: var(--blackberry)
    }

    .ob-lead {
      font-size: clamp(15px, 1.6vw, 16.5px);
      color: var(--body);
      line-height: 1.8;
      align-self: end
    }

    .ob-lead strong {
      color: var(--text);
      font-weight: 600
    }

    /* ── Layers (accordion) ── */
    .layers {
      display: flex;
      flex-direction: column;
      gap: 3px;
      animation: fadeUp .5s ease .15s both
    }

    .layer {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 16px;
      overflow: hidden;
      transition: box-shadow .25s ease;
    }

    .layer:hover {
      box-shadow: 0 6px 28px rgba(28, 23, 32, 0.08)
    }

    .layer-header {
      display: grid;
      grid-template-columns: 60px 1fr auto;
      align-items: center;
      gap: 0 18px;
      padding: 26px 28px 26px 26px;
      cursor: pointer;
      user-select: none;
      transition: background .18s;
    }

    .layer-header:hover {
      background: var(--border-lt)
    }

    .layer-num {
      width: 56px;
      height: 56px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 500;
      flex-shrink: 0;
      transition: transform .2s;
    }

    .layer:hover .layer-num {
      transform: scale(1.05)
    }

    .n1 {
      background: var(--blackberry-tint);
      color: var(--blackberry);
      border: 1px solid var(--blackberry-tint-border)
    }

    .n2 {
      background: var(--coral-tint);
      color: var(--coral-text);
      border: 1px solid var(--coral-border)
    }

    .n3 {
      background: var(--amber-tint);
      color: var(--amber-text);
      border: 1px solid var(--amber-border)
    }

    .layer-tag {
      font-size: 10px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--faint);
      margin-bottom: 3px
    }

    .layer-title {
      font-family: var(--serif);
      font-size: clamp(17px, 2.2vw, 21px);
      font-weight: 500;
      color: var(--text);
      line-height: 1.25
    }

    .layer-sub {
      font-size: 13.5px;
      color: var(--body);
      margin-top: 3px
    }

    .toggle-btn {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      border: 1.5px solid var(--border);
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: all .2s;
    }

    .toggle-btn svg {
      transition: transform .32s ease
    }

    .layer.open .toggle-btn {
      background: var(--blackberry);
      border-color: var(--blackberry)
    }

    .layer.open .toggle-btn svg {
      transform: rotate(45deg)
    }

    .layer.open .toggle-btn path {
      stroke: white
    }

    .layer-body {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows .38s cubic-bezier(.4, 0, .2, 1)
    }

    .layer.open .layer-body {
      grid-template-rows: 1fr
    }

    .layer-body-inner {
      overflow: hidden
    }

    .layer-body-content {
      padding: 0 28px 36px 104px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px 48px;
    }

    .layer-desc {
      grid-column: 1/-1;
      font-size: 15px;
      color: var(--body);
      line-height: 1.76;
      max-width: 600px;
      margin-bottom: 4px
    }

    .items {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 14px
    }

    .item {
      display: flex;
      gap: 12px;
      align-items: flex-start
    }

    .item-icon {
      width: 30px;
      height: 30px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .ip {
      background: var(--blackberry-tint)
    }

    .ic {
      background: var(--coral-tint)
    }

    .ia {
      background: var(--amber-tint)
    }

    .item-label {
      font-size: 14px;
      font-weight: 600;
      color: var(--text);
      line-height: 1.3;
      margin-bottom: 2px
    }

    .item-note {
      font-size: 13px;
      color: var(--body);
      line-height: 1.65
    }

    .valve {
      grid-column: 1/-1;
      margin-top: 4px;
      padding: 16px 20px;
      border-radius: 10px;
      background: var(--border-lt);
      border: 1px solid var(--border);
      display: flex;
      gap: 12px;
      align-items: flex-start;
    }

    .valve-icon {
      font-size: 15px;
      flex-shrink: 0;
      margin-top: 2px
    }

    .valve-text {
      font-size: 13px;
      color: var(--body);
      line-height: 1.7
    }

    .valve-text strong {
      color: var(--text);
      font-weight: 600
    }

    /* ── Compound value strip ── */
    .compound-strip {
      margin-top: 36px;
      background: var(--blackberry);
      border-radius: 20px;
      padding: clamp(28px, 4vw, 48px);
      display: grid;
      grid-template-columns: 1fr 220px;
      gap: 24px 48px;
      align-items: center;
      position: relative;
      overflow: hidden;
      animation: fadeUp .5s ease .25s both;
    }

    .compound-strip::before {
      content: '';
      position: absolute;
      right: -80px;
      top: -80px;
      width: 300px;
      height: 300px;
      border-radius: 50%;
      border: 50px solid rgba(255, 255, 255, 0.04);
      pointer-events: none;
    }

    .compound-strip::after {
      content: '';
      position: absolute;
      right: 20px;
      bottom: -90px;
      width: 200px;
      height: 200px;
      border-radius: 50%;
      border: 36px solid rgba(255, 255, 255, 0.04);
      pointer-events: none;
    }

    .compound-eyebrow {
      font-size: 10px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.4);
      margin-bottom: 12px
    }

    .compound-headline {
      font-family: var(--serif);
      font-size: clamp(18px, 2.4vw, 26px);
      font-weight: 400;
      color: #fff;
      line-height: 1.3;
      margin-bottom: 12px
    }

    .compound-headline em {
      font-style: italic;
      opacity: 0.8
    }

    .compound-body {
      font-size: 14px;
      color: rgba(255, 255, 255, 0.62);
      line-height: 1.75;
      max-width: 500px
    }

    .visit-stack {
      display: flex;
      flex-direction: column;
      gap: 0;
      position: relative;
      z-index: 1
    }

    .visit-row {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px 16px;
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.1);
      transition: background .2s
    }

    .visit-row:hover {
      background: rgba(255, 255, 255, 0.13)
    }

    .visit-connector-line {
      width: 1.5px;
      height: 8px;
      background: rgba(255, 255, 255, 0.14);
      margin-left: 27px
    }

    .visit-circle {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.15);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--serif);
      font-size: 13px;
      color: rgba(255, 255, 255, 0.9);
      flex-shrink: 0
    }

    .visit-name {
      font-size: 13px;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.85)
    }

    .visit-desc {
      font-size: 11.5px;
      color: rgba(255, 255, 255, 0.42);
      margin-top: 1px
    }

    /* ── Inline CTA after onboarding ── */
    .ob-cta {
      margin-top: 36px;
      display: flex;
      align-items: center;
      gap: 16px;
      flex-wrap: wrap;
      animation: fadeUp .5s ease .32s both;
    }

    /* ═══ FIRST VISIT CARDS ═══ */
    .first-visit {
      background: var(--surface);
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
    }

    .first-visit-inner {
      max-width: var(--max);
      margin: 0 auto;
      padding: 80px var(--gutter);
    }

    .fv-eye {
      font-size: 10px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--coral-text);
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 9px
    }

    .fv-eye::before {
      content: '';
      width: 18px;
      height: 1px;
      background: var(--coral-text);
      display: inline-block
    }

    .fv-heading {
      font-family: var(--serif);
      font-size: clamp(26px, 3.4vw, 40px);
      font-weight: 400;
      line-height: 1.15;
      color: var(--text);
      margin-bottom: 18px
    }

    .fv-lead {
      font-size: 15px;
      color: var(--body);
      line-height: 1.72;
      max-width: 560px;
      margin-bottom: 40px
    }

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

    .step-card {
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 28px 24px;
      position: relative;
      overflow: hidden
    }

    .step-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--blackberry), var(--tea))
    }

    .step-num {
      font-family: var(--serif);
      font-size: 32px;
      font-weight: 400;
      color: var(--border);
      margin-bottom: 10px
    }

    .step-title {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 400;
      color: var(--text);
      margin-bottom: 10px;
      line-height: 1.25
    }

    .step-body {
      font-size: 13.5px;
      color: var(--body);
      line-height: 1.65
    }

    /* ═══ FAQ ═══ */
    .faq-section {
      max-width: var(--max);
      margin: 0 auto;
      padding: 80px var(--gutter)
    }

    .faq-eye {
      font-size: 10px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--coral-text);
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 9px
    }

    .faq-eye::before {
      content: '';
      width: 18px;
      height: 1px;
      background: var(--coral-text);
      display: inline-block
    }

    .faq-heading {
      font-family: var(--serif);
      font-size: clamp(26px, 3.4vw, 40px);
      font-weight: 400;
      line-height: 1.15;
      color: var(--text);
      margin-bottom: 36px
    }

    .faq-list {
      max-width: 700px
    }

    .faq-item {
      border-bottom: 1px solid var(--border)
    }

    .faq-item:first-child {
      border-top: 1px solid var(--border)
    }

    .faq-trigger {
      width: 100%;
      background: none;
      border: none;
      padding: 20px 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      cursor: pointer;
      text-align: left;
      gap: 16px;
      font-family: var(--sans)
    }

    .faq-trigger:hover .faq-q {
      color: var(--blackberry)
    }

    .faq-q {
      font-size: 15px;
      font-weight: 500;
      color: var(--text);
      line-height: 1.4;
      transition: color .18s
    }

    .faq-icon {
      font-size: 20px;
      color: var(--faint);
      transition: transform .22s;
      flex-shrink: 0;
      line-height: 1
    }

    .faq-item.open .faq-icon {
      transform: rotate(45deg);
      color: var(--blackberry)
    }

    .faq-answer {
      display: none;
      padding: 0 0 20px;
      max-width: 600px
    }

    .faq-item.open .faq-answer {
      display: block;
      animation: fadeSlide .25s ease
    }

    .faq-answer p {
      font-size: 14px;
      color: var(--body);
      line-height: 1.7
    }

    /* ═══ FINAL CTA ═══ */
    .cta-banner {
      text-align: center;
      padding: 80px var(--gutter);
      max-width: var(--max);
      margin: 0 auto
    }

    .cta-banner h2 {
      font-family: var(--serif);
      font-size: clamp(26px, 3.8vw, 40px);
      font-weight: 400;
      color: var(--text);
      margin-bottom: 14px
    }

    .cta-banner p {
      font-size: 15px;
      color: var(--body);
      line-height: 1.72;
      max-width: 540px;
      margin: 0 auto 32px
    }

    /* ═══ RESPONSIVE ═══ */
    @media(max-width:1024px) {
      .ob-intro {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 40px
      }

      .layer-header {
        grid-template-columns: 48px 1fr auto;
        padding: 18px 18px 18px 16px;
        gap: 0 12px
      }

      .layer-num {
        width: 48px;
        height: 48px;
        border-radius: 11px;
        font-size: 18px
      }

      .layer-body-content {
        padding: 0 18px 28px 18px;
        grid-template-columns: 1fr
      }

      .layer-desc {
        grid-column: auto
      }

      .compound-strip {
        grid-template-columns: 1fr;
        gap: 32px
      }

      .visit-stack {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px
      }

      .visit-connector-line {
        display: none
      }

      .visit-row {
        flex: 1;
        min-width: 130px
      }

      .switch-cards {
        grid-template-columns: 1fr;
        gap: 12px
      }

      .steps-grid {
        grid-template-columns: 1fr
      }
    }

    @media(max-width:480px) {
      .cta-buttons {
        flex-direction: column;
        align-items: stretch
      }

      .cta-buttons a {
        text-align: center;
        justify-content: center
      }
    }
