/* Fits Right consumer homepage. Shared identity and device treatment live in site-shell.css. */
.fr-home { background:#fbfcff; overflow:clip; }
.fr-home * { min-width:0; }
.fr-wrap { width:min(1180px, calc(100% - 64px)); margin-inline:auto; }
.fr-home [id] { scroll-margin-top:100px; }
.fr-section { padding-block:100px; }
.fr-eyebrow { color:var(--fr-blue); font-size:11px; font-weight:700; line-height:1.5; letter-spacing:.14em; text-transform:uppercase; margin:0 0 18px; }
.fr-home h1,.fr-home h2,.fr-home h3,.fr-home h4 { font-weight:700; color:var(--fr-ink); }
.fr-home h2 { font-size:clamp(34px,4.2vw,56px); line-height:1.06; letter-spacing:-.045em; margin:0 0 24px; }
.fr-home h3 { font-size:21px; line-height:1.25; letter-spacing:-.02em; }
.fr-section-lead { max-width:480px; color:#526078; font-size:18px; line-height:1.7; margin-bottom:28px; }
.fr-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; padding:14px 22px; border:1px solid transparent; border-radius:12px; font-size:15px; font-weight:700; line-height:1.4; text-decoration:none; cursor:pointer; transition:background-color .18s,transform .18s; }
.fr-button-primary { color:#fff; background:var(--fr-blue); }
.fr-button-primary:hover { color:#fff; background:var(--fr-blue-dark); transform:translateY(-1px); }
.fr-button-outline { color:var(--fr-ink); border-color:#cbd4e4; background:transparent; }
.fr-button-outline:hover { color:var(--fr-blue); border-color:var(--fr-blue); }
.fr-text-link { color:var(--fr-blue); display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:14px; font-weight:700; text-decoration:none; }
.fr-text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.fr-home :focus-visible,.fr-mobile-download :focus-visible { outline:3px solid #5478ff; outline-offset:5px; }
.fr-hero { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:60px; padding-block:70px 56px; }
.fr-hero h1 { font-size:clamp(54px,6.2vw,82px); line-height:1.01; letter-spacing:-.055em; margin:0 0 26px; }
.fr-hero h1 span { color:var(--fr-blue); }
.fr-hero-lead { color:#526078; font-size:20px; line-height:1.6; max-width:425px; margin:0 0 28px; }
.fr-hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.fr-hero-note { color:#667085; font-size:13px; margin:16px 0 0; }
.fr-hero-visual { position:relative; display:flex; flex-direction:column; align-items:center; padding:0 20px; isolation:isolate; }
.fr-hero-orbit { position:absolute; z-index:-1; width:145%; height:105%; top:-2%; left:-22%; background:radial-gradient(ellipse,#dce5ff 0%,#edf2ff 39%,transparent 69%); }
.fr-hero-device { width:282px; transform:rotate(3deg); }
.fr-hero-caption { display:flex; align-items:center; gap:8px; margin-top:24px; color:#526078; font-size:13px; }
.fr-status-dot { width:7px; height:7px; background:#1355ff; border-radius:50%; }
.fr-intro-strip { display:flex; justify-content:space-between; gap:20px; padding:27px 0; border-block:1px solid #e0e6ef; color:#526078; font-size:14px; }
.fr-intro-strip span::before { content:'✓'; color:var(--fr-blue); margin-right:10px; }
.fr-coach-action { display:grid; grid-template-columns:1.2fr 1fr; gap:70px; align-items:center; }
.fr-coach-steps { margin:0; padding:0; list-style:none; display:grid; gap:22px; }
.fr-coach-steps li { position:relative; padding-left:50px; }
.fr-coach-steps strong,.fr-coach-steps span { display:block; }
.fr-coach-steps strong { margin-bottom:5px; font-size:16px; }
.fr-coach-steps span { color:#526078; font-size:14px; line-height:1.65; }
.fr-coach-steps .fr-coach-step-number { position:absolute; left:0; top:0; display:grid; place-items:center; width:32px; height:32px; border:1px solid #cad6f3; border-radius:50%; color:var(--fr-blue); font-weight:700; }
.fr-coach-example { margin:0; max-width:320px; justify-self:center; text-align:center; }
.fr-coach-device { display:block; width:260px; max-width:100%; margin:auto; }
.fr-coach-example figcaption { padding-top:16px; }
.fr-coach-example h3 { font-size:19px; }
.fr-coach-example figcaption p { color:#526078; font-size:13px; line-height:1.65; margin:0; }
.fr-plans { border-top:1px solid #e0e6ef; }
.fr-plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.fr-plan-card { display:flex; flex-direction:column; padding:32px; border:1px solid #dce3ef; border-radius:20px; background:#fff; }
.fr-plan-card--pro { background:#edf2ff; border-color:#b9caff; }
.fr-plan-price { font-size:40px; font-weight:700; letter-spacing:-.04em; margin:10px 0 26px; }
.fr-plan-price span { display:block; margin-top:5px; color:#526078; font-size:14px; font-weight:400; letter-spacing:0; }
.fr-plan-price--fallback { font-size:30px; }
.fr-plan-card ul { color:#526078; line-height:1.65; padding-left:20px; margin-bottom:26px; }
.fr-plan-card li+li { margin-top:8px; }
.fr-plan-card .fr-button { margin-top:auto; align-self:flex-start; }
.fr-plan-trial { color:var(--fr-blue); font-weight:700; font-size:14px; }
.fr-plan-terms { max-width:850px; color:#526078; font-size:12px; line-height:1.7; margin:20px 0 0; }
.fr-events { border-top:1px solid #e0e6ef; padding-block:46px; }
.fr-events-heading { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.fr-events-heading h2 { font-size:34px; margin-bottom:0; }
.fr-events-heading .fr-eyebrow { margin-bottom:10px; }
.fr-events-intro { color:#526078; margin:16px 0 24px; line-height:1.65; }
.event-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:16px; }
.scan-event-card { background:#fff; border:1px solid #dce3ef; border-radius:16px; padding:24px; }
.event-card-grid--featured .scan-event-card { display:grid; grid-template-columns:1fr 1.5fr; gap:10px 24px; }
.scan-event-card h3 { font-size:22px; margin:0; }
.scan-event-date { color:var(--fr-blue); font-weight:700; font-size:13px; }
.scan-event-meta { font-size:13px; color:#526078; }
.slots-badge { font-size:12px; color:#216247; }
.event-card-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.fr-events .btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; font-size:13px; }
.scan-booking-panel { padding:24px; margin-top:20px; background:#eef3ff; border-radius:16px; }
.scan-booking-panel h3 { font-size:20px; }
.scan-booking-panel input,.scan-booking-panel select { font-size:16px; min-height:48px; }
.scan-booking-status { font-size:14px; }
.fr-faq { display:grid; grid-template-columns:1fr 1.35fr; gap:80px; border-top:1px solid #e0e6ef; }
.fr-faq details { border-bottom:1px solid #dce3ef; }
.fr-faq summary { min-height:60px; padding:20px 28px 20px 0; font-size:16px; font-weight:700; cursor:pointer; position:relative; list-style:none; }
.fr-faq summary::-webkit-details-marker { display:none; }
.fr-faq summary::after { content:'+'; position:absolute; right:2px; top:17px; font-size:24px; font-weight:400; color:var(--fr-blue); }
.fr-faq details[open] summary::after { content:'−'; }
.fr-faq details p { color:#526078; font-size:15px; line-height:1.7; padding-bottom:20px; margin:0; }
.fr-faq details a { color:var(--fr-blue); text-underline-offset:3px; }
.fr-download-section { text-align:center; padding:60px 30px; background:#edf2ff; border-radius:26px; }
.fr-download-section h2 { margin-bottom:22px; }
.fr-download-section>p:not(.fr-eyebrow) { color:#526078; font-size:17px; }
.fr-store-badges { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:26px; }
.fr-store-badges a { display:inline-flex; min-height:48px; align-items:center; }
.fr-store-badges img { height:45px; width:auto; max-width:100%; }
.fr-business-links { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 24px; padding-block:32px; }
.fr-business-links span { font-size:13px; color:#526078; }
.fr-showcase-footer>div { display:flex; flex-wrap:wrap; gap:12px 24px; }
.fr-business-links a { font-size:13px; color:var(--fr-ink); min-height:44px; display:inline-flex; align-items:center; }
.fr-mobile-download { display:none; }
@media (max-width:991.98px) {
  .fr-wrap { width:calc(100% - 48px); }
  .fr-hero { gap:25px; padding-block:48px; }
  .fr-hero h1 { font-size:58px; }
  .fr-hero-device { width:246px; }
  .fr-section { padding-block:72px; }
  .fr-faq { gap:40px; }
}
@media (max-width:767.98px) {
  .fr-coach-action { grid-template-columns:1fr; gap:32px; }
  .fr-coach-example { width:100%; }
  .fr-plan-grid { grid-template-columns:1fr; gap:16px; }
  .fr-plan-card { padding:24px; }
  .fr-wrap { width:calc(100% - 40px); }
  .fr-section { padding-block:56px; }
  .fr-home h2 { font-size:36px; margin-bottom:20px; }
  .fr-eyebrow { font-size:10px; margin-bottom:14px; }
  .fr-section-lead { font-size:16px; line-height:1.65; }
  .fr-hero { grid-template-columns:1fr; gap:26px; padding-block:30px 30px; }
  .fr-hero h1 { font-size:48px; letter-spacing:-.055em; margin-bottom:18px; }
  .fr-hero-lead { font-size:16px; max-width:345px; margin-bottom:20px; }
  .fr-hero-actions { gap:12px; }
  .fr-hero-actions .fr-button { flex:1; justify-content:space-between; min-width:164px; }
  .fr-hero-actions .fr-text-link { font-size:12px; gap:5px; }
  .fr-hero-note { margin-top:12px; font-size:12px; }
  .fr-hero-visual { padding-top:6px; }
  .fr-hero-device { width:232px; transform:none; }
  .fr-hero-caption { margin-top:20px; font-size:12px; }
  .fr-intro-strip { padding-block:20px; flex-wrap:wrap; justify-content:center; gap:8px 15px; font-size:11px; }
  .fr-intro-strip span::before { margin-right:5px; }
  .fr-events { padding-block:32px; }
  .fr-events-heading { align-items:flex-start; flex-direction:column; gap:10px; }
  .fr-events-heading h2 { font-size:30px; margin:0; }
  .fr-events-intro { font-size:14px; }
  .event-card-grid--featured .scan-event-card { display:block; }
  .scan-event-card { padding:20px; }
  .scan-event-card h3 { margin-block:10px; }
  .scan-event-meta { margin-block:8px; }
  .scan-booking-panel { padding:18px; }
  .fr-faq { gap:10px; }
  .fr-faq summary { font-size:15px; }
  .fr-download-section { padding:40px 22px; border-radius:20px; }
  .fr-download-section h2 { font-size:33px; }
  .fr-download-section>p:not(.fr-eyebrow) { font-size:15px; }
  .fr-business-links { gap:4px 18px; padding-block:20px; }
  .fr-business-links span { flex-basis:100%; text-align:center; }
  .fr-mobile-download:not([hidden]) { position:fixed; bottom:0; left:0; right:0; z-index:1035; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 20px max(10px,env(safe-area-inset-bottom)); background:#fffffff5; backdrop-filter:blur(12px); border-top:1px solid #dce3ef; }
  .fr-mobile-download>span { color:var(--fr-ink); font-size:12px; font-weight:700; }
  .fr-mobile-download .fr-button { min-height:44px; padding:10px 16px; font-size:13px; gap:14px; }
  body.fr-home-page { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .fr-home-page .fr-contact { margin-top:24px; background:#fff; border-color:#e0e6ef; padding:26px 20px; }
  .fr-home-page .fr-contact-form { padding:0; border:0; box-shadow:none; }
  .fr-home-page .fr-contact h2 { font-size:30px; }
}
@media (max-width:359.98px) {
 .fr-hero-actions { flex-direction:column; align-items:flex-start; gap:8px; }
 .fr-hero-actions .fr-button { width:100%; }
  .fr-hero h1 { font-size:43px; }
  .fr-hero-actions .fr-button { width:100%; }
  .fr-hero-actions { gap:4px; }
  .fr-hero-actions .fr-text-link { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
  .fr-home *, .fr-home *::before, .fr-home *::after, .fr-mobile-download * { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Three connected chapters; the real app is the main visual. */
.fr-ecosystem-intro { padding-block:66px 48px; }
.fr-ecosystem-intro h2 { margin-bottom:20px; }
.fr-ecosystem-intro>p:not(.fr-eyebrow) { max-width:600px; color:#526078; font-size:18px; line-height:1.6; }
.fr-chapter-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.fr-chapter-links a { display:flex; align-items:center; gap:14px; padding:14px 20px; min-height:52px; border:1px solid #d6deed; border-radius:12px; color:#0a1633; background:#fff; text-decoration:none; font-weight:700; font-size:14px; }
.fr-chapter-links a:hover { color:var(--fr-blue); border-color:var(--fr-blue); }
.fr-chapter-links a>span { color:var(--fr-blue); font-size:12px; }
.fr-showcase { padding-block:66px; border-top:1px solid #e0e6ef; }
.fr-showcase-grid { display:grid; grid-template-columns:.83fr 1.17fr; grid-template-areas:'heading gallery' 'tabs gallery' 'footer gallery'; grid-template-rows:auto auto 1fr; gap:0 42px; }
.fr-showcase-heading { grid-area:heading; padding-top:64px; }
.fr-showcase-heading .fr-eyebrow { display:flex; align-items:center; gap:12px; letter-spacing:.08em; }
.fr-chapter-number { display:inline-flex; justify-content:center; align-items:center; flex-shrink:0; width:34px; height:34px; border:1px solid #cad6f3; border-radius:50%; letter-spacing:0; }
.fr-showcase h2 { font-size:clamp(36px,4vw,52px); }
.fr-showcase-intro { font-size:17px; line-height:1.65; color:#526078; max-width:420px; margin:0; }
.fr-gallery-tabs { grid-area:tabs; display:flex; gap:8px; padding-block:26px; }
.fr-gallery-tabs [role=tab] { min-height:46px; padding:10px 18px; background:transparent; color:#526078; border:1px solid #cbd5e6; border-radius:100px; font-size:14px; font-weight:700; white-space:nowrap; }
.fr-gallery-tabs [aria-selected=true] { color:#fff; background:var(--fr-ink); border-color:var(--fr-ink); }
.fr-gallery-panels { grid-area:gallery; min-width:0; }
.fr-gallery-panels [hidden] { display:none!important; }
.fr-gallery-track { display:flex; gap:20px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; padding:26px 50px 10px; scroll-padding-inline:50px; -webkit-overflow-scrolling:touch; }
.fr-gallery-track::-webkit-scrollbar { display:none; }
.fr-gallery-track::after { content:''; flex:0 0 40%; }
.fr-gallery-slide { margin:0; flex:0 0 60%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.fr-phone-zoom { display:block; width:100%; padding:0; border:0; background:none; color:inherit; cursor:default; }
.fr-gallery-device { display:block; width:270px; max-width:100%; transition:transform .28s ease,opacity .28s ease; transform-origin:50% 70%; }
.fr-gallery-slide:not(.is-current) .fr-gallery-device { transform:scale(.87); opacity:.65; }
.fr-gallery-slide:not(.is-current) figcaption { opacity:.5; }
.fr-enlarge-label { display:block; margin:6px auto 0; min-height:44px; padding:8px 14px; border:0; background:none; color:#526078; font-size:12px; cursor:zoom-in; }
.fr-enlarge-label span { margin-left:7px; }
.fr-gallery-slide figcaption { padding:18px 0 0; transition:opacity .2s; }
.fr-gallery-slide h3 { font-size:22px; line-height:1.2; margin:0 0 9px; }
.fr-gallery-slide figcaption p { font-size:14px; line-height:1.6; color:#526078; margin:0; }
.fr-gallery-navigation { display:flex; justify-content:center; align-items:center; gap:20px; padding:18px 0 0; }
.fr-gallery-navigation button { width:46px; height:46px; border:1px solid #cbd5e6; border-radius:50%; background:transparent; color:#142440; font-size:22px; }
.fr-gallery-navigation button:hover:not(:disabled) { border-color:var(--fr-blue); color:var(--fr-blue); }
.fr-gallery-navigation button:disabled { opacity:.3; cursor:default; }
.fr-gallery-count { min-width:48px; text-align:center; color:#526078; font-size:13px; font-variant-numeric:tabular-nums; }
.fr-showcase-footer { grid-area:footer; padding-top:12px; }
.fr-showcase-footer p { max-width:365px; font-size:12px; color:#667085; line-height:1.65; margin-top:16px; }
.fr-showcase--scan { background:#0b1731; color:#fff; }
.fr-showcase--scan h2,.fr-showcase--scan h3 { color:#fff; }
.fr-showcase--scan .fr-eyebrow,.fr-showcase--scan .fr-text-link { color:#a9c0ff; }
.fr-showcase--scan .fr-showcase-intro,.fr-showcase--scan figcaption p,.fr-showcase--scan .fr-gallery-count,.fr-showcase--scan .fr-enlarge-label,.fr-showcase--scan .fr-showcase-footer p { color:#b8c7df; }
.fr-showcase--scan [role=tab],.fr-showcase--scan .fr-gallery-navigation button { border-color:#4d607f; color:#d6e1f7; }
.fr-showcase--scan [aria-selected=true] { background:#fff; border-color:#fff; color:#0b1731; }
.fr-showcase--scan .fr-chapter-number { border-color:#4d607f; }
.fr-showcase--shop { background:#f0f4ff; }
.fr-screenshot-dialog { width:min(700px,100% - 24px); max-height:calc(100dvh - 24px); border:1px solid #cad5e9; border-radius:20px; padding:0; background:#f5f7fc; color:#0b1731; overflow:auto; }
.fr-screenshot-dialog::backdrop { background:#061127dc; backdrop-filter:blur(8px); }
.fr-screenshot-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:14px; position:sticky; top:0; z-index:2; padding:12px 18px; background:#f5f7fcf5; border-bottom:1px solid #d6dfef; }
.fr-home .fr-screenshot-dialog h2 { margin:0; font-size:17px; letter-spacing:-.02em; line-height:1.3; }
.fr-screenshot-dialog-header button { flex-shrink:0; width:46px; height:46px; font-size:28px; border:1px solid #cbd5e6; border-radius:50%; background:#fff; }
.fr-screenshot-dialog-body { padding:20px; }
.fr-screenshot-dialog-body .fr-gallery-screen { width:100%; max-width:560px; margin:auto; border:0; border-radius:24px; }
.fr-screenshot-dialog-body .fr-gallery-screen img { display:block; width:100%; height:auto; }
.fr-screenshot-dialog-body .fr-gallery-screen--store img { position:absolute; width:163.142%; height:129.555%; left:-31.571%; top:-6.95%; max-width:none; }
.fr-screenshot-dialog-body p { margin:20px 0 0; font-size:15px; line-height:1.6; }
body.fr-image-open { overflow:hidden; }
@media (max-width:991.98px) {
 .fr-showcase-grid { gap:0 20px; grid-template-columns:1fr 1fr; }
 .fr-showcase-heading { padding-top:32px; }
 .fr-gallery-tabs [role=tab] { padding-inline:12px; font-size:13px; }
 .fr-gallery-track { padding-inline:20px; scroll-padding-inline:20px; }
 .fr-gallery-slide { flex-basis:90%; }
 .fr-gallery-track::after { flex-basis:10%; }
 .fr-gallery-device { width:244px; }
}
@media (max-width:767.98px) {
 .fr-ecosystem-intro { padding-block:44px 32px; }
 .fr-ecosystem-intro>p:not(.fr-eyebrow) { font-size:15px; line-height:1.6; }
 .fr-chapter-links { gap:8px; margin-top:22px; }
 .fr-chapter-links a { flex:1 0 100%; min-height:48px; padding:12px 16px; font-size:13px; }
 .fr-chapter-links a>span:last-child { margin-left:auto; }
 .fr-showcase { padding-block:38px; }
 .fr-showcase-grid { grid-template-columns:1fr; grid-template-areas:'heading' 'tabs' 'gallery' 'footer'; grid-template-rows:auto; gap:0; }
 .fr-showcase-heading { padding:0; }
 .fr-showcase-heading .fr-eyebrow { font-size:10px; gap:10px; margin-bottom:14px; }
 .fr-chapter-number { width:28px; height:28px; }
 .fr-showcase h2 { font-size:36px; margin-bottom:14px; }
 .fr-showcase-intro { font-size:15px; line-height:1.55; }
 .fr-gallery-tabs { padding-block:20px 8px; gap:7px; }
 .fr-gallery-tabs [role=tab] { flex:1; padding:10px 8px; font-size:12px; }
 .fr-gallery-panels { width:calc(100% + 40px); margin-left:-20px; }
 .fr-gallery-track { padding:18px 44px 6px; scroll-padding-inline:44px; gap:18px; }
 .fr-gallery-slide { flex-basis:90%; }
 .fr-gallery-track::after { flex-basis:10%; }
 .fr-gallery-device { width:244px; }
 .fr-gallery-slide h3 { font-size:21px; }
 .fr-gallery-slide figcaption p { font-size:14px; }
 .fr-gallery-slide figcaption { padding-top:14px; }
 .fr-gallery-navigation { padding-top:14px; }
 .fr-showcase-footer { padding-top:20px; }
 .fr-showcase-footer p { margin:10px 0 0; max-width:none; font-size:11px; }
 .fr-enlarge-label { margin-top:4px; }
 .fr-screenshot-dialog-body { padding:12px; }
 .fr-faq { grid-template-columns:1fr; }
}
@media (max-width:359.98px) {
 .fr-showcase-heading .fr-eyebrow { font-size:9px; gap:8px; }
 .fr-gallery-tabs [role=tab] { font-size:11px; padding-inline:6px; }
 .fr-gallery-track { padding-inline:30px; scroll-padding-inline:30px; }
 .fr-gallery-device { width:226px; }
}
@media (prefers-reduced-motion:reduce) {
 .fr-gallery-device,.fr-gallery-slide figcaption { transition:none; }
}
