/* Brand-preserving refinement: calm hierarchy, clear controls, real photography. */
:root {
  --design-radius: 10px;
  --design-ease: cubic-bezier(.22, 1, .36, 1);
  --design-focus: #1C355E;
}
html { scroll-padding-top: 100px; scrollbar-color: #9BB9CC #F7F8FA; }
::selection { background: #9BB9CC; color: #1C355E; }
body { font-optical-sizing: auto; }
h1,h2 { letter-spacing: -.035em; text-wrap: balance; }
h3 { letter-spacing: -.015em; }
input,textarea { caret-color: var(--ink); }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline: 3px solid var(--design-focus); outline-offset: 4px; }
.home-page .brand-portals :focus-visible { outline-color: #1C355E; }
.site-footer :focus-visible,.dark-section :focus-visible,.planner-summary :focus-visible,.clinic-package-summary :focus-visible { outline-color: #9BB9CC; }
.site-header { height: 76px; background: rgba(255,255,255,.96); }
.site-header .brand,.site-header .swim-brand { min-height: 44px; align-content: center; }
.site-header .nav > a:not(.button) { display: inline-flex; align-items: center; min-height: 44px; }
.site-header .nav > a[aria-current] { text-underline-offset: 7px; }
.button,.menu { border-radius: var(--design-radius); touch-action: manipulation; }
.button { transition: background-color 140ms ease, border-color 140ms ease, transform 100ms ease; }
.button:not(:disabled):active,.menu:active { transform: translateY(1px); }
.text-link { text-underline-offset: .3em; text-decoration-thickness: 1px; }
.text-link:hover { text-decoration-thickness: 2px; }
.form label { line-height: 1.5; }
.form input,.form select,.form textarea,.newsletter input,.faq-tools input { font-size: 1rem; min-height: 48px; border-radius: 8px; }
.form input::placeholder,.form textarea::placeholder { color: #536779; opacity: 1; }
.site-footer input::placeholder { color: #dbe6ee; opacity: 1; }
.form input:focus,.form textarea:focus,.form select:focus { outline: 2px solid var(--ink); outline-offset: 2px; }
.form-note,.clinic-package-terms,.online-small { line-height: 1.6; }
.section-head { align-items: start; gap: 24px; }
.section-head > p { max-width: 60ch; }
.page-hero { padding-block: 56px; }
body[data-world="personal"] .page-hero { padding-block: 56px; }
.page-hero p { line-height: 1.65; max-width: 65ch; }
.page-hero h1,.service-hero-copy h1,.filming-intro h1,.online-page h1 { letter-spacing: -.035em; }
.service-hero-copy > p:not(.eyebrow),.filming-intro > p:not(.eyebrow),.faq details p { line-height: 1.65; }
.service-hero,.filming-photo,.personal-hero > img,.package,.form { border-radius: 12px; }
.service-card img { border-radius: 12px; }
.package h3 { line-height: 1.25; }
.price,.online-price strong,.clinic-product-price strong,.planner-total { letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.faq summary { min-height: 44px; line-height: 1.45; }
.faq details { padding-block: 22px; }
.faq details[open] summary { color: var(--ink); font-weight: 750; }
.faq details p { max-width: 70ch; }
.clinic-product h3 { overflow-wrap: anywhere; }
.clinic-product .clinic-product-tagline { line-height: 1.55; }
.clinic-hero h1,.camp-hero h1,.personal-hero h1 { letter-spacing: -.035em; }
.online-page .online-price strong { letter-spacing: -.035em; }
.online-page h2,.online-page h3 { letter-spacing: -.025em; }
.site-footer { padding-block: 48px 24px; }
.footer-top { gap: 40px; }
.footer-top h3 { font-size: 1rem; margin-bottom: 14px; }
.footer-top p,.footer-links a { line-height: 1.6; }
.footer-bottom { margin-top: 32px; }

/* Home: two clearly named entrances, each with its own approved brand surface. */
.home-intro { padding-block: 38px 26px; }
.home-intro h1 { font-size: clamp(1.9rem,3.5vw,3rem); line-height: 1.15; }
.home-intro p { margin-top: 12px; max-width: 65ch; color: var(--muted); font-size: 1.0625rem; }
.home-page .brand-portals { width: calc(100% - 96px); max-width: 1200px; margin-top: 0; gap: 24px; grid-template-columns: 1.06fr 1fr; }
.home-page .brand-portal { grid-template-rows: 250px 1fr; border-radius: 12px; background: #F7F8FA; color: #1C355E; }
.home-page .athlete-portal { background: #F5F1EB; }
.home-page .portal-visual { grid-row: 1; }
.home-page .portal-content { grid-row: 2; padding: 24px 32px 28px; }
.home-page .portal-visual:after { display: none; }
.home-page .portal-photo { display: block; width: 100%; height: 100%; }
.home-page .portal-identity { display: flex; align-items: center; height: 64px; margin-bottom: 18px; }
.home-page .portal-mark { width: 144px; height: 64px; object-fit: contain; object-position: left center; }
.home-page .portal-person { font-size: 1.5rem; font-weight: 800; letter-spacing: -.025em; }
.home-page .portal-content h2 { min-height: 0; font-size: clamp(2rem,3.4vw,2.9rem); margin-bottom: 16px; line-height: 1.12; }
.home-page .portal-content p:not(.eyebrow) { max-width: 52ch; margin-bottom: 24px; color: #536779; font-size: 1rem; line-height: 1.65; }
.home-page .portal-content .button { min-height: 48px; }
.home-page .business-portal .button { color: #fff; background: #1C355E; border-color: #1C355E; }
.home-page .business-portal .button:hover { background: #294a79; border-color: #294a79; }
.home-page .athlete-portal .button { background: transparent; color: #1C355E; border-color: #1C355E; }
.home-page .athlete-portal .button:hover { background: #1C355E; color: #fff; }
.home-page .brand-connection { padding-block: 28px 38px; font-size: 1rem; text-align: left; }
.home-page .brand-connection p { max-width: 70ch; color: var(--muted); line-height: 1.65; }
.home-page .brand-connection strong { color: var(--ink); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-page .portal-photo { transition: transform 400ms var(--design-ease); }
  .home-page .brand-portal:hover .portal-photo { transform: scale(1.015); }
}
@media(max-width: 1100px) {
  .home-page .brand-portals { width: calc(100% - 64px); }
  .home-page .portal-content { padding-inline: 24px; }
  .site-header { gap: 16px; }
  .site-header .nav { gap: 20px; }
}
@media(max-width: 760px) {
  .site-header { height: 72px; }
  .site-header .nav { gap: 6px; }
  .site-header .nav > a { min-height: 48px; }
  .home-intro { padding-block: 28px 22px; }
  .home-intro p { font-size: 1rem; }
  .home-page .brand-portals { width: calc(100% - 40px); grid-template-columns: minmax(0,1fr); gap: 22px; }
  .home-page .brand-portal { grid-template-rows: auto 180px; }
  .home-page .portal-content { grid-row: 1; padding: 20px 22px 24px; }
  .home-page .portal-visual { grid-row: 2; }
  .home-page .portal-identity { height: 52px; margin-bottom: 12px; }
  .home-page .portal-mark { width: 124px; height: 52px; }
  .home-page .portal-content h2 { font-size: clamp(2rem,8vw,2.6rem); margin-bottom: 14px; }
  .home-page .portal-content p { margin-bottom: 20px; }
  .home-page .brand-connection { padding-block: 24px 32px; }
  .page-hero,body[data-world="personal"] .page-hero { padding-block: 38px; }
  .section-head { gap: 18px; }
  .site-footer { padding-block: 36px 24px; }
  .footer-top { gap: 28px; }
}
@media(prefers-reduced-motion: reduce) {
  .button:not(:disabled):active,.menu:active,.home-page .portal-photo { transform: none; }
  .button,.menu,.home-page .portal-photo { transition: none; }
}
@media(prefers-reduced-transparency: reduce) { .site-header { background: #fff; backdrop-filter: none; } }
@media(prefers-contrast: more) { :focus-visible { outline-width: 4px; } .button.outline,.form input,.form select,.form textarea { border-color: #1C355E; } }
