/* Design_SF版のSP（390px）を基準にした、学生・企業共通の可変レイアウト。 */
.nav .nav-bar[hidden], .nav .menu-toggle[hidden]{display:none!important}
.menu-toggle{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;border:0;background:transparent;color:#fff;cursor:pointer;border-radius:4px}
.menu-toggle span{width:22px;height:2px;background:currentColor;border-radius:1px}
.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
.site-header .nav.is-compact{position:relative;display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;padding:0 24px;gap:12px}
.nav.is-compact .brand{flex:1;min-width:0;max-width:calc(100% - 56px)}
.nav.is-compact .brand .bname{font-size:12px;max-width:none}
.nav.is-compact .brand .bname small{font-size:10px}
.nav.is-compact .nav-bar{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:20px;height:auto;max-height:calc(100dvh - 56px);overflow-y:auto;padding:16px 24px 24px;background:var(--fill);box-shadow:0 8px 16px #12212f26;z-index:60}
.nav.is-compact .nav-links{display:flex!important;position:static;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:4px;margin:0;padding:0;background:transparent;overflow:visible;width:100%;height:auto}
.nav.is-compact .nav-links a{font-size:16px;line-height:24px;padding:12px;white-space:normal;overflow-wrap:anywhere}
.nav.is-compact .nav-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0}
.nav.is-compact .nav-actions .apply-cta{display:inline-flex}
.nav.is-compact .lang-toggle button{min-width:44px;min-height:44px}
.nav.is-compact .login-link{min-height:44px}
.nav:not(.is-compact) .nav-links{overflow:visible}
.nav:not(.is-compact) .brand{flex-shrink:0}
.nav:not(.is-compact) .nav-links a{font-size:12px;padding-inline:7px}
:where(a,button,input,select,textarea):focus-visible{outline:3px solid var(--ds-brand-primary-dark);outline-offset:4px}
.site-header :where(a,button):focus-visible{outline-color:#fff}
.btn{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.btn>span{min-width:0}
.btn::after{flex:none}
.field input,.field select,.field textarea{max-width:100%;min-width:0}
.field select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23232a33' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:20px}
.req{color:var(--ds-feedback-error-strong);font-size:12px;font-weight:700;white-space:nowrap;margin-left:6px}
.prose,.article-body,.read{overflow-wrap:anywhere}
.site-footer .fbrand{flex-wrap:wrap}
.site-footer .fbrand .flogo{flex:none}
.site-footer h5{color:var(--ds-brand-primary)}
.site-footer .switch-link{border-radius:6px;border-color:#3a4ea4;color:#3a4ea4}
a.card.card-list,.senior-preview-card{box-shadow:0 4px 8px rgba(44,61,87,.08)}
.kosen-intro-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
@media(max-width:900px){.kosen-intro-layout{grid-template-columns:minmax(0,1fr);gap:24px}}

@media(max-width:767px){
  body{font-size:16px;line-height:1.5}
  .container{padding-inline:24px}
  section.block{padding-block:56px}
  .nav.is-compact .brand{gap:8px}
  .nav.is-compact .brand .blogo{height:23px;padding:3px 6px}
  .nav.is-compact .brand .bname{font-size:10px;line-height:13px}
  .nav.is-compact .brand .bname small{font-size:8px;line-height:10px}
  .grid.cols-2,.grid.cols-3,.grid.cols-4,.split,.split-ed,.program-city-grid,.cs-split,.senior-preview-grid,.bubble-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .grid>*{min-width:0}
  .crumbs{font-size:12px;line-height:18px;padding-block:16px;flex-wrap:wrap;overflow-wrap:anywhere}
  .page-head{padding:36px 0 10px}
  .page-head h1,.co-title,.article-title{font-size:24px;line-height:1.46}
  .page-head p{font-size:16px;line-height:24px;max-width:none}
  .sec-head h2,.sec-head--lg h2,.cd-title,.prose h2,.read h2,.article-body h2,.program-city-copy h2{font-size:24px;line-height:36px}
  .sec-head{margin-bottom:32px}
  .sec-head p,.sec-head--lg p{font-size:16px;line-height:24px}
  .ey,.sec-head .ey{font-size:14px;line-height:22px}
  .btn{width:100%;min-width:0;min-height:56px;padding:16px 24px;font-size:16px;line-height:24px}
  .cta-row,.gate-actions,.prevnext,.login-cta-row{flex-direction:column;gap:12px}
  .cta-band .inner{padding:48px 24px}
  .cta-band h2{font-size:22px;line-height:34px}
  .cta-band p{font-size:15px;line-height:24px}
  .cta-band .cta-row{align-items:stretch;width:100%}
  .site-footer .container{padding:56px 24px 0}
  .site-footer .cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 16px}
  .site-footer .cols>div:first-child{grid-column:1/-1}
  html.is-guest .site-footer .cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .site-footer .fbrand{font-size:15px;line-height:22px;gap:8px}
  .site-footer li{font-size:16px;line-height:24px;margin:16px 0}
  .site-footer h5{font-size:14px;line-height:22px}
  .site-footer .switch-link{font-size:12px;line-height:20px;padding:8px 12px;margin-top:8px}
  .site-footer .flogos{gap:10px;justify-content:flex-start;flex-wrap:wrap}
  .site-footer .flogos .fl{height:auto;padding:0;min-width:0}
  .site-footer .flogos .fl img{height:20px;width:auto;max-width:123px;object-fit:contain}
  .site-footer .program-disclaimer{font-size:12px;line-height:20px;text-align:left}
  .site-footer .copy{font-size:12px;line-height:20px;flex-direction:column;align-items:flex-start;gap:6px}
  .form{padding:0;box-shadow:none;border:0;background:transparent}
  .field input,.field select,.field textarea{font-size:16px;min-height:52px}
  .field label{font-size:14px;line-height:21px}
  .prose p,.article-body p,.read p{font-size:16px;line-height:24px}
  table{max-width:100%;table-layout:fixed;overflow-wrap:anywhere}
  .spec th{width:32%}
  .spec th,.spec td{padding:12px 8px;font-size:14px;line-height:21px}
  .news-list a,.news-cards>a{grid-template-columns:1fr;gap:4px;padding:16px 0}
  .news-block .news-list .d,.news-cards .d{font-size:12px}
  .news-block .news-list .t,.news-cards .t{font-size:15px;line-height:24px}
  .news-index-grid .card-news .meta{font-size:12px;line-height:18px}
  .hero-full.hero-home{height:auto;min-height:520px}
  .hero-full.hero-home .inner{min-height:520px;padding:32px 24px}
  .hero-full.hero-home h1{font-size:23px;line-height:1.65;max-width:none}
  .hero-full.hero-home .bg{background-position:68% center}
  .hero-full .hero-stats.solid{gap:8px;max-width:none;margin-top:200px}
  .hero-full .hero-stats.solid .s{padding:10px 8px;text-align:left}
  .hero-full .hero-stats.solid .s b{font-size:30px}
  .hero-full .hero-stats.solid .s>span{font-size:11px;line-height:17px}
  .hero-full .hero-stats.solid .s b small{font-size:11px}
  .step-cards{grid-template-columns:1fr;gap:56px}
  .step-card h4{font-size:20px;line-height:28px}
  .step-card .ph{max-width:240px;margin-inline:auto}
  .wp-row{flex-direction:column;align-items:stretch;gap:24px}
  .wp-map{max-width:200px;margin-inline:auto;min-height:0}
  .wp-map img{width:200px}
  .icard{text-align:left;padding:0 20px}
  .why-panel{gap:24px}
  .program-city-photo,.program-city-photo img{min-height:0;height:auto;aspect-ratio:342/240}
  .program-city-copy p{font-size:16px;line-height:24px}
  .facts.facts-cd{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .facts-cd .fact-fill{min-width:0;padding:16px 12px}
  .facts-cd .fact-fill b{font-size:20px}
  .facts-cd .fact-fill b>.ja,.facts-cd .fact-fill b>.mn{white-space:normal;display:block}
  .co-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 14px}
  .co-item{min-width:0}
  .co-item .thumb{aspect-ratio:164/102}
  .co-item.is-logo .thumb{padding:28px 12px 12px}
  .co-item .badge,.co-index .co-item .badge{left:7px;right:auto;top:7px;max-width:calc(100% - 14px);font-size:9px;line-height:14px;padding:2px 4px;letter-spacing:0}
  .co-item h3{font-size:16px;line-height:24px;overflow-wrap:anywhere}
  .co-item .meta{font-size:12px;line-height:18px}
  .co-item .tag{font-size:12px;line-height:18px;padding:2px 8px;overflow-wrap:anywhere}
  .co-hero{grid-template-columns:1fr;gap:16px}
  .filter-panel{border-top:0;gap:16px}
  .filter-group{grid-template-columns:1fr;gap:8px}
  .filter-button{font-size:13px;white-space:normal;max-width:100%;min-height:40px}
  .senior-preview-card{grid-template-columns:64px minmax(0,1fr);padding:24px;gap:14px}
  .senior-preview-card>img{width:64px;height:64px}
  .legal-cards{flex-direction:column;gap:24px}
  .legal-cards .card-list{flex:auto;max-width:none;width:100%}
  body.page-nagaoka .hero-full{height:auto;min-height:582px}
  body.page-nagaoka .hero-full .inner{padding:24px}
  body.page-nagaoka .hero-full h1{font-size:28px;line-height:41px}
  body.page-nagaoka .hero-full p.lead{font-size:16px;line-height:24px}
  body.page-nagaoka .hero-stats-outline{flex-direction:column;gap:16px;flex-wrap:nowrap}
  body.page-nagaoka .stat-chip{padding:17px 20px;flex:auto}
  body.page-nagaoka .stat-chip .lbl{font-size:12px}
  body.page-nagaoka .stat-chip b{font-size:24px}
  body.page-nagaoka .everyday-section{padding-block:56px}
  body.page-nagaoka .everyday-intro h2{font-size:24px;line-height:36px}
  body.page-nagaoka .community-gallery{margin-block:32px}
  .detail{grid-template-columns:1fr;gap:32px}
  .detail>.spec{order:-1;position:static}
  .stat-cards,.stat-cards.lg{grid-template-columns:minmax(0,1fr);gap:24px}
  .stat-card,.stat-cards.lg .stat-card{min-width:0;gap:16px;padding:20px 16px}
  .stat-card>div{min-width:0}
  .stat-card .stat-ring,.stat-card .stat-people{flex-shrink:0}
  .stat-card .stat-num,.stat-cards.lg .stat-num{font-size:32px}
  .stat-cards.lg .stat-label{font-size:14px;line-height:21px}
  .rule-heading{gap:12px}
  .rule-heading span{font-size:18px;line-height:27px;white-space:normal;text-align:center}
  .support-lead,.support-grid{min-width:0;max-width:100%;flex-basis:100%}
  .interview-block .prose h2{font-size:24px;line-height:36px}
  .spec th{white-space:normal}
}
@media(prefers-reduced-motion:reduce){
  .menu-toggle span,.co-item,.senior-preview-card{transition:none!important;transform:none!important}
}
