:root{--portal-primary:#123b5d;--portal-accent:#0ba8a4;--portal-ink:#102f49;--portal-muted:#617487;--portal-soft:#f3f9fb;--portal-gold:#eca62b}*{box-sizing:border-box}body{margin:0;color:var(--portal-ink);font-family:"Segoe UI",Tahoma,Arial,sans-serif;background:#fff}a{text-decoration:none}.portal-announcement{min-height:34px;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.35rem 1rem;color:#fff;background:linear-gradient(90deg,var(--portal-primary),var(--portal-accent));font-size:.9rem}.portal-header{position:sticky;top:0;z-index:1030;background:#fff;border-bottom:1px solid #e3edf2;box-shadow:0 4px 16px rgba(18,59,93,.06)}.portal-nav{min-height:72px;display:flex;align-items:center;gap:2rem}.portal-brand{display:flex;align-items:center;gap:.65rem;color:var(--portal-ink);font-size:1.15rem;white-space:nowrap}.portal-brand img{width:auto;height:44px;max-width:150px;object-fit:contain}.portal-nav-links{display:flex;align-items:center;gap:1.25rem;flex:1}.portal-nav-links a{color:var(--portal-ink);font-weight:600;font-size:.94rem}.portal-nav-links a:hover{color:var(--portal-accent)}.portal-actions{display:flex;align-items:center;gap:.5rem}.portal-actions form{margin:0}.portal-menu-button{display:none;border:0;background:transparent;font-size:1.8rem}.btn-primary{--bs-btn-bg:var(--portal-accent);--bs-btn-border-color:var(--portal-accent);--bs-btn-hover-bg:var(--portal-primary);--bs-btn-hover-border-color:var(--portal-primary)}.btn-outline-primary{--bs-btn-color:var(--portal-primary);--bs-btn-border-color:var(--portal-primary);--bs-btn-hover-bg:var(--portal-primary);--bs-btn-hover-border-color:var(--portal-primary)}.portal-hero{position:relative;min-height:570px;background-image:var(--hero-image);background-size:cover;background-position:center;display:flex;align-items:center;overflow:hidden}.portal-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 37%,rgba(255,255,255,0) 66%)}[dir=rtl] .portal-hero-overlay{background:linear-gradient(270deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 37%,rgba(255,255,255,0) 66%)}.portal-hero-content{position:relative;z-index:1;width:100%}.portal-hero-copy{max-width:560px;color:#fff}.portal-kicker,.portal-section-title span,.portal-teacher-cta span{color:var(--portal-accent);font-weight:800}.portal-hero-copy .portal-kicker{color:#8ee9e5}.portal-hero h1{font-size:clamp(2.6rem,5vw,4.7rem);font-weight:850;line-height:1.08;margin:.8rem 0 1rem}.portal-hero p{font-size:1.2rem;line-height:1.8;max-width:520px}.portal-section{padding-top:5rem;padding-bottom:5rem}.portal-audiences{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.portal-audiences article,.portal-benefits article,.portal-content-card{border:1px solid #dfebf0;border-radius:22px;padding:2rem;background:#fff;box-shadow:0 12px 35px rgba(18,59,93,.07)}.portal-audiences i,.portal-benefits i{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#e8f8f7;color:var(--portal-accent);font-size:1.6rem}.portal-audiences h2,.portal-benefits h3{font-size:1.2rem;margin:1rem 0 .5rem}.portal-audiences p,.portal-benefits p,.portal-about p{color:var(--portal-muted);line-height:1.75}.portal-soft{background:var(--portal-soft)}.portal-section-title{text-align:center;margin-bottom:2rem}.portal-section-title h2{font-weight:800;margin-top:.4rem}.portal-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.portal-about{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:4rem}.portal-about h2{font-size:2.4rem;font-weight:800}.portal-mission-mark{min-height:300px;border-radius:30px;background:linear-gradient(145deg,var(--portal-primary),var(--portal-accent));display:grid;place-items:center;color:#fff;font-size:7rem;box-shadow:0 22px 55px rgba(18,59,93,.2)}.portal-empty{text-align:center;padding:3rem;border:2px dashed #ccdde5;border-radius:20px;color:var(--portal-muted)}.portal-empty i{font-size:2.5rem;color:var(--portal-accent)}.portal-teacher-cta{border-radius:28px;padding:3rem 4rem;color:#fff;background:linear-gradient(120deg,var(--portal-primary),#0a6e82);display:flex;align-items:center;justify-content:space-between;gap:2rem;overflow:hidden}.portal-teacher-cta h2{font-weight:800;font-size:2.2rem}.portal-teacher-cta>i{font-size:8rem;opacity:.22}.portal-faq-preview{text-align:center;max-width:720px;margin:auto;color:var(--portal-muted)}.portal-contact-cta{background:linear-gradient(110deg,var(--portal-accent),#1474a2);color:#fff;padding:2.25rem 3rem;border-radius:24px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-contact-cta h2{font-weight:800}.portal-page-hero{background:linear-gradient(120deg,var(--portal-primary),#0a7181);color:#fff;padding:5rem 0}.portal-page-hero h1{font-weight:850;font-size:clamp(2.3rem,5vw,4rem)}.portal-page-hero p{max-width:760px;font-size:1.1rem;line-height:1.8}.portal-form{max-width:980px;margin:auto}.portal-form-section{padding:2rem;margin-bottom:1.25rem;border:1px solid #dce9ee;border-radius:22px;box-shadow:0 10px 30px rgba(18,59,93,.06)}.portal-form-section h2{font-size:1.2rem;font-weight:800;margin-bottom:1.5rem}.portal-form-section h2 span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--portal-accent);color:#fff;margin-inline-end:.6rem}.portal-grade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.portal-check{cursor:pointer}.portal-check input{position:absolute;opacity:0}.portal-check span{display:block;border:1px solid #d6e4ea;border-radius:12px;padding:.8rem 1rem}.portal-check input:checked+span{border-color:var(--portal-accent);background:#e9f9f8;color:#087a78;font-weight:700}.portal-success{max-width:680px;margin:auto;text-align:center;padding:4rem 2rem;border:1px solid #dce9ee;border-radius:26px;box-shadow:0 18px 50px rgba(18,59,93,.08)}.portal-success>i{font-size:5rem;color:#21a56f}.portal-reference{padding:1rem;margin:1.5rem auto;max-width:340px;background:var(--portal-soft);border-radius:12px}.portal-reference span,.portal-reference strong{display:block}.portal-footer{background:#0a2d48;color:#c9d8e2;padding-top:4rem}.portal-footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:3rem}.portal-footer h2{font-size:1rem;color:#fff}.portal-footer a{display:block;color:#c9d8e2;margin:.55rem 0}.footer-brand{color:#fff;margin-bottom:1rem}.portal-copyright{border-top:1px solid rgba(255,255,255,.12);padding:1.25rem 0;margin-top:2.5rem;font-size:.9rem}.portal-faq .accordion-item{border-radius:14px!important;overflow:hidden;margin-bottom:.75rem;border:1px solid #dce9ee}.portal-faq .accordion-button:not(.collapsed){color:var(--portal-primary);background:#eaf8f8}
@media(max-width:991.98px){.portal-nav{flex-wrap:wrap;gap:1rem}.portal-menu-button{display:block;margin-inline-start:auto}.portal-nav-links{order:4;flex-basis:100%;flex-direction:column;align-items:stretch;padding:1rem 0}.portal-actions .btn-primary{display:none}.portal-hero{min-height:520px;background-position:center}.portal-hero-overlay,[dir=rtl] .portal-hero-overlay{background:rgba(255,255,255,.88)}.portal-audiences,.portal-benefits{grid-template-columns:repeat(2,1fr)}.portal-about{grid-template-columns:1fr}.portal-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575.98px){.portal-announcement{font-size:.75rem}.portal-nav{gap:.5rem}.portal-header .portal-brand{min-width:0;gap:.4rem;font-size:clamp(.85rem,3.5vw,1.05rem)}.portal-header .portal-brand strong{display:block;overflow:hidden;text-overflow:ellipsis}.portal-header .portal-brand img{height:38px;max-width:48px;flex-shrink:0}.portal-menu-button{margin-inline-start:auto}.portal-actions .btn-outline-primary{display:none}.portal-hero{min-height:500px}.portal-hero h1{font-size:2.55rem}.portal-section{padding-top:3.25rem;padding-bottom:3.25rem}.portal-audiences,.portal-benefits,.portal-grade-grid,.portal-footer-grid{grid-template-columns:1fr}.portal-teacher-cta,.portal-contact-cta{padding:2rem;align-items:flex-start;flex-direction:column}.portal-teacher-cta>i{display:none}.portal-form-section{padding:1.25rem}}

/* Hero alignment: preserve the artwork centre and one fixed text-safe area in both directions. */
.portal-hero{height:clamp(440px,33.375vw,560px);min-height:440px;background-repeat:no-repeat;background-position:50% 50%;background-size:cover}
.portal-hero-overlay,[dir=rtl] .portal-hero-overlay{background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 37%,rgba(255,255,255,0) 66%)}
.portal-hero-content{height:100%;display:flex;align-items:center;justify-content:flex-start;direction:ltr;padding-block:3rem}
.portal-hero-copy{width:min(100%,560px);max-width:none;direction:ltr;text-align:left}
[dir=rtl] .portal-hero-copy{direction:rtl;text-align:right}
@media(max-width:991.98px){.portal-hero{height:auto;min-height:max(620px,calc(100svh - 106px));background-image:var(--hero-mobile-image);background-position:50% 50%;overflow:visible}.portal-hero-overlay,[dir=rtl] .portal-hero-overlay{background:rgba(255,255,255,.88)}.portal-hero-content{height:auto;min-height:max(620px,calc(100svh - 106px));justify-content:center;padding-block:4rem}.portal-hero-copy,[dir=rtl] .portal-hero-copy{width:min(100%,680px);text-align:center}.portal-hero h1{font-size:clamp(2.6rem,8vw,3.7rem)}.portal-hero p{margin-inline:auto}.portal-hero-copy .d-flex{justify-content:center}}
@media(max-width:575.98px){.portal-hero{min-height:610px}.portal-hero-content{min-height:610px;padding-block:3.25rem}.portal-hero h1{font-size:clamp(2.25rem,11vw,3rem);line-height:1.08}.portal-hero p{font-size:1.05rem;line-height:1.65}.portal-hero-copy .btn{font-size:1rem;padding:.7rem 1rem}}
.portal-language-switch{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #d7e5eb;border-radius:999px;background:#f7fbfc;color:var(--portal-primary);padding:.48rem .78rem;font-weight:750;font-size:.88rem;line-height:1;transition:.2s ease}.portal-language-switch:hover,.portal-language-switch:focus-visible{color:#fff;background:var(--portal-primary);border-color:var(--portal-primary);box-shadow:0 7px 18px rgba(18,59,93,.16);transform:translateY(-1px)}.portal-language-switch .bi-globe2{color:var(--portal-accent);font-size:1rem}.portal-language-switch:hover .bi-globe2,.portal-language-switch:focus-visible .bi-globe2{color:#8ee9e5}.portal-language-switch .bi-arrow-left-right{font-size:.72rem;opacity:.7}@media(max-width:575.98px){.portal-language-switch{padding:.48rem}.portal-language-switch span,.portal-language-switch .bi-arrow-left-right{display:none}}
.portal-news-grid,.portal-testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.portal-news-card,.portal-testimonials article{background:#fff;border:1px solid #dfeaf0;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px rgba(18,59,93,.07)}.portal-news-visual{height:170px;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(145deg,#dff6f4,#dcecf6);color:var(--portal-primary);font-size:4rem}.portal-news-visual span{position:absolute;top:1rem;inset-inline-start:1rem;padding:.25rem .65rem;border-radius:999px;background:#fff;color:var(--portal-accent);font-size:.72rem;font-weight:800}.portal-news-body{padding:1.4rem}.portal-news-body time{color:var(--portal-muted);font-size:.82rem}.portal-news-body h3{font-size:1.12rem;font-weight:800;margin:.55rem 0}.portal-news-body p{color:var(--portal-muted);line-height:1.65}.portal-testimonials article{display:flex;gap:1rem;padding:1.5rem;overflow:visible}.portal-avatar{flex:0 0 58px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e4f4f5;color:var(--portal-accent);font-size:1.6rem;filter:blur(.6px)}.portal-testimonials p{color:var(--portal-muted);line-height:1.7}.portal-testimonials small,.portal-testimonials strong{display:block}.portal-stars{color:var(--portal-gold);letter-spacing:.1rem}@media(max-width:991.98px){.portal-news-grid,.portal-testimonials{grid-template-columns:1fr 1fr}}@media(max-width:575.98px){.portal-news-grid,.portal-testimonials{grid-template-columns:1fr}}

/* Native disclosure keeps language selection available without Bootstrap JS. */
.portal-language-picker{position:relative;flex-shrink:0}
.portal-language-picker summary{cursor:pointer;list-style:none}
.portal-language-picker summary::-webkit-details-marker{display:none}
.portal-language-picker[open] summary .bi-chevron-down{transform:rotate(180deg)}
.portal-language-options{position:absolute;inset-inline-end:0;top:calc(100% + .5rem);min-width:160px;padding:.4rem;background:#fff;border:1px solid #d7e5eb;border-radius:14px;box-shadow:0 12px 30px rgba(18,59,93,.14);z-index:1040}
.portal-language-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.7rem .85rem;border:0;border-radius:9px;background:#fff;color:var(--portal-ink);text-align:start}
.portal-language-option:hover,.portal-language-option:focus-visible,.portal-language-option.active{background:var(--portal-soft);color:var(--portal-primary)}

/* Keep consent aligned with the page direction without Bootstrap's left float. */
.teacher-application-consent{display:flex;align-items:flex-start;gap:.65rem;padding:0;text-align:start}
.teacher-application-consent .form-check-input{float:none;margin:0;margin-block-start:.3rem;flex-shrink:0}
.teacher-application-consent .form-check-label{flex:1;min-width:0}
.teacher-application-form .portal-check{text-align:start}

/* Keep the consent control compact despite generic portal input sizing. */
.teacher-application-consent .form-check-input{width:1.15rem;height:1.15rem;min-width:1.15rem;cursor:pointer}
.teacher-application-consent .form-check-label{cursor:pointer}

/* Scope the footer layout to the public shell; site.css retains legacy MVC body margins. */
body.public-portal-shell{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.public-portal-shell>main{flex:1 0 auto;min-width:0}
.public-portal-shell>.portal-announcement,.public-portal-shell>.portal-header,.public-portal-shell>.portal-footer{flex-shrink:0}
.public-portal-shell>.portal-footer{margin-top:auto;margin-bottom:0}
