/* 下層ページのフッター（TOPと共通。template-parts/lab-footer.php）
   footer 部分の指定は top.css（B案 TOP）からそのまま写したもの。TOPを直したらこちらも合わせる
   下層ページは Lightning のCSSが効いているので、フッターの中だけ初期化してから同じ指定を当てる */
.fo { --blue: #1a47e6; --en: "Fjalla One", sans-serif; font-family: "Zen Kaku Gothic New", sans-serif; -webkit-font-smoothing: antialiased; line-height: 1.5; }
.fo *, .fo *::before, .fo *::after { box-sizing: border-box; }
.fo a { text-decoration: none; }
.fo .en { font-family: var(--en); letter-spacing: .15em; text-transform: uppercase; }
.fo h4 { padding: 0; border: 0; background: none; color: #fff; font-family: inherit; line-height: 1.5; }
.fo h4::before { display: none; }
.fo ul, .fo li { margin: 0; padding: 0; list-style: none; }
.fo li::before { display: none; }
.fo address, .fo dl, .fo dd, .fo dt { margin: 0; }
.fo small { font-family: Inter, "Zen Kaku Gothic New", sans-serif; }
.fo .fo-lang { font-family: Inter, "Zen Kaku Gothic New", sans-serif; }
/* footer */
.fo{position:relative;color:#fff;background:#0b48b0;overflow:hidden}
.fo::before{content:"";position:absolute;inset:0;background:url('b/hero-bandaisan-lake.jpg') center 70%/cover;filter:grayscale(1) contrast(1.1);opacity:.32;mix-blend-mode:luminosity;-webkit-mask-image:linear-gradient(to bottom,transparent 20%,#000 70%);mask-image:linear-gradient(to bottom,transparent 20%,#000 70%)}
.fo::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(11,72,176,.15),rgba(11,72,176,.55))}
.fo a{color:#fff}.fo a:hover{color:#cfdcff}
.fo-in{position:relative;z-index:1;max-width:1600px;margin:0 auto;padding:84px 56px 80px;display:grid;grid-template-columns:1.3fr 0.9fr 0.65fr 0.75fr 1.1fr;align-items:start}
.fo-br .cp{font-size:20px;font-weight:500;letter-spacing:.12em}.fo-br .cp::after{content:"";display:block;width:40px;height:1px;background:#fff;margin:22px 0 26px}
.fo-br .lt{font-family:var(--en);font-size:clamp(44px,4.4vw,68px);line-height:1;letter-spacing:.1em}
.fo-br .tl{margin-top:20px;font-size:clamp(16px,1.4vw,21px);letter-spacing:.14em;opacity:.95}
.fo-nv{border-left:1px solid rgba(255,255,255,.35);padding:24px 0 24px 36px}
.fo-nv h4{margin:0;font-size:17px;font-weight:700;letter-spacing:.08em}.fo-nv h4::after{content:"";display:block;width:28px;height:1.5px;background:#fff;margin:16px 0 26px}
.fo-nv ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;font-size:16px;letter-spacing:.06em}
.fo-ct{border-left:1px solid rgba(255,255,255,.35);padding:0 0 20px 56px;display:flex;flex-direction:column}
.fo-ct .s{font-size:18px;letter-spacing:.14em}.fo-ct .n{font-size:clamp(26px,2.2vw,34px);font-weight:500;letter-spacing:.08em;margin-top:4px}
.fo-ct address{margin-top:22px;font-style:normal;font-size:15px;line-height:1.7;letter-spacing:.06em}
.fo-bt{margin-top:24px;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 28px;border-radius:999px;border:1.5px solid #fff;font-size:16px;font-weight:700;letter-spacing:.08em;transition:background .3s,color .3s}.fo-bt svg{width:18px;height:14px}
.fo-bt.w{background:#fff;color:var(--blue)!important}.fo-bt.w:hover{background:#e6eefc}
.fo-btm{position:relative;z-index:1;background:#06296e}
.fo-btm-in{max-width:1600px;margin:0 auto;padding:20px 56px;display:flex;align-items:center;gap:32px;font-size:14px;letter-spacing:.06em}
.fo-btm nav{display:flex;gap:32px}.fo-btm nav a+a{border-left:1px solid rgba(255,255,255,.5);padding-left:32px}
.fo-btm small{margin-left:auto;font-size:14px;opacity:.9}.fo-btm nav a,.fo-btm small{white-space:nowrap}
.fo-top{width:50px;height:50px;border-radius:50%;border:1.5px solid #fff;display:grid;place-items:center;flex-shrink:0;transition:background .3s,color .3s}.fo-top svg{width:18px;height:18px}.fo-top:hover{background:#fff;color:var(--blue)!important}
@media (max-width:1180px){.fo-in{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}.fo-br,.fo-ct{grid-column:1/-1}.fo-nv:nth-child(2){border-left:0;padding-left:0}.fo-ct{border:0;padding:0;max-width:440px}.fo-btm-in{flex-wrap:wrap;row-gap:12px}}
@media (max-width:760px){.fo-in{grid-template-columns:1fr;padding:56px 20px}.fo-nv{border:0;padding:0}.fo-btm-in{flex-wrap:wrap;padding:20px;gap:16px}.fo-btm nav{gap:16px;flex-wrap:wrap}.fo-btm nav a+a{padding-left:16px}.fo-btm small{margin-left:0}}

/* footer extended */
.fo-tp{position:relative;z-index:1;max-width:1600px;margin:0 auto;padding:56px 56px 48px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:48px;border-bottom:1px solid rgba(255,255,255,.35)}
.fo-tp h4,.fo-sb h4{margin:0 0 14px;font-size:15px;font-weight:700;letter-spacing:.1em;display:flex;align-items:baseline;gap:12px}.fo-tp h4 .en,.fo-sb h4 .en{font-family:var(--en);font-size:12px;letter-spacing:.16em;font-weight:400;opacity:.85}
.fo-tp p{margin:0 0 16px;font-size:14px;line-height:1.7;letter-spacing:.04em}
.fo-nl form{display:flex;gap:10px}.fo-nl input{flex:1;min-width:0;height:50px;border-radius:999px;border:1.5px solid #fff;background:rgba(255,255,255,.1);color:#fff;padding:0 22px;font:inherit;font-size:14px}.fo-nl input::placeholder{color:rgba(255,255,255,.8)}.fo-nl button{height:50px;padding:0 26px;border-radius:999px;border:0;background:#fff;color:var(--blue);font:inherit;font-weight:700;font-size:14px;letter-spacing:.08em;cursor:pointer}.fo-nl button:hover{background:#e6eefc}
.fo-sns,.fo-lang{margin:0;padding:0;list-style:none;display:flex;align-items:center}
.fo-sns{gap:8px;margin-left:auto}.fo-sns a{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.7);display:grid;place-items:center;font-family:var(--en);font-size:11px;letter-spacing:.02em;transition:background .3s,color .3s}.fo-sns a:hover{background:#fff;color:var(--blue)}
.fo-lang{font-size:13px;letter-spacing:.04em}.fo-lang li+li::before{content:"/";margin:0 8px;opacity:.5}.fo-lang a{opacity:.8}.fo-lang a[aria-current]{opacity:1;font-weight:700;text-decoration:underline;text-underline-offset:4px}.fo-lang a:hover{opacity:1}
.fo-btm-in>small{margin-left:0!important}
/* フッター下の帯: SNS・言語切替を外したので、PCではコピーライトを右に寄せる（top.css と同じ） */
@media (min-width:761px){.fo-btm-in>small{margin-left:auto!important}}
/* フッター下の帯: 紺色の別の帯にせず、青いフッターの中に細い線で区切って入れる（top.css と同じ） */
.fo-btm{background:none;padding:0 56px}.fo-btm-in{padding:24px 0 32px;border-top:1px solid rgba(255,255,255,.35)}
@media (min-width:761px){.fo-in{padding-bottom:48px}}
@media (max-width:760px){.fo-btm{padding:0 20px}.fo-btm-in{padding:20px 0 28px}}
.fo-nv summary,.fo-sb summary{list-style:none;cursor:default}.fo-nv summary::-webkit-details-marker,.fo-sb summary::-webkit-details-marker{display:none}
.fo-ct .hr{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.35);font-size:14px;line-height:1.8;letter-spacing:.04em;display:grid;grid-template-columns:auto 1fr;column-gap:16px}.fo-ct .hr dt{font-weight:700}.fo-ct .hr dd{margin:0}
.fo-sb{position:relative;z-index:1;max-width:1600px;margin:0 auto;padding:0 56px 56px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px}
.fo-sb>details{border-top:1px solid rgba(255,255,255,.35);padding-top:32px}
.fo-ic{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.fo-ic li{padding:18px 20px;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:rgba(6,41,110,.35);font-size:13px;line-height:1.7;letter-spacing:.04em}.fo-ic b{display:block;font-size:15px;margin-bottom:6px;letter-spacing:.06em}
.fo-ax{margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 20px;font-size:14px;line-height:1.7;letter-spacing:.04em}.fo-ax dt{display:flex;align-items:center;justify-content:center;height:30px;min-width:56px;padding:0 12px;border-radius:999px;border:1px solid #fff;font-size:13px;font-weight:700}.fo-ax dd{margin:0}.fo-ax+a{display:inline-flex;gap:8px;margin-top:18px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.fo-bn{position:relative;z-index:1;max-width:1600px;margin:0 auto;padding:0 56px 56px}.fo-bn ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.fo-bn a{display:flex;align-items:center;justify-content:center;text-align:center;height:64px;padding:0 10px;background:#fff;color:#0b48b0!important;border-radius:4px;font-size:13px;font-weight:700;letter-spacing:.04em;line-height:1.4}.fo-bn a:hover{background:#e6eefc}
.fo-btm nav{flex-wrap:wrap;row-gap:8px}
@media (max-width:760px){.fo-btm .fo-sns{margin-left:0}
.fo-in .fo-nv,.fo-sb>details{border:0;border-bottom:1px solid rgba(255,255,255,.35);padding:0}.fo-in{row-gap:0!important}.fo-br{margin-bottom:28px}.fo-ct{margin-top:28px}
.fo-nv summary,.fo-sb summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:56px}.fo-nv summary::after,.fo-sb summary::after{content:"+";font-size:22px;font-weight:300;line-height:1}.fo-nv[open] summary::after,.fo-sb details[open] summary::after{content:"−"}
.fo-nv h4,.fo-sb h4{margin:0}.fo-nv h4::after{display:none}.fo-nv ul{padding:4px 0 20px;gap:12px;font-size:14px}.fo-ic,.fo-ax{padding-bottom:20px}.fo-ax+a{margin:0 0 20px}}

@media (max-width:700px){.fo-in{padding:32px 20px;row-gap:18px}.fo-in{padding:40px 20px;row-gap:24px}.fo-br .cp{font-size:15px}.fo-br .cp::after{margin:14px 0 16px}.fo-br .lt{font-size:40px}.fo-br .tl{font-size:14px;margin-top:12px}.fo-ct address{margin-top:12px;font-size:13px}.fo-bt{height:48px;font-size:14px}}
/* 701〜1040px：「お問い合わせ」「協会へのアクセス」を協会の住所・営業時間の右に並べる（top.css と同じ、2026-10-16） */
@media (min-width:701px) and (max-width:1040px){
.fo-ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);column-gap:48px;max-width:760px}
.fo-ct>.s,.fo-ct>.n,.fo-ct>address,.fo-ct>.hr{grid-column:1}
.fo-ct>.fo-bt{grid-column:2;grid-row:1/5;align-self:center;margin-top:0}
}
