@charset "UTF-8";
/* Header styles matched to header.php classes */
.site_header {
  /* Consolidated header styles (based on existing LP CSS and layout adjustments) */
  background-color: #153C71;
  height:100%; /* LP baseline */
  display: flex;
  flex-direction: column; /* top row (logo+CTA) and nav row */
  justify-content: flex-start;
  padding: 18px 28px;
  position: relative;
  z-index: 1000;
  box-sizing: border-box;
}

.site_header_top {
  display: flex;
  align-items: center;
  width: 100%;
}

.site_header_logo {
  height: 5vw;
}

.site_header_logo img {
  height: 5vw;
  display: block;
}

.site_header_title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 10px;
  flex-grow: 1;
  color: #fff;
  font-family: "Zen Maru Gothic", serif;
  font-weight: 500;
}

.site_header_subtitle {
  margin: 0;
  font-size: 22px;
  color: #fff;
  text-align: left;
}

.site_header_main {
  margin: 0;
  font-size: 2.5vw;
  color: #fff;
  font-family: "Zen Maru Gothic", serif;
  font-weight: 500;
}

.site_header_cta {
  display: flex;
  gap: 12px;
  align-items: center;
}

.header_tel_button {
  padding: 14px 40px !important;
  background: linear-gradient(#E3E2F7, #8984ED);
  border-radius: 14px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: auto !important;
  min-height: 44px;
}

.header_tel_label {
  color: #184177;
  font-size: 0.8vw;
  font-weight: 500;
  margin: 0 !important;
  line-height: 1 !important;
  display: block !important;
}

.header_tel_number {
  color: #184177;
  font-size: 2vw;
  font-weight: 600;
  margin: 0 !important;
  line-height: 1 !important;
  display: block !important;
}

.header_contact_button {
  padding: 20px 48px;
  margin-left: 20px;
  background: linear-gradient(#E0E0E0, #ABFF6F);
  display: flex;
  align-items: center;
  border-radius: 14px;
  height: 100%;
  color: #184177;
  font-weight: 600;
  font-size: 1.5vw;
}

.header_contact_button span,
.header_contact_button p {
  color: #184177;
  margin: 0;
  font-size: 1.4vw;
  font-weight: 500;
}

/* responsive */
@media (max-width: 1200px) {
  .site_header {
    height: 10vw;
  }
  .site_header_logo { height: 7vw; }
  .site_header_logo img { height: 7vw; }
  .site_header_main { font-size: 3vw; }
  .site_header_subtitle { font-size: 1.5vw; }
  
  .site_header_cta {
    gap: 1vw;
  }
  
  .header_tel_button { 
    padding: 1vw 2.0vw !important;
    min-height: 6vw;
  }
  
  .header_tel_label {
    font-size: 1vw;
  }
  
  .header_tel_number {
    font-size: 2.5vw;
  }
  
  .header_contact_button { 
    padding: 2.9vw 2.0vw;
    margin-left: 0;
    font-size: 1.8vw;
  }
}

@media (max-width: 768px) {
  .site_header { 
    height: auto;
    padding: 12px 16px; 
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .site_header_top {
    width: auto;
    flex-grow: 1;
    flex-shrink: 1;
    min-width: 0;
    margin-right: 8px;
  }
  .site_header_logo { 
    height: 12vw; 
    flex-shrink: 0;
  }
  .site_header_logo img { height: 12vw; }
  .site_header_title {
    margin-left: 8px;
    min-width: 0;
  }
  .site_header_main { 
    font-size: 4.2vw;
    white-space: nowrap;
    line-height: 1.2;
  }
  .site_header_subtitle { 
    font-size: 2.8vw; 
    margin-bottom: 2px;
    white-space: nowrap;
  }
  .header_tel_button, .header_contact_button { display: none; }
}

/* Global navigation */
.site_nav {
  width: 100%;
  display: flex;
  justify-content: flex-end; /* 右側に寄せる */
  padding: 12px 20px 18px 20px;
  position: relative;
}

/* ハンバーガーメニューボタン（デフォルトは非表示） */
.hamburger_menu_button {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 1001;
  position: relative;
  flex-shrink: 0;
}

.hamburger_line {
  width: 28px;
  height: 3px;
  background-color: #ffffff;
  margin: 3px 0;
  transition: all 0.3s ease;
  border-radius: 2px;
}

/* ハンバーガーが開いた時のアニメーション */
.hamburger_menu_button.is_active .hamburger_line:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}

.hamburger_menu_button.is_active .hamburger_line:nth-child(2) {
  opacity: 0;
}

.hamburger_menu_button.is_active .hamburger_line:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

.site_nav_wrapper {
  display: flex;
}

.site_nav_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 56px;
  align-items: center;
}

.site_nav_list .menu-item a,
.site_nav_list li a {
  color: #ffffff;
  text-decoration: none;
  font-size: 18px;
  font-weight: 500;
  padding: 6px 0;
}

@media (max-width: 1200px) {
  .site_nav_list { gap: 36px; }
  .site_nav_list .menu-item a { font-size: 16px; }
}

@media (max-width: 768px) {
  .site_nav { 
    width: auto;
    padding: 0;
    position: static;
  }

  /* ハンバーガーボタンを表示 */
  .hamburger_menu_button {
    display: flex;
  }

  /* メニューをフルスクリーンオーバーレイに */
  .site_nav_wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(21, 60, 113, 0.98);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1000;
  }

  .site_nav_wrapper.is_open {
    opacity: 1;
    visibility: visible;
  }

  .site_nav_list {
    flex-direction: column;
    gap: 30px;
  }

  .site_nav_list .menu-item a,
  .site_nav_list li a {
    font-size: 24px;
    padding: 10px 0;
  }

  /* スクロールロック用 */
  body.menu_open {
    overflow: hidden;
  }
}

/* --- Moved from style.css: header / buttons / responsive rules --- */
.site_header .site_logo {
  height: 5vw;
}

.site_header .site_logo img {
  height: 5vw;
}

.site_title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 10px;
  flex-grow: 1;
  color: #fff;
  font-family: "Zen Maru Gothic", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 500;
}

.title {
  margin: 0;
  font-size: 2.5vw;
  color: #fff;
  font-family: "Zen Maru Gothic", serif;
  font-weight: 500;
}

.subtitle {
  margin: 0;
  font-size: 22px;
  color: #fff;
  text-align: left;
}

/* 画面幅が1200px以下のとき */
@media (max-width: 1200px) {
  .site_header {
    height: 100%;
    display: flex;
    align-items: center;
  }
  .site_header .site_logo {
    height: 7vw;
  }
  .site_header .site_logo img {
    height: 7vw;
  }
  .title {
    font-size: 3vw;
  }
  .subtitle {
    font-size: 1.5vw;
  }
}
/* 画面幅が768px以下のとき */
@media (max-width: 768px) {
  .site_header {
    height: 100%;
  }
  .site_header .site_logo {
    height: 12vw;
  }
  .site_header .site_logo img {
    height: 12vw;
  }
  .title {
    font-size: 5vw;
  }
  .subtitle {
    margin-bottom: 4px;
    font-size: 3vw;
  }
}
/* ヘッダーのボタン */
.button_area {
  text-align: center;
  display: flex;
  height: 5vw;
}

@media (max-width: 768px) {
  .button_area {
    display: none;
  }
}
.phone_button {
  padding: 10px 48px;
  background: linear-gradient(#E3E2F7, #8984ED);
  align-items: center;
  border-radius: 14px;
}

.phone_button_text {
  color: #184177;
  font-size: 0.8vw;
  font-weight: 500;
  margin: 0;
  padding-bottom: 3px;
}

.phone_button_number {
  color: #184177;
  font-size: 2vw;
  font-weight: 600;
}

.phone_button a {
  text-decoration: none;
}

.contact_button {
  padding: 0 48px;
  margin-left: 20px;
  background: linear-gradient(#E0E0E0, #ABFF6F);
  display: flex;
  align-items: center;
  border-radius: 14px;
}

.contact_button p {
  color: #184177;
  margin-bottom: 0px;
  font-size: 1.4vw;
  font-weight: 500;
}

.contact_button a {
  text-decoration: none;
}

@media (max-width: 1200px) {
  .button_area {
    text-align: center;
    display: flex;
    height: 7vw;
  }
  .phone_button {
    padding: 0 20px;
    background: linear-gradient(#E3E2F7, #8984ED);
    display: flex;
    align-items: center;
    border-radius: 14px;
  }
  .phone_button_text {
    color: #184177;
    font-size: 1vw;
    font-weight: 500;
    margin: 0;
    margin-top: 5px;
  }
  .phone_button_number {
    color: #184177;
    font-size: 2vw;
    font-weight: 600;
  }
  .phone_button a {
    text-decoration: none;
  }
  .contact_button {
    padding: 0 30px;
    background: linear-gradient(#E0E0E0, #ABFF6F);
    display: flex;
    align-items: center;
    border-radius: 14px;
  }
  .contact_button p {
    color: #184177;
    font-size: 2vw;
  }
  .contact_button a {
    text-decoration: none;
  }
}
@media (max-width: 768px) {
  .phone_button {
    display: none;
  }
  .contact_button {
    display: none;
  }
}


/* ボタンホバー時のスタイル */
.phone_button:hover {
  opacity: 0.5; /* ホバー時に少し透明にする */
}

.contact_button:hover {
  opacity: 0.5; /* ホバー時に少し透明にする */
}

/* thanks.htmlのcss moved */
.site_header .site_title a{
  text-decoration: none;
}


.site_header_logo {
  display: flex;
  align-items: center;
  gap: 16px;
}

.site_header_title {
  margin-left: 12px;
}

.site_header_cta {
  display: flex;
  align-items: center;
  gap: 18px;
  height: 5vw;
}

/* place the nav in its own row centered horizontally, larger spacing */
.site_nav {
  width: 100%;
  display: flex;
  justify-content: right;
  padding-top: 18px;
  padding-bottom: 8px;
  position: relative;
  z-index: 1001;
}





.site_nav_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 120px;
  align-items: center;
}

.site_nav_list .menu-item a,
.site_nav_list li a {
  color: #ffffff;
  text-decoration: none;
  font-size: 28px;
  padding: 6px 0;
}

@media (max-width: 1200px) {
  .site_nav_list { gap: 40px; }
  .site_nav_list .menu-item a { font-size: 22px; }
}

@media (max-width: 768px) {
  .site_header { padding: 12px; }
  .site_nav_list { gap: 28px; }
  .site_nav_list .menu-item a { font-size: 18px; }
}
