/* SwimReel v22: real 1.0 screens within BEAH's established editorial system. */
body.swim { --navy:#102E42; --accent:#087FA3; --accent-dark:#086C8B; --wash:#E3F1F7; --wash-deep:#BADDE9; --muted:#526879; --line:#C7DCE5; color:var(--navy); }
body.swim .kicker, body.swim .stat-label { text-transform:none; letter-spacing:.02em; color:var(--accent-dark); }
body.swim .swim-brand { display:flex; align-items:center; width:240px; min-height:82px; flex-shrink:0; }
body.swim .swim-brand img { width:100%; height:auto; }
body.swim .nav { gap:8px 28px; }
body.swim .nav nav { gap:8px 20px; }
body.swim .nav nav a, body.swim footer a, body.swim .faq-grid .body-copy a { min-height:44px; min-width:44px; display:inline-flex; align-items:center; }
body.swim .nav .back-beah { padding-left:20px; }
body.swim .hero-copy h1 { font-size:clamp(52px,5.1vw,74px); line-height:1.04; }
body.swim .hero-em { color:var(--navy); max-width:450px; }
body.swim .intro { max-width:500px; }
body.swim .hero-grid { padding-top:54px; padding-bottom:40px; min-height:800px; gap:48px; }
body.swim .hero-showcase { height:700px; }
body.swim .phone { border-color:var(--navy); }
body.swim .phone-window { aspect-ratio:780 / 1696; }
body.swim .phone-window img { width:100%; height:100%; min-height:0; object-fit:contain; }
body.swim .hero-showcase .front-phone { width:270px; left:0; top:20px; }
body.swim .hero-showcase .back-phone { width:235px; right:0; top:70px; }
body.swim .hero-showcase figcaption { bottom:22px; left:0; right:0; text-align:center; line-height:1.7; }
body.swim .hero-showcase .enlarge-hint { position:absolute; bottom:0; left:0; right:0; margin:0; }
body.swim .floating-note { bottom:95px; left:10px; max-width:360px; transform:none; padding:18px 20px; }
body.swim .record-dot { width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#FF3B30; }
body.swim .swim-price-link { display:inline-flex; min-height:44px; min-width:44px; align-items:center; margin:20px 0 0 20px; font-size:14px; font-weight:650; text-underline-offset:4px; }
body.swim .promise-strip { font-size:13px; line-height:1.6; }
body.swim .inside-section { background:#EDF4F6; }
body.swim .inside-grid { gap:65px; }
body.swim .screen-tabs { gap:8px; }
body.swim .screen-tabs button { min-height:44px; padding:10px 12px; }
body.swim #screen-panel { min-height:220px; }
body.swim .viewer-phone { width:300px; }
body.swim .swim-progress-grid, body.swim .swim-sharing-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:80px; align-items:center; }
body.swim .swim-progress-art { background:var(--wash); border-radius:16px; padding:32px 24px; min-width:0; }
body.swim .swim-progress-cards { position:relative; padding:18px 80px 180px 0; }
body.swim .swim-stat { display:block; padding:0; border:5px solid white; border-radius:12px; overflow:hidden; background:white; box-shadow:0 18px 45px #102e4226; }
body.swim .swim-stat img { width:100%; height:auto; }
body.swim .swim-stat-main { position:relative; width:100%; transform:rotate(-3deg); }
body.swim .swim-stat-goal { position:absolute; width:56%; bottom:14px; right:0; transform:rotate(4deg); }
body.swim .swim-progress-art figcaption, body.swim .swim-whole-art figcaption, body.swim .swim-single-art figcaption, body.swim .swim-pricing-preview figcaption { font-size:12px; line-height:1.7; color:var(--muted); text-align:center; margin-top:24px; }
body.swim .benefit-list li > span { font-size:16px; color:var(--accent-dark); }
body.swim .benefit-list p { font-size:14px; }
body.swim .swim-whole { background:#EDF4F6; border-block:1px solid var(--line); }
body.swim .swim-whole-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:50px; align-items:center; }
body.swim .swim-whole h2 { font-size:clamp(42px,4.4vw,62px); }
body.swim .swim-whole-art { min-width:0; }
body.swim .swim-whole-composition { position:relative; height:700px; }
body.swim .swim-whole-phone { width:285px; position:absolute; top:10px; left:0; transform:rotate(-3deg); }
body.swim .swim-paper { display:block; padding:10px; border:1px solid var(--line); border-radius:3px; background:white; box-shadow:0 18px 45px #102e4226; width:340px; position:absolute; right:0; top:415px; transform:rotate(3.5deg); }
body.swim .swim-paper img { width:100%; height:auto; }
body.swim .swim-result-chip { position:absolute; left:235px; top:290px; background:white; padding:18px 20px; border-left:3px solid var(--accent); box-shadow:0 12px 30px #102e4215; border-radius:8px; max-width:260px; }
body.swim .swim-result-chip strong { display:block; font-size:36px; line-height:1.15; letter-spacing:-.03em; color:var(--accent-dark); }
body.swim .swim-result-chip span { display:block; margin-top:6px; font-size:13px; line-height:1.6; }
body.swim .swim-photo-peek { margin-top:20px; border-top:1px solid var(--line); }
body.swim .swim-photo-peek summary { min-height:44px; padding:14px 0; font-size:14px; color:var(--accent-dark); cursor:pointer; }
body.swim .swim-photo-phone { width:280px; max-width:100%; margin:24px auto; }
body.swim .swim-single-art { display:flex; align-items:center; flex-direction:column; min-width:0; }
body.swim .swim-share-phone { width:290px; max-width:100%; }
body.swim .swim-footnote { font-size:13px; line-height:1.75; color:var(--muted); margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
body.swim .swim-pricing-grid { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:64px; align-items:center; }
body.swim .swim-plans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:40px; }
body.swim .swim-plan { border:2px solid var(--line); border-radius:12px; padding:28px; background:white; }
body.swim .swim-plan-year { border-color:var(--accent); background:var(--wash); }
body.swim .swim-plan-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:34px; flex-wrap:wrap; }
body.swim .swim-plan-heading h3 { font-size:22px; }
body.swim .swim-save { border-radius:20px; background:var(--accent-dark); color:white; padding:7px 12px; font-size:13px; line-height:1.4; font-weight:700; }
body.swim .swim-price { font-size:clamp(34px,3vw,44px); font-weight:650; letter-spacing:-.04em; margin:20px 0 12px; line-height:1.15; }
body.swim .swim-price span { font-size:18px; font-weight:500; letter-spacing:-.02em; }
body.swim .swim-plan > p:last-of-type { font-size:15px; line-height:1.6; color:var(--muted); }
body.swim .swim-plan small { display:block; font-size:13px; line-height:1.65; margin-top:12px; color:var(--muted); }
body.swim .swim-pricing-checklist { list-style:none; padding:0; margin:32px 0 0; }
body.swim .swim-pricing-checklist li { position:relative; padding-left:28px; margin-top:14px; font-size:16px; line-height:1.7; }
body.swim .swim-pricing-checklist li::before { content:'✓'; position:absolute; left:0; color:var(--accent-dark); font-weight:700; }
body.swim .swim-pricing-fine { margin-top:28px; color:var(--muted); font-size:13px; line-height:1.8; }
body.swim .swim-plans-phone { width:270px; max-width:100%; }
body.swim .swim-store-line { margin-top:28px; font-size:14px; font-weight:650; line-height:1.6; }
body.swim .swim-store-badge { display:inline-flex; align-items:center; min-height:44px; min-width:135px; }
body.swim .swim-store-badge img { width:135px; height:40px; object-fit:contain; }
body.swim .launch:has(.swim-store-badge) { border:0; padding:0; background:transparent; }
body.swim .launch:has(.swim-store-badge) > i { display:none; }
body.swim .swim-privacy-band { padding-block:28px; border-block:1px solid var(--line); background:var(--wash); }
body.swim .swim-privacy-band .container { display:flex; align-items:center; justify-content:space-between; gap:12px 32px; flex-wrap:wrap; }
body.swim .swim-privacy-band p { font-size:16px; line-height:1.7; font-weight:600; max-width:760px; }
body.swim .swim-privacy-band a { display:inline-flex; align-items:center; gap:12px; min-height:44px; min-width:44px; font-size:14px; text-underline-offset:4px; }
body.swim .close-dialog { min-height:44px; min-width:44px; }
body.swim .screenshot-dialog > img { height:auto; }
body.swim .swim-closing-icon { width:124px; height:124px; object-fit:contain; border-radius:28px; border:1px solid #ffffff30; }
body.swim .photo-credit { font-size:12px; line-height:1.8; color:var(--muted); margin-top:22px; }
body.swim .photo-credit a { display:inline-flex; align-items:center; min-height:44px; min-width:44px; text-underline-offset:3px; }
@media(max-width:1100px) {
 body.swim .hero-grid { gap:24px; }
 body.swim .hero-copy h1 { font-size:58px; }
 body.swim .hero-showcase { height:640px; }
 body.swim .hero-showcase .front-phone { width:240px; }
 body.swim .hero-showcase .back-phone { width:205px; }
 body.swim .floating-note { bottom:85px; left:0; }
 body.swim .swim-whole-grid { grid-template-columns:1fr; gap:40px; }
 body.swim .swim-whole-grid > div { max-width:720px; }
 body.swim .swim-whole-art { width:min(600px,100%); justify-self:center; }
 body.swim .swim-progress-grid, body.swim .swim-sharing-grid { gap:40px; }
 body.swim .swim-progress-cards { padding-right:50px; padding-bottom:150px; }
 body.swim .swim-pricing-grid { gap:32px; grid-template-columns:minmax(0,1fr) 230px; }
 body.swim .swim-plan { padding:22px; }
}
@media(max-width:850px) {
 body.swim .hero-grid { grid-template-columns:1fr; gap:35px; }
 body.swim .hero-copy { max-width:660px; padding-bottom:0; }
 body.swim .hero-copy h1 { font-size:68px; }
 body.swim .hero-showcase { width:min(540px,100%); justify-self:center; height:690px; }
 body.swim .hero-showcase .front-phone { width:270px; }
 body.swim .hero-showcase .back-phone { width:235px; }
 body.swim .inside-grid, body.swim .swim-progress-grid, body.swim .swim-sharing-grid { grid-template-columns:1fr; gap:40px; }
 body.swim .swim-progress-art { width:min(530px,100%); justify-self:center; }
 body.swim .swim-progress-grid > div { grid-row:1; }
 body.swim .swim-pricing-grid { grid-template-columns:1fr; gap:40px; }
 body.swim .swim-pricing-preview { width:270px; justify-self:center; }
}
@media(max-width:650px) {
 body.swim .swim-brand { width:210px; min-height:64px; }
 body.swim .nav { padding-block:8px; }
 body.swim .nav nav { gap:0 14px; width:100%; }
 body.swim .nav nav a { font-size:12px; }
 body.swim .nav .back-beah { padding-left:0; border-left:0; }
 body.swim .nav .back-beah span { margin-left:6px; }
 body.swim h2 { text-wrap:balance; }
 body.swim h2 br { display:none; }
 body.swim h2 br::after { content:' '; }
 body.swim .hero-grid { padding-top:32px; padding-bottom:30px; gap:28px; }
 body.swim .hero-copy h1 { font-size:clamp(42px,11.2vw,65px); }
 body.swim .intro { font-size:16px; }
 body.swim .hero-showcase { height:600px; }
 body.swim .hero-showcase .front-phone { width:225px; top:14px; left:0; }
 body.swim .hero-showcase .back-phone { width:190px; right:0; top:68px; }
 body.swim .floating-note { bottom:93px; left:0; max-width:310px; }
 body.swim .floating-note strong { font-size:14px; }
 body.swim .floating-note small { font-size:12px; line-height:1.6; }
 body.swim .hero-showcase figcaption { bottom:30px; }
 body.swim .promise-strip { gap:14px; }
 body.swim .promise-strip span { flex-basis:100%; }
 body.swim .screen-tabs { flex-wrap:wrap; }
 body.swim .screen-tabs button { flex:1 1 135px; white-space:normal; }
 body.swim #screen-panel { min-height:240px; }
 body.swim .viewer-phone { width:270px; }
 body.swim .swim-progress-art { padding:28px 22px; }
 body.swim .swim-progress-cards { display:grid; gap:28px; padding:20px 0 0; }
 body.swim .swim-stat-main, body.swim .swim-stat-goal { position:static; width:100%; transform:none; }
 body.swim .swim-whole h2 { font-size:42px; }
 body.swim .swim-whole-composition { height:auto; display:flex; flex-direction:column; align-items:center; gap:30px; }
 body.swim .swim-whole-phone { position:static; width:270px; max-width:100%; transform:none; }
 body.swim .swim-paper { position:static; width:100%; transform:none; }
 body.swim .swim-result-chip { position:static; align-self:stretch; max-width:none; }
 body.swim .swim-plans { grid-template-columns:1fr; gap:18px; margin-top:30px; }
 body.swim .swim-plan { padding:26px; }
 body.swim .swim-pricing-preview { display:none; }
 body.swim .swim-closing-icon { width:52px; height:52px; border-radius:12px; }
}
/* Keep the portrait progress evidence in proportion to the adjacent story. */
body.swim .swim-progress-cards { width:min(440px,100%); padding:18px 0 165px; margin-inline:auto; }
body.swim .swim-stat-main { width:min(300px,100%); }
body.swim .swim-stat-goal { width:56%; }
@media(max-width:850px) { body.swim section[id] { scroll-margin-top:80px; } }
@media(max-width:650px) {
 body.swim section[id] { scroll-margin-top:100px; }
 body.swim .swim-progress-cards { padding:20px 0 0; }
 body.swim .swim-stat-main, body.swim .swim-stat-goal { width:100%; }
}
body.swim .closing .kicker { color:#BADDE9; }
@media(min-width:851px) { body.swim .hero-copy h1 { font-size:clamp(52px,4.4vw,64px); } }
@media(max-width:650px) { body.swim .hero-copy h1 { font-size:clamp(36px,10.7vw,65px); } }
