@charset "UTF-8";
.sbf-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:start}
.sbf-step{font-size:20px;font-weight:800;display:flex;gap:10px;align-items:center;margin-bottom:18px!important}
.sbf-step>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#23624f;color:#fff;font-size:16px;flex-shrink:0}
.sbf-map{position:relative;aspect-ratio:600/490;background:#e6f2f5;border:2px solid #d0e6e7;border-radius:28px;overflow:hidden}
.sbf-map>svg{position:absolute;width:100%;height:100%;inset:0}.sbf-land{fill:#c8dbb7;stroke:#fff;stroke-width:5;stroke-linejoin:round}.sbf-sea-line{fill:none;stroke:#bddbe2;stroke-width:4;stroke-linecap:round}
.sbp-home .sbf-map-area{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-10%);width:24%;min-height:64px;padding:7px 4px;border:2px solid #23624f;border-radius:14px;background:#fff;color:#18372c;box-shadow:0 4px 0 #23624f25;line-height:1.5;text-align:center}
.sbf-map-area strong{display:block;font-size:20px;white-space:nowrap}.sbf-map-area span{display:block;font-size:13px;white-space:nowrap}
.sbp-home .sbf-map-area:hover:not(:disabled){background:#fdf2cd;color:#18372c}.sbp-home .sbf-map-area[aria-pressed=true]{background:#23624f;color:#fff;border-color:#23624f;box-shadow:0 0 0 4px #f4ce6b}
.sbp-home .sbf-map-area:disabled{background:#f1f6f3;color:#5e7068;border-color:#c2d2ca;box-shadow:none;cursor:default;opacity:1}
.sbf-map-note{font-size:13px;color:#3d564b;line-height:1.7;margin-top:12px!important}
.sbf-results{min-width:0;scroll-margin-top:20px}.sbf-search{display:grid;grid-template-columns:1fr auto;gap:8px}.sbf-search label{grid-column:1/-1;font-size:16px;font-weight:700}
.sbf-search input{min-width:0;min-height:52px;padding:10px 12px;font-size:18px;background:#fff;color:#18372c;border:1px solid #99b4a4;border-radius:12px;width:100%}
.sbp-home .sbf-search button{min-height:52px;padding:8px 12px;font-size:14px;border:1px solid #99b4a4;background:#fff;color:#23624f;border-radius:12px}.sbp-home .sbf-search button:hover{background:#e1eddc;color:#18372c}
.sbf-status{font-size:22px;font-weight:800;margin:22px 0 12px!important;line-height:1.6}
.sbf-prefs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.sbf-prefs a{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:6px 12px;border:1px solid #a2baa5;border-radius:30px;background:#fff;font-size:16px;font-weight:700}.sbf-prefs a:hover{border-color:#23624f;background:#faf2d8}.sbf-prefs small{font-size:14px;background:#edf2e7;padding:0 7px;border-radius:20px}
.sbf-schools{display:grid;gap:12px}.sbf-school{padding:18px 20px;background:#fff;border:1px solid #c8d7c1;border-radius:18px;box-shadow:0 4px 0 #afc5a51a}.sbf-school-place{display:block;font-size:14px;color:#3d564b;margin-bottom:5px}.sbf-school h3{font-size:22px;line-height:1.55}.sbf-school a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:9px 0 0;color:#23624f;font-size:17px;font-weight:800;text-decoration:underline;text-underline-offset:4px}.sbf-empty{padding:18px;border-radius:15px;background:#fff5da;font-size:17px}
.sbf-mobile-find{display:none}
.sbf-school h3{font-family:inherit;font-weight:800}
@media(min-width:1001px){.sbf-map-side{position:sticky;top:20px}}
@media(max-width:1000px){.sbf-layout{grid-template-columns:1fr;gap:30px}.sbf-map-side{max-width:620px;width:100%;margin:auto}.sbf-schools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.sbf-step{font-size:18px}.sbf-map{aspect-ratio:360/370;border-radius:22px}.sbp-home .sbf-map-area{min-height:59px;width:25%;padding:6px 2px;border-radius:12px}.sbf-map-area strong{font-size:17px}.sbf-map-area span{font-size:11px}.sbf-status{font-size:22px}.sbf-schools{grid-template-columns:1fr}.sbf-school h3{font-size:21px}.sbf-map-note{font-size:12px}.sbf-search button{font-size:13px}.sbf-mobile-find{position:fixed;z-index:10;bottom:max(12px,env(safe-area-inset-bottom));left:18px;right:18px;min-height:52px;align-items:center;justify-content:space-between;padding:12px 20px;border-radius:30px;background:#23624f;color:#fff!important;font-size:17px;font-weight:800;box-shadow:0 4px 20px #173a3940}.sbf-mobile-find.is-visible{display:flex}.sbp-footer{padding-bottom:90px}}
@media(prefers-reduced-motion:reduce){.sbf-results{scroll-behavior:auto}}
@media(max-width:767px){.sbf-map-area span{font-size:12px}}
