/* Public interface v21: intentional in-flow controls, not another floating dock. */
:root { --public-focus: #173f65; }
html { scroll-padding-top: 1rem; }
*, *::before, *::after { box-sizing: border-box; }
main:focus { outline: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--public-focus); outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.site-header { position: relative; top: auto; }
.top-phone-list a { display: flex; flex-direction: column; min-height: 44px; justify-content: center; white-space: normal; }
.phone-purpose, .phone-primary-label { font-size: .75rem; font-weight: 600; line-height: 1.4; color: #243b4f; }
.contact-actions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; padding-block: .65rem; align-items: start; }
.contact-actions > * { min-width: 0; }
.contact-action-details { border: 1px solid #a8bac6; border-radius: .65rem; background: #fff; color: #183c58; overflow-wrap: anywhere; }
.contact-action-details summary { cursor: pointer; padding: .7rem .5rem; min-height: 44px; font-weight: 700; text-align: center; }
.contact-action-details[open] { grid-column: 1 / -1; order: 2; }
.contact-actions .contact-enroll { min-height: 44px; white-space: normal; overflow-wrap: anywhere; text-align: center; padding-inline: .35rem; }
.contact-options-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 1rem; padding: 1rem; }
.public-contact-card { min-width: 0; display: flex; flex-direction: column; gap: .35rem; padding: .8rem; border: 1px solid #ccd7de; border-radius: .5rem; }
.public-contact-card a { display: inline-flex; min-height: 44px; align-items: center; font-size: 1.05rem; font-weight: 700; }
.public-contact-card small { color: #334d61; }
.contact-primary { font-weight: 700; }
.contact-message-options { display: flex; flex-wrap: wrap; gap: .75rem; padding: 1rem; }
.contact-message-options > * { max-width: 100%; white-space: normal; overflow-wrap: anywhere; min-height: 44px; }
.program-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.program-facts > div { background: #f4f7f9; border: 1px solid #d4dfe6; border-radius: .8rem; padding: 1.25rem; min-width: 0; }
.program-facts dt { font-size: 1.1rem; font-weight: 700; color: #153e5a; margin-bottom: .5rem; }
.program-facts dd { margin: 0; color: #243c4f; white-space: pre-line; overflow-wrap: anywhere; }
.program-source, .booking-explanation { font-size: .95rem; color: #30495c; line-height: 1.6; }
.inner-hero-grid img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.booking-page .lead-form { width: 100%; }
.lead-form > *, .lead-form input, .lead-form select, .lead-form textarea { min-width: 0; max-width: 100%; }
.lead-form input:not([type="checkbox"]):not([type="hidden"]), .lead-form select { min-height: 44px; }
.lead-form label, .lead-form small { overflow-wrap: anywhere; }
.lead-form fieldset { min-width: 0; }
.lead-form .check { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding-right: .8rem; }
.lead-form .consent-check { gap: .8rem; align-items: start; }
.lead-form input[type="checkbox"] { width: 24px; height: 24px; min-width: 24px; margin-top: .2rem; }
.field-error { display: block; color: #96212c; font-size: .9rem; line-height: 1.45; margin-top: .3rem; }
.field-error:empty, .form-status:empty, .booking-context-status:empty { display: none; }
[aria-invalid="true"] { border: 2px solid #96212c !important; }
.form-error-summary { border: 2px solid #96212c; padding: 1rem; background: #fff6f6; border-radius: .5rem; }
.form-error-summary a { text-decoration: underline; color: #7e1822; display: inline-flex; min-height: 24px; }
.form-status { min-height: 1.5em; }
.form-submit { flex-wrap: wrap; }
.form-submit button { max-width: 100%; white-space: normal; }
.cookie-panel { position: static; width: auto; max-width: 1200px; margin: 1rem auto; transform: none; }
.cookie-panel__actions { flex-wrap: wrap; }
.cookie-panel button { white-space: normal; min-height: 44px; }
.hero-dots button { min-width: 44px; min-height: 44px; border-radius: 50%; }
.hero-play { min-height: 44px; padding: .5rem .9rem; }
.hero-slide[aria-hidden="true"] { visibility: hidden; }
.ai-chat__panel { margin: 0; position: fixed; left: auto; top: auto; right: 12px;
  bottom: calc(var(--visual-bottom, 0px) + 12px); max-width: calc(100vw - 24px);
  max-height: calc(var(--visual-height, 100dvh) - 24px); }
.ai-chat__panel::backdrop { background: rgba(5,25,40,.45); }
.ai-chat__panel:not([open]) { display: none; }
.ai-chat__head button { min-width: 44px; min-height: 44px; }
.ai-chat__composer textarea { min-width: 0; }
@media (max-width: 800px) {
  .program-facts { grid-template-columns: minmax(0,1fr); }
  .top-branches .branch-chip { display: none; }
  .top-contact { width: 100%; min-width: 0; }
  .phone-purpose { font-size: .8rem; }
  .header-actions { flex-wrap: wrap; min-width: 0; }
  .header-actions .button { white-space: normal; }
  .ai-chat__launcher { display: none; }
  .cookie-panel { display: block; margin: 1rem; }
  .cookie-panel__actions { display: flex; gap: .5rem; }
  .cookie-panel__actions > * { flex: 1 1 160px; }
  .contact-actions { gap: .4rem; }
}
@media (max-width: 480px) {
  .contact-actions { font-size: .875rem; }
  .lead-form { grid-template-columns: minmax(0,1fr); }
  .lead-form .form-wide { grid-column: 1; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

.quality-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}.quality-cards .panel{padding:1.25rem}

.hero-title{font-size:clamp(1.9rem,4vw,3.75rem);line-height:1.1;margin:0 0 1rem}.hero-dots{flex-wrap:wrap;max-width:100%}

.top-branches .phone-purpose,.top-branches .phone-primary-label,.site-footer .phone-purpose,.site-footer .phone-primary-label{color:#eaf4fb}

.top-contact .top-phone-list a{white-space:normal;overflow-wrap:anywhere;min-height:44px}.top-contact .top-phone-list a>span{color:#fff;font-size:1rem}.site-footer a[href^="tel:"]{display:flex;flex-direction:column;min-height:44px;overflow-wrap:anywhere;margin-bottom:.5rem}

@media(max-width:800px){
  .header-row{flex-wrap:wrap;gap:.5rem;padding-block:.5rem}
  .header-row .brand{flex:1 1 120px;min-width:0;max-width:100%}
  .header-row .brand img{width:140px;max-width:100%;height:auto}
  .menu-toggle{min-height:44px;margin-left:0;padding:8px}
  .header-actions{margin-left:auto}
  .header-actions .button{min-height:44px;padding:10px 14px}
}
@media(max-width:480px){
  .contact-actions summary,.contact-actions .contact-enroll{font-size:.875rem;padding-inline:.25rem}
}

.contact-action-details summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:.3rem;line-height:1.2}
.contact-action-details summary::-webkit-details-marker{display:none}
.contact-action-details summary::after{content:"";border:solid currentColor;border-width:0 1px 1px 0;width:5px;height:5px;transform:rotate(45deg);flex:0 0 5px}
.contact-action-details[open] summary::after{transform:rotate(225deg)}
@media(max-width:480px){.contact-actions{grid-template-columns:1fr 1fr 1.15fr}}
