/* メニュー（template-parts/lab-menu.php）：2026-10-28 LAB2 のメニューを移植。TOP・下層共通。値は 2（Tailwind）の書き写し
   1023px以下＝青い全画面の縦1列（.lm-sp）、1024px以上＝左に写真・右の白地（.lm-pc） */
.lm{--ink:#102755;--b2:#0e48bd;--line:#dce5f5;--sub:#4f6185;--en:"Fjalla One","Zen Kaku Gothic New",sans-serif;position:fixed;inset:0;z-index:100000;overflow-y:auto;background:#0b48b0;color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;-webkit-font-smoothing:antialiased}
.lm[hidden]{display:none}
.lm *{box-sizing:border-box}
.lm a{color:inherit;text-decoration:none}
.lm ul{margin:0;padding:0;list-style:none}
.lm p{margin:0}
.lm button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;padding:0}
html.lab-menu-open,html.lab-menu-open body{overflow:hidden}
/* ---- スマホ・タブレット ---- */
.lm-sp{display:flex;flex-direction:column;min-height:100%;max-width:720px;margin:0 auto;padding:16px 20px 32px}
.lm-sp-hd{display:flex;align-items:center;justify-content:space-between}
.lm-sp-hd img{height:40px;width:auto}
.lm-x{display:grid;place-items:center;width:44px;height:44px}.lm-x svg{width:28px;height:28px}
.lm-sp-main{margin-top:20px!important}
.lm-sp-main a{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.25)}
.lm-sp-main i{width:18px;font-family:var(--en);font-size:11px;font-style:normal;color:rgba(190,212,255,.7)}
.lm-sp-main b{font-size:14px;letter-spacing:.08em}
.lm-sp-main small{margin-left:auto;font-family:var(--en);font-size:9px;letter-spacing:.15em;opacity:.8}
.lm-sp-box{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}
.lm-sp-box a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border:1px solid rgba(255,255,255,.35);border-radius:6px;text-align:center;transition:background .3s}
.lm-sp-box a:hover{background:rgba(255,255,255,.1)}
.lm-sp-box b{font-family:var(--en);font-size:13px;font-weight:400;letter-spacing:.1em}.lm-sp-box span{white-space:nowrap;font-size:9px;opacity:.85}
.lm-sp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:24px;font-size:13px}
.lm-sp-list a::before{content:"—";margin-right:8px;opacity:.5}.lm-sp-list a:hover{opacity:.8}
.lm-sp-list small{margin-left:6px;font-family:var(--en);font-size:9px;letter-spacing:.1em;opacity:.7}
.lm-sp-ft{display:flex;align-items:center;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.25)}
.lm-sp-sn{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.5);border-radius:50%;transition:background .3s}.lm-sp-sn:hover{background:rgba(255,255,255,.15)}
.lm-sp-sn svg{width:15px;height:15px}.lm-sp-sn b{font-size:16px;line-height:1}
.lm-sp-ft span{margin-left:auto;font-family:var(--en);font-size:10px;letter-spacing:.15em;opacity:.7}
.lm-sp-ft span~a{padding:4px 2px;font-family:var(--en);font-size:12px;letter-spacing:.1em}.lm-sp-ft a.on{border-bottom:1px solid #fff}
.lm-sp-tel{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:16px}
.lm-sp-tel small{font-size:11px;opacity:.85}.lm-sp-tel b{font-family:var(--en);font-size:24px;font-weight:400;letter-spacing:.08em}
@media (min-width:768px){
.lm-sp{padding:16px 40px 32px}
.lm-sp-main a{gap:16px;padding:14px 0}.lm-sp-main i{width:28px;font-size:16px}.lm-sp-main b{font-size:17px}.lm-sp-main small{font-size:11px}
.lm-sp-box span{font-size:11px}}
/* ---- PC ---- */
.lm-pc{display:none}
@media (min-width:1024px){
.lm{background:#fff;color:var(--ink)}
.lm-sp{display:none}
.lm-pc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,8fr);min-height:100%}
.lm-pc-l{position:sticky;top:0;display:flex;flex-direction:column;justify-content:space-between;height:100vh;overflow:hidden;padding:48px;background:var(--ink);color:#fff}
.lm-pc-ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lm-pc-sh{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(16,39,85,.5),rgba(16,39,85,.1),rgba(16,39,85,.85))}
.lm-pc-logo{position:relative;align-self:flex-start;height:48px;width:auto}
.lm-pc-lb{position:relative}
.lm-pc-lb>p{font-size:20px;line-height:36px;letter-spacing:.14em}
.lm-pc-tel{display:block;margin-top:32px}.lm-pc-tel small{font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.8)}
.lm-pc-tel b{display:block;margin-top:4px;font-family:var(--en);font-size:36px;font-weight:400;letter-spacing:.06em}
.lm-pc-bt{display:flex;gap:12px;margin-top:24px}
.lm-pc-bt>*{flex:1;padding:14px 20px!important;border-radius:999px;text-align:center;font-size:15px!important;font-weight:700;letter-spacing:.08em;transition:background .3s,color .3s}
.lm-stay{background:#f5a524!important;color:#fff!important}.lm-stay:hover{background:#e0901a!important}
.lm-act{border:1px solid rgba(255,255,255,.7)}.lm-act:hover{background:#fff;color:var(--ink)!important}
.lm-pc-r{position:relative;display:flex;flex-direction:column;padding:32px 56px 40px}
.lm-close{display:flex!important;align-items:center;gap:12px;margin-left:auto;font-family:var(--en)!important;font-size:13px!important;letter-spacing:.2em;color:var(--b2)!important}
.lm-close span{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(14,72,189,.3);border-radius:50%;transition:background .3s,color .3s}
.lm-close svg{width:20px;height:20px}.lm-close:hover span{background:var(--b2);color:#fff}
.lm-pc-g{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;flex:1;margin-top:16px}
.lm-k{display:flex;align-items:center;gap:12px;font-family:var(--en);font-size:13px;letter-spacing:.3em;color:var(--b2)}.lm-k i{display:block;width:24px;height:1px;background:currentColor}
.lm-pc-main,.lm-pc-info{margin-top:20px!important;border-top:1px solid var(--line)}
.lm-pc-main a{display:flex;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.lm-pc-main i{width:24px;font-family:var(--en);font-size:14px;font-style:normal;color:rgba(14,72,189,.5)}
.lm-pc-main b{white-space:nowrap;font-size:24px;font-weight:500;letter-spacing:.1em;transition:color .3s}
.lm-pc-main small{margin-left:auto;white-space:nowrap;font-family:var(--en);font-size:12px;letter-spacing:.2em;color:var(--sub)}
.lm-pc-main span{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:1px solid rgba(14,72,189,.3);border-radius:50%;color:var(--b2);transition:background .3s,color .3s}
.lm-pc-main svg{width:16px;height:16px}
.lm-pc-main a:hover b{color:var(--b2)}.lm-pc-main a:hover span{background:var(--b2);color:#fff}
.lm-pc-info a{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:500;letter-spacing:.06em;transition:color .3s}
.lm-pc-info span{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.4}
.lm-pc-info svg{width:14px;height:14px;flex-shrink:0;color:var(--b2);opacity:.4;transition:opacity .3s,transform .3s}
.lm-pc-info a:hover{color:var(--b2)}.lm-pc-info a:hover svg{opacity:1;transform:translateX(4px)}
.lm-pc-ft{display:flex;align-items:center;gap:12px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.lm-pc-ft>span{margin-right:8px;font-family:var(--en);font-size:12px;letter-spacing:.2em;color:var(--sub)}
.lm-pc-ft>span.lg{margin:0 0 0 auto}
.lm-pc-sn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--b2);transition:background .3s,border-color .3s,color .3s}
.lm-pc-sn:hover{border-color:var(--b2);background:var(--b2);color:#fff}
.lm-pc-sn svg{width:15px;height:15px}.lm-pc-sn b{font-size:16px;line-height:1}
.lm-pc-ft>a:not(.lm-pc-sn){padding:4px;font-family:var(--en);font-size:14px;letter-spacing:.1em;color:var(--sub)}.lm-pc-ft>a.on{border-bottom:2px solid var(--b2);color:var(--b2)}}
@media (min-width:1280px){.lm-pc-r{padding:32px 80px 40px}.lm-pc-g{gap:64px}.lm-pc-main b{font-size:28px}}
/* マウスで開いたときは閉じるボタンに枠を出さない（キーボード操作のときだけ青い枠） */
.lm :focus{outline:none}.lm :focus-visible{outline:2px solid #0e48bd;outline-offset:4px}.lm-sp :focus-visible{outline-color:#fff}
/* PC：「モデルコース」の行がはみ出さないよう、見出しの大きさを画面幅に合わせる（最大28px）。英字は足りなければ省略 */
@media (min-width:1024px){.lm-pc-main a{gap:16px}.lm-pc-main b{font-size:min(28px,1.75vw)}.lm-pc-main small{min-width:0;overflow:hidden;text-overflow:ellipsis}}
