/* Shared finishing layer: honest copy, real partner marks and an airy photo journal. */
.editorial-footer.site-footer { padding:72px 0 24px; border-top:1px solid #dce1e7; background:#fffdfa; color:#0b214b; }
.home-page .editorial-footer.site-footer { padding:72px 0 24px; background:transparent; }
.editorial-footer .footer-main { display:grid; grid-template-columns:1.15fr 1fr .8fr; gap:70px; }
.editorial-footer .footer-program-logo { display:block; width:246px; max-width:100%; height:auto; aspect-ratio:3 / 1; object-fit:contain; }
.editorial-footer h2 { margin:8px 0 23px; color:#0b214b; font-family:var(--font); font-size:14px; font-weight:700; letter-spacing:0; line-height:1.5; }
.editorial-footer p,.editorial-footer a,.editorial-footer address,.editorial-footer span { color:#536179; font-size:13px; line-height:1.8; }
.editorial-footer .footer-brand>p:first-of-type { margin:24px 0 7px; color:#0b214b; font-weight:600; }
.editorial-footer .footer-brand>span { display:block; max-width:270px; }
.editorial-footer .footer-date { margin:18px 0 0; font-size:12px; }
.editorial-footer .footer-office-name { color:#0b214b; font-weight:600; margin:0 0 9px; }
.editorial-footer address { margin:0 0 18px; font-style:normal; }
.editorial-footer .footer-map-link { display:inline-flex; align-items:center; min-height:44px; color:#0b214b; text-decoration:underline; text-underline-offset:5px; }
.editorial-footer .footer-navigation { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.editorial-footer .footer-navigation h2 { margin-bottom:14px; }
.editorial-footer .footer-navigation a { display:flex; align-items:center; min-height:34px; text-decoration:none; }
.editorial-footer .footer-navigation a:hover { color:#b7141b; text-decoration:underline; text-underline-offset:4px; }
.editorial-footer .footer-navigation .footer-register { min-height:44px; margin-top:10px; color:#b7141b; font-weight:600; }
.editorial-footer .footer-legal { display:flex; align-items:center; gap:28px; margin-top:58px; padding-top:22px; border-top:1px solid #dce1e7; }
.editorial-footer .footer-legal span,.editorial-footer .footer-legal a { font-size:11px; }
.editorial-footer .footer-legal span { margin-right:auto; }
.editorial-footer .footer-legal a { display:flex; align-items:center; min-height:44px; }
.editorial-footer a:focus-visible,.gallery-tile:focus-visible { outline:3px solid #0b214b; outline-offset:5px; }
.home-page #don-vi .container { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:90px; }
.home-page #don-vi h2,.home-page #trao-doi h2,.home-page #truong h2 { text-wrap:balance; }
.home-page .partner-list { border-top:1px solid #dce1e7; }
.home-page .partner { padding:27px 0 31px; border-bottom:1px solid #dce1e7; }
.home-page .partner-role { margin:0 0 20px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#66758b; }
.home-page .partner-lockup { display:flex; align-items:center; gap:28px; }
.home-page .partner-lockup img { flex-shrink:0; object-fit:contain; height:auto; }
.home-page .partner-rakuraku img { width:195px; aspect-ratio:1402 / 396; }
.home-page .partner-consulate img { width:86px; aspect-ratio:1; mix-blend-mode:multiply; }
.home-page .partner-lockup h3 { margin:0; font-family:var(--font); font-size:16px; font-weight:600; line-height:1.65; letter-spacing:0; }
.home-page .cta-band .container { align-items:center; gap:38px; padding-block:40px; border-top:1px solid #dce1e7; border-bottom:1px solid #dce1e7; }
.home-page .cta-band .eyebrow { margin:0 0 14px; }
.home-page .cta-band h2 { font-size:clamp(25px,2.5vw,34px); margin:0 0 16px; }
.home-page .cta-band p:not(.eyebrow) { margin:0; color:#536179; font-size:14px; }
.home-page .cta-band .button { flex-shrink:0; white-space:nowrap; }
.home-page .memory-gallery { order:10; padding-top:65px; padding-bottom:95px; }
.home-page .gallery-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:90px; margin-bottom:42px; }
.home-page .gallery-heading .eyebrow { margin:0 0 16px; }
.home-page .gallery-heading h2 { margin:0; font-size:clamp(32px,3.1vw,45px); line-height:1.25; }
.home-page .gallery-heading .lead { max-width:510px; margin:0 0 18px; }
.home-page .gallery-hint { color:#6a7689; font-size:12px; }
.home-page .gallery-mosaic { display:grid; grid-template-columns:1.02fr 1fr 1fr; grid-template-rows:285px 260px; gap:16px; }
.home-page .gallery-tile { position:relative; display:block; min-width:0; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:3px; overflow:hidden; background:#e9e5dd; color:#fff; text-align:left; cursor:zoom-in; }
.home-page .gallery-tile::after { content:''; position:absolute; inset:25% 0 0; background:linear-gradient(transparent 35%,rgba(6,20,39,.72)); pointer-events:none; }
.home-page .gallery-tile img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.home-page .gallery-tile:hover img { transform:scale(1.025); }
.home-page .gallery-graduation { grid-column:1; grid-row:1 / span 2; }
.home-page .gallery-graduation img { object-position:50% 45%; }
.home-page .gallery-enrolment img { object-position:50% 69%; }
.home-page .gallery-friends img { object-position:50% 65%; }
.home-page .gallery-everyday { grid-column:2 / span 2; }
.home-page .gallery-everyday img { object-position:50% 49%; }
.home-page .gallery-caption { position:absolute; z-index:1; bottom:24px; left:25px; right:48px; display:flex; flex-direction:column; gap:8px; }
.home-page .gallery-caption>span { color:rgba(255,255,255,.85); font-size:10px; letter-spacing:.035em; }
.home-page .gallery-caption strong { color:#fff; font-family:'Noto Serif',Georgia,serif; font-size:21px; font-weight:600; line-height:1.35; }
.home-page .gallery-graduation .gallery-caption strong { font-size:27px; }
.home-page .gallery-open { position:absolute; right:18px; bottom:20px; z-index:2; color:#fff; font-size:23px; line-height:1; }
.home-page .gallery-credit { margin:16px 0 0; color:#6a7689; font-size:11px; text-align:right; }
.gallery-lightbox { width:100vw; max-width:none; height:100dvh; max-height:none; padding:0; border:0; margin:0; background:#091526; color:#fff; overflow:hidden; }
.gallery-lightbox::backdrop { background:rgba(5,12,25,.92); }
.lightbox-inner { position:relative; display:flex; align-items:center; justify-content:center; height:100%; padding:60px 80px 30px; }
.lightbox-inner figure { display:flex; flex-direction:column; align-items:center; width:100%; height:100%; margin:0; }
.lightbox-inner figure img { display:block; width:100%; min-height:0; flex:1; object-fit:contain; }
.lightbox-inner figcaption { display:flex; justify-content:space-between; width:min(100%,1000px); gap:24px; padding-top:18px; color:#e6eaf0; font-size:13px; line-height:1.5; }
.gallery-lightbox button { position:absolute; display:grid; place-items:center; width:48px; height:48px; padding:0; border:1px solid #6e7a8b; border-radius:50%; background:transparent; color:#fff; cursor:pointer; font:400 23px/1 var(--font); }
.gallery-lightbox button:hover { background:#293548; }
.gallery-lightbox button:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.lightbox-close { right:23px; top:17px; }
.lightbox-prev { left:18px; top:calc(50% - 24px); }
.lightbox-next { right:18px; top:calc(50% - 24px); }
.stories-coming { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:70px; }
.stories-coming figure { margin:0; }
.stories-coming figure img { display:block; width:100%; height:auto; }
.stories-coming figcaption { margin-top:10px; font-size:12px; color:var(--muted); }
.stories-coming h2 { margin-top:0; font-size:30px; }
@media(max-width:1100px) {
 .editorial-footer .footer-main { gap:36px; }
 .home-page #don-vi .container,.home-page .gallery-heading { gap:44px; }
 .home-page .partner-lockup { gap:22px; flex-wrap:wrap; }
 .home-page .partner-rakuraku img { width:185px; }
 .home-page .gallery-mosaic { grid-template-rows:250px 245px; }
 .home-page .gallery-caption { left:20px; }
 .home-page .gallery-caption strong { font-size:18px; }
}
@media(max-width:720px) {
 .editorial-footer.site-footer,.home-page .editorial-footer.site-footer { padding:48px 0 20px; }
 .editorial-footer .footer-main { grid-template-columns:1fr; gap:35px; }
 .editorial-footer .footer-program-logo { width:225px; }
 .editorial-footer .footer-brand>p:first-of-type { margin-top:20px; }
 .editorial-footer h2 { margin:0 0 14px; }
 .editorial-footer .footer-office address br { display:none; }
 .editorial-footer .footer-legal { flex-wrap:wrap; gap:8px 23px; margin-top:32px; padding-top:20px; }
 .editorial-footer .footer-legal span { width:100%; margin-right:0; }
 .editorial-footer .footer-navigation a { min-height:44px; }
 .home-page #don-vi .container { display:block; }
 .home-page .partner-list { margin-top:32px; }
 .home-page .partner-lockup { gap:20px; flex-wrap:nowrap; }
 .home-page .partner-rakuraku .partner-lockup { align-items:flex-start; flex-direction:column; }
 .home-page .partner-rakuraku img { width:195px; }
 .home-page .partner-consulate img { width:76px; }
 .home-page .partner-lockup h3 { font-size:15px; }
 .home-page .cta-band .container { display:flex; flex-direction:column; align-items:flex-start; padding-block:30px; gap:24px; }
 .home-page .cta-band h2 { font-size:26px; }
 .home-page .memory-gallery { padding-top:30px; padding-bottom:64px; }
 .home-page .gallery-heading { grid-template-columns:1fr; gap:22px; margin-bottom:28px; }
 .home-page .gallery-heading h2 { font-size:32px; }
 .home-page .gallery-heading .lead { margin-bottom:14px; }
 .home-page .gallery-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:430px 185px 235px; gap:10px; }
 .home-page .gallery-graduation { grid-column:1 / span 2; grid-row:1; }
 .home-page .gallery-graduation img { object-position:50% 40%; }
 .home-page .gallery-everyday { grid-column:1 / span 2; }
 .home-page .gallery-enrolment img { object-position:50% 72%; }
 .home-page .gallery-caption { left:14px; bottom:17px; right:27px; gap:6px; }
 .home-page .gallery-caption strong { font-size:15px; }
 .home-page .gallery-graduation .gallery-caption strong { font-size:25px; }
 .home-page .gallery-caption>span { font-size:9px; }
 .home-page .gallery-open { right:10px; bottom:14px; font-size:20px; }
 .home-page .gallery-credit { text-align:left; font-size:10px; }
 .lightbox-inner { padding:74px 12px 86px; }
 .lightbox-inner figcaption { font-size:12px; gap:15px; }
 .gallery-lightbox button { width:44px; height:44px; }
 .lightbox-close { right:15px; top:14px; }
 .lightbox-prev,.lightbox-next { top:auto; bottom:20px; }
 .lightbox-prev { left:calc(50% - 60px); }
 .lightbox-next { right:calc(50% - 60px); }
 .stories-coming { grid-template-columns:1fr; gap:32px; }
 .stories-coming h2 { font-size:27px; }
}
@media(prefers-reduced-motion:reduce) { .home-page .gallery-tile img { transition:none; } }

.home-page #cau-hoi .container { align-items:start; }
.home-page #cau-hoi .faq-introduction { grid-column:1; grid-row:1; }
.home-page #cau-hoi .faq-introduction h2 { margin:0 0 20px; }
.home-page #cau-hoi .faq-introduction .lead { margin:0; }
.home-page #cau-hoi .faq-list { grid-column:2; grid-row:1; }
@media(max-width:720px) { .home-page #cau-hoi .faq-list { margin-top:30px; } }
