@charset "utf-8";


.site-header-wrapper {
  width: 100%;
  font-family: "Noto Sans JP", "Hiragino Sans","BIZ UDゴシック", "BIZ UDGothic", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
}
.site-header-container-background {
  width:100%;
  min-height: 80px;
  margin: 0;
  background-color: rgba(235, 235, 235, 0.8); 
}

.site-header-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 8px 10px;

}

.site-header-logo img {
  height: 45px;        
  width: auto;
  object-fit: contain; 
  vertical-align: middle;
}
.site-header-logo a {
  display: flex;
  align-items: center;
  height: 100%;
  margin: 7px 0px 5px 5px;
}

@media (min-width: 768px) {
.site-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap; 
  }

.site-header-logo a {
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  color: #333;
  white-space: nowrap; /* ロゴの改行防止 */
  }
}


.site-header-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  gap: 10px; 
}

.site-header-menu > li {
  position: relative;
  font-weight: 400;
  font-size: 0.9rem;
}

.site-header-menu > li > a {
  text-decoration: none;
  padding: 10px 5px;
  display: block;
  transition: 0.3s;
  white-space: nowrap;
  border-bottom: solid 1px transparent; /* ロゴの改行防止 */
}

.site-header-menu > li:hover > a {
  color: #008E1A;
  border-bottom-color: #008E1A;
}

.site-header-menu > li:hover > a.site-header-contact-btn,
.site-header-contact-btn:hover {
  background-color: #ff9800 !important;
  color: #fff !important;           
  text-decoration: none !important;  
  border-bottom-color: transparent !important;  
  opacity: 0.9;
}

/* お問い合わせボタンのスタイル */
.site-header-contact-btn {
  background-color: #008E1A !important;
  color: #fff !important;
  border-radius: 4px;
  padding: 10px 15px !important;
  text-decoration: none !important;
}

.site-header-contact-btn:hover {
  opacity: 0.8;
  text-decoration: none !important;
  background-color: #ff9800 !important; 
  color: #fff !important;
  font-weight:bold !important;
  opacity: 0.9;
}

/* ロゴ下段：会社概要・お知らせメニュー */
.site-header-bottom {
  display: flex;
  justify-content: flex-start; 
  margin-left:60px;
}

.site-header-secondary-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 10px;
  font-size: 0.95rem;
  font-weight: 500;
}

.site-header-secondary-menu a {
  text-decoration: none;
  color: #666; 
}

.site-header-secondary-menu a:hover {
  color: #008E1A !important;
  border-bottom: 3px solid #008E1A !important;
}

/* ドロップダウン（サブメニュー）の基本設定 */
.site-header-sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 1px solid #aaa;
  list-style: none;
  padding: 10px 0 10 0px !important;
  min-width: 165px;
  box-shadow: 0 4px 6px 0 rgba(0,0,0,0.1);
}

.has-child:hover .site-header-sub-menu {
  display: block;
}

.site-header-sub-menu a {
  display: block;
  padding: 8px 12px 8px 5px;
  text-decoration: none;
  color: #333 !important;
  font-size: 0.8rem;
}

.site-header-sub-menu li:hover > a {
  border-right: solid 8px #008E1A;
  background-color: #eeeeee !important;
}



@media (max-width: 1100px) {
  .site-header-menu { gap: 3px !important; } 
  .site-header-menu > li > a { font-size: 0.85rem; padding: 10px 3px; }
}

@media (min-width: 768px) {
  .menu-toggle {
    display: none !important;
  }
  .nav-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    width: auto;
    margin-right:20px;
  }
  .site-header-menu {
    display: flex !important;
    flex-direction: row !important;
    gap: 15px;
    margin-bottom: 5px; 
    color: #333;
  }

  .site-header-bottom {
    display: flex !important;
    position: absolute; /* 親の制約を無視して配置 */
    left: 80px;         /* ロゴの開始位置に合わせる */
    top: 80px;          /* ロゴの下に来るように調整 */
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .site-header-wrapper {
    height: auto !important; /* 80px固定を解除して、中身に合わせる */
    min-height: 80px;    
    padding-bottom: 40px;    /* ★左メニューの下に余白を作り、線を押し下げる */
  }
  .site-header-container {
    height: auto !important;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
  }
  .site-header-secondary-menu {
    display: flex !important;
    flex-direction: row !important; /* 横並びに戻す */
    gap: 20px;
  }
  .site-header-secondary-menu a {
    font-size: 0.85rem !important;
    border: none !important;
    padding: 5px 0 !important;
    color: #666 !important;
  }
  .site-header-secondary-menu a:hover {
    color: #008E1A!important;

  }
  
  .nav-wrapper {
    display: flex !important; 
  }
}
@media (max-width: 910px) {
  .site-header-top {
    display: flex !important;
    flex-direction: row !important; 
    align-items: center !important;
    height: 70px !important;
    padding: 0 15px !important;
  }
  .site-header-logo {
    flex: 0 1 200px;
    min-width: 0;
  }
  .site-header-logo img {
    max-width: 100%;  
    height: auto !important; 
    max-height: 40px; 
  }

  /* ハンバーガーmenu */
  .menu-toggle { 
    display: block !important; 
    width: 30px !important;
    height: 30px !important;
    position: relative !important;
    margin: 10px 20px 10px auto !important; 
    cursor: pointer;
    z-index: 1100;
  }
  .menu-toggle .bar { 
    display: block !important; 
    width: 100% !important; 
    height: 3px !important; 
    background-color: #333 !important; 
    position: absolute !important; 
    left: 0 !important;
    transition: 0.3s; 
  }
  .menu-toggle .bar:nth-child(1) { top: 5px !important; }
  .menu-toggle .bar:nth-child(2) { top: 14px !important; }
  .menu-toggle .bar:nth-child(3) { top: 23px !important; }
  /* --- クリックされた時（バツ印） --- */
  .menu-toggle.is-active .bar:nth-child(1) { 
    transform: translateY(9px) rotate(45deg) !important; 
  }
  .menu-toggle.is-active .bar:nth-child(2) { 
    opacity: 0 !important; 
  }
  .menu-toggle.is-active .bar:nth-child(3) { 
    transform: translateY(-9px) rotate(-45deg) !important; 
  }
  
  /* メニュー展開エリア */
  .nav-wrapper { 
    display: none !important;
    flex-direction: column !important; 
    position: absolute !important; 
    top: 100%; 
    left: 0; 
    width: 100% !important; 
    background-color: #fff !important; 
    z-index: 1099;
    padding: 0;
    box-shadow: 0 5px 10px rgba(0,0,0,0.1);
  }

  .nav-wrapper.is-active { 
    display: flex !important; 
  }

  /* （２）すべてのリストを中央寄せに統一 */
  .site-header-menu,
  .site-header-secondary-menu,
  .site-header-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important; /* 中央寄せ */
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    list-style: none !important;
  }

  .site-header-menu a,
  .site-header-secondary-menu a { 
    display: block !important;
    padding: 15px !important; 
    text-align: center !important; 
    border-bottom: 1px solid #eee !important; 
    width: 100% !important;
    color: #333 !important;
    text-decoration: none !important;
    font-size: 1rem;
    background-color: transparent !important;
  }

  /* （３）サブメニューを常に表示（ドロップダウンさせない） */
  .site-header-sub-menu {
    display: block !important; /* 常に表示 */
    position: static !important;
    width: 100% !important;
    background-color: #fff !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: none !important;
  }

  .site-header-sub-menu a {
    font-size: 0.85rem !important;
    padding: 10px !important;
    color: #666 !important;
    background-color: #fff !important;
    border-bottom: 1px solid #eee !important;
  }

  .site-header-menu a.site-header-contact-btn{
    background-color: transparent !important; /* #をとって transparent に修正 */
    color: #333 !important;
    border-radius: 0 ;
    margin: 0 !important;
    width: 100% !important;
    border-bottom: 1px solid #eee !important; /* 他のメニューと線を合わせる */
  }
     
  .site-header-wrapper .site-header-menu li a,
  .site-header-wrapper .site-header-menu li a.site-header-contact-btn:hover {
    background: none !important;
    color: #333 !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
    box-shadow: none !important;
  }
}




/* ---------------- フッター ---------------- */

.site-footer-margin {
  margin-top:0px;
}

.site-footer-wrapper {
  background-color: #f5f5f5; 
  color: #333;
  width: 100%;
  padding: 10px 0 40px 0;
  font-family: sans-serif;
}

.site-footer-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 10px 30px;
}

/* 上段のレイアウト（ロゴとナビ） */
.site-footer-top {
  display: flex;
  justify-content: flex-start; 
  align-items: flex-start;
  gap: 20px;
  flex-wrap: wrap;
  border-bottom: 1px solid #ddd;
  padding-bottom: 15px;
  padding-top:0px;
}

.site-footer-logo-wrapper {
  flex-shrink: 0; /* 画面が狭くなってもロゴを縮ませない */
  width: 200px;
}

.site-footer-nav {
  flex-grow: 1;
}

.site-footer-logo img {
  height: auto;        
  width: 200px;
  object-fit: contain; 
  vertical-align: top;
  margin-top:10px;
}
.site-footer-logo a {
  display: flex;
  align-items: center;
  height: 150%;
  margin: 10px 0px 10px 5px;
}

.site-footer-menu-item {
  flex: 1; 
  min-width: 120px; 
}


/* メインメニューの並び */
.site-footer-menu-list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 10px;
  color: #666;
  font-size: 0.8rem;
}

.site-footer-menu-item > a {
  font-weight: bold;
  text-decoration: none;
  color: #666;
  display: block;
  margin-bottom: 10px;
  line-height: 1.0;
}


.site-footer-menu-item a:hover,
.site-footer-submenu li a:hover,
.site-footer-legal-links a:hover  {
  color: #ff9800 !important;
  text-decoration: none !important;
}

/* サブメニュー */
.site-footer-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.8rem;
  color: #333 !important;
}

.site-footer-submenu li a {
  text-decoration: none;
  color: #333 !important;
  line-height: 1.6;
  font-size: 0.8rem;
}


/* 下段（Terms / Copyright）のレイアウト */
.site-footer-bottom {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  font-size: 0.8rem;
}

.site-footer-legal-links a {
  text-decoration: none;
  color: #333;
  margin-right: 20px;
  font-size: 0.8rem;
}

.site-footer-copyright {
  color: #666;
  margin: 0;
  font-size: 0.8rem;
}



@media (max-width: 768px) {
  .site-footer-menu-list {
    flex-direction: column;
    gap: 20px;
  }
  .site-footer-top {
    flex-direction: column;
  }
}


/* ----------各ページトップImage------------- */
.topimg { 
	position: relative; 
	width: 100%; 
	height: 300px; 
	overflow: hidden; 
  background-color: #e7f3e7; 
} 
/* 画像自体の設定（アスペクト比を保って全体を覆う） */
.topimg img {
  width: 100%;
  object-fit: cover;
  margin-bottom:0px;
  z-index: 1;
}

.topimg-title {
  position: absolute;
  top: 50%;

  left: 50%;
  transform: translate(-50%, -50%); /* 真ん中に固定する */
  color: #fff;       
  font-size: 3.6rem; 
  font-weight: bold;
  text-shadow: 2px 2px 10px rgba(0,0,0,0.5); /* 影 */
  width: 100%;
  text-align: center;
  z-index: 10;
}

@media (max-width: 768px) {
  .topimg { height: 200px; }
  .topimg-title { font-size: 3.0rem; }
}

