/* v7.9 — a full-screen typewriter and six steps along one continuous wave. */
.type-bridge { height: auto; }
.type-bridge .type-bridge-sticky {
  position: relative;
  top: auto;
  height: calc(100svh - 68px);
  min-height: 0;
}
.type-bridge-copy { top: 50%; }
.type-bridge .typewriter-live { clip-path: none; transform: none; transition: none; }
.type-bridge .typewriter-caret { animation: typewriter-caret-blink .86s step-end infinite; }

.journey-wave {
  height: auto;
  padding: clamp(48px, 4.2vw, 74px) clamp(22px, 3.4vw, 64px) 44px;
}
.journey-wave .journey-sticky { position: static; width: 100%; max-width: 1720px; margin: 0 auto; }
.journey-wave .journey-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
  column-gap: clamp(30px, 5vw, 90px);
  align-items: end;
}
.journey-wave .journey-intro h2 { font-size: clamp(38px, 3.5vw, 60px); line-height: 1.02; }
.journey-wave .journey-intro p { max-width: 470px; padding-bottom: 6px; font-size: 15px; line-height: 1.6; }
.journey-wave .journey-scroll { margin-top: 34px; }
.journey-wave .journey-scroll:focus-visible { outline: 1px solid var(--cyan); outline-offset: 8px; }
.journey-wave .journey-stage {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(14px, 1.5vw, 28px);
  position: relative;
  isolation: isolate;
  margin: 0;
}
.journey-wave .journey-stage::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 520' preserveAspectRatio='none'%3E%3Cpath d='M100 320 C200 320 200 130 300 130 S400 320 500 320 S600 130 700 130 S800 320 900 320 S1000 130 1100 130' fill='none' stroke='%231b8e97' stroke-width='1.2' stroke-opacity='.36' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.journey-wave .journey-scene {
  display: block;
  position: relative;
  min-height: 0;
  height: 520px;
  padding: 0;
  border: 0;
}
.journey-wave .journey-frame {
  grid-area: auto;
  position: absolute;
  width: clamp(118px, 9.1vw, 148px);
  max-width: 86%;
  margin: 0;
  top: 184px;
  left: 50%;
  transform: translateX(-50%);
}
.journey-wave .journey-scene:nth-child(even) .journey-frame { top: 0; }
.journey-wave .journey-scene-copy {
  grid-area: auto;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  padding: 0;
}
.journey-wave .journey-scene:nth-child(even) .journey-scene-copy { top: 300px; }
.journey-wave .journey-number { margin-bottom: 12px; font-size: 16px; gap: 9px; }
.journey-wave .journey-number::after { width: 26px; }
.journey-wave .journey-scene-copy h3 { margin: 0 0 12px; font-size: clamp(22px, 1.8vw, 29px); line-height: 1.07; }
.journey-wave .journey-scene-copy p { max-width: none; font-size: 14px; line-height: 1.55; }
.journey-mobile-hint { display: none; }

@media (max-width: 1199px) {
  .journey-wave .journey-scroll {
    margin-top: 22px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: #168d9870 #168d980d;
    padding-bottom: 14px;
    -webkit-overflow-scrolling: touch;
  }
  .journey-wave .journey-stage { min-width: 1120px; gap: 22px; }
  .journey-wave .journey-frame { width: 126px; }
  .journey-wave .journey-mobile-hint { display: block; margin: 14px 0 0; color: var(--ink); font-size: 12px; letter-spacing: .02em; }
}
@media (max-width: 820px) {
  .type-bridge .type-bridge-sticky { height: calc(100svh - 60px); }
  .journey-wave { padding: 46px 22px 42px; }
  .journey-wave .journey-intro { display: block; }
  .journey-wave .journey-intro h2 { font-size: clamp(36px, 8.8vw, 48px); }
  .journey-wave .journey-intro p { font-size: 14px; line-height: 1.6; padding: 0; }
  .journey-wave .journey-scroll { margin-top: 22px; }
  .journey-wave .journey-scene-copy h3 { font-size: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .type-bridge .typewriter-caret { animation: none; opacity: 1; }
}

/* OptiEndo v7.10 — implantology refinements only below the existing mobile breakpoint. */
@media (max-width: 820px) {
  .approved-page .approved-header { grid-template-columns: 108px 1fr; height: 60px; padding: 0 16px; }
  .approved-page .approved-header nav { display: none; }
  .approved-page .approved-header .brand { width: 104px; }
  .approved-page .approved-header .phone { font-size: 14px; }
  .plan-story .plan-sticky { height: calc(100svh - 60px); top: 60px; }
  .approved-page .hero {
    min-height: calc(var(--oe-mobile-art-top, 470px) + 310px);
  }
  .approved-page .hero-copy { padding: 32px 22px 0; }
  .approved-page .hero-copy > .micro-label {
    display: block;
    max-width: 34em;
    font-size: clamp(14px, 3.6vw, 16px);
    line-height: 1.45;
    letter-spacing: .1em;
  }
  .approved-page .hero-copy .hero-punchline {
    width: 100%;
    margin: 20px 0 24px;
  }
  .approved-page .hero-punch-main {
    font-size: clamp(42px, 14.8vw, 84px);
    line-height: .9;
  }
  .approved-page .hero-punch-serif {
    margin: .2em 0 .24em 14vw;
    font-size: clamp(46px, 13.1vw, 72px);
    line-height: 1;
  }
  .approved-page .hero-punch-plan {
    margin-left: 4vw;
    padding-top: .02em;
    font-size: clamp(66px, 18.4vw, 102px);
    line-height: .94;
  }
  .approved-page .hero-copy > p {
    width: 100%;
    max-width: none;
    margin: 0 0 16px;
    padding: 0;
    font-size: clamp(13px, 3.65vw, 15px);
    line-height: 1.6;
  }
  .approved-page .hero-copy > p .oe-mobile-note-line {
    display: block;
    white-space: nowrap;
  }
  .approved-page .hero-copy > .underlined-link {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 7px 0 6px;
    font-size: clamp(27px, 7.2vw, 32px);
    line-height: 1.15;
  }
  .approved-page .hero-drawing {
    inset: var(--oe-mobile-art-top, 470px) -32% 0 -4%;
    -webkit-mask-image: linear-gradient(transparent, #000 38px);
    mask-image: linear-gradient(transparent, #000 38px);
  }
  .approved-page .hero-doctor {
    width: 64%;
    height: 320px;
    right: -6%;
  }
  .approved-page .hero-location-sketch { top: auto; bottom: 24%; }

  .plan-story .paper-stage { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: max-content minmax(0, 1fr); }
  .plan-story .title-rail { grid-area: 1 / 1; }
  .plan-story .diagram-zone { grid-area: 2 / 1; }
  .plan-story .title-rail { min-height: 0; padding: 16px 20px 12px; }
  .plan-story .title-rail > .section-mark { font-size: 9px; letter-spacing: .1em; }
  .plan-story .title-rail h2 {
    font-size: clamp(29px, 8.3vw, 42px);
    line-height: .96;
    margin-top: 10px;
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] {
    position: relative;
    display: block;
    width: 100%;
    height: 174px;
    margin: 12px 0 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(transparent 0, #000 12px, #000 100%);
    mask-image: linear-gradient(transparent 0, #000 12px, #000 100%);
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] > .phase-ledger-row {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 1px;
    min-height: 0;
    border-top: 0;
    padding: 0;
    opacity: var(--oe-phase-opacity, 0);
    transform: translate3d(0, var(--oe-phase-y, 190px), 0);
    transition: transform .32s ease, opacity .25s ease;
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] > .phase-ledger-row p {
    font-size: var(--oe-phase-size, 14px);
    line-height: 1.18;
    color: var(--ink);
    transition: font-size .32s ease;
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] .phase-ledger-number {
    padding-top: 3px;
    font-size: 11px;
    line-height: 1.2;
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] .phase-ledger-row.is-current .phase-ledger-number {
    color: var(--cyan);
    font-size: 14px;
  }
  .plan-story .phase-ledger[data-oe-mobile-ledger] .phase-ledger-word {
    display: inline-block;
    vertical-align: top;
    margin-right: .2em;
  }
}
@media (max-width: 380px) {
  .plan-story .title-rail { padding-right: 18px; padding-left: 18px; }
  .plan-story .phase-ledger[data-oe-mobile-ledger] { height: 172px; }
}
@media (max-width: 820px) and (max-height: 600px) {
  .plan-story .title-rail h2 { font-size: 27px; }
  .plan-story .phase-ledger[data-oe-mobile-ledger] { height: 146px; }
}
@media (min-width: 600px) and (max-width: 820px) and (max-height: 600px) and (orientation: landscape) {
  .plan-story .paper-stage { grid-template-columns: minmax(0, 47%) minmax(0, 53%); grid-template-rows: minmax(0, 1fr); }
  .plan-story .title-rail { grid-area: 1 / 1; padding: 12px 16px; }
  .plan-story .diagram-zone { grid-area: 1 / 2; }
  .plan-story .title-rail h2 { font-size: 26px; }
  .plan-story .phase-ledger[data-oe-mobile-ledger] { height: 112px; margin-top: 8px; }
}
@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  .plan-story .paper-stage { display: block; height: auto; }
  .plan-story .plan-sticky { position: relative; height: auto; min-height: 0; top: auto; }
  .plan-story .diagram-zone { min-height: 400px; height: 70svh; }

  .plan-story .title-rail { min-height: 0; }
  .plan-story .phase-ledger { height: auto; margin-top: 20px; }
  .plan-story .phase-ledger-row { padding: 8px 0; }
  .plan-story .phase-ledger-row p { font-size: 17px; line-height: 1.35; }
}
