/*
 * 18liver：オリジナルのヘッダー・フッター（トップと、SWELL で表示するページで共通）。
 * 色はトップの本文（#msa）と同じ：背景 #FDF3F0／コーラル #FC7782（影 #ED5B68）／文字 #424952。
 * SWELL の本文に影響しないよう、リセットは .lvh / .lvf の中だけにかけている。
 */
:root{
  --lv-c:#FC7782;
  --lv-cd:#ED5B68;
  --lv-cl:#FFE9EA;
  --lv-bg:#FDF3F0;
  --lv-tx:#424952;
  --lv-sb:#8C8F95;
  --lv-ln:#EDEBEB;
  --lv-font:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
}

/* 本文へスキップ（フォーカスしたときだけ表示） */
.lv18-skip{position:absolute!important;left:-9999px;top:0;z-index:1000;background:#fff;color:var(--lv-tx);padding:8px 14px;font-size:14px}
.lv18-skip:focus{left:8px;top:8px}

/* .lvh / .lvf の中だけのリセット */
.lvh,.lvh *,.lvf,.lvf *{box-sizing:border-box}
.lvh,.lvf{font-family:var(--lv-font);line-height:1.8;color:var(--lv-tx);-webkit-font-smoothing:antialiased}
.lvh img,.lvf img{max-width:100%;height:auto;display:block}
.lvh ul,.lvf ul{margin:0;padding:0;list-style:none}
.lvh li,.lvf li{margin:0;padding:0}
.lvh li::before,.lvf li::before,.lvh p::before,.lvf p::before{content:none}
.lvh p,.lvf p{margin:0;padding:0}
.lvh a:focus-visible,.lvh button:focus-visible,.lvf a:focus-visible{outline:3px solid var(--lv-tx);outline-offset:2px}

/* ヘッダー（白・高さ60px・下にコーラルの線） */
.lvh{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.admin-bar .lvh{top:32px}
@media (max-width:782px){.admin-bar .lvh{top:46px}}
.lvh__in{max-width:1060px;margin:0 auto;height:60px;padding:0 16px;display:flex;align-items:center;gap:10px}
.lvh__logo{display:flex;align-items:center;gap:4px;text-decoration:none;color:var(--lv-c);flex-shrink:0}
.lvh__logo img{height:40px;width:auto}
.lvh__txt{font-size:21px;font-weight:900;letter-spacing:.03em;color:var(--lv-c);line-height:1}
.lvh__logo svg{color:var(--lv-c);transform:rotate(-12deg) translateY(-6px)}
.lvh__badge{flex-shrink:0;font-size:10px;font-weight:900;color:#fff;background:var(--lv-tx);padding:1px 6px;border-radius:3px;line-height:1.6}
.lvh__nav{margin-left:auto}
.lvh__nav ul{display:flex;gap:2px}
.lvh__nav a{display:block;padding:8px 12px;font-size:13px;font-weight:700;color:var(--lv-tx);text-decoration:none;border-radius:4px;white-space:nowrap}
.lvh__nav a:hover{color:var(--lv-c);background:var(--lv-cl)}
.lvh__burger{display:none;margin-left:auto;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--lv-c);border:0;border-radius:8px;box-shadow:0 3px 0 var(--lv-cd);cursor:pointer;padding:0}
.lvh__burger span{display:block;width:20px;height:2px;border-radius:2px;background:#fff;transition:transform .2s ease,opacity .2s ease}
.lvh__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.lvh__burger.is-open span:nth-child(2){opacity:0}
.lvh__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.lvsp{position:absolute;left:0;right:0;top:100%;z-index:101;background:#fff;border-top:2px solid var(--lv-c);padding:14px 16px 20px;box-shadow:0 12px 24px rgba(0,0,0,.12)}
.lvsp[hidden]{display:none}
.lvsp__ttl{font-size:12px;font-weight:700;color:var(--lv-sb);margin-bottom:8px!important}
.lvsp ul{display:flex;flex-direction:column;gap:8px}
.lvsp a{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;border-radius:8px;background:var(--lv-bg);color:var(--lv-tx);font-weight:700;font-size:15px;text-decoration:none}
.lvsp a svg{color:var(--lv-c);flex-shrink:0}
.lvsp__arrow{margin-left:auto;font-size:22px;line-height:1;color:var(--lv-c)}
.lvsp__bg{position:absolute;left:0;right:0;top:100%;height:100vh;z-index:99;background:rgba(66,73,82,.35);border:0;padding:0;cursor:pointer}
.lvsp__bg[hidden]{display:none}
@media (max-width:860px){
  .lvh__nav{display:none}
  .lvh__burger{display:flex}
  .lvh__in{height:56px;padding:0 12px}
  .lvh__txt{font-size:18px}
}
@media (max-width:360px){.lvh__txt{font-size:16px}}

/* フッター */
.lvf{background:#fff;border-top:4px solid var(--lv-c);margin-top:40px}
.lvf__in{max-width:1060px;margin:0 auto;padding:36px 16px 24px}
.lvf__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px}
.lvf__logo{display:inline-flex;align-items:center;gap:4px;text-decoration:none;color:var(--lv-c)}
.lvf__logo img{height:40px;width:auto}
.lvf__logo svg{color:var(--lv-c);transform:rotate(-12deg) translateY(-6px)}
.lvf__desc{font-size:13px;color:var(--lv-sb);margin-top:12px!important;line-height:1.8}
.lvf__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.lvf__ttl{font-size:14px;font-weight:800;color:var(--lv-tx);border-bottom:2px solid #FA8791;padding-bottom:4px!important;margin-bottom:8px!important}
.lvf__col li{margin:6px 0}
.lvf__col a{font-size:13px;color:var(--lv-tx);text-decoration:none}
.lvf__col a:hover{color:var(--lv-c);text-decoration:underline}
.lvf__pr{margin-top:28px;background:var(--lv-bg);border-radius:6px;padding:12px 16px;font-size:12px;color:var(--lv-sb)}
.lvf__prttl{font-weight:800;color:var(--lv-tx)}
.lvf__note{margin-top:12px!important;font-size:12px;color:var(--lv-sb)}
.lvf__copy{margin-top:20px!important;text-align:center;font-size:12px;color:var(--lv-sb)}
@media (max-width:860px){
  .lvf__top{grid-template-columns:minmax(0,1fr);gap:24px}
  .lvf__nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){.lvf__nav{grid-template-columns:minmax(0,1fr)}}

/* トップページの土台（本文のデザインは固定ページ本文の <style> 側） */
body.lv18-front{margin:0;background:var(--lv-bg);overflow-x:hidden}
@supports (overflow:clip){body.lv18-front{overflow-x:clip}}
.lv18-front .lv18-main{display:block;min-height:50vh;padding:0 16px}
@media (max-width:600px){.lv18-front .lv18-main{padding:0 12px}}

/*
 * SWELL で表示するページ：SWELL 標準のヘッダー・追従ヘッダー・スマホメニュー・フッター・下部固定メニューを隠す。
 * （SWELL は body_class を #body_wrap に付けるので、body.xxx では効かない。このCSSは
 *   オリジナルのヘッダー・フッターを出すページでしか読み込まないので、条件なしで隠してよい）
 */
#header.l-header,
.l-header,
#fix_header,
.l-fixHeader,
#sp_menu,
.p-spMenu,
#footer.l-footer,
.l-footer,
#fix_bottom_menu,
.l-fixBottomMenu{display:none!important}
