@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");

:root{
  --header-height: 122px;
  --header-max: 1440px;
  /* --header-pad: clamp(16px, 4vw, 60px); */
  --header-border: #d9d9d9;

  /* ボタン色（デザインに合わせて近い色） */
  --cta-primary: #20B8CE;
  --cta-line: #18b74b;
  --cta-badge: #FFF481;

  --text: #333;

  --font-din2014: "DIN-2014", sans-serif;
}

/* 991pxで切替 */
.pc-only{ display:block; }
.sp-only{ display:none; }
@media (max-width: 991px){
  .pc-only{ display:none; }
  .sp-only{ display:block; }
}

.header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-height);
  background: #fff;
  z-index: 101;
}

@media (max-width: 1024px){
  .header{
    height: 85px;
  }
}

.header__inner{
  max-width: var(--header-max);
  margin: 0 auto;
  padding: 18px 10px;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 20px;
  box-sizing: border-box;
}

@media (max-width: 1200px){
  .header__inner{
    justify-content: space-between;
  }
}
/* @media (max-width: 1024px){
  .header__inner{
    justify-content: center;
  }
} */

.header__logo{
  /* background-image: url(../images/header-logo-w.png);
  background-repeat: no-repeat;
  background-size: contain; */
  display: flex;
  width: 285px;
  aspect-ratio: 285/60;
  transition: background-image 0.3s ease;
}

@media (max-width: 1440px){
  .header__logo{
    width: clamp(10rem, -9.231rem + 30.05vw, 17.813rem);
  }
}

@media (max-width: 1024px){
  .header__logo{
    width: calc(285vw / 1024 * 100);
  }
}

@media (max-width: 768px){
  .header__logo{
    width: 180px;
  }
}

@media (max-width: 430px){
  .header__logo{
    width: 142px;
  }
}

.header__nav-wrap{
  display: flex;
  align-items: flex-end;
  gap: 20px;
}

@media (max-width: 1024px){
  .header__nav-wrap{
    display: none;
  }
}

/* 中央メニュー */
.header__nav{
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
  flex-direction: column;
  min-width: 0;
}

.header__nav-top{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  border-bottom: 1px solid #333333;
  padding: 0 10px 10px;
  gap: 15px;
}

.header__items{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 0px;
  list-style: none;
  padding: 0;
  margin: 0;
  /* white-space: nowrap; */
  padding: 5px 10px 0;
  min-width: 0;
}

@media (max-width: 1440px){
  .header__items{
    column-gap: clamp(0.75rem, -0.173rem + 1.44vw, 1.125rem);
  }
}

.header__link{
  color: var(--text)!important;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.4;
}

.header__link:hover{ 
  opacity: 1;
  color: #3D529D!important;
}

@media (max-width: 1440px){
  .header__items{
    padding: 0 10px 0;
  }
  .header__link{
    font-size: clamp(0.625rem, -0.466rem + 1.7vw, 0.813rem);
  }
}

.header__dropdown {
  position: relative;
}

.header__dropdown:hover .header__submenu, .header__dropdown:focus-within .header__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.header__link--has-submenu {
  position: relative;
  cursor: pointer;
}

.header__submenu {
  position: absolute;
  top: 100%;
  left: -0.75rem;
  min-width: 10.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.9375rem);
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.3s;
  z-index: 10;
  padding: 0.75rem 0;
  border-radius: 0.5rem;
  background-color: #fff;
}

.header__submenu-item {
  width: 100%;
  padding: 0.5rem 0.75rem;
}

.header__submenu-link {
  display: block;
  width: 100%;
  color: #fff;
  text-decoration: none;
  padding: 0.625rem 0;
  transition: background-color 0.3s, color 0.3s;
}
/* .header__submenu-link:hover, .header__submenu-link:focus {
  color: var(--color-primary);
} */

/* 右側 */
/* .header__actions{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 18px;
} */

/* 電話 */
.header__tel{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.header__tel-row{
  display: flex;
  align-items: center;
  gap: 6px;
}

.header__tel-icon{
  width: 24px;
  height: 24px;
  background-image: url(../assets/images/ic_round-phone.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.header__tel-number{
  font-family: var(--font-din2014);
  color: var(--text);
  text-decoration: none;
  font-size: 26px;
  font-weight: bold;
  letter-spacing: 0.03em;
}

.header__tel-note{
  margin: 0;
  font-size: 13px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: var(--text);
}

/* CTA群 */
.header__ctas{
  display: flex;
  align-items: center;
  gap: 10px;
}

.header__cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 22px;
  color: #fff!important;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.3s;
  /* white-space: nowrap; */
}

.header__cta--primary{
  box-shadow: 0px 4px 10px rgba(1, 141, 161, 0.15);
  background: var(--cta-primary);
}

.header__cta--primary:hover{
  opacity: 0.7;
}

.header__cta-icon{
  width: 16px;
  height: 16px;
  background-image: url(../assets/images/mail-icon-w.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.header__cta-text{
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
}

.header__line-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
}

.header__line-badge{
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--cta-badge);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 12px;
  /* white-space: nowrap; */
  line-height: 1.26;
  z-index: 1;
  width: 85%;
  text-align: center;
}

/* ▼ 逆三角形（吹き出しのしっぽ） */
.header__line-badge::after{
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 2px solid transparent;
  border-right: 2px solid transparent;
  border-top: 4px solid var(--cta-badge);
}

.header__line-badge span{
  color: #FF7700;
}

.header__cta--line{
  position: relative;
  min-width: 267px;
  background: linear-gradient(93.38deg, #06C755 0%, #00B048 100%);
  border: 2px solid #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 124, 51, 0.15);
  border-radius: 34px;
}

.header__cta--line:hover,
.header__cta--line:focus {
  background: linear-gradient(266.62deg, #06C755 0%, #00B048 100%);
}

.header__cta-icon.header__cta-icon--line{
  width: 32px;
  height: 26px;
  background-image: url(../assets/images/line-icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.header__cta-text.header__cta-text--line{
  font-size: 18px;
}

.header__cta-text.header__cta-text--line span{
  color: #FFF025;
}

@media (max-width: 1440px){
  .header__cta--line{
    min-width: clamp(15.625rem, 13.01rem + 4.09vw, 16.688rem);
  }
}

/* ハンバーガー */
.header__hamburger-wrap{
  margin-left: auto;
  width: 30px;
  height: 30px;
  display: none;
  position: absolute;
  content: '';
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
}

@media (max-width: 1024px){
  .header__hamburger-wrap{
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 101;
  }
}

.header__hamburger{
  width: 30px;
  height: 30px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}

.header__hamburger-lines{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 24px;
  height: 20px;
  margin: 0 auto;
}

.header__hamburger-line{
  display: block;
  width: 100%;
  height: 2px;
  background: #19B3C0;
  border-radius: 10px;
  transition: transform .25s, opacity .25s;
}

.header__hamburger.is-active .header__hamburger-line:nth-child(1){
  transform: translateY(6px) rotate(45deg);
}
.header__hamburger.is-active .header__hamburger-line:nth-child(2){
  opacity: 0;
}
.header__hamburger.is-active .header__hamburger-line:nth-child(3){
  transform: translateY(-12px) rotate(-45deg);
}

/* .header__hamburger.is-active .header__hamburger-line{
  background: #fff;
} */

/* Drawer */
.drawer{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s, visibility .25s;
  z-index: 100;
  padding: 45px 16px 28px;
  overflow-y: auto;
}

.drawer.is-active{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.drawer__inner{
  width: 100%;
  max-width: 400px;
  overflow-y: visible;
  max-height: none;
  margin-inline: auto;
}

.drawer__items{
  list-style: none;
  padding: 0;
  margin: 0;
}

.drawer__item + .drawer__item{
  border-top: 1px solid #eee;
}

.drawer__link{
  display: block;
  padding: 10px 8px;
  color: var(--text)!important;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
}

.drawer__link:hover{ 
  opacity: .75;
}


.drawer__submenu {
  padding-left: 1.875rem;
}

.drawer__line-wrap {
  position: relative;
  display: flex;
  width: 100%;
  justify-content: center;
  margin-top: 40px;
}

.drawer__line-badge {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--cta-badge);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 12px;
  line-height: 1.26;
  z-index: 1;
  width: 85%;
  text-align: center;
}

.drawer__line-badge::after{
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 2px solid transparent;
  border-right: 2px solid transparent;
  border-top: 4px solid var(--cta-badge);
}

.drawer__line-badge span{
  color: #FF7700;
}

.drawer__line-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 22px;
  color: #fff!important;
  text-decoration: none;
  gap: 6px;
  transition: background 0.3s;
  position: relative;
  min-width: 267px;
  background: linear-gradient(93.38deg, #06C755 0%, #00B048 100%);
  border: 2px solid #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 124, 51, 0.15);
  border-radius: 34px;
  width: 100%;
  max-width: 400px;
  min-width: 0;
  box-sizing: border-box;
}

.drawer__line-button:hover,
.drawer__line-button:focus {
  background: linear-gradient(266.62deg, #06C755 0%, #00B048 100%);
}

.drawer__line-button-icon{
  width: 32px;
  height: 26px;
  background-image: url(../assets/images/line-icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.drawer__line-button-text{
  font-size: 18px;
  font-weight: bold;
  line-height: 1.4;
}

.drawer__line-button-text span{
  color: #FFF025;
}

.drawer__tel{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-top: 30px;
}

.drawer__tel-row{
  display: flex;
  align-items: center;
  gap: 6px;
}

.drawer__tel-icon{
  width: 24px;
  height: 24px;
  background-image: url(../assets/images/ic_round-phone.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.drawer__tel-number{
  font-family: var(--font-inter);
  color: var(--text);
  text-decoration: none;
  font-size: 32px;
  font-weight: bold;
}

.drawer__tel-note{
  margin: 0;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: var(--text);
}

.drawer__ctas {
  max-width: 400px;
  width: 100%;
  margin: 30px auto 0;
}

.drawer__cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 22px;
  color: #fff!important;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-shadow: 0px 4px 10px rgba(1, 141, 161, 0.15);
  background: var(--cta-primary);
  transition: background 0.3s;
}

.drawer__cta-button-icon {
  width: 16px;
  height: 16px;
  background-image: url(../assets/images/mail-icon-w.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.drawer__cta-button-text {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
}



/* ドロワー開いてる時スクロール止め */
body.is-drawer-active{
  overflow: hidden;
}

/* 固定ヘッダー分（必要なら） */
body{
  padding-top: var(--header-height);
}