/* TALK: clear Japanese typography, daylight photographs, and a calm mobile reading flow. */
:root{--navy:#183d55;--blue:#0075c2;--brand-deep:#075e90;--gold:#f2d33a;--paper:#f0f7fc;--soft:#eaf4fb;--muted:#526b7b;--line:#d5e4ee}
body{color:var(--navy);background:#fff}h1,h2,h3{font-weight:600;letter-spacing:.025em}h2{font-family:var(--serif)}h3{font-family:var(--body)}.container{width:min(1180px,calc(100% - 80px))}.section{padding:96px 0}.j-label{display:block;color:var(--muted);font-size:.875rem;font-weight:500;line-height:1.7;letter-spacing:.06em;margin-bottom:20px}.button{min-height:54px;border-radius:3px;font-size:1rem;padding:14px 23px;gap:22px;box-shadow:none}.button:hover{transform:none}.button.gold{background:var(--blue);border-color:var(--blue);color:#fff}.button.gold:hover{background:var(--brand-deep);border-color:var(--brand-deep)}.button.outline{color:var(--navy);border-color:#a4b4bc}.text-link{min-height:44px;font-size:.875rem;font-weight:600;border-bottom:1px solid #a9b9bf;padding:10px 0;gap:30px}.text-link{color:var(--brand-deep);border-color:#9bbfd5}.text-link:hover{color:var(--blue)}.nav>a:hover{color:var(--blue)}.arrow{flex-shrink:0}.actions{gap:16px}
.site-header{background:#fff;border-bottom:1px solid #e6ecee}.header-inner{flex-wrap:wrap;max-width:1440px;min-height:88px;padding:16px 32px;gap:24px}.brand{flex-shrink:0;gap:10px}.brand-word{font-size:2.3rem}.brand-caption{font-size:.75rem;letter-spacing:0}.brand-name{font-size:1rem}.nav{gap:22px;flex-wrap:wrap}.nav>a{font-size:.875rem}.nav .button{font-size:.875rem;min-height:48px;padding:12px 18px}.menu-toggle{border:0;border-radius:0;min-height:44px;min-width:44px;padding:8px 0;font-size:.875rem}.menu-icon{display:block;width:24px;height:14px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;margin:auto}.menu-toggle[aria-expanded=true] .menu-icon{border-bottom:0;transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon:after{content:'';display:block;border-top:1.5px solid currentColor;transform:translateY(-1px) rotate(90deg)}.menu-text{display:block;font-size:.75rem;line-height:1.5;margin-top:7px}
.editorial-photo{margin:0;min-width:0}.editorial-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:2px}.school-cover{background:var(--paper);padding:44px 0 48px}.cover-layout{display:grid;grid-template-columns:1fr 1.02fr;grid-template-rows:auto auto;column-gap:44px;row-gap:24px;align-items:center}.cover-heading{grid-column:1;grid-row:1;align-self:end;min-width:0}.cover-kicker{font-size:.875rem;line-height:1.8;letter-spacing:.02em;margin-bottom:24px}.cover-heading h1{font:600 clamp(1.8rem,3.25vw,3rem)/1.68 var(--serif);letter-spacing:.015em}.cover-heading h1>span{display:block}.cover-heading h1 em{color:var(--blue);font-style:normal;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:.13em;text-underline-offset:.17em;text-decoration-skip-ink:none}.cover-heading .cover-future{font-size:.73em;margin-top:12px;letter-spacing:.04em}.cover-main-photo{grid-column:2;grid-row:1/3;align-self:stretch;min-height:520px}.cover-main-photo img{height:100%;aspect-ratio:auto;object-position:50% center}.cover-detail{grid-column:1;grid-row:2;align-self:start;min-width:0}.cover-method{font-size:.9375rem;font-weight:600;line-height:1.9}.cover-description{font-size:1rem;line-height:2;margin-top:12px}.cover-cta{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:26px}.cover-cta .button{font-size:.875rem;padding:14px 20px;gap:16px}.cover-cta .text-link{font-size:.875rem;gap:12px}.cover-note{font-size:.8125rem;color:var(--muted);line-height:1.9;margin-top:17px}.news-strip{border-bottom:1px solid var(--line);gap:30px;padding:24px 0;margin:0}.news-strip .section-label{font-size:.875rem;letter-spacing:.03em;white-space:nowrap}.news-strip .news-link{font-size:.875rem;display:flex;align-items:center;gap:16px}.news-strip>a:last-child{font-size:.875rem;min-height:44px;display:flex;align-items:center;white-space:nowrap}
.intro-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px 88px;align-items:start}.intro-heading{grid-column:1;grid-row:1}.intro-heading h2{font-size:2.1rem;line-height:1.9;letter-spacing:.025em}.intro-photo{grid-column:1;grid-row:2}.intro-photo img{aspect-ratio:3/2}.intro-prose{grid-column:2;grid-row:1/3;padding-top:40px}.intro-prose p{font-size:1rem;line-height:2.1}.intro-prose p+p{margin-top:24px}.intro-prose .intro-question{font-size:1.125rem;font-weight:500}.intro-prose .text-link{margin-top:24px}.editorial-section-head{margin-bottom:48px}.editorial-section-head h2{font-size:2.1rem;line-height:1.8}.editorial-section-head.horizontal{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.editorial-section-head.horizontal .text-link{flex-shrink:0}.teaching-section{background:var(--paper)}.teaching-stories{display:flex;flex-direction:column;gap:64px}.teaching-story{display:grid;grid-template-columns:1.05fr 1fr;column-gap:72px;row-gap:22px;align-items:center}.teaching-title{grid-column:2;grid-row:1;align-self:end}.teaching-story>.editorial-photo{grid-column:1;grid-row:1/3;height:100%}.teaching-story>.editorial-photo img{height:100%;min-height:350px;aspect-ratio:3/2}.teaching-copy{grid-column:2;grid-row:2;align-self:start}.teaching-story:nth-child(even) .teaching-title,.teaching-story:nth-child(even) .teaching-copy{grid-column:1}.teaching-story:nth-child(even)>.editorial-photo{grid-column:2}.story-count{display:inline-block;font-size:.875rem;font-weight:600;color:var(--brand-deep);border-bottom:1px solid #8fbedc;padding:0 0 6px;margin-right:13px}.teaching-title .j-label{display:inline;margin:0;font-size:.875rem}.teaching-title h3{font-size:1.65rem;line-height:1.8;margin-top:15px;font-weight:600}.teaching-copy p{font-size:1rem;line-height:2;color:var(--muted)}.teaching-copy .text-link{margin-top:22px}.method-footnote{font-size:.875rem;line-height:1.9;color:var(--muted);margin-top:36px;max-width:960px}
.course-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.course-story{min-width:0}.course-story>.editorial-photo img{aspect-ratio:4/3}.course-story-copy{padding-top:24px}.course-title{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:17px}.course-title h3{font-size:1.75rem;font-weight:700;margin:0}.course-grade{font-size:.875rem;color:var(--muted);margin:0}.course-heading{font-size:1.125rem;font-weight:500;line-height:1.9}.course-topics{font-size:1rem;line-height:1.95;color:var(--muted);margin-top:17px}.course-story .text-link{margin-top:21px;width:100%;justify-content:space-between}.fourth-grade-note{margin-top:52px;border-top:1px solid #c5dfef;border-bottom:1px solid #c5dfef;border-left:3px solid var(--gold);background:#f4f9fd;display:grid;grid-template-columns:210px 1fr 24px;align-items:center;gap:28px;padding:30px}.fourth-grade-note>span:first-child{font-size:.875rem;color:var(--brand-deep)}.fourth-grade-note strong{font-size:1.125rem;line-height:1.9;font-weight:500}.fourth-grade-note:hover{background:#eaf5fc}
.campus-section{background:#eaf4fb}.campus-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.campus-card{display:block;background:transparent;border:0;border-radius:0;overflow:visible}.campus-content{padding:0 0 0 24px;border-left:2px solid #60a9d3}.campus-content .j-label{font-size:.875rem;margin-bottom:10px}.campus-content h3{font-size:1.8rem;margin:0 0 18px}.campus-content p{font-size:1rem;line-height:1.9}.campus-content .campus-access{font-weight:500;color:var(--navy)}.campus-content p+p{margin-top:10px}.campus-content .text-link{font-size:.875rem;margin-top:22px;width:auto;gap:32px}.faq-grid{grid-template-columns:.8fr 1.2fr;gap:70px}.faq-grid h2{font-size:2rem;line-height:1.8}.faq-list summary{font-size:1rem;line-height:1.9;padding:22px 0;gap:16px}.faq-list summary:before{font:500 1.1rem var(--body);color:var(--blue)}.faq-answer{font-size:1rem;line-height:2;padding:0 20px 24px 35px}.image-note{font-size:.8125rem;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding:20px 0 28px}
.visit-section{padding:64px 0;background:var(--brand-deep);color:#fff}.visit-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}.visit-grid h2{font-size:2rem;line-height:1.85}.visit-grid .j-label{color:#c9eaff;margin-bottom:16px}.visit-grid p{font-size:1rem;color:#e2eaed;line-height:2;margin-top:20px}.visit-action{text-align:center}.visit-action .button{font-size:1rem;width:100%;max-width:390px}.visit-action .visit-small{font-size:.875rem;margin-top:15px}.site-footer{background:#f7fafd;padding:64px 0 28px}.footer-top{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:32px}.footer-about p{font-size:.875rem}.footer-group h3{font-size:.875rem}.footer-group a{font-size:.875rem;line-height:1.85;margin:12px 0}.footer-bottom{font-size:.8125rem;margin-top:40px}.mobile-cta{box-shadow:none}
.page-hero{background:var(--paper);padding:44px 0 56px;border:0}.page-hero h1{font:600 clamp(1.875rem,3.4vw,3rem)/1.8 var(--serif);letter-spacing:.02em;max-width:1000px}.page-hero .intro{font-size:1rem;line-height:2.1;max-width:770px}.page-content{padding-bottom:64px}.content-section{padding:52px 0}.content-section h2{font-size:1.75rem;line-height:1.8}.content-section h3{font-size:1.25rem;font-weight:600}.content-section p,.content-section li{font-size:1rem;line-height:2;color:var(--muted)}.link-grid{gap:0 32px}.link-card{border:0;border-radius:0;border-bottom:1px solid var(--line);padding:23px 0;background:transparent}.link-card strong{font-size:1.125rem}.link-card small{font-size:.875rem;line-height:1.9}.link-card:hover{background:transparent}.steps{gap:28px}.step{border:0;border-top:2px solid #b5c6ce;background:transparent;padding:24px 0}.step-number{font:500 1.5rem var(--body);color:var(--blue)}.step p,.subject p{font-size:1rem}.lpm-example{box-shadow:none;border-radius:2px}.lpm-row{font-size:.875rem}.lpm-row span:last-child{font-size:.8125rem;white-space:normal}.lpm-caption{font-size:.8125rem}.lpm-follow{font-size:.875rem}.campus-detail-photo{height:auto;aspect-ratio:3/2;border-radius:2px}.campus-contact{padding:25px}.detail-table{font-size:1rem}.contact-panel{border:0;padding:0}.contact-methods p{font-size:1rem}.campus-switch button{font-size:1rem;min-height:54px}.category-card{border:0;border-top:2px solid #b6c7cf;border-radius:0;padding:24px 0}.category-card p{font-size:1rem}.category-grid{gap:36px}.notice{font-size:.875rem}.breadcrumb{font-size:.8125rem;line-height:1.9;padding:18px 0}.news-list .pill{font-size:.875rem}.news-list strong{font-size:1rem}
@media(max-width:1200px){.header-inner{padding:16px 28px}.nav{gap:16px}.brand-word{font-size:2.1rem}.brand-caption{font-size:.75rem}.cover-layout{column-gap:32px}.cover-main-photo{min-height:490px}.intro-layout{column-gap:56px}.intro-heading h2{font-size:1.9rem}.teaching-story{column-gap:44px}.footer-top{grid-template-columns:1fr 1fr 1fr}.footer-about{grid-column:1/-1}}
@media(max-width:1050px){.header-inner{min-height:76px}.menu-toggle{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;padding:18px 28px 26px;background:#fff;border-bottom:1px solid var(--line);max-height:calc(100dvh - 76px);overflow-y:auto;box-shadow:0 15px 25px #1836500a}.nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0}.nav>a{padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem;white-space:normal}.nav .button{margin-top:20px;font-size:1rem}.cover-description br{display:none}.cover-cta{gap:14px}.intro-layout{gap:30px 40px}.intro-heading h2{font-size:1.75rem}.teaching-story{column-gap:36px}.teaching-title h3{font-size:1.45rem}.course-stories{gap:24px}.course-title{display:block}.course-grade{display:block;margin-top:7px}.course-heading br{display:none}.visit-grid{gap:36px}.visit-grid h2{font-size:1.8rem}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.section{padding:64px 0}.header-inner{min-height:72px;padding:12px 20px;gap:16px}.brand{min-width:0;flex:1;flex-wrap:wrap;white-space:normal;row-gap:8px}.brand-word{font-size:2rem}.brand-name{font-size:1rem}.brand-caption{display:none}.brand-stack{padding-top:3px}.menu-toggle{padding:0;min-width:44px;flex-shrink:0}.nav{max-height:calc(100dvh - 72px)}.school-cover{padding:27px 0 30px}.cover-layout{display:flex;flex-direction:column;gap:25px;align-items:stretch}.cover-heading{align-self:auto}.cover-kicker{font-size:.875rem;margin-bottom:17px;letter-spacing:0}.cover-heading h1{font-size:clamp(1.625rem,7.2vw,2.55rem);line-height:1.7;letter-spacing:0}.cover-heading .cover-future{font-size:.74em;margin-top:8px;letter-spacing:.02em}.cover-main-photo{min-height:0;margin:0;align-self:auto}.cover-main-photo img{height:auto;aspect-ratio:4/3;object-position:50% center}.cover-detail{align-self:auto}.cover-method{font-size:.9375rem;line-height:1.9}.cover-description{font-size:1rem;margin-top:12px}.cover-description br{display:none}.cover-cta{margin-top:22px;display:flex;flex-direction:column;align-items:stretch;gap:12px}.cover-cta .button{font-size:1rem;width:100%;min-height:54px}.cover-cta .text-link{font-size:.875rem;align-self:center;gap:24px}.cover-note{font-size:.8125rem;line-height:1.9;margin-top:16px}.news-strip{display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding:18px 0}.news-strip .section-label{font-size:.875rem}.news-strip .news-link{grid-column:1/-1;grid-row:2;font-size:.875rem;line-height:1.9;justify-content:space-between}.news-strip>a:last-child{grid-column:2;grid-row:1;font-size:.8125rem;min-height:36px}.j-label{font-size:.875rem;margin-bottom:16px}.intro-layout{display:flex;flex-direction:column;gap:28px;align-items:stretch}.intro-heading h2{font-size:clamp(1.45rem,5.9vw,1.875rem);line-height:1.85}.intro-photo img{aspect-ratio:4/3}.intro-prose{padding:0}.intro-prose .intro-question{font-size:1rem;font-weight:600}.intro-prose p{font-size:1rem;line-height:2}.intro-prose .text-link{margin-top:20px}.editorial-section-head{margin-bottom:34px}.editorial-section-head h2{font-size:1.65rem;line-height:1.8;letter-spacing:0}.editorial-section-head h2 br{display:none}.editorial-section-head.horizontal{display:block}.editorial-section-head.horizontal .text-link{margin-top:14px}.teaching-stories{gap:46px}.teaching-story{display:flex;flex-direction:column;gap:22px;align-items:stretch}.teaching-story+.teaching-story{border-top:1px solid var(--line);padding-top:40px}.teaching-title{align-self:auto}.teaching-title h3{font-size:1.5rem;line-height:1.8;margin-top:13px;letter-spacing:0}.story-count{font-size:.875rem}.teaching-title .j-label{font-size:.875rem;line-height:1.9}.teaching-story>.editorial-photo{height:auto}.teaching-story>.editorial-photo img{height:auto;min-height:0;aspect-ratio:3/2}.teaching-copy{align-self:auto}.teaching-copy p{font-size:1rem;line-height:2}.teaching-copy .text-link{font-size:.875rem;margin-top:18px}.method-footnote{font-size:.875rem;line-height:1.9;margin-top:30px}.course-stories{grid-template-columns:minmax(0,1fr);gap:42px}.course-story{display:block}.course-story>.editorial-photo img{height:auto;aspect-ratio:4/3}.course-story-copy{padding-top:21px}.course-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.course-title h3{font-size:1.65rem}.course-grade{font-size:.875rem;display:block;margin:0}.course-heading{font-size:1.125rem;line-height:1.85}.course-heading br{display:none}.course-topics{font-size:1rem;line-height:1.95;margin-top:13px}.course-story .text-link{font-size:.875rem;margin-top:17px}.fourth-grade-note{grid-template-columns:1fr 24px;gap:12px 16px;padding:25px 20px;margin-top:40px}.fourth-grade-note>span:first-child{grid-column:1;font-size:.875rem}.fourth-grade-note strong{grid-column:1;font-size:1rem;line-height:1.9}.fourth-grade-note strong br{display:none}.fourth-grade-note>.arrow{grid-column:2;grid-row:1/3}.campus-grid{grid-template-columns:1fr;gap:36px}.campus-card{display:block}.campus-content{padding:0 0 0 20px}.campus-content h3{font-size:1.65rem;margin-bottom:15px}.campus-content p{font-size:1rem;overflow-wrap:anywhere}.campus-content .text-link{font-size:.875rem}.faq-grid{display:block}.faq-grid>div:first-child{margin-bottom:30px}.faq-grid h2{font-size:1.65rem;line-height:1.8}.faq-grid .text-link{margin-top:16px}.faq-list summary{font-size:1rem;gap:12px;padding:20px 0}.faq-answer{font-size:1rem;padding:0 0 22px 28px}.image-note{font-size:.8125rem;padding:19px 0 26px}.visit-section{padding:46px 0}.visit-grid{display:block}.visit-grid h2{font-size:1.65rem;line-height:1.8}.visit-grid p{font-size:1rem;line-height:2}.visit-grid p br{display:none}.visit-action{margin-top:26px;text-align:left}.visit-action .button{font-size:.9375rem;max-width:none;padding:15px 18px;gap:12px}.visit-action .visit-small{font-size:.875rem;margin-top:13px;text-align:center}.site-footer{padding:44px 0 105px}.footer-top{grid-template-columns:1fr 1fr;gap:28px 20px}.footer-about{grid-column:1/-1}.footer-about p{font-size:.875rem;line-height:2}.footer-group h3{font-size:.875rem;margin-bottom:16px}.footer-group a{font-size:.875rem;margin:13px 0}.footer-bottom{font-size:.8125rem;margin-top:32px;flex-direction:column;gap:12px}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:#fffffffa;border-top:1px solid var(--line);box-shadow:none}.mobile-cta .button{flex:1;font-size:1rem;min-height:48px;padding:11px 20px;justify-content:space-between}.page-hero{padding:28px 0 38px}.page-hero h1{font-size:1.875rem;line-height:1.75;overflow-wrap:anywhere}.page-hero h1 br{display:none}.page-hero .intro{font-size:1rem;line-height:2;margin-top:20px}.page-hero .actions .button{font-size:1rem}.page-content{padding-bottom:40px}.content-section{padding:36px 0}.content-section h2{font-size:1.5rem;line-height:1.8}.content-section h3{font-size:1.25rem}.content-section p,.content-section li{font-size:1rem;line-height:2}.link-grid{grid-template-columns:1fr}.link-card{padding:20px 0}.link-card strong{font-size:1.125rem}.link-card small{font-size:.875rem;line-height:1.9}.steps{grid-template-columns:1fr;gap:20px}.step p{font-size:1rem}.subject-list{grid-template-columns:1fr}.lpm-grid{grid-template-columns:1fr}.lpm-example{padding:20px}.lpm-row{grid-template-columns:minmax(0,1fr) minmax(32px,.5fr) minmax(64px,.7fr);gap:9px;font-size:.875rem}.lpm-row span:last-child{font-size:.8125rem;padding:4px}.lpm-caption{font-size:.8125rem}.lpm-follow{font-size:.875rem}.campus-detail-photo{height:auto;aspect-ratio:4/3}.campus-detail-grid{grid-template-columns:1fr}.campus-contact{padding:22px}.campus-contact .button{width:100%;font-size:.875rem;padding:14px 16px}.detail-table{font-size:1rem}.detail-table th,.detail-table td{padding:17px 10px;overflow-wrap:anywhere}.detail-table th{width:26%}.contact-panel{padding:0}.contact-methods{grid-template-columns:1fr}.contact-methods>div{padding:24px 20px}.contact-methods p{font-size:1rem}.contact-methods .button{font-size:1rem}.category-grid{grid-template-columns:1fr;gap:30px}.category-card{padding:24px 0}.category-card h2{font-size:1.5rem}.category-card p{font-size:1rem}.news-list>a{align-items:flex-start;flex-wrap:wrap;gap:12px;padding:24px 0}.news-list strong{flex-basis:calc(100% - 40px);font-size:1rem}.breadcrumb{font-size:.8125rem;padding:16px 0}.empty-state{padding:36px 20px}.empty-state h2{font-size:1.4rem}.empty-state p{font-size:1rem}}
@media(max-width:360px){.cover-kicker{font-size:.8125rem}.cover-heading h1{font-size:1.625rem}.cover-heading .cover-future{font-size:.72em}.teaching-title h3{font-size:1.4rem}.editorial-section-head h2,.visit-grid h2,.faq-grid h2{font-size:1.5rem}.page-hero h1{font-size:1.65rem}.footer-top{grid-template-columns:1fr}.footer-group{grid-column:1}.phone-link{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.menu-icon{transform:none!important}}

/* Supplied logo: preserve the original file and its full proportions. */
.brand{display:block;flex:0 1 256px;width:256px;max-width:100%;min-width:0}
.brand-logo{display:block;width:100%;height:auto;aspect-ratio:512/106;object-fit:contain}
.header-inner{flex-wrap:nowrap}
.site-header .brand{max-width:calc(100% - 64px)}
.footer-about .brand{width:256px;max-width:100%}
.editorial-section-head h2,.intro-heading h2,.faq-grid h2,.campus-content h3{color:var(--brand-deep)}
.visit-action .button.gold{background:#fff;border-color:#fff;color:var(--brand-deep)}
.visit-action .button.gold:hover{background:#e5f3fc;border-color:#e5f3fc}
@media(max-width:1180px){.menu-toggle{display:block;flex-shrink:0}.nav{display:none;position:absolute;left:0;right:0;top:100%;padding:18px 28px 26px;background:#fff;border-bottom:1px solid var(--line);max-height:calc(100dvh - 88px);overflow-y:auto;box-shadow:0 15px 25px #1836500a}.nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0}.nav>a{padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem;white-space:normal}.nav .button{margin-top:20px;font-size:1rem}}
@media(max-width:760px){.site-header .brand{flex:0 1 256px;width:256px}.footer-about .brand{width:256px}.nav{max-height:calc(100dvh - 80px)}}

/* Connect the learning philosophy with the result-oriented management promise. */
.cover-promise{font-size:1.125rem;font-weight:600;line-height:1.85;color:var(--brand-deep);margin-top:22px;max-width:30em;letter-spacing:.015em}
.promise-break{display:none}
@media(max-width:760px){.cover-promise{font-size:1rem;line-height:1.85;margin-top:18px}.promise-break{display:block}}

/* Dropdown navigation: normal page links with separate disclosure controls. */
.header-inner{position:relative}
.nav-item{position:relative;min-width:0}
.nav-entry{display:flex;align-items:center;position:relative}
.nav-parent{display:flex;align-items:center;min-height:48px;font-size:.875rem;font-weight:600;white-space:nowrap;transition:color .18s ease}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;min-height:48px;padding:0;border:0;border-radius:3px;background:transparent;color:var(--brand-deep);transition:background .18s ease}
.nav-chevron{display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}
.nav-toggle[aria-expanded=true] .nav-chevron{transform:translateY(2px) rotate(225deg)}
.nav-item.is-expanded .nav-parent{color:var(--blue)}
.nav-toggle:hover{background:#eaf4fb}
.nav-panel{position:absolute;right:0;top:100%;z-index:40;width:300px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 120px);overflow-y:auto;padding:15px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:0 0 4px 4px;box-shadow:0 14px 32px #183d551a}
.nav-panel:not([hidden]){animation:nav-reveal .16s ease-out both}
.nav-item:first-child .nav-panel{left:0;right:auto}
.nav-links{list-style:none;margin:0;padding:0}
.nav-links a{display:block;padding:11px 13px;font-size:.875rem;font-weight:500;line-height:1.8;border-radius:2px;color:var(--navy);transition:background .18s ease,color .18s ease,transform .18s ease}
.nav-links a:hover,.nav-links a:focus-visible{background:#edf7fd;color:var(--brand-deep)}
.nav-item-wide{position:static}
.nav-item-wide .nav-entry:after{content:'';position:absolute;left:0;right:0;top:100%;height:24px}
.nav-panel-wide{top:100%;right:32px;width:min(900px,calc(100vw - 64px));padding:26px 30px 16px}
.nav-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.nav-column{min-width:0}
.nav-column-title{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4px 14px;margin-bottom:10px;border-bottom:1px solid #c6e0f0;font-size:1rem;font-weight:700;color:var(--brand-deep)}
.nav-column-title:hover{color:var(--blue)}
.nav-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;margin-top:20px;padding:14px 4px 0;border-top:1px solid var(--line);font-size:.875rem;font-weight:600;color:var(--brand-deep)}
.nav-panel-footer:hover{color:var(--blue)}
@keyframes nav-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1181px){.nav{display:flex;position:static;gap:14px;flex-wrap:nowrap;overflow:visible;max-height:none;padding:0}.nav>.button{flex-shrink:0}}
@media(max-width:1180px){.nav-item{position:relative;border-bottom:1px solid var(--line)}.nav-entry{width:100%;justify-content:space-between}.nav-parent{flex:1;min-width:0;min-height:56px;padding:14px 8px 14px 0;font-size:1rem;white-space:normal}.nav-toggle{width:48px;min-height:48px}.nav-item-wide .nav-entry:after{display:none}.nav-panel,.nav-panel-wide{position:static;width:100%;max-width:none;max-height:none;overflow:visible;padding:4px 10px 12px;margin:0 0 12px;background:#f0f7fc;border:0;border-radius:3px;box-shadow:none}.nav-columns{grid-template-columns:1fr;gap:18px}.nav-column{padding:12px 8px 0}.nav-column-title{padding-bottom:10px;margin-bottom:3px}.nav-links a{font-size:.9375rem;padding:10px 12px;min-height:44px}.nav-panel-footer{padding:14px 12px 3px;margin:14px 8px 0}.nav-panel:not([hidden]){animation:nav-reveal .14s ease-out both}}

/* Small, consistent feedback for actions; touch does not keep hover movement. */
.button,.campus-switch button,.menu-toggle,.link-card,.fourth-grade-note{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease}
.button .arrow,.text-link .arrow,.link-card .arrow,.fourth-grade-note>.arrow,.nav-column-title .arrow,.nav-panel-footer .arrow{transition:transform .18s ease}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px);box-shadow:0 6px 14px #075e9024}.button:hover .arrow,.text-link:hover .arrow,.link-card:hover .arrow,.fourth-grade-note:hover>.arrow,.nav-column-title:hover .arrow,.nav-panel-footer:hover .arrow{transform:translateX(3px)}.campus-switch button:hover,.menu-toggle:hover{transform:translateY(-1px)}.link-card:hover,.fourth-grade-note:hover{transform:translateY(-2px)}.nav-links a:hover{transform:translateX(2px)}.nav-parent:hover{color:var(--blue)}}
.button:active,.campus-switch button:active{transform:translateY(0);box-shadow:none}
@media(prefers-reduced-motion:reduce){.nav-panel:not([hidden]){animation:none!important}.button,.campus-switch button,.menu-toggle,.link-card,.fourth-grade-note,.nav-toggle,.nav-chevron,.nav-links a,.arrow{transition:none!important}.button:hover,.button:active,.campus-switch button:hover,.menu-toggle:hover,.link-card:hover,.fourth-grade-note:hover,.nav-links a:hover,.button .arrow,.text-link .arrow,.link-card .arrow,.fourth-grade-note>.arrow,.nav-column-title .arrow,.nav-panel-footer .arrow{transform:none!important}}

/* Four distinct editorial banners. Preserve every image's full composition. */
.feature-section{background:#f8fbfd;scroll-margin-top:110px}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 36px}
.feature-card{display:flex;flex-direction:column;min-width:0;color:var(--navy);border-bottom:1px solid #aacbdf;transition:transform .18s ease,color .18s ease}
.feature-image{background:#eaf4fb}
.feature-image img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain}
.feature-copy{display:flex;flex:1;flex-direction:column;padding:23px 0 19px}
.feature-topic{display:block;color:var(--brand-deep);font-size:.875rem;line-height:1.8;margin-bottom:10px}
.feature-copy h3{font-size:1.3rem;line-height:1.8;letter-spacing:.015em;margin:0 0 13px}
.feature-copy p{color:var(--muted);font-size:1rem;line-height:1.95;margin:0 0 21px}
.feature-read{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--brand-deep);font-size:.875rem;font-weight:600;min-height:44px;margin-top:auto}
.feature-read .arrow,.campus-entry-link .arrow{transition:transform .18s ease}
.feature-return{padding-top:14px}

/* Each campus has its own real lesson photograph and one generous link target. */
.campus-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
.campus-photo-card{display:flex;flex-direction:column;min-width:0;background:#fff;color:var(--navy);transition:transform .18s ease,color .18s ease}
.campus-entry-photo{margin:0}
.campus-entry-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.campus-entry-photo figcaption{padding:10px 26px 0;font-size:.875rem;line-height:1.8;color:var(--muted)}
.campus-entry-copy{display:flex;flex:1;flex-direction:column;padding:24px 26px 21px}
.campus-entry-copy .j-label{color:var(--brand-deep);margin-bottom:8px}
.campus-entry-copy h3{font-size:1.8rem;line-height:1.7;margin:0 0 12px}
.campus-entry-copy p{font-size:1rem;line-height:1.95}
.campus-entry-copy .campus-access{font-weight:600;margin:0 0 9px}
.campus-entry-copy .campus-entry-address{color:var(--muted);margin:0 0 21px;overflow-wrap:anywhere}
.campus-entry-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:10px 0;border-bottom:1px solid #9bbfd5;font-size:.875rem;font-weight:600;color:var(--brand-deep);margin-top:auto}
.feature-card:focus-visible,.campus-photo-card:focus-visible{outline:3px solid var(--blue);outline-offset:6px}
@media(hover:hover) and (pointer:fine){.feature-card:hover,.campus-photo-card:hover{transform:translateY(-2px);color:var(--blue)}.feature-card:hover .arrow,.campus-photo-card:hover .arrow{transform:translateX(3px)}}
@media(max-width:760px){.feature-grid,.campus-photo-grid{grid-template-columns:minmax(0,1fr);gap:34px}.feature-copy{padding-top:18px;padding-bottom:12px}.feature-copy h3{font-size:1.125rem;line-height:1.85;letter-spacing:0;margin-bottom:10px}.feature-copy p{margin-bottom:14px;line-height:1.95}.feature-topic{margin-bottom:8px}.campus-entry-photo figcaption{padding:10px 20px 0}.campus-entry-copy{padding:20px}.campus-entry-copy h3{font-size:1.65rem}.campus-entry-copy .campus-entry-address{margin-bottom:17px}.campus-entry-link{font-size:.875rem;gap:12px}.feature-section{scroll-margin-top:90px}}
@media(prefers-reduced-motion:reduce){.feature-card,.campus-photo-card,.feature-read .arrow,.campus-entry-link .arrow{transition:none!important;transform:none!important}}

/* Conventional news list: clear heading, metadata, category and full-row links. */
.home-announcements{padding:64px 0 68px;background:#fff;border-bottom:1px solid var(--line)}
.announcement-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.announcement-eyebrow{display:block;color:var(--blue);font-size:.875rem;font-weight:600;letter-spacing:.12em;line-height:1.6;margin-bottom:7px}
.announcement-heading h2{font-size:2rem;line-height:1.6;margin:0}
.announcement-heading .button{min-height:48px;font-size:.875rem;padding:11px 20px;border-color:#83afcc;color:var(--brand-deep)}
.announcement-list{list-style:none;padding:0;margin:0;border-top:2px solid var(--blue)}
.announcement-list li{margin:0;padding:0;list-style:none}
.announcement-row{display:grid;grid-template-columns:110px 126px minmax(0,1fr) 24px;gap:20px;align-items:center;min-height:92px;padding:22px 18px;border-bottom:1px solid var(--line);color:var(--navy);transition:background .18s ease,color .18s ease}
.announcement-date{font-size:.875rem;line-height:1.8;color:var(--muted);font-variant-numeric:tabular-nums}
.announcement-category{display:inline-block;text-align:center;background:#eaf4fb;color:var(--brand-deep);font-size:.875rem;line-height:1.7;padding:5px 8px;border-radius:2px}
.announcement-title{font-size:1rem;line-height:1.9;font-weight:500;overflow-wrap:anywhere}
.announcement-row>.arrow{color:var(--blue);transition:transform .18s ease}
.announcement-row:focus-visible{outline:3px solid var(--blue);outline-offset:3px;background:#f0f7fc}
@media(hover:hover) and (pointer:fine){.announcement-row:hover{background:#f0f7fc;color:var(--brand-deep)}.announcement-row:hover>.arrow{transform:translateX(3px)}}
@media(max-width:760px){.home-announcements{padding:42px 0 46px}.announcement-heading{align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.announcement-heading h2{font-size:1.65rem}.announcement-eyebrow{margin-bottom:5px}.announcement-heading .button{font-size:.875rem;min-height:44px;padding:10px 14px;gap:12px}.announcement-row{grid-template-columns:90px minmax(0,1fr) 20px;gap:12px 14px;min-height:0;padding:20px 0}.announcement-date{grid-column:1;grid-row:1}.announcement-category{grid-column:2;grid-row:1;justify-self:start;padding:4px 10px}.announcement-title{grid-column:1/3;grid-row:2;font-size:1rem;line-height:1.85}.announcement-row>.arrow{grid-column:3;grid-row:1/3;align-self:center}.announcement-heading .button{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.announcement-row,.announcement-row>.arrow{transition:none!important}.announcement-row>.arrow{transform:none!important}}
