/* Schools-only corrections. Load after the page styles and mobile-portal.css. */
.schools-page [hidden] { display: none !important; }
.schools-page [data-application-fields] {
  min-inline-size: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}
.schools-page .application-readiness {
  padding: 18px;
  border: 1px solid var(--line, #cedbd8);
  border-radius: 14px;
  background: #f1f7f5;
  color: #244b4b;
  line-height: 1.55;
  text-align: left;
}
.schools-page .application-readiness p { margin: 0 0 12px; color: inherit; font: inherit; }
.schools-page .application-readiness .btn { min-height: 44px; }
.schools-page .application-readiness[aria-busy="true"] button { display: none; }
.schools-page .schools-catalog { min-height: 0; }
.schools-page .schools-catalog .container { max-width: 1280px; padding: 0 24px; }
.schools-page .school-finder:has(.catalog-map-placeholder) { min-height: 0; }
.schools-page :is(section[id], .school-page-nav) { scroll-margin-top: 88px; }
.schools-page [data-application-fields] :is(input, select, textarea, button) {
  scroll-margin-top: 100px;
  scroll-margin-bottom: 120px;
}
.schools-page :is(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid #e04e1b;
  outline-offset: 4px;
}
.schools-page .hero-copy > .lead { overflow-wrap: anywhere; }
.schools-page .school-logo { flex-shrink: 0; }
.schools-page .hero::after,
.schools-page .hero.is-hovering::after { opacity: 1; transition: none; }

@media (max-width: 768px) {
  .schools-page .container {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-inline: auto;
    padding-inline: 18px;
  }
  .schools-page :is(.hero-showcase, .hero-main-card, .hero-main-copy, .hero-sport-card,
    .hero-sport-content, .hero-school-preview, .school-selection-grid, .school-card-body,
    .cabinet-grid, .cabinet-mockup, .request-layout, .form-grid, .signup-form-grid) {
    min-width: 0;
    max-width: 100%;
  }
  .schools-page :is(.hero-main-card, .cabinet-grid, .request-layout) {
    grid-template-columns: minmax(0, 1fr);
  }
  .schools-page .hero-showcase { min-height: 0; padding-top: 0; padding-bottom: 28px; }
  .schools-page .hero-main-card { width: 100%; min-height: 0; padding-top: 28px; gap: 24px; }
  .schools-page .hero-main-copy { width: 100%; }
  /* The supporting instructions repeat the lead; put the school list first. */
  .schools-page .hero-sport-card { display: none; }
  .schools-page .hero h1 { font-size: clamp(28px, 7.7vw, 38px) !important; line-height: 1.14 !important; }
  .schools-page .hero-lead { line-height: 1.55; }
  .schools-page .hero::after { background: linear-gradient(90deg, rgba(255,255,255,.94), rgba(255,255,255,.82)); }
  .schools-page .hero-sport-content { padding: 20px; }
  .schools-page .hero-school-preview { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; }
  .schools-page .hero-school-preview > span { min-width: 0; overflow-wrap: anywhere; }
  .schools-page .hero-school-preview a { grid-column: 1 / -1; min-height: 44px; justify-self: stretch; text-align: center; }
  .schools-page .section { padding-block: 36px; }
  .schools-page .schools-catalog { padding-block: 0; }
  .schools-page .catalog-map-placeholder { padding: 18px; }
  .schools-page .catalog-map-placeholder h3 { font-size: 20px; line-height: 1.3; }
  .schools-page .school-results { padding-top: 32px; }
  .schools-page .section-head { margin-bottom: 24px; }
  .schools-page :is(h2, .final-cta h2) { font-size: clamp(24px, 6.7vw, 30px); line-height: 1.2; overflow-wrap: anywhere; }
  .schools-page .school-card-heading { grid-template-columns: 44px minmax(0, 1fr); }
  .schools-page .school-card-heading .school-card-logo { width: 44px; height: 44px; font-size: 18px; }
  .schools-page .school-card-heading h3 { font-size: 22px; overflow-wrap: anywhere; }
  .schools-page .school-card-photo { min-height: 100px; height: 140px; }
  .schools-page .school-card-photo:not(:has(img)) { display: none; }
  .schools-page .parent-info-panel { margin-top: 24px; }
  .schools-page .parent-trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .schools-page .parent-trust-item { min-width: 0; padding: 14px; overflow-wrap: anywhere; }
  .schools-page .school-help-card { margin-top: 24px; padding: 20px; }
  .schools-page .cabinet-mockup-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schools-page .cabinet-tab { min-width: 0; padding: 12px 6px; overflow-wrap: anywhere; }
  .schools-page .cabinet-mockup-body { padding: 18px; }
  .schools-page :is(.btn, .cabinet-tab, [data-cabinet-tab], .school-page-nav a, .faq-item summary) { min-height: 44px; }
  .schools-page :is(.check, .signup-check) { min-height: 44px; align-items: start; }
  .schools-page :is(.field, .signup-field, .form-grid, .signup-form-grid) { min-width: 0; }
  .schools-page :is(.field, .signup-field) :is(input, select, textarea) { min-width: 0; max-width: 100%; font-size: 16px; }
  .schools-page .signup-form { padding: 20px; margin-top: 24px; }
  .schools-page :is(.request-card, .hero-copy, .info-card, .trainer-card, .section-head) {
    width: 100% !important;
    max-width: 100% !important;
  }
  .schools-page .request-card { padding: 20px; }
  .schools-page :is(.request-layout, .form-grid, .signup-form-grid) { grid-template-columns: minmax(0, 1fr); }
  .schools-page .request-layout { gap: 20px; }
  .schools-page .footer-grid { gap: 24px; }
  .schools-page .footer-links a { display: inline-flex; align-items: center; min-height: 36px; }
  .schools-page .school-hero :is(.slider, .slide, .slide-inner) { min-height: 0; }
  .schools-page .school-hero .slide-inner { padding-block: 24px 32px; gap: 0; }
  .schools-page .school-hero .school-id { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 18px; }
  .schools-page .school-hero .school-logo { width: 48px; height: 48px; flex-shrink: 0; font-size: 20px; }
  .schools-page .school-hero .school-id-title strong { display: none; }
  .schools-page .school-hero .has-distinct-title .school-id-title strong { display: block; font-size: 15px; line-height: 1.3; }
  .schools-page .school-hero .school-id-title span { font-size: 15px; }
  .schools-page .school-hero .hero-copy h1 { font-size: clamp(26px, 7.3vw, 34px) !important; line-height: 1.12 !important; margin-bottom: 16px; }
  .schools-page .school-hero .hero-copy > .lead { font-size: 16px; line-height: 1.5; margin-bottom: 20px; }
  .schools-page .school-hero .banner-panel { display: none; }
  .schools-page .school-hero .slider-controls { position: static; justify-content: flex-end; padding: 0 18px 20px; }
  .schools-page .school-hero .slider-dot { min-width: 44px; min-height: 44px; }
  .schools-page .school-page-nav { top: 54px; }
  .schools-page .school-page-nav .container { gap: 8px; padding-block: 10px; flex-wrap: wrap; }
  .schools-page .school-page-nav a { padding: 12px; }
}

@media (max-width: 720px) {
  html:has(body.schools-page) { padding-bottom: 0 !important; }
  .schools-page .mobile-bottom-nav { max-width: none; }
  .schools-page .cookie-notice {
    z-index: 1010;
    left: 12px;
    right: 12px;
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    max-height: calc(100dvh - 160px);
    overflow-y: auto;
    gap: 12px;
    padding: 16px;
  }
  .schools-page .cookie-notice .btn { min-height: 44px; width: 100%; }
  .schools-page:has([data-application-fields]:focus-within) .mobile-bottom-nav { display: none; }
  .schools-page .topbar-inner { flex-wrap: nowrap; min-height: 54px; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.schools-page) { scroll-behavior: auto; }
  .schools-page :is(.hero, .slide, .btn) { transition: none; animation: none; }
}

/* FR-MOBILE-UX-R2: shared measurements avoid conflicting sticky offsets. */
html:has(body.schools-page), body.schools-page { overflow-x: clip !important; }
.schools-page { --fr-bottom-space: 0px; }
.schools-page .topbar { top: 0; z-index: 1020; }
.schools-page .school-page-nav { top: var(--fr-topbar-height, 55px); z-index: 1015; }
.schools-page :is(section[id],.application-step h3,[data-application-fields] input,[data-application-fields] select,[data-application-fields] textarea) {
  scroll-margin-top: calc(var(--fr-topbar-height,55px) + var(--fr-school-nav-height,0px) + 18px);
}
.schools-page .account-menu:not([open]) .account-dropdown { opacity: 0; visibility: hidden; pointer-events: none; }
.schools-page .account-menu[open] .account-dropdown { opacity: 1; visibility: visible; pointer-events: auto; }
.schools-page .account-dropdown {
  max-height: calc(100dvh - var(--fr-topbar-height,55px) - var(--fr-bottom-space) - 28px);
  overflow-y: auto; overscroll-behavior: contain;
}
.schools-page .account-dropdown a { min-height: 44px; }
.schools-page .school-page-nav a[aria-current] { background: var(--teal-900,#0d2d2d); color: #fff; }
.schools-page :is(.btn,.slider-arrow,.slider-dot,summary) { min-height: 44px; }
.schools-page .slider { touch-action: pan-y pinch-zoom; }
.schools-page .slider-controls { gap: 2px; align-items: center; }
.schools-page .slider-dot { width:44px; height:44px; min-width:44px; padding:0; border:0; background:transparent; display:grid; place-items:center; }
.schools-page .slider-dot::before { content:''; width:8px; height:8px; border-radius:50%; background:#b8c4c2; }
.schools-page .slider-dot.is-active { background:transparent; }
.schools-page .slider-dot.is-active::before { background:var(--terracotta-500,#e04e1b); }
.schools-page .slider-arrow { width:44px; height:44px; flex-shrink:0; }
.schools-page .slider-counter { min-width:52px; text-align:center; font-size:14px; }
.schools-page .school-card-photo { display:none; }
.schools-page .school-card-logo img { width:100%;height:100%;object-fit:contain; }
.schools-page .school-card-heading h3 { display:block; -webkit-line-clamp:unset; overflow:visible; font-size:20px; line-height:1.3; }
.schools-page .catalog-filter { display:grid; grid-template-columns:2fr 1fr auto; gap:12px; margin-bottom:20px; align-items:end; }
.schools-page .catalog-filter label { display:grid; gap:6px; min-width:0; font-size:14px; }
.schools-page .catalog-filter :is(input,select) { width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid #d4d9d5;border-radius:12px;background:#fff;font:inherit;font-size:16px; }
.schools-page .catalog-count { margin:0 0 16px; font-size:14px; }
.schools-page .compact-help { margin-top:24px; padding:20px; border:1px solid #d4d9d5; border-radius:16px; }
.schools-page .compact-help summary { cursor:pointer;display:flex;align-items:center;gap:12px;font-weight:700; }
.schools-page .compact-help summary::after { content:'+';margin-left:auto; }
.schools-page .compact-help[open] summary::after { content:'−'; }
.schools-page .compact-help > :not(summary) { margin-top:18px; }
.schools-page .school-details-list { display:grid;gap:14px; }
.schools-page .school-details-list summary { padding:12px 0;font-weight:700;cursor:pointer; }
.schools-page .catalog-map-placeholder { margin:0;padding:12px 16px; border-radius:12px; }
.schools-page .catalog-map-placeholder p { margin:0; font-size:14px;line-height:1.5; }
.schools-page .application-step .form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.schools-page .application-step h3 { font-size:22px;line-height:1.3;margin:0 0 20px; }
.schools-page .application-progress { font-size:14px;font-weight:700;margin:0 0 10px;color:var(--teal-deep,#123b3a); }
.schools-page .application-step-actions { display:flex;justify-content:space-between;gap:12px;margin-top:24px; }
.schools-page .application-step-actions .btn { flex:1; }
.schools-page .application-optional { margin-top:20px; }
.schools-page .application-optional summary { cursor:pointer;display:flex;align-items:center;font-size:14px;line-height:1.5; }
.schools-page .application-optional .form-grid { padding-top:16px; }
.schools-page .application-selection { font-size:16px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-line;color:var(--teal-deep,#123b3a); }
.schools-page .application-step output { display:block;color:var(--teal-deep,#123b3a);font-size:16px;line-height:1.5; }
.schools-page [data-application-message] { color:var(--teal-deep,#123b3a);font-size:16px;line-height:1.5;scroll-margin-top:calc(var(--fr-topbar-height) + var(--fr-school-nav-height,0px) + 20px); }
.schools-page [data-application-message].is-error { color:#9a2814; }
.schools-page :is(.cabinet-tabs,.cabinet-summary) button { min-height:44px; }
.schools-page :is(.check,.signup-check,.signup-form-note) { font-size:14px;line-height:1.5; }
.schools-page :is(.check,.signup-check) input { min-width:22px;min-height:22px; }
.schools-page .field-error { color:#9f3218; font-size:14px;line-height:1.5; }
.schools-page .school-retry { margin:12px 0; }
.schools-page .swipe-dots { gap:0;flex-wrap:wrap; }
.schools-page .swipe-dot { width:44px;height:44px;background:transparent;display:grid;place-items:center; }
.schools-page .swipe-dot::before { content:'';width:7px;height:7px;border-radius:8px;background:#78918d; }
.schools-page .swipe-dot.is-active::before { width:20px;background:var(--terracotta-500,#e04e1b); }

@media (max-width:1080px) {
  .schools-page { --fr-bottom-space:82px; padding-bottom:calc(82px + env(safe-area-inset-bottom,0px)) !important; }
  .schools-page .container { padding-inline:18px; }
  .schools-page .topbar-inner { min-height:54px;padding-block:0;flex-wrap:nowrap; }
  .schools-page .mobile-bottom-nav { display:grid;position:fixed;z-index:1000;grid-template-columns:repeat(4,minmax(0,1fr));bottom:calc(12px + env(safe-area-inset-bottom,0px));left:12px;right:12px;width:auto;max-width:none;gap:4px;padding:7px;border:1px solid #e0ddd3;border-radius:18px;background:#fafaf7; }
  .schools-page .mobile-bottom-nav a { display:grid;place-items:center;min-height:48px;padding:6px 4px;border-radius:12px;font-size:12px;line-height:1.2;font-weight:700; }
  .schools-page .mobile-bottom-nav a[aria-current] { background:#0d2d2d;color:#fff; }
  .schools-page:has([data-application-fields]:focus-within) .mobile-bottom-nav { display:none; }
  .schools-page .cookie-notice { z-index:1030;left:12px;right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 160px);overflow-y:auto; }
  .schools-page .school-page-nav .container { padding-block:8px;gap:6px; }
  .schools-page .school-page-nav a { min-height:44px;display:inline-flex;align-items:center;padding:10px 12px; }
  .schools-page .catalog-filter { grid-template-columns:minmax(0,1fr); }
  .schools-page .catalog-filter button { justify-self:start; }
}
@media (max-width:768px) {
  .schools-page .application-step .form-grid { grid-template-columns:minmax(0,1fr); }
  .schools-page .catalog-map-placeholder { padding:12px 16px; }
  .schools-page .catalog-map-placeholder p { font-size:14px; }
  .schools-page .school-results { padding-top:24px; }
  .schools-page .school-hero .slider-controls { padding:0 18px 12px;justify-content:center; }
  .schools-page .school-card-heading h3 { font-size:18px; }
  .schools-page .hero-lead { font-size:16px; }
}
@media (max-height:480px) and (max-width:1080px) {
  .schools-page { --fr-bottom-space:68px; }
  .schools-page .mobile-bottom-nav { bottom:calc(6px + env(safe-area-inset-bottom,0px));padding:3px; }
  .schools-page .mobile-bottom-nav a { min-height:44px; }
  .schools-page .cookie-notice { bottom:calc(68px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 128px); }
}
