/* Local images add pauses between the text; movement follows the shared toggle. */
.theme-b .has-atmosphere-background { position:relative; isolation:isolate; overflow:hidden; }
.theme-b .has-atmosphere-background > :not(.atmosphere-background) { position:relative; z-index:1; }
.atmosphere-background { position:absolute; z-index:0; inset:0; pointer-events:none; overflow:hidden; }
.atmosphere-background img { width:100%; height:calc(100% + 64px); margin-top:-32px; object-fit:cover; object-position:center; }
.atmosphere-background::after { content:""; position:absolute; inset:0; }
.atmosphere-parallax-layer { transform:translate3d(0,var(--atmosphere-y,0px),0); }
.hero-wave-divider { --footer-blue:#1648ce; position:relative; height:100px; margin-bottom:20px; overflow:hidden; background:#fffdf7; pointer-events:none; }
.hero-wave-divider .atmosphere-waves { height:100%; inset:0; background:none; mask-image:linear-gradient(#000 78%,transparent); }
.hero-wave-divider .atmosphere-wave-1 { fill:#b6d2f1; }
.hero-wave-divider .atmosphere-wave-2 { fill:#5c90dc; }
.hero-wave-divider .atmosphere-wave-3 { fill:#1648ce; }
.atmosphere-background-hero { opacity:.23; }
.atmosphere-background-hero img { object-position:50% 42%; }
.atmosphere-background-hero::after { background:linear-gradient(90deg,#fffdf7e8 8%,#fffdf765 72%,#fffdf7c9); }
.theme-b .philosophy.has-atmosphere-background { background:#edf3ff; }
.atmosphere-background-philosophy { opacity:.25; }
.atmosphere-background-philosophy img { object-position:50% 47%; }
.atmosphere-background-philosophy::after { background:linear-gradient(90deg,#edf3fff2,#edf3ffb5 60%,#edf3ff72); }
.theme-b .visit.has-atmosphere-background { background:#153da4; }
.atmosphere-background-visit { opacity:.19; }
.atmosphere-background-visit img { object-position:50% 47%; }
.atmosphere-background-visit::after { background:linear-gradient(90deg,#09246dbb,#163da43d); }
.theme-b .possibility-list .atmosphere-card { display:grid; grid-template-columns:40px minmax(0,1fr); gap:13px 16px; align-content:start; padding:20px 20px 27px; }
.atmosphere-card-image { grid-column:1 / -1; min-width:0; margin:0 0 7px; }
.atmosphere-card-image .atmosphere-image-frame { aspect-ratio:4 / 3; overflow:hidden; border-radius:9px; background:#e5eaf3; }
.atmosphere-card-image img { width:100%; height:100%; object-fit:cover; }
.atmosphere-card-learning img { object-position:51% 58%; }
.atmosphere-card-creating img { object-position:76% 62%; }
.atmosphere-card-connecting img { object-position:50% 54%; }
.theme-b .atmosphere-card .number { margin:0; font-size:29px; line-height:1.5; }
.theme-b .atmosphere-card h3 { font-size:20px; padding-top:4px; }
.theme-b .atmosphere-card p { font-size:16px; line-height:1.95; margin-top:13px; }
.theme-b .parents { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:38px; }
.atmosphere-parents-image { position:relative; min-width:0; margin:0; }
.atmosphere-parents-image .atmosphere-image-frame { height:clamp(310px,30vw,420px); overflow:hidden; border-radius:46% 8% 36% 7%; background:#e4eada; }
.atmosphere-parents-image img { width:100%; height:calc(100% + 56px); margin-top:-28px; object-fit:cover; object-position:54% 56%; }
.atmosphere-faq-side { flex:0 1 39%; min-width:0; }
.atmosphere-faq-side > p { color:#435984; font-size:17px; }
.atmosphere-faq-image { width:min(300px,100%); margin:18px 0 0 auto; }
.atmosphere-faq-image .atmosphere-image-frame { height:135px; border-radius:48% 46% 9px 9px; overflow:hidden; }
.atmosphere-faq-image img { width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.theme-b .atmosphere-footer { --footer-blue:#102b81; position:relative; isolation:isolate; border:0; background:var(--footer-blue); color:#fff; padding-top:160px; padding-bottom:36px; overflow:hidden; }
.atmosphere-waves { position:absolute; z-index:0; inset:-1px 0 auto; height:132px; overflow:hidden; background:var(--paper,#fffdf7); pointer-events:none; }
.atmosphere-wave { position:absolute; inset:0 auto auto 0; display:block; width:200%; max-width:none; height:100%; animation:atmosphere-wave-drift 25s linear infinite; }
.atmosphere-wave-body { animation:atmosphere-wave-breathe 10s ease-in-out infinite; }
.atmosphere-wave-1 { fill:#b4cdec; animation-duration:34s; animation-delay:-5s; }
.atmosphere-wave-1 .atmosphere-wave-body { animation-duration:11s; animation-delay:-3s; }
.atmosphere-wave-2 { fill:#4268ad; animation-duration:28s; animation-direction:reverse; animation-delay:-11s; }
.atmosphere-wave-2 .atmosphere-wave-body { animation-duration:9s; animation-delay:-5s; }
.atmosphere-wave-3 { fill:var(--footer-blue); animation-duration:23s; animation-delay:-15s; }
.atmosphere-wave-3 .atmosphere-wave-body { animation-duration:13s; animation-delay:-7s; }
@keyframes atmosphere-wave-drift { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
@keyframes atmosphere-wave-breathe { 0%,100% { transform:translateY(0); } 50% { transform:translateY(3px); } }
.atmosphere-footer-lead { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; padding-bottom:40px; margin-bottom:28px; border-bottom:1px solid #ffffff2e; }
.atmosphere-footer-brand { display:flex; align-items:center; gap:19px; justify-self:start; }
.atmosphere-footer-brand img { width:82px; height:82px; flex:0 0 82px; object-fit:contain; border-radius:50%; }
.atmosphere-footer-brand > span { font-family:var(--font-heading); font-size:24px; font-weight:500; line-height:1.7; letter-spacing:.045em; }
.atmosphere-footer-contact { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.atmosphere-footer-phone { font-size:25px; letter-spacing:.07em; line-height:1.5; text-align:center; }
.theme-b .atmosphere-footer .atmosphere-footer-cta { background:#ffdc58; color:#102b81; font-size:14px; min-height:50px; }
.theme-b .atmosphere-footer .atmosphere-footer-cta:hover { background:#ffe786; }
.theme-b .atmosphere-footer .footer-inner { align-items:center; }
.theme-b .atmosphere-footer .footer-operator { border-color:#ffffff2e; }
.theme-b .atmosphere-footer > p { color:#d7e2ff; }
.theme-b .atmosphere-footer .back-to-top { color:#fff; border-color:#ffffff66; background:#ffffff08; }
.theme-b .atmosphere-footer .back-to-top:hover { background:#ffffff18; }
.atmosphere-motion-paused .atmosphere-wave,.atmosphere-motion-paused .atmosphere-wave-body { animation-play-state:paused; }
.motion-off .atmosphere-wave,.motion-off .atmosphere-wave-body { animation:none!important; }
.motion-off .atmosphere-parallax-layer { transform:none!important; }
@media(min-width:801px) and (max-width:1250px) {
  .theme-b .possibility-list { gap:18px; }
  .theme-b .possibility-list .atmosphere-card { grid-template-columns:1fr; gap:8px; padding:15px 15px 24px; }
  .theme-b .atmosphere-card .number { font-size:26px; }
  .theme-b .atmosphere-card h3 { padding-top:0; }
  .theme-b .parents { gap:30px; }
  .atmosphere-footer-brand > span { font-size:21px; }
}
@media(max-width:1099px) {
  .theme-b.has-section-nav > .atmosphere-footer { padding-bottom:96px; }
}
@media(max-width:800px) {
  .hero-wave-divider { height:76px; margin-bottom:5px; }
  .theme-b .possibility-list .atmosphere-card { padding:17px 17px 25px; gap:15px; }
  .atmosphere-card-image .atmosphere-image-frame { aspect-ratio:16 / 10; }
  .theme-b .atmosphere-card p { font-size:17px; }
  .theme-b .parents { grid-template-columns:1fr; gap:30px; }
  .atmosphere-parents-image { width:100%; max-width:480px; margin-inline:auto; }
  .atmosphere-parents-image .atmosphere-image-frame { height:300px; border-radius:35% 7% 32% 7%; }
  .theme-b .faq-heading { display:block; }
  .atmosphere-faq-side { display:flex; gap:18px; align-items:center; margin-top:24px; }
  .atmosphere-faq-side > p { flex:1; font-size:15px; }
  .atmosphere-faq-image { flex:0 0 38%; width:38%; margin:0; }
  .atmosphere-faq-image .atmosphere-image-frame { height:125px; }
  .theme-b .atmosphere-footer { padding-top:140px; }
  .atmosphere-waves { height:112px; }
  .atmosphere-footer-lead { grid-template-columns:1fr; gap:28px; padding-bottom:32px; }
  .atmosphere-footer-brand { gap:15px; }
  .atmosphere-footer-brand img { width:66px; height:66px; flex-basis:66px; }
  .atmosphere-footer-brand > span { font-size:22px; }
  .atmosphere-footer-contact { max-width:340px; width:100%; align-self:start; }
  .atmosphere-footer-phone { text-align:left; font-size:25px; }
  .theme-b .atmosphere-footer .footer-inner { gap:22px; }
}
@media(prefers-reduced-motion:reduce) {
  .atmosphere-wave,.atmosphere-wave-body { animation:none!important; }
  .atmosphere-parallax-layer { transform:none!important; }
}
@media print {
  .atmosphere-wave,.atmosphere-wave-body { animation:none!important; }
  .atmosphere-parallax-layer { transform:none!important; }
  .theme-b .atmosphere-footer { color:#102b81; background:#fff; padding-top:32px; }
  .atmosphere-waves { display:none; }
}
