#header{
  position: sticky;
  top: 0;
  z-index: 99;
  background: black;
}

header {
}

header::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  transform: translateY(100%);
  background-image: url("../images/all/header-check.png");
  background-repeat: repeat-x;       /* 繰り返し */
  background-size: auto;           /* 元サイズで繰り返し */
  z-index: 99; /* ヘッダーの背面に配置 */
}

header .area {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
header .left {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 65px;
  padding: 0 2rem;
}
header .area .left .logo:hover{opacity:0.5;
}
header nav { position: relative;z-index: 100; }

header .menu {
  display: flex;
  padding: 0 2rem;
}
header .menu li { color: #fff;font-weight: bold;font-size:1rem; }
header .menu li:hover { background-color: #333; }
header .menu li a {
  display: flex;
  align-items: center;
  padding: 0 1rem;
  color: #fff;
  text-decoration: none;
  min-height: 65px;
}
header .menu li a:hover { color: white; text-decoration: none; }

/* サブメニュー */
header .has-submenu .submenu {
  position: absolute;
  max-height: 0;
  overflow: hidden;
  background: black;
  list-style: none;
  transition: max-height 0.5s;
}
header .has-submenu .submenu li{
  outline:1px solid gray;
}
header .has-submenu:hover .submenu { max-height: 600px; }
header .has-submenu > a::after {
  content: "";
  position: relative;
  transform: translateY(25%);
  margin-left: 10px;
  border: 5px solid transparent;
  border-top-color: red;
}

/* スマホ用 */
header .hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
}
header .hamburger span {
  display: block;
  width: 25px;
  height: 3px;
  margin: 4px auto;
  background-color: #fff;
  transition: 0.4s;
}
header .hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
header .hamburger.active span:nth-child(2) { opacity: 0; }
header .hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

@media (max-width: 768px) {
header nav{ width:100%; }
header .left { width: 100%; gap: 1rem; }
header .menu {
    flex-direction: column;
    background: #333;
    position: absolute;
    top: 100%;
    right: 0;
    width: 100%;
    transition: max-height 0.5s;
    max-height: 0;
    overflow: hidden;
  padding: 0;
  }
header .menu.active { max-height: 600px; }
  header .has-submenu .submenu {
    position: relative;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s;
  }
  header .has-submenu.open .submenu {
    max-height: 500px; /* 開いたときの高さ */
  }
header .hamburger { display: block; }
}
@media (max-width:768px) {
  header .has-submenu:hover .submenu {
    max-height: 0; /* スマホでは hover 無効化 */
  }
  header .has-submenu.open .submenu {
    max-height: 600px;
  }
}
@media (max-width:768px) {
header .menu li a {
  min-height: 40px;
}
}
@media (max-width:768px) {
header .menu li{
  font-size:0.9rem;
  outline:1px solid gray;
}
}








.totop{
    position:fixed;
    bottom:20px;
    right:20px;
    background-color:black;
    display: inline-block;
}





footer{
    background-color:none;
}
footer .area{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color:black;
    padding:2.5% 0 0 0;
    gap:2rem;
    flex-wrap: wrap;
}
footer .area .image{
    width:100px;
}
footer .area .menu {
    color:white;
    display: flex;
    flex-wrap: wrap;
    gap:1rem;
    font-weight:bold;
    justify-content: center;
    align-items: center;
    font-size:1rem;
}
footer .area .menu li{
}
footer .area .menu li:hover{
    color:gray;
}
footer .area .text {
    font-size: clamp(0.7rem, 2vw, 1rem);
    width: fit-content;
    color:white;
    padding:20px 0;
}



@media (max-width:768px) {
footer{
}
footer .area{
    padding:10% 0 0 0;
    gap:1rem;
}
footer .area .menu {
    flex-direction: column;
    gap:0.5rem;
    font-size:0.8rem;
}
}





