@charset "UTF-8";

#wrap {
    width:100%;
    min-height:100%;
    height:auto !important;
    height:100%;
    display:block;
    clear:both;
    overflow:hidden;
    padding:0px;
    margin:0px;
}
#contents {
    display:block;
    clear:both;
    overflow:hidden;
    word-wrap:break-word;
    width:100%;
    padding:0;
    margin:60px auto 0px;
}
@media print, screen and (min-width: 1080px){
#contents {margin:80px auto 0px;}
}

#main {
    width:100%;
    height: 100%;
    display:block;
    clear:both;
    overflow:hidden;
    word-wrap:break-word;
    margin:0px auto 0;
    padding:0 0 0em;
}
#sidebar {display:none;}

section{width:100%; margin:0 auto; padding:2.5em 0 2em; display:block; overflow:hidden;}

/*================================================================================================
 inner
 ================================================================================================*/
@media only screen and (max-width:834px){
.inner, .inners, .innerss{width:100%; margin: 0 auto; display: block; overflow: hidden; clear: both;}
.innerb{width:100%; margin: 0 auto; display: block; overflow: hidden; clear: both;}
}
@media print, screen and (min-width:834.1px){
.inner{width:70%; max-width:1080px; margin: 0 auto; display: block; overflow: hidden; clear: both;}
.inners{width:70%; max-width:834px; margin: 0 auto; display: block; overflow: hidden; clear: both;}
.innerss{width:70%; max-width:600px; margin: 0 auto; display: block; overflow: hidden; clear: both;}
.innerb{width:100%; max-width:1280px; margin: 0 auto; display: block; overflow: hidden; clear: both;}
}
main + section, h1 + section, h2 + section, h3 + section, h4 + section, h5 + section, h6 + section,
.breadcrumb + section, section..mainboxbox{padding-top:0 !important; margin-top:0 !important;}

.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}
.z2{z-index: 2; position: sticky;}

/* =========================================================
   Header 完全版CSS（修正版）
   PC ? 834px : 高さ80px（ロゴ左／メニュー中央／問合せボタン右端）
   SP ? 833.9px : 高さ60px（全画面ドロワー・2階層アコーディオン）
   HTML前提：
     - #header .h_logo .nav-pc .nav-mb .link_a
     - PCナビ: #g-menu-pc / SPナビ: #g-menu-sp
     - WP UL: .navmenu（2階層まで）  ※menu_class="navmenu fitlink olul"
   ========================================================= */

.stroke-text{
 --stroke-color:red;
 --stroke-width:1px;
 color:white;
 text-shadow: var(--stroke-width)  0 0 var(--stroke-color),
   calc(var(--stroke-width) * -1) 0 0 var(--stroke-color),
   0 var(--stroke-width) 0 var(--stroke-color),
   0 calc(var(--stroke-width) * -1) 0 var(--stroke-color);
}

/* --- base --- */
#header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0,0,0,.12);
  padding: 0 10px;
  background:#fff;
  transition: background 0.4s ease;
}
#header a{ color:var(--color-b); text-decoration:none; }
#header .h_logo a{ line-height:0; } /* 画像下の隙間防止 */

/* ロゴ */
#header .h_logo{
  display:flex; align-items:center;
  height:80px;
}
#header .h_logo img{
  display:block; height:74px; width:auto; padding:5px;
}

/* 問い合わせボタン（共通見た目） */
#header .link_a a, #header .link_b a{
  display:inline-flex; align-items:center; gap:.5em;
  padding:6px 8px;
  border-radius:5px;
  font-weight:700; letter-spacing:.02em;
  transition:opacity .2s ease;
  font-size:16px;
}
#header .link_a a{background:var(--color-f); border:1px solid var(--color-b); color:var(--color-b);}
#header .link_b a{background:var(--color-f); border:1px solid var(--color-b); color:var(--color-b);}

#header .link_a a:hover, #header .link_b a:hover{ opacity:.88; background:var(--color-g);}

/* ---------------- PC以上 ---------------- */
@media (min-width: 1200px){
  #header{
    height:100px;
    padding: 10px;
    display:flex; align-items:center; gap:24px;
  }

  /* ロゴは左固定 */
  #header .h_logo{ margin-right:0; }

  /* メニューを中央寄せ（中央カラムを伸縮） */
  #header .nav-pc{
    flex:1;
    display:flex; justify-content:center; align-items:center;
  }

  /* 問い合わせボタンは一番右 */
  #header .link_a, #header .link_b{ margin-left:auto; }

  /* SP用は非表示 */
  #header .nav-mb{ display:none; }

  /* PCナビの器 */
  #g-menu-pc{ height:80px; display:flex; align-items:center; }

  /* 第一階層 */
  #g-menu-pc .navmenu{
    list-style:none; margin:0; padding:0;
    display:flex; gap:1em; font-weight:500;
  }
  #g-menu-pc .navmenu > li{ position:relative; }
  #g-menu-pc .navmenu > li > a{
    display:block; padding:0 10px; line-height:80px; font-size:14px; font-weight:500;
  }
  #g-menu-pc .navmenu > li.menu-item-has-children > a::after{
    content:"▼"; font-size:.8em; margin-left:.4em;
  }
  #g-menu-pc .navmenu > li > a:hover{opacity:.88; color: var(--color-a);}
  #g-menu-pc .navmenu > li.current-menu-item > a{opacity:.88;}

  /* 第二階層（ドロップダウン） */
  #g-menu-pc .navmenu > li .sub-menu{
    position:absolute; left:50%; top:60px;
    transform:translateX(-50%) translateY(6px);
    max-width: fit-content;
    opacity:0; visibility:hidden; transition: all .18s ease;
    list-style:none; margin:0; padding:0; background:var(--color-g);
  }
  #g-menu-pc .navmenu > li:hover > .sub-menu{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
  }
  #g-menu-pc .sub-menu > li > a{
    display:block; padding:10px 14px; line-height:1.4; font-size:14px; font-weight:500;
    white-space:nowrap; color:var(--color-b);
  }
  #g-menu-pc .sub-menu > li > a:hover{opacity:.88; color: var(--color-a);}
}





/* ---------------- SP以下 ---------------- */
@media (max-width: 1199.9px){
#header{
        height: 80px;
        padding: 10px 8px 10px 0px;
        display: block;
}
#header .h_logo{
        height: 60px;
        display: block;
        position: absolute;
        top: 10px;
        left: 10px;
}
#header .h_logo img{ height:58px; }
#header .nav-mb {
        display: block;
        position: absolute;
        top: 12px;
        right: 8px;
}
#header .link_a {
        display: block;
        position: absolute;
        top: 22px;
        right: 58px;
}
#header .link_b {
        display: block;
        position: absolute;
        top: 22px;
        right: 200px;
}
#header .link_a a, #header .link_b a{font-size:14px;}
#header .nav-pc{ display:none; }

  /* ハンバーガー（チェックボックス制御） */
  .nav-mb .nav-unshown{ display:none; }

/* ハンバーガー */
#nav-open{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:6px;
  cursor:pointer;
  position:relative;
  z-index: 2;
}

/* MENU文字 */
#nav-open::after{
  content:"MENU";
  position:absolute;
  bottom:-3px;
  left:50%;
  transform:translateX(-50%);
  font-size:10px;
  letter-spacing:0.08em;
  color:var(--color-b);
  font-weight:700;
  line-height:1;
}

/* 三本線 */
#nav-open span,
#nav-open span::before,
#nav-open span::after{
  display:block;
  position:absolute;
  width:22px;
  height:2px;
  background:var(--color-b);
  content:"";
  transition:
    transform .2s ease,
    opacity .2s ease,
    background .2s ease;
}

#nav-open span::before{
  transform:translateY(-7px);
}

#nav-open span::after{
  transform:translateY(7px);
}

/* 開いた時 → × */
#nav-input:checked + #nav-open span{
  background:transparent;
}

#nav-input:checked + #nav-open span::before{
  transform:rotate(45deg);
}

#nav-input:checked + #nav-open span::after{
  transform:rotate(-45deg);
}

/* 開いた時は MENU → CLOSE */
#nav-input:checked + #nav-open::after{
  content:"CLOSE";
}

/* ドロワー */
#nav-content{
  position:fixed;
  inset:0;
  background:var(--color-f);
  transform:translateX(100%);
  transition:transform .25s ease;
  padding-top:60px;
  overflow:auto;
}

#nav-input:checked ~ #nav-content{
  transform:translateX(0);
}

  /* ドロワー上部（MENUと×） */
  .hamburger-top{
    position:fixed; top:0; left:0; right:0; height:60px;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 8px 0 16px; font-weight:700; border-bottom:1px solid #eee; background:var(--color-f);
  }

  /* SPメニュー本体 */
  #g-menu-sp{ padding: 0px 0 32px; }
  #g-menu-sp .navmenu{
    list-style:none; margin:0; padding:0; border-top:1px solid #eee;
  }
  #g-menu-sp .navmenu > li{
    border-bottom:1px solid #eee; position:relative;
  }
  #g-menu-sp .navmenu > li > a{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 18px; font-weight:500; font-size:14px; color:var(--color-b);
  }
  #g-menu-sp .navmenu > li > a:hover{opacity:.88; color: var(--color-a);}

  /* 2階層（アコーディオン：.is-openで開閉。親リンクはJSで無効化済み） */
  #g-menu-sp .navmenu > li.menu-item-has-children > a::after{
    content:"＋"; font-weight:700; margin-left:8px;
  }
  #g-menu-sp .navmenu > li.is-open > a::after{ content:"－"; }

  #g-menu-sp .navmenu > li > .sub-menu{
    list-style:none; margin:0; padding:0 0 0 1.25rem;
    max-height:0; overflow:hidden; transition:max-height .25s ease;
    background:var(--color-g);
  }
  #g-menu-sp .navmenu > li.is-open > .sub-menu{
    max-height:1200px; /* 十分に大きければOK */
  }

  #g-menu-sp .sub-menu > li > a{
    display:block; padding:8px 14px; font-size:14px; font-weight:500;
    border-top:1px dashed #e5e5e5; color:var(--color-b);
  }
}

@media (max-width: 600px){
#header .link_a a, #header .link_b a{width:36px;}
#header .link_a span, #header .link_b span{display:none;}
#header .link_a em, #header .link_b em{margin: 0 auto;}
#header .link_b {right: 108px;}
}

@media (max-width: 375px){
#header{padding: 0 8px 0 6px;}
#header .h_logo{ top:17px; left:5px; }
#header .h_logo img{ height:46px;}
}

#header .usns a{ color:var(--color-b); }

/* スクロールで変更 */
@media (min-width: 1200px){
.scbody #header{height:80px; padding: 10px;}
}
@media (max-width: 1199.9px){
.scbody #header{height:60px; padding: 0 8px 0 0;}
.scbody #header .h_logo {top: 0px; left: 5px;}
.scbody #header .nav-mb{top: 2px;}
.scbody #header .link_a, .scbody #header .link_b{top: 12px;}
}
@media (max-width: 375px){
.scbody #header .h_logo{top:7px; left:0px;}
}
.onsc{display:none !important;}
.nosc{display:block !important;}
.scbody .onsc{display:block !important;}
.scbody .nosc{display:none !important;}

/*================================================
 *  footmenu
 ================================================*/
footer{background-color:var(--color-f); font-size:0.9em; width: 100%; color:var(--color-d);}
.footmenu { 
    width: 100%;
    margin: 0 auto;
    display: block;
    clear: both;
    overflow: hidden;
    border-top: 2px groove #eee;
    background: var(--color-f);
}
.footmenu .menu{
    padding-left: 0;
    list-style-type: none;
    margin: 0;
    width: 100%;
    height: 100%;
}
.footmenu li{
	position: relative;
	display: inline-block;
	background-color: var(--color-f);
        text-align: center;
	text-decoration: none;
	transition: all 1.5s;
        width:100%;
        height:100%;
        float:left;
        margin:0;
}
.footmenu li::after {
	position: absolute;
	top: 50%;
	right: 0.2em;
	content: '';
	margin-top: -0.3em;
	border: 0.4em solid transparent;
	border-top-width: 0.4em;
	border-bottom-width: 0.4em;
	border-left:0.5em solid var(--color-d);
	transition: all 1.5s;
}
.footmenu li a{color:var(--color-d); font-weight:400; text-decoration:none; display:block; line-height:3em; height:100%; border-bottom:2px groove #eee;}
.footmenu li:hover {opacity:.88; background-color: var(--color-g);}
.footmenu li:hover::after {right: -0.1em;}
.footmenu li:nth-child(2n){border-left:none;}
@media only screen and (min-width: 834px) and (max-width: 1079.9px)
{
.footmenu ul li{width:50%; float:left;}
.footmenu ul li:nth-child(1n){border-right: 2px groove #eee;}
}
@media print, screen and (min-width: 1080px)
{
.footmenu ul li{width:auto; padding-left:0.8em; padding-right:1.2em; float:left; margin-top:1px;}
.footmenu ul li:nth-child(1n){border-right: none;}
.footmenu li a{border: none;}
/*.footmenu, .footmenu li{background-color:var(--color-f);}
.footmenu li:hover {background-color:var(--color-g);}*/
}
.copyright{background-color:var(--color-f); color:var(--color-d); text-align: center; padding-bottom: 1.5em; padding-top:1em; clear:both;}
.copyright a {color: var(--color-d); text-decoration:none;}
.copyright a:hover {opacity:.88;}