/* Lexington / 2027 — Japanese editorial influence: paper, ink, vermilion,
   a generous page width, compact information, and an asymmetric photo collage. */
:root {
    --ink: #24241f;
    --deep-black: #24241f;
    --ink-soft: #57574e;
    --ink-faint: #77766b;
    --cream: #f7f4eb;
    --surface-sand: #f7f4eb;
    --base-white: #fffdf7;
    --vermilion: #cf3c2d;
    --pink: #e6ad9b;
    --pink-soft: #f0e0d5;
    --yellow: #edcd61;
    --blue: #b5c8d2;
    --olive: #a7af88;
    --hairline: rgba(36,36,31,.18);
    --hairline-strong: rgba(36,36,31,.32);
    --font-display: 'Onest', Arial, sans-serif;
    --font-label: 'Courier New', monospace;
}
body.editorial-site { background: var(--cream); color: var(--ink); }
.container { width: 100%; max-width: 1560px; padding-inline: clamp(18px, 3.4vw, 56px); }
::selection { background: var(--vermilion); color: #fff; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--vermilion); outline-offset: 5px; }
html { scroll-padding-top: 120px; }

/* Straight, borderless controls; hover is a fine underline. */
.announcement-banner { background: var(--vermilion); color: #fffdf7; padding: .42rem 0; font-size: .72rem; letter-spacing: .045em; border: 0; margin: 0; box-shadow: none; }
.announcement-banner a, .announcement-banner .announcement-separator { color: #fffdf7; }
.header { top: var(--announcement-h, 32px); padding: .65rem 0; margin-top: 0; border-top: 0; background: rgba(17,18,17,.9); border-bottom: 1px solid rgba(255,255,255,.16); box-shadow: 0 8px 24px rgba(0,0,0,.1); backdrop-filter: blur(24px) saturate(125%); -webkit-backdrop-filter: blur(24px) saturate(125%); }
.header .container { max-width: 1680px; }
.nav-container { gap: 1rem; }
.logo, .logo:hover { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.logo-img { width: 43px; height: 43px; }
.logo .logo-name { font-family: 'Onest', sans-serif; font-size: .96rem; font-weight: 700; letter-spacing: -.035em; }
.logo .logo-subtitle { font-size: .63rem; margin-top: .25rem; color: #cbc9bf; }
.navigation { gap: 1rem; }
.navigation ul { padding: 0; gap: .15rem; border: 0; border-radius: 0; background: transparent; }
.navigation a { border: 0; border-radius: 0; box-shadow: none; color: #fffdf7; font-size: .81rem; padding: .7rem .6rem; transition: color .18s ease; }
.navigation a:hover { background: transparent; color: #fffdf7; border-radius: 0; }
#primary-navigation a { position: relative; }
#primary-navigation a::after { content: ''; position: absolute; height: 2px; left: .6rem; right: .6rem; bottom: .3rem; background: #ee9d83; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
#primary-navigation a:hover::after, #primary-navigation a:focus-visible::after { transform: scaleX(1); }
.navigation .nav-apply, .navigation .nav-apply:hover { background: var(--vermilion); color: #fff; border: 0; border-radius: 0; padding: .85rem 1rem; box-shadow: none; transform: none; font-size: .77rem; font-weight: 700; }
.navigation .nav-apply:hover { background: #a62e23; }
.lang-btn, .lang-btn:hover { border: 0; border-radius: 0; background: transparent; color: #fffdf7; padding: .7rem .2rem; min-height: 42px; box-shadow: none; }
.lang-btn:hover { text-decoration: underline; text-underline-offset: 6px; }
.lang-btn::before, .lang-btn::after { display: none; }
.mobile-menu-btn, .mobile-menu-btn:hover { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.mobile-menu-btn span { border-radius: 0; background: #fffdf7; }

.editorial-kicker, .hero-edition, .hero-photo-label, .photo-index, .photo-caption,
.notice-category, .section-tag, .resource-card__tag { font-family: var(--font-label); font-weight: 700; font-size: .68rem; letter-spacing: .07em; line-height: 1.4; }
.editorial-kicker { display: block; color: var(--vermilion); margin-bottom: .9rem; }
.section-tag { border: 0; background: transparent; border-radius: 0; padding: 0; gap: .75rem; }
.section-tag .num { display: inline-grid; place-items: center; min-width: 2.1rem; height: 2.1rem; padding: .3rem; border: 0; border-radius: 0; background: var(--vermilion); color: #fff; opacity: 1; }
.cta-button, .cta-button:hover, .resources-all, .resource-cta a, .gallery-load-more, .gallery-collapse { border: 0; border-radius: 0; box-shadow: none; background: var(--vermilion); color: #fff; padding: .95rem 1.2rem; min-height: 48px; font-size: .86rem; font-weight: 700; }
.cta-button:hover, .resources-all:hover, .resource-cta a:hover, .gallery-load-more:hover, .gallery-collapse:hover { background: #a62e23; color: #fff; transform: none; }
.hero-link, .text-link { color: var(--ink); font-size: .84rem; text-decoration-color: var(--vermilion); text-decoration-thickness: 1px; text-underline-offset: 5px; }

/* First screen: a poster on one side, a real school photo collage on the other. */
.hero { padding: 1.2rem 0 2.5rem; background: var(--cream); overflow: hidden; }
.hero-edition { display: flex; justify-content: space-between; gap: 1rem; padding-top: .7rem; padding-bottom: .8rem; color: var(--ink-soft); }
.hero-edition b { color: var(--vermilion); margin-inline: .5rem; }
.hero .hero-grid { grid-template-columns: minmax(0,.93fr) minmax(0,1.07fr); min-height: 0; gap: clamp(1.5rem, 3vw, 3.5rem); align-items: center; padding-top: 1.4rem; }
.hero-content { min-width: 0; margin: 0; padding-bottom: 1rem; }
.hero-text { min-width: 0; max-width: none; }
.hero-eyebrow { padding: .35rem 0; background: transparent; border: 0; border-radius: 0; color: var(--vermilion); font-family: var(--font-label); font-size: .68rem; letter-spacing: .05em; }
.hero-eyebrow::before { background: var(--vermilion); border-radius: 0; width: 7px; height: 7px; box-shadow: none; }
.hero-title { font-family: var(--font-display); font-size: clamp(4rem, 7.2vw, 8.1rem); font-weight: 800; max-width: none; line-height: .98; letter-spacing: -.075em; margin: 1.1rem 0 1.5rem; text-wrap: nowrap; }
.hero-title span { color: var(--vermilion); }
.hero-subtitle { max-width: 43ch; font-size: clamp(.95rem, 1.15vw, 1.1rem); line-height: 1.65; }
.hero-cta { gap: 1rem 1.25rem; margin-top: 1.5rem; }
.hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0; margin: 2rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--hairline-strong); }
.hero-facts li, .hero-facts li:nth-child(2), .hero-facts li:nth-child(3) { background: transparent; padding: .1rem .8rem .1rem 0; border-radius: 0; border: 0; min-width: 0; }
.hero-facts li + li { border-left: 1px solid var(--hairline); padding-left: .8rem; }
.hero-facts strong { font-size: .78rem; font-weight: 700; }
.hero-facts span { font-family: var(--font-label); font-size: .64rem; color: var(--ink-soft); }
.hero-visual { position: relative; margin: 0; width: 100%; height: clamp(490px, 44vw, 660px); min-height: 0; border: 0; border-radius: 0; overflow: visible; background-color: transparent; background-image: linear-gradient(var(--hairline) 1px, transparent 1px), linear-gradient(90deg, var(--hairline) 1px, transparent 1px); background-size: 26px 26px; box-shadow: none; isolation: isolate; }
.hero-visual::before { display: block; width: 67%; height: 76%; aspect-ratio: auto; left: 8%; top: 7%; background: var(--yellow); border-radius: 0; transform: rotate(-5deg); z-index: 0; }
.hero-visual::after { display: none; }
.hero-visual .hero-photo-main { position: absolute; width: 74%; height: 83%; top: 1%; left: 4%; right: auto; bottom: auto; border: 6px solid var(--cream); border-radius: 0; object-fit: cover; object-position: center 48%; transform: rotate(-2deg); box-shadow: 0 8px 20px rgba(36,36,31,.12); z-index: 1; }
.hero-visual .hero-photo-small { position: absolute; width: 34%; height: 30%; right: 0; left: auto; top: auto; border: 5px solid var(--cream); border-radius: 0; object-fit: cover; box-shadow: 0 7px 18px rgba(36,36,31,.15); z-index: 3; }
.hero-visual .hero-photo-small--one { top: 22%; bottom: auto; transform: rotate(5deg); object-position: 48% 45%; }
.hero-visual .hero-photo-small--two { bottom: 11%; transform: rotate(-4deg); }
.hero-photo-label { position: absolute; writing-mode: vertical-rl; left: -1rem; top: 7%; color: var(--ink); z-index: 4; }
.hero-admissions-stamp { position: absolute; top: -1%; right: -1%; display: flex; align-items: center; justify-content: center; flex-direction: column; width: clamp(100px, 11vw, 158px); aspect-ratio: 1; background: var(--vermilion); color: #fffdf7; border: 1px solid var(--vermilion); border-radius: 50%; transform: rotate(9deg); z-index: 4; }
.hero-admissions-stamp span { font-family: var(--font-label); font-size: clamp(.5rem, .63vw, .67rem); letter-spacing: .03em; }
.hero-admissions-stamp strong { font-size: clamp(2rem, 3.1vw, 3.3rem); line-height: 1.1; letter-spacing: -.06em; }
.hero-spark { position: absolute; right: 28%; bottom: 1%; font-size: 5rem; line-height: 1; color: var(--vermilion); z-index: 3; }
.hero-visual figcaption { position: absolute; left: 0; bottom: 4%; right: auto; max-width: 18ch; padding: .85rem 1rem; border-radius: 0; background: var(--blue); color: var(--ink); font-family: var(--font-display); font-size: clamp(1.1rem, 1.65vw, 1.7rem); line-height: 1.15; letter-spacing: -.045em; font-weight: 800; transform: rotate(1deg); box-shadow: none; z-index: 4; }

/* Compact noticeboard with real links instead of decorative empty cards. */
.home-noticeboard { background: #eee9dc; padding: 2.5rem 0; border-top: 1px solid var(--hairline-strong); border-bottom: 1px solid var(--hairline-strong); }
.notice-layout { display: grid; grid-template-columns: 1fr 2.3fr; gap: clamp(2rem, 4vw, 5rem); }
.notice-intro { position: relative; }
.notice-intro h2 { font-family: var(--font-display); font-size: clamp(2.2rem, 3.2vw, 3.5rem); letter-spacing: -.065em; line-height: 1; margin: 0 0 .8rem; }
.notice-intro h2 span { color: var(--vermilion); }
.notice-intro p { font-size: .84rem; color: var(--ink-soft); }
.notice-asterisk { position: absolute; right: 0; bottom: 0; color: var(--vermilion); font-size: 3.8rem; line-height: 1; }
.notice-list { border-top: 1px solid var(--ink); }
.notice-list > a { display: grid; grid-template-columns: 115px 1fr 25px; align-items: center; gap: 1rem; padding: 1.05rem .1rem; border-bottom: 1px solid var(--hairline-strong); text-decoration: none; color: var(--ink); }
.notice-list > a:hover { color: var(--vermilion); }
.notice-category { color: var(--vermilion); font-size: .61rem; }
.notice-list h3 { font-family: var(--font-display); font-size: clamp(1rem, 1.35vw, 1.35rem); letter-spacing: -.035em; line-height: 1.25; margin: 0 0 .3rem; font-weight: 700; }
.notice-list p { font-size: .75rem; line-height: 1.4; color: var(--ink-soft); margin: 0; }
.notice-arrow { font-size: 1.5rem; transition: transform .2s ease; }
.notice-list > a:hover .notice-arrow { transform: translate(2px,-2px); }

/* Denser, wider sections; the small index and divider supply hierarchy. */
.about, .educational-approach, .programs, .director-qualifications, .branches, .activities, .contact, .resources-section { padding: clamp(3rem, 4.8vw, 5rem) 0; }
.about, .programs, .activities, .resources-section { background: var(--cream); }
.educational-approach { background: #ece8dc; }
.director-qualifications { background: #e8e9dc; }
.branches { background: #eee7dc; }
.contact { background: #e5e7da; }
.section-head { display: grid; grid-template-columns: 180px 1fr; align-items: start; gap: 1.5rem; margin-bottom: 2rem; padding-top: 1rem; border-top: 1px solid var(--ink); }
.section-head .section-tag { margin-top: .3rem; margin-bottom: 0; }
.section-head h2, .about-text h2, .contact-info h2, .resources-heading h2 { font-family: var(--font-display); font-size: clamp(2.6rem, 4.2vw, 4.5rem); line-height: 1.05; font-weight: 800; letter-spacing: -.065em; max-width: 23ch; margin: 0; }
.about-content { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.about-text { max-width: none; }
.about-text .section-head { display: block; }
.about-text .section-tag { margin-bottom: 1rem; }
.about-text h2 { max-width: 16ch; }
.about-text p { max-width: 68ch; font-size: .92rem; line-height: 1.75; margin-top: 1rem; }
.about-image { padding: 2.7rem 0 0; }
.about-image::before { display: none; }
.about-image img { display: block; width: 100%; height: clamp(330px, 31vw, 460px); object-fit: cover; border: 0; border-radius: 0; box-shadow: none; transform: none; }
.photo-index { position: absolute; left: 0; top: 1rem; color: var(--vermilion); }
.photo-caption { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--ink); font-size: .6rem; }
.approach-grid--bento { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border: 1px solid var(--hairline-strong); }
.approach-grid--bento .approach-card, .approach-grid--bento .approach-card--big:first-child, .approach-grid--bento .approach-card--wide { grid-column: auto; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1.4rem; min-height: 300px; padding: clamp(1.3rem, 2.5vw, 2.4rem); border: 0; border-radius: 0; background: #fffdf7; box-shadow: none; }
.approach-grid--bento .approach-card + .approach-card { border-left: 1px solid var(--hairline-strong); }
.approach-grid--bento .approach-card--lime { background: #f0e5be; }
.approach-grid--bento .approach-card--dark { background: #ccd1bb; }
.approach-grid--bento .approach-card-icon, .approach-grid--bento .approach-card--dark .approach-card-icon, .approach-grid--bento .approach-card--lime .approach-card-icon { border: 0; border-radius: 0; background: transparent; color: var(--vermilion); width: 42px; height: 42px; padding: 0; }
.approach-grid--bento .approach-card--wide .approach-card-body { flex: initial; }
.approach-grid--bento .approach-card h3 { font-size: clamp(1.4rem, 2vw, 2rem); letter-spacing: -.04em; line-height: 1.1; margin-bottom: .8rem; }
.approach-grid--bento .approach-card p { font-size: .9rem; line-height: 1.65; }
.approach-grid--bento .approach-card::after { display: none; }
.programs-grid--bento { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; }
.programs-grid--bento .program-card, .programs-grid--bento .program-card:hover { grid-column: auto; min-height: 0; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; background: #ede9dd; box-shadow: none; transform: none; }
.programs-grid--bento .program-card:hover { background: #e5dfce; }
.programs-grid--bento .program-card-image { margin: 0; width: 100%; height: clamp(200px, 19vw, 290px); border-radius: 0; }
.programs-grid--bento .program-card-overlay { top: .8rem; left: .8rem; right: .8rem; }
.programs-grid--bento .program-chip { border-radius: 0; background: var(--cream); color: var(--ink); font-size: .68rem; }
.programs-grid--bento .program-card-num { padding: .35rem .5rem; border-radius: 0; color: #fff; background: var(--vermilion); font-family: var(--font-label); font-size: .8rem; }
.programs-grid--bento .program-card-body { padding: 1.2rem 1.35rem 1.5rem; }
.programs-grid--bento .program-card h3 { font-size: clamp(1.4rem, 1.8vw, 1.9rem); line-height: 1.15; }
.programs-grid--bento .program-card p { font-size: .86rem; line-height: 1.65; }
.programs-grid--bento .age-range { color: var(--vermilion); font-family: var(--font-label); font-size: .68rem; border: 0; border-radius: 0; padding: 0; background: transparent; }

.discovery-strip { padding: 2.5rem 0; background: var(--yellow); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.discovery-layout { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 1.7rem; }
.discovery-heading { position: relative; }
.discovery-heading h2 { font-family: var(--font-display); margin: 0; font-size: clamp(2rem, 2.6vw, 2.8rem); font-weight: 800; letter-spacing: -.06em; line-height: 1.05; }
.discovery-heading > span:last-child { position: absolute; right: .4rem; bottom: 0; font-size: 2rem; }
.discovery-item { border-left: 1px solid rgba(36,36,31,.35); padding-left: 1.6rem; }
.discovery-symbol { display: block; height: 2.9rem; font-size: 2.8rem; font-weight: 800; line-height: 1; letter-spacing: -.08em; color: var(--vermilion); }
.discovery-item h3 { margin: 1rem 0 .5rem; font-size: 1rem; letter-spacing: -.03em; }
.discovery-item p { max-width: 30ch; font-size: .82rem; line-height: 1.6; margin: 0; }
.qualifications-bento { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.qualifications-bento .director-card { min-height: 380px; border: 0; border-radius: 0; }
.qualifications-bento .director-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.qualifications-bento .director-card-body { padding: 1.1rem; }
.qualifications-bento .director-card-body h3 { font-size: 1.3rem; line-height: 1.12; }
.qualifications-bento .director-card-body p { font-size: .76rem; line-height: 1.55; }
.qualifications-bento .director-chip { border-radius: 0; background: var(--cream); font-family: var(--font-label); font-size: .63rem; }
.qualifications-bento .qual-card { border: 1px solid var(--hairline-strong); border-radius: 0; min-height: 0; padding: 1.5rem; }
.qualifications-bento .qual-card--canadian { background: #efe5c4; }
.qualifications-bento .qual-card--lankan { background: #d3dedf; }
.qualifications-bento .qual-card h4 { font-size: 1.1rem; letter-spacing: -.035em; line-height: 1.2; margin-block: 1.5rem 1rem; }
.qualifications-bento .qual-card li { font-size: .8rem; line-height: 1.5; margin-bottom: 1rem; }
.qualifications-bento .qual-card .qual-meta { font-size: .7rem; line-height: 1.4; }
.branches-grid--bento { gap: 1.2rem; }
.branches-grid--bento .branch-card--primary, .branches-grid--bento .branch-card--secondary { min-height: 310px; padding: 1.6rem 2rem; border: 0; border-radius: 0; }
.branches-grid--bento .branch-card--primary { background: #dfc06b; }
.branches-grid--bento .branch-card--secondary { background: #b7c8cc; }
.branches-grid--bento .branch-card h3 { font-size: clamp(1.8rem, 2.7vw, 2.8rem); letter-spacing: -.055em; }
.branches-grid--bento .branch-chip, .branches-grid--bento .branch-card--secondary .branch-chip { border-radius: 0; background: transparent; padding: 0; font-family: var(--font-label); font-size: .65rem; }
.branches-grid--bento .branch-card-icon, .branches-grid--bento .branch-card--secondary .branch-card-icon { position: absolute; top: 1.3rem; right: 2rem; border-radius: 0; background: transparent; width: 42px; height: 42px; margin: 0; }
.branches-grid--bento .branch-card-body { margin-top: 2rem; }
.branches-grid--bento .branch-address, .branches-grid--bento .branch-card--secondary .branch-address { padding: .8rem 0; border-radius: 0; border-top: 1px solid rgba(36,36,31,.3); border-bottom: 1px solid rgba(36,36,31,.3); background: transparent; font-size: .9rem; }
.branches-grid--bento .branch-card-body > p:last-child { font-size: .83rem; max-width: 53ch; }
.activities-intro { max-width: 75ch; font-size: .94rem; line-height: 1.65; margin-bottom: 1.8rem; }
.events-grid--bento { grid-template-columns: 1.35fr 1fr 1fr; gap: 1rem; margin-bottom: 2.7rem; }
.events-grid--bento .event-card, .events-grid--bento .event-card:hover { min-height: 0; border: 0; border-radius: 0; background: #ece8dc; box-shadow: none; transform: none; cursor: default; }
.events-grid--bento .event-card--featured { min-height: 425px; }
.events-grid--bento .event-image { margin: 0; min-height: 140px; border-radius: 0; }
.events-grid--bento .event-card--featured .event-image { min-height: 295px; }
.events-grid--bento .event-card-overlay { top: .75rem; left: .75rem; right: .75rem; }
.events-grid--bento .event-chip { border-radius: 0; background: var(--cream); font-family: var(--font-label); font-size: .6rem; padding: .4rem .55rem; }
.events-grid--bento .event-card-num { border-radius: 0; color: #fff; background: var(--vermilion); font-size: .7rem; font-family: var(--font-label); }
.events-grid--bento .event-card-body, .events-grid--bento .event-card--featured .event-card-body { padding: 1rem; }
.events-grid--bento .event-card-body :is(h3,h4) { font-family: var(--font-display); font-weight: 800; color: var(--ink); letter-spacing: -.035em; font-size: 1.2rem; line-height: 1.3; margin: 0 0 .55rem; }
.events-grid--bento .event-card--featured .event-card-body :is(h3,h4) { font-size: 1.65rem; }
.events-grid--bento .event-card-body p { font-size: .95rem; line-height: 1.65; }
.gallery-head { border-top: 1px solid var(--ink); padding-top: 1rem; margin-bottom: 1.5rem; }
.gallery-head h3 { font-size: clamp(2.3rem, 3.7vw, 4rem); margin-top: .8rem; }
.gallery-grid--mosaic { gap: .55rem; grid-auto-rows: 190px; }
.gallery-grid--mosaic .gallery-item { border-radius: 0; border: 0; box-shadow: none; transition-delay: 0s !important; }
.gallery-grid--mosaic .gallery-item:hover { transform: none; box-shadow: none; }
.gallery-actions { justify-content: flex-start; }

.resources-heading { padding-top: 1rem; border-top: 1px solid var(--ink); margin-bottom: 1.6rem; }
.resources-heading h2 { margin-top: .8rem; }
.resources-heading > p { font-size: .95rem; line-height: 1.65; max-width: 37ch; }
.resource-grid { gap: 1.2rem; }
.resource-card { border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; padding: 0 0 1rem; background: transparent; }
.resource-card:hover, .resource-card:focus-visible { transform: none; box-shadow: none; }
.resource-card__tag { padding: .4rem .6rem; border-radius: 0; background: #ecd5c8; }
.resource-card img { height: clamp(180px, 19vw, 250px); margin: .7rem 0 1rem; border-radius: 0; }
.resource-card h3 { font-size: clamp(1.3rem, 1.8vw, 1.9rem); line-height: 1.16; font-family: var(--font-display); letter-spacing: -.045em; }
.resource-card p { font-size: .86rem; line-height: 1.6; margin: .7rem 0 1rem; }
.resource-card__link { padding-top: .7rem; font-size: .78rem; }
.resource-card__link span { border-radius: 0; background: transparent; width: 1.5rem; height: 1.5rem; font-size: 1.3rem; color: var(--vermilion); }
.resources-all { margin-top: 1.5rem; }
.home-questions { background: #ece8dc; padding: 3rem 0; border-block: 1px solid var(--hairline-strong); }
.home-questions-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 6vw, 6rem); }
.home-questions h2 { margin: 0 0 1rem; font-family: var(--font-display); font-size: clamp(2.8rem, 4.5vw, 4.8rem); letter-spacing: -.065em; line-height: 1.03; }
.home-questions h2 span { color: var(--vermilion); }
.home-questions p { font-size: .9rem; line-height: 1.65; margin-bottom: 1rem; color: var(--ink-soft); }
.home-questions-list { border-top: 1px solid var(--ink); }
.home-questions details { padding: 1.2rem 0; border-bottom: 1px solid var(--hairline-strong); }
.home-questions summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; font-size: .96rem; font-weight: 700; }
.home-questions summary::-webkit-details-marker { display: none; }
.home-questions summary::after { content: '+'; font-size: 1.3rem; color: var(--vermilion); line-height: 1; }
.home-questions details[open] summary::after { content: '−'; }
.home-questions details p { max-width: 65ch; margin: .85rem 1.5rem 0 0; font-size: .86rem; }
.contact-content { gap: 4rem; }
.contact-info h2 { font-size: clamp(3rem, 4.7vw, 5rem); }
.contact-info > p { font-size: .94rem; max-width: 60ch; }
.contact-item h4 { font-family: var(--font-label); font-size: .65rem; letter-spacing: .06em; color: var(--vermilion); }
.contact-item p { font-size: .9rem; }
.contact-form, .contact-card { border: 0; border-radius: 0; background: #f0d8ca; min-height: 420px; padding: clamp(1.5rem, 3vw, 3rem); }
.contact-card-kicker { border-radius: 0; padding: .45rem .6rem; background: var(--vermilion); color: #fff; font-family: var(--font-label); font-size: .65rem; }
.contact-card h3 { font-size: clamp(3rem, 4.5vw, 5rem); margin-top: 1.2rem; max-width: 12ch; }
.contact-card > p { font-size: .91rem; }
.contact-card-art { height: 110px; }
.contact-card-art span:nth-child(1) { width: 140px; background: var(--yellow); }
.contact-card-art span:nth-child(2) { width: 150px; right: 25%; background: var(--vermilion); }
.contact-card-art span:nth-child(3) { background: var(--blue); bottom: -80px; right: 3%; }
.footer { padding-top: 3.5rem; }
.footer-mega { font-size: clamp(3.8rem, 7.5vw, 8rem); }
.footer-mega .scribble { border-radius: 0; background: var(--vermilion); color: #fff; transform: rotate(-3deg); padding: .35em .5em; }
.footer-col h4 { font-family: var(--font-label); font-size: .72rem; }
.footer-col p, .footer-col li { font-size: .8rem; }
.footer-bottom { margin-top: 2rem; }

/* The same shape language carries into the parent library and admissions. */
.resources-hero, .article-hero { padding: 3rem 0; background: #eee7dc; }
.resources-hero h1 { font-size: clamp(3.8rem, 6.3vw, 6.8rem); max-width: 12ch; }
.resources-hero h1 em { color: var(--vermilion); }
.resources-hero p { font-size: 1.02rem; }
.resources-hero__art { border-radius: 0; padding: .6rem; background: var(--yellow); transform: rotate(1deg); }
.resources-hero__art img { border-radius: 0; }
.resources-hero__art span { border-radius: 0; background: var(--vermilion); color: #fff; }
.resource-cta { padding: 3.5rem 0; background: var(--blue); }
.resource-cta h2 { font-size: clamp(3rem, 5vw, 5.5rem); }
.article-hero h1 { font-size: clamp(3rem, 4.8vw, 5.3rem); }
.article-hero figure, .article-hero figure img { border-radius: 0; }
.article-hero figure { transform: none; background: var(--yellow); padding: .55rem; }
.article-callout, .article-aside > div, .guide-checklist li { border-radius: 0; }
.article-callout { border-left: 3px solid var(--vermilion); background: #f0e0d5; }
.article-content a, .admissions-faq details a { color: #a52f23; }
.article-content li::before { color: var(--vermilion); }
.article-layout { padding-top: 3rem; padding-bottom: 4rem; }
.enrollment-section { padding: 3.5rem 0; }
.enrollment-header { max-width: 940px; margin-inline: auto; }
.enrollment-header h1 { font-size: clamp(3rem, 5vw, 5.3rem); }
.admissions-contact-panel { border: 1px solid var(--ink); border-radius: 0; background: #fffdf7; }
.admissions-year, .admissions-steps span { border-radius: 0; background: var(--vermilion); color: #fff; }
.admissions-details, .admissions-faq { padding: 3.5rem 0; }
.admissions-details { background: #eee5c8; }
.admissions-steps > div { border-radius: 0; border-top: 1px solid var(--ink); }
.admissions-details h2, .admissions-faq h2 { font-size: clamp(2.8rem, 4.5vw, 4.8rem); }
/* Online application entry matches the Google Form's Onest / vermilion theme. */
.application-intro { max-width: 1000px; background: var(--base-white); border-top: 4px solid var(--vermilion); }
.application-intro .application-form-note { font-size: 14px; line-height: 1.7; padding-top: 1rem; margin-top: 1.25rem; border-top: 1px solid var(--hairline); }
@media (max-width: 640px) {
    .application-intro p { font-size: 16px; }
    .application-intro .admissions-actions { align-items: stretch; flex-direction: column; }
    .application-intro .cta-button { white-space: normal; text-align: center; }
    .application-intro .admissions-secondary { display: inline-flex; align-items: center; min-height: 44px; }
}
.policy-hero { padding: 3rem 0; background: #eee7dc; }
.policy-hero .policy-tag, .policy-content .contact-box, .go-back-btn { border-radius: 0; }

@media (max-width: 1200px) {
    .qualifications-bento { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .qualifications-bento .director-card { min-height: 360px; }
    .qualifications-bento .qual-card { min-height: 0; }
}
@media (max-width: 1100px) {
    .navigation { position: static; flex-shrink: 0; gap: .8rem; }
    .logo .logo-name { font-size: .95rem; }
    .mobile-menu-btn { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 42px; height: 42px; padding: 0; cursor: pointer; color: #fff; }
    .mobile-menu-btn span { display: block; width: 21px; height: 2px; }
    .navigation ul { display: none; position: absolute; top: calc(100% + .65rem); left: 0; right: 0; flex-direction: column; gap: 0; padding: .35rem 1rem; border: 0; border-radius: 0; background: rgba(17,18,17,.98); box-shadow: 0 15px 22px rgba(0,0,0,.2); z-index: 120; }
    .navigation.is-open ul { display: flex; }
    .navigation ul li + li { border-top: 1px solid rgba(255,255,255,.15); }
    .navigation ul a { display: block; border-radius: 0; padding: .9rem .2rem; min-height: 44px; font-size: .9rem; background: transparent; color: #fffdf7; }
    #primary-navigation a::after { left: .2rem; right: auto; width: 60px; bottom: .55rem; }
    .navigation .nav-apply { display: none; }
    .navigation .nav-apply-item { display: list-item; }
    .hero-title { font-size: clamp(3.2rem, 6.9vw, 5rem); }
    .hero-visual { height: 500px; }
    .hero-facts strong { font-size: .67rem; }
    .hero-facts span { font-size: .58rem; }
    .hero-cta { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .section-head { grid-template-columns: 135px 1fr; }
    .notice-layout { grid-template-columns: 1fr 2fr; gap: 2rem; }
    .notice-list > a { grid-template-columns: 85px 1fr 20px; gap: .7rem; }
}
@media (max-width: 800px) {
    .hero-edition { font-size: .55rem; }
    .hero .hero-grid { grid-template-columns: 1fr 1.05fr; gap: 1.3rem; padding-top: 1rem; }
    .hero-title { font-size: clamp(2.8rem, 6.6vw, 4.3rem); margin-top: .8rem; }
    .hero-eyebrow { font-size: .55rem; }
    .hero-visual { height: 450px; }
    .hero-subtitle { font-size: .9rem; line-height: 1.6; }
    .hero-facts { margin-top: 1.3rem; }
    .hero-facts li { padding-right: .4rem; }
    .hero-facts li + li { padding-left: .4rem; }
    .hero-facts strong { font-size: .64rem; }
    .hero-facts span { font-size: .54rem; }
    .hero-visual figcaption { font-size: 1.05rem; padding: .7rem; }
    .hero-admissions-stamp { width: 100px; }
    .hero-admissions-stamp span { font-size: .49rem; }
    .hero-admissions-stamp strong { font-size: 2rem; }
    .hero-spark { font-size: 3.5rem; }
    .notice-layout { grid-template-columns: 1fr 2fr; gap: 1.7rem; }
    .notice-list > a { grid-template-columns: 1fr 20px; }
    .notice-category { grid-column: 1; font-size: .58rem; }
    .notice-list > a > div { grid-column: 1; }
    .notice-arrow { grid-column: 2; grid-row: 1 / span 2; }
    .notice-list h3 { font-size: 1.02rem; }
    .notice-list p { font-size: .7rem; }
    .section-head h2, .section-head-left h2, .about-text h2, .contact-info h2, .programs h2, .activities h2, .branches h2, .director-qualifications h2, .educational-approach h2 { font-size: clamp(2.4rem, 4.8vw, 3.3rem) !important; line-height: 1.08 !important; letter-spacing: -.06em !important; }
    .about-content { gap: 2rem; }
    .about-text p { font-size: .85rem; }
    .about-image img { height: 410px; }
    .photo-caption { font-size: .5rem; }
    .approach-grid--bento .approach-card, .approach-grid--bento .approach-card--wide { padding: 1.3rem; min-height: 0; }
    .approach-grid--bento .approach-card h3 { font-size: 1.35rem; }
    .approach-grid--bento .approach-card p { font-size: .8rem; }
    .programs-grid--bento { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
    .programs-grid--bento .program-card-image { height: 190px; }
    .programs-grid--bento .program-card-body { padding: 1rem .8rem; }
    .programs-grid--bento .program-card h3 { font-size: 1.25rem; }
    .programs-grid--bento .program-card p { font-size: .78rem; }
    .discovery-layout { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
    .discovery-item:nth-child(3) { border-left: 0; padding-left: 0; }
    .events-grid--bento { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: auto; }
    .events-grid--bento .event-card--featured { grid-column: 1 / -1; grid-row: auto; min-height: 0; }
    .events-grid--bento .event-image,
    .events-grid--bento .event-card--small .event-image,
    .events-grid--bento .event-card--featured .event-image { height: auto; min-height: 0; aspect-ratio: 16 / 10; flex: none; }
    .events-grid--bento .event-card-body p,
    .events-grid--bento .event-card--featured .event-card-body p { font-size: 16px; line-height: 1.65; }
    .events-grid--bento .event-card--small { min-height: 0; }
    .gallery-grid--mosaic { grid-auto-rows: 150px; }
    .contact-content { gap: 2rem; }
    .resources-heading h2 { font-size: 2.8rem; }
    .resource-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; }
    .resource-card h3 { font-size: 1.25rem; }
    .resource-card p { font-size: .78rem; }
    .resource-card img { height: 160px; }
    .home-questions-layout { gap: 2rem; }
    .home-questions summary { font-size: .85rem; }
}
@media (max-width: 640px) {
    .header { padding: .5rem 0; }
    .logo-img { width: 34px; height: 34px; }
    .logo .logo-name { font-size: .8rem; }
    .logo .logo-subtitle { font-size: .53rem; }
    .navigation { gap: .5rem; }
    .lang-btn { font-size: .73rem; padding-inline: 0; }
    .mobile-menu-btn { width: 44px; height: 44px; }
    .lang-btn { min-width: 44px; min-height: 44px; }
    .hero { padding: .55rem 0 1.7rem !important; }
    .hero-edition { font-size: .5rem; padding-block: .5rem; }
    .hero-edition span:last-child { max-width: 22ch; text-align: right; }
    .hero-edition b { margin-inline: .15rem; }
    .hero .hero-grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; padding-top: .5rem; }
    .hero-title { font-size: clamp(3.6rem, 12.8vw, 5.4rem); margin: .75rem 0 1rem; }
    .hero-eyebrow { font-size: .59rem; }
    .hero-subtitle { max-width: 45ch; font-size: .93rem; }
    .hero-cta { flex-direction: row; align-items: center; flex-wrap: wrap; gap: .8rem 1rem; margin-top: 1.1rem; }
    .hero-cta .cta-button { font-size: .78rem; padding: .8rem .9rem; }
    .hero-link { font-size: .76rem; }
    .hero-facts { margin-top: 1.3rem; padding-top: .8rem; }
    .hero-facts strong { font-size: .7rem; }
    .hero-facts span { font-size: .59rem; }
    .hero-content { padding-bottom: 0; }
    .hero-visual { width: calc(100% - 10px); margin-left: 10px; height: clamp(390px, 111vw, 560px); min-height: 0; }
    .hero-visual .hero-photo-main { border-width: 4px; width: 76%; }
    .hero-visual .hero-photo-small { width: 35%; border-width: 4px; }
    .hero-photo-label { left: -.95rem; font-size: .5rem; }
    .hero-visual figcaption { font-size: 1.1rem; }
    .hero-admissions-stamp { width: 108px; top: 0; right: -1%; }
    .hero-admissions-stamp span { font-size: .52rem; }
    .home-noticeboard { padding: 1.8rem 0; }
    .notice-layout { grid-template-columns: 1fr; gap: 1rem; }
    .notice-intro h2 br { display: none; }
    .notice-intro h2 { font-size: 2.35rem; }
    .notice-intro p { margin-bottom: 0; }
    .notice-asterisk { right: .2rem; font-size: 2.6rem; }
    .notice-list > a { padding: .9rem 0; gap: .4rem; }
    .about, .educational-approach, .programs, .director-qualifications, .branches, .activities, .contact, .resources-section { padding: 2.5rem 0; }
    .section-head { display: block; padding-top: .8rem; margin-bottom: 1.5rem; }
    .section-head .section-tag { margin: 0 0 1rem; }
    .section-head h2, .section-head-left h2, .about-text h2, .contact-info h2, .programs h2, .activities h2, .branches h2, .director-qualifications h2, .educational-approach h2 { font-size: clamp(2.35rem, 8.4vw, 3.2rem) !important; }
    .about-content { grid-template-columns: 1fr; gap: 1rem; }
    .about-text p { font-size: .9rem; }
    .about-image { padding-top: 2.2rem; }
    .about-image img { height: 290px; }
    .photo-caption { font-size: .55rem; }
    .approach-grid--bento { grid-template-columns: 1fr; }
    .approach-grid--bento .approach-card, .approach-grid--bento .approach-card--wide { flex-direction: row; gap: 1rem; padding: 1.35rem; }
    .approach-grid--bento .approach-card + .approach-card { border-left: 0; border-top: 1px solid var(--hairline-strong); }
    .approach-grid--bento .approach-card-icon { width: 35px; height: 35px; flex-shrink: 0; }
    .approach-grid--bento .approach-card h3 { font-size: 1.4rem; }
    .approach-grid--bento .approach-card p { font-size: .84rem; margin-bottom: 0; }
    .programs-grid--bento { grid-template-columns: 1fr; gap: 1.4rem; }
    .programs-grid--bento .program-card-image { height: 245px; }
    .programs-grid--bento .program-card-body { padding: 1.1rem; }
    .programs-grid--bento .program-card h3 { font-size: 1.6rem; }
    .programs-grid--bento .program-card p { font-size: .87rem; }
    .discovery-layout { gap: 1.5rem 1rem; }
    .discovery-strip { padding: 1.8rem 0; }
    .discovery-heading h2 { font-size: 2.1rem; }
    .discovery-heading > span:last-child { right: .5rem; bottom: -.3rem; }
    .discovery-item { padding-left: 1rem; }
    .discovery-item h3 { font-size: .9rem; }
    .discovery-item p { font-size: .75rem; }
    .discovery-symbol { font-size: 2.4rem; height: 2.5rem; }
    .qualifications-bento { grid-template-columns: minmax(0,1fr); gap: 1rem; }
    .qualifications-bento .director-card { min-height: 360px; }
    .qualifications-bento .director-card-body { padding: 1.15rem; }
    .qualifications-bento .director-card-body h3 { font-size: 1.5rem; }
    .qualifications-bento .director-card-body p { font-size: 16px; }
    .qualifications-bento .director-card-overlay { top: .65rem; left: .65rem; }
    .qualifications-bento .qual-card { padding: 1rem; }
    .qualifications-bento .qual-card h4 { font-size: 1.05rem; }
    .qualifications-bento .qual-card li { font-size: .73rem; }
    .qualifications-bento .qual-card .qual-meta { font-size: .65rem; }
    .branches-grid--bento { grid-template-columns: 1fr; }
    .branches-grid--bento .branch-card--primary, .branches-grid--bento .branch-card--secondary { padding: 1.5rem; min-height: 0; }
    .branches-grid--bento .branch-card h3 { font-size: 2rem; }
    .branches-grid--bento .branch-card-icon { right: 1.5rem; }
    .events-grid--bento { grid-template-columns: minmax(0,1fr); gap: 1.25rem; align-items: start; }
    .events-grid--bento .event-card { grid-column: auto; grid-row: auto; min-width: 0; }
    .events-grid--bento .event-card-body,
    .events-grid--bento .event-card--featured .event-card-body { padding: 1.15rem; }
    .events-grid--bento .event-card-body :is(h3,h4),
    .events-grid--bento .event-card--featured .event-card-body :is(h3,h4) { font-size: 24px; line-height: 1.3; margin: 0 0 .55rem; }
    .events-grid--bento .event-card-overlay { left: .75rem; right: .75rem; top: .75rem; gap: .5rem; }
    .events-grid--bento .event-chip { font-size: 12px; line-height: 1.4; gap: .4rem; padding: .5rem .65rem; }
    .events-grid--bento .event-card-num { font-size: 12px; flex-shrink: 0; }
    .activities-intro { font-size: 16px; line-height: 1.75; }
    .gallery-head h3 { font-size: 2.3rem !important; }
    .gallery-grid--mosaic { grid-auto-rows: 150px; }
    .resource-grid, .resources-section--related .resource-grid { grid-template-columns: 1fr; gap: 1.6rem; }
    .resources-heading h2 { font-size: 2.6rem; }
    .resources-heading > p { margin-top: .9rem; font-size: .87rem; }
    .resource-card img { height: 220px; }
    .resource-card h3 { font-size: 1.65rem; }
    .resource-card p { font-size: .87rem; }
    .home-questions { padding: 2.3rem 0; }
    .home-questions-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .home-questions h2 { font-size: 2.8rem; }
    .home-questions summary { font-size: .9rem; }
    .contact-content { grid-template-columns: 1fr; gap: 1.5rem; }
    .contact-form, .contact-card { min-height: 400px; padding: 1.4rem; }
    .contact-card h3 { font-size: 3.3rem; }
    .contact-card-actions { align-items: flex-start; }
    .footer { padding-top: 2.5rem; }
    .footer-mega { font-size: 4.2rem; }
    .footer-cols { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .resources-hero, .article-hero { padding: 2rem 0; }
    .resources-hero h1 { font-size: 3.6rem; }
    .article-hero h1 { font-size: 2.8rem; }
    .resources-hero__art img { height: 280px; min-height: 0; }
    .enrollment-header h1 { font-size: 2.8rem !important; line-height: 1.05 !important; }
    .admissions-details, .admissions-faq, .enrollment-section { padding: 2.5rem 0; }
    .admissions-details h2, .admissions-faq h2 { font-size: 2.8rem; }
    .about-text p, .approach-grid--bento .approach-card p,
    .programs-grid--bento .program-card p, .discovery-item p,
    .branches-grid--bento .branch-card-body > p:last-child,
    .resource-card p, .resources-heading > p, .home-questions p,
    .home-questions details p, .contact-info > p, .contact-item p,
    .contact-card > p { font-size: 16px; line-height: 1.7; }
    .qualifications-bento .qual-card li { font-size: 16px; }
    .qualifications-bento .qual-card .qual-meta { font-size: 14px; }
}
@media (max-width: 380px) {
    .logo .logo-subtitle { display: none; }
    .logo .logo-name { max-width: 17ch; line-height: 1.2; font-size: .8rem; }
    .logo { gap: .4rem; }
    .logo-img { width: 30px; height: 30px; }
    .navigation { gap: .35rem; }
    .hero-title { font-size: clamp(2.9rem, 14.5vw, 3.4rem); }
    .hero-eyebrow { font-size: .53rem; }
    .hero-facts strong { font-size: .62rem; }
    .hero-facts span { font-size: .53rem; }
    .qualifications-bento { grid-template-columns: 1fr; }
    .qualifications-bento .director-card { min-height: 360px; }
    .qualifications-bento .director-card-body h3 { font-size: 1.4rem; }
    .qualifications-bento .director-card-body p { font-size: 16px; }
    .discovery-layout { grid-template-columns: minmax(0,1fr); }
    .discovery-item { border-left: 0; border-top: 1px solid var(--hairline-strong); padding: 1.25rem 0 0; }
}
@media (prefers-reduced-motion: reduce) {
    #primary-navigation a::after, .notice-arrow { transition: none; }
    .hero-visual img, .hero-visual figcaption, .hero-admissions-stamp { transform: none; }
}
