/* ============================================================
   InBody results, explained — /functional/inbody-results/
   Tokens from styles.css :root. Nothing hardcoded.
   ============================================================ */

/* ---------- Hero ---------- */
.ib-hero { background: var(--c-ivory); padding: 128px 24px 96px; }
.ib-hero-inner { max-width: var(--maxw-narrow); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--s-64); align-items: center; }
.ib-hero-copy { max-width: 56ch; }
.ib-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--font-sans); font-size: 12px; color: var(--c-slate); margin-bottom: var(--s-24); }
.ib-crumbs a { color: var(--c-slate); text-decoration: none; }
.ib-crumbs a:hover { color: var(--c-sea-text); }
.ib-crumbs span:last-child { color: var(--c-ink); }
.ib-hero h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(40px, 5vw, 60px); line-height: 1.05; letter-spacing: -0.01em; color: var(--c-deep); margin: var(--s-16) 0 var(--s-24); }
.ib-hero-sub { font-family: var(--font-sans); font-size: 18px; line-height: 1.6; color: var(--c-ink); margin: 0 0 var(--s-32); max-width: 48ch; }
.ib-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.ib-hero-price { font-family: var(--font-sans); font-size: 14px; color: var(--c-slate); }
.ib-hero-price strong { font-family: var(--font-display); font-weight: 400; font-size: 20px; color: var(--c-deep); margin: 0 2px; }
.ib-hero-media { margin: 0; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden; box-shadow: var(--e-md); background: var(--c-stone); }
.ib-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 899px) {
  .ib-hero { padding: 80px 24px 64px; }
  .ib-hero-inner { grid-template-columns: 1fr; gap: var(--s-32); }
  .ib-hero-media { max-width: 420px; }
}

/* ---------- Sections ---------- */
.ib-section { padding: 96px 24px; }
.ib-section--pearl { background: var(--c-pearl); }
.ib-section--ivory { background: var(--c-ivory); }
.ib-section--mint { background: var(--c-mint); }
@media (max-width: 767px) { .ib-section { padding: 64px 16px; } }
.ib-inner { max-width: var(--maxw-narrow); margin: 0 auto; }
.ib-head { max-width: 62ch; margin-bottom: var(--s-48); }
.ib-head h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 3.6vw, 42px); line-height: 1.12; color: var(--c-deep); margin: var(--s-12) 0 var(--s-16); }
.ib-head p { font-family: var(--font-sans); font-size: 16px; line-height: 1.65; color: var(--c-ink); margin: 0; }

/* ---------- Sheet reader ---------- */
.ib-reader { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-48); align-items: start; }
.ib-sheet { margin: 0; position: sticky; top: 96px; }
.ib-sheet-frame { position: relative; border-radius: 12px; overflow: hidden; background: var(--c-white); box-shadow: var(--e-md); }
.ib-sheet-frame img { display: block; width: 100%; height: auto; }
.ib-sheet figcaption { font-family: var(--font-sans); font-size: 12px; color: var(--c-slate); margin-top: var(--s-12); }
/* One box per zone, laid over the sheet. Only the live one shows; the
   rest of the sheet dims through its outsized shadow. Opacity only, so
   moving between zones costs nothing. */
.ib-zone { position: absolute; border-radius: 6px; box-shadow: 0 0 0 2px var(--c-sea), 0 0 0 200vmax rgba(246, 246, 247, .55); opacity: 0; transition: opacity var(--d-hover) var(--ease-out); pointer-events: none; }
.ib-zone.is-on { opacity: 1; }

.ib-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-stone); }
.ib-item { border-bottom: 1px solid var(--c-stone); }
.ib-item-head { display: grid; grid-template-columns: 36px 1fr 24px; align-items: center; gap: 12px; width: 100%; padding: 18px 4px; background: none; border: 0; text-align: left; cursor: pointer; color: var(--c-ink); font: inherit; transition: color var(--d-hover) var(--ease-out); }
.ib-item-head:hover { color: var(--c-sea-text); }
.ib-item-num { font-family: var(--font-display); font-size: 14px; color: var(--c-gold-text); letter-spacing: .04em; }
.ib-item-title { font-family: var(--font-display); font-size: 21px; line-height: 1.2; }
.ib-item.is-open .ib-item-title { color: var(--c-deep); }
.ib-item-chev { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--c-stone); color: var(--c-slate); transition: transform var(--d-hover) var(--ease-out), background var(--d-hover) var(--ease-out), color var(--d-hover) var(--ease-out); }
.ib-item.is-open .ib-item-chev { transform: rotate(180deg); background: var(--c-seafoam); color: var(--c-deep); border-color: transparent; }
.ib-item-panel { padding: 0 4px 22px 48px; }
.ib-item-inner { display: grid; gap: 10px; animation: ib-rise var(--d-enter) var(--ease-out) backwards; }
@keyframes ib-rise { from { opacity: 0; transform: translateY(6px); } }
.ib-item-lead { font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--c-sea-text); margin: 0; }
.ib-item-body { font-family: var(--font-sans); font-size: 15px; line-height: 1.65; color: var(--c-ink); margin: 0; }
.ib-item-watch { font-family: var(--font-sans); font-size: 14px; line-height: 1.5; color: var(--c-ink); margin: 6px 0 0; padding-top: 10px; border-top: 1px dashed var(--c-stone); }
.ib-item-watch span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-sea-text); margin-bottom: 4px; }
.ib-snip { display: none; border-radius: 8px; border: 1px solid var(--c-stone); background-color: var(--c-white); background-repeat: no-repeat; box-shadow: var(--e-sm); }
@media (max-width: 899px) {
  .ib-reader { grid-template-columns: 1fr; gap: var(--s-24); }
  .ib-sheet { display: none; }
  .ib-snip { display: block; }
  .ib-item-panel { padding-left: 48px; }
}
@media (max-width: 480px) { .ib-item-panel { padding-left: 4px; } .ib-item-title { font-size: 19px; } }

/* ---------- Three numbers ---------- */
.ib-numbers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-32); }
.ib-numbers li { padding-top: var(--s-24); border-top: 1px solid var(--c-sea); }
.ib-num-figure { display: flex; align-items: baseline; gap: 10px; font-family: var(--font-display); font-size: 52px; line-height: 1; color: var(--c-deep); margin-bottom: var(--s-16); }
.ib-num-figure small { font-family: var(--font-sans); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-sea-text); }
.ib-numbers h3 { font-family: var(--font-display); font-weight: 400; font-size: 22px; color: var(--c-deep); margin: 0 0 8px; }
.ib-numbers p { font-family: var(--font-sans); font-size: 15px; line-height: 1.6; color: var(--c-ink); margin: 0; }
@media (max-width: 767px) { .ib-numbers { grid-template-columns: 1fr; gap: var(--s-24); } .ib-num-figure { font-size: 44px; } }

/* ---------- C / I / D ---------- */
.ib-shapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ib-shapes li { position: relative; padding: 28px 28px 28px; background: var(--c-white); border-radius: 16px; overflow: hidden; }
.ib-shape-letter { position: absolute; right: 18px; top: 6px; font-family: var(--font-display); font-size: 96px; line-height: 1; color: var(--c-deep); opacity: .08; pointer-events: none; }
.ib-shape-svg { display: block; width: 160px; max-width: 100%; height: auto; margin-bottom: var(--s-16); }
.ib-shape-track { fill: var(--c-stone); }
.ib-shape-bar { fill: var(--c-seafoam); }
.ib-shape-line { fill: none; stroke: var(--c-deep); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.ib-shapes h3 { font-family: var(--font-display); font-weight: 400; font-size: 22px; color: var(--c-deep); margin: 0 0 8px; }
.ib-shapes p { font-family: var(--font-sans); font-size: 15px; line-height: 1.6; color: var(--c-ink); margin: 0; }
.ib-shapes-key { font-family: var(--font-sans); font-size: 12px; color: var(--c-slate); margin: var(--s-16) 0 0; }
.ib-shapes-key span { font-weight: 600; color: var(--c-ink); }
@media (max-width: 767px) { .ib-shapes { grid-template-columns: 1fr; } }

/* ---------- Before you test ---------- */
.ib-prep { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-24); }
.ib-prep li { display: grid; gap: 6px; padding-top: var(--s-16); border-top: 1px solid var(--c-stone); }
.ib-prep strong { font-family: var(--font-display); font-weight: 400; font-size: 24px; color: var(--c-deep); }
.ib-prep span { font-family: var(--font-sans); font-size: 14px; line-height: 1.55; color: var(--c-slate); }
@media (max-width: 767px) { .ib-prep { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .ib-prep { grid-template-columns: 1fr; } }

/* ---------- Closer (shared look with /payment-plans/) ---------- */
.pay-consult { background: var(--c-ivory); color: var(--c-ink); padding: 96px 24px; }
.pay-consult-inner { max-width: 720px; margin: 0 auto; text-align: center; }
.pay-consult .gold-line { display: block; width: 40px; height: 2px; background: var(--c-gold); margin: 0 auto 24px; }
.pay-consult h2 { font-family: var(--font-display); font-weight: 400; font-size: 36px; line-height: 1.15; color: var(--c-deep); margin: 0 auto 16px; max-width: 22ch; }
.pay-consult p { font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: var(--c-ink); margin: 0 auto 32px; max-width: 54ch; }
.pay-consult-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px 28px; }
.pay-consult-phone { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-sans); font-weight: 500; font-size: 15px; color: var(--c-deep); text-decoration: none; border-bottom: 1px solid var(--c-seafoam); transition: color var(--d-hover) var(--ease-out), border-color var(--d-hover) var(--ease-out); }
.pay-consult-phone:hover { color: var(--c-sea-text); border-bottom-color: var(--c-sea); }
.pp-legal { font-family: var(--font-sans); font-size: 12px !important; line-height: 1.6; color: var(--c-slate) !important; max-width: 70ch; margin: var(--s-32) auto 0 !important; }
@media (max-width: 767px) { .pay-consult { padding: 72px 24px; } .pay-consult h2 { font-size: 30px; } .pay-consult p { font-size: 16px; } }

@media (prefers-reduced-motion: reduce) {
  .ib-zone, .ib-item-head, .ib-item-chev, .pay-consult-phone { transition: none; }
  .ib-item-inner { animation: none; }
}
