/* Focus and readable dialog surfaces; retain the existing site identity. */
[hidden]{display:none!important}
:focus-visible{outline:3px solid #fff!important;outline-offset:3px;box-shadow:0 0 0 6px #182c48!important}
main:focus{outline:none}
dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
#cookie-dialog,.external-permission,.zoho-dialog{background:#fff9f0;color:#25163f;padding:clamp(20px,4vw,36px);border:2px solid #706087;border-radius:22px;width:640px}
#cookie-dialog h2,.external-permission h2,.zoho-dialog h2{font-size:clamp(1.5rem,5vw,2rem);color:#25163f}
#cookie-dialog p,.external-permission p,.zoho-dialog p{color:#352448}
#cookie-dialog a,.external-permission a,.zoho-dialog a{color:#513483;text-decoration:underline}
#cookie-dialog .outline,.external-permission .outline{background:#fff;color:#25163f;border-color:#513483}
dialog .dialog-close{min-width:44px;min-height:44px;color:#25163f;background:#fff;border:1px solid #706087;border-radius:50%}
#cookie-dialog label{display:flex;align-items:center;gap:12px;min-height:48px;margin-top:20px}
#cookie-dialog input{width:22px;height:22px}
.privacy-notice{position:relative!important;inset:auto!important;max-width:1200px;margin:20px auto;padding:22px;background:#182c48;color:#fff;border:1px solid #a8dfff;border-radius:18px;z-index:auto!important;display:block!important}
.privacy-notice p{margin-top:0}.privacy-notice .actions{margin:12px 0}.privacy-notice .outline{background:#182c48;color:#fff;border-color:#a8dfff}
.zoho-slot iframe{display:block;width:100%;height:min(65dvh,680px);border:1px solid #706087;margin-top:18px}
.external-permission::backdrop{background:#09182cb3}
html.no-motion *,html.no-motion *::before,html.no-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.privacy-notice{margin:16px 12px}.privacy-notice .actions{display:grid}.quick-strip{flex-wrap:wrap}.quick-strip>a{white-space:normal}.header-actions{min-width:0}.social-name{overflow-wrap:anywhere}.legal a{overflow-wrap:anywhere}.header{height:auto!important;min-height:90px}html{scroll-padding-top:170px}footer{padding-bottom:calc(130px + env(safe-area-inset-bottom))}}
@media(max-width:380px){.header-actions{flex-wrap:wrap}}
/* Entrance Short: compact portrait frame, stable before and after player load. */
.coach-videos>.prepared-video[data-youtube],.coach-videos>.video-frame{width:min(100%,280px);height:auto;aspect-ratio:9/16;min-height:0;max-height:none;justify-self:center;align-self:center;border:0;border-radius:20px;overflow:hidden}
.arrival-visual>.prepared-video[data-youtube],.arrival-visual>.video-frame{width:min(100%,260px);height:auto;aspect-ratio:9/16;min-height:0;max-height:none;justify-self:center;align-self:center;border:0;border-radius:20px;overflow:hidden}

/* Mobile layout: no overlap between sticky header, quick links and content. */
:root{--header-height:92px}
.schedule-poster{margin:24px auto;max-width:920px}
.schedule .schedule-poster img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:20px}
.schedule-readable{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}
.schedule-readable article{padding:22px;border:1px solid #80ddff66;border-radius:20px;background:#182c48;color:#fff;min-width:0}
.schedule-readable h3{color:#80ddff;font-size:1.4rem}.schedule-readable dl>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:12px 0;border-bottom:1px solid #ffffff26}.schedule-readable dd{margin:0;white-space:nowrap}
@media(max-width:760px){.schedule-readable{grid-template-columns:1fr}.schedule-poster{margin:20px 0}.schedule-readable article{padding:18px}}
main,.section,.feature,.arrival-info,.arrival-visual,.coach-videos,.header-actions{min-width:0}
@media(max-width:760px){
  :root{--header-height:112px}
  html{scroll-padding-top:calc(var(--header-height) + 76px)}
  .header{grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto auto;padding:8px 12px;gap:6px 12px;height:auto!important;min-height:0}
  .header .brand{grid-column:1;grid-row:1 / 3;width:48px}
  .header .brand img{width:48px;height:64px;object-fit:contain}
  .menu-toggle{grid-column:3;grid-row:1;min-width:72px;min-height:44px;font-size:.85rem}
  .header-actions{grid-column:2 / 4;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
  .header-phone,.header-quote{min-height:44px;padding:8px 6px;font-size:clamp(.72rem,2.8vw,.9rem);white-space:normal;text-align:center}
  .header nav{top:100%;max-height:calc(100dvh - var(--header-height) - 85px);overflow-y:auto;overscroll-behavior:contain}
  .header nav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px}
  .header nav a{min-height:44px;white-space:normal;display:flex;align-items:center;padding:10px;font-size:.95rem}
  .quick-dock{position:sticky!important;top:var(--header-height)!important;max-width:100%;scroll-padding-inline:12px;overscroll-behavior-x:contain}
  .quick-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .quick-strip>a{width:auto;min-width:0;min-height:72px;padding:12px;white-space:normal}
  .hero h1{font-size:clamp(2.5rem,11vw,4.5rem);overflow-wrap:break-word}
  .arrival .actions,.contact-options .actions{display:grid;grid-template-columns:minmax(0,1fr)}
  .arrival .hours{width:100%;max-width:100%}
  .social-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-bar a{min-width:0;text-align:center;font-size:.8rem;padding:6px;line-height:1.4}
  .video-label{padding:18px}
  dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box}
  input,select,textarea{font-size:16px;max-width:100%}
}
