/*
* theme name: original_theme
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

:root {
  --gradient: linear-gradient(to right, #468EBE, #CFE17B);
  --blue: #498FBD;
  --red: #AE1A1E;
  --yellow: #FFF000;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}

body {
  background-image: url(./assets/images/background.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 100dvh;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}

img {
  vertical-align: bottom;
  height: auto;
}

.background_container {
  backdrop-filter: blur(10px);
  height: 100%;
  overflow: auto;
}

.main_container {
  margin-inline: auto;
  width: min(500px, 100%);
  background-color: #fff;
  container-type: inline-size;
}

header {
  background-image: var(--gradient);
  display: grid;
  justify-content: center;
  padding: 2cqw 0 2.1cqw;
  border-top: 3px dashed #fff;
  border-bottom: 3px dashed #fff;
}

.header_inner {
  display: grid;
  grid-template-columns: 11cqw 1fr;
  column-gap: 2cqw;
  align-items: center;
}

.header_inner .logo {
  width: 100%;
}

.header_inner .title {font-size: 3.8cqw;color: #fff;line-height: 1.3;letter-spacing: 0.04em;}

.main_nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 2px;
}

.main_nav_link {
  background-color: var(--blue);
  color: #fff;
  text-align: center;
  font-size: 3.8cqw;
  padding-block: 1.1em;
  display: flex;
  justify-content: center;
  column-gap: 3.1cqw;
}

.main_nav_link_icon {
  width: 4cqw;
}

.feature_item {display: flex;align-items: center;column-gap: 10px;font-size: 4cqw;padding-block: 1.5cqw;}


.feature_item::before {
  content: '';
  width: 6cqw;
  aspect-ratio: 1/1;
  background-image: url(./assets/images/icon_check_blue.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.feature_list * + * {
  border-top: 1px solid #BEBEBE;
}

.feature_list {
  border-top: 1px solid #BEBEBE;
  border-bottom: 1px solid #BEBEBE;
  margin-block: 5.5cqw;
}

.wrapper {
  width: 90cqw;
  margin-inline: auto;
}


.cta_box {
  background-image: var(--gradient);
  color: #fff;
  position: relative;
  z-index: 0;
  padding: 8.7cqw 4cqw 2.3cqw 4cqw;
}

.cta_title {padding: 3cqw;position: absolute;left: 0;top: 0;background-color: #fff;border-radius: 50px;width: 100%;color: #000;text-align: center;font-size: 5.2cqw;font-weight: 900;transform: translate(0px, -50%);border: 2px solid #FFF;}

.cta_title::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50px;
  padding: 5px;
  background: var(--gradient);
  mask: linear-gradient(#000 0 0) content-box,     linear-gradient(#000 0 0);
  mask-composite: exclude;
}

section.cta {
  padding-top: 8cqw;
}

.cta_text_box {}

.cta_text_box .cta_text {
  font-size: 5cqw;
  text-align: center;
  letter-spacing: 0.04em;
}

.cta_text_box .cta_sub_text {
  text-align: center;
  font-size: 3cqw;
}

.cta_guide_box {
  border: 5px solid #fff;
  border-radius: 10px;
  margin-top: 14px;
}

.cta_guide_text {
  text-align: center;
  background-color: #fff;
  color: #000;
  font-size: 4.4cqw;
  padding: 0.1em 0 0.3em;
  line-height: 1.3;
}

.cta_guide_reservation_text {
  text-align: center;
  font-size: 3.8cqw;
  margin-top: 1.5cqw;
}

.cta_guide_reservation_tel_date {
  display: flex;
  align-items: center;
  column-gap: 2cqw;
  padding-inline: 2cqw;
  justify-content: center;
  margin-bottom: 1.3cqw;
}

.cta_guide_reservation_tel {
  font-size: 7cqw;
  display: flex;
  align-items: center;
  column-gap: 1.5cqw;
}

.cta_guide_reservation_tel::before {
  content: '';
  width: 3cqw;
  height: 7.4cqw;
  background-image: url(./assets/images/icon_tel_white.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.cta_guide_reservation_date {
  line-height: 1.2;
  font-size: 3cqw;
}

.cta_title span,
.cta_guide_text span {
  background-image: var(--gradient);
  color: transparent;
  background-clip: text;
  display: inline-block;
}

.common_section_title {
  text-align: center;
  background-color: var(--blue);
  color: #fff;
  font-size: 4.5cqw;
  padding: 0.3em;
  border-radius: 100px;
  margin-bottom: 2.8cqw;
}

.common_section_title span {
  color: var(--yellow);
}

.note_text {
  text-align: center;
  margin-block: 1.8cqw;
  font-size: 3cqw;
}

.price_card {
  background-image: var(--gradient);
  border-radius: 10px;
  padding-bottom: 6px;
}

.price_card_title_box {
  color: #fff;
  display: flex;
  align-items: center;
  column-gap: 3cqw;
  padding: 1cqw 3cqw;
}

.price_card_title {
  font-size: 5cqw;
}

.price_card_title span {
  font-size: 6.5cqw;
}

.price_card_title_box .category {
  border: 1px solid currentColor;
  border-radius: 4px;
  padding: 0.4em 0.8em;
  font-size: 2.8cqw;
}

.price_card_title_box .note {
  font-size: 2.4cqw;
}

.price_card_content_box {
  background-color: #FEFCEF;
  margin-inline: 6px;
  border-radius: 8px;
  padding: 10px 14px;
}

.price_card_content_list {
  display: grid;
  grid-template-columns: max-content auto 1fr;
  column-gap: 4cqw;
}

.price_card_content_item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 3;
  padding: 1.2cqw 3cqw;
  align-items: center;
}

.price_card_content_item:nth-child(odd) {
  background-color: #fff;
}

.price_card_content_item_title {
  font-size: 4.4cqw;
  padding-right: 5cqw;
}

.price_card_content_item .arrow {
  background-color: #EFEFEF;
  width: 3cqw;
  aspect-ratio: 1/1.8;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

.price_card_content_item .price {
  color: var(--red);
  font-size: 4.8cqw;
  justify-self: center;
  margin-top: -1.1cqw;
}

.price_card_content_item .price span {
  font-size: 1.3em;
}

.price_card_content_note {
  text-align: center;
  color: var(--red);
  font-size: 2.8cqw;
  margin-top: 2cqw;
}

.price_card_box {
  display: grid;
  row-gap: 12px;
}

.location_map {
  margin-top: 3cqw;
}

.address {
  text-align: center;
  margin-block: 2cqw;
}

.primary_button {
  display: block;
  background-image: var(--gradient);
  color: #fff;
  text-align: center;
  border-radius: 100px;
  padding: 1em 0;
  font-size: 3.3cqw;
}

.product_card_title {
  color: var(--blue);
  font-size: 4.6cqw;
  margin-block: 1cqw;
}

.product_price_item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1cqw;
}

.product_price_list > * + * {
  border-top: 1px solid #BEBEBE;
}

.product_price_list {
  border-top: 1px solid #bebebe;
  border-bottom: 1px solid #bebebe;
}

.product_price_item_title {
  font-size: 4cqw;
}

.product_price_item_price {
  font-size: 3.5cqw;
}

.product_price_item_price span {
  color: var(--red);
  font-size: 1.4em;
}

.product_card_box {
  display: grid;
  row-gap: 7cqw;
}

.note_text.red {
  color: var(--red);
}

.reason_card {
  border: 3px solid var(--blue);
  border-radius: 8px;
  padding: 5cqw 3cqw 3cqw 3cqw;
  display: flex;
  align-items: center;
  column-gap: 4cqw;
  position: relative;
}

.reason_card_text_title {
  background-image: var(--gradient);
  color: transparent;
  background-clip: text;
  font-size: 4cqw;
}

.reason_card_text {
  font-size: 3cqw;
}

.reason_card_text_box {
  display: grid;
  row-gap: 1cqw;
}

.reason_card_image {
  flex-shrink: 0;
  width: 22cqw;
}

.reason_card_box {
  display: grid;
  row-gap: 5cqw;
  counter-reset: reason_num;
  margin-top: 6cqw;
}

.reason_card::before {
  counter-increment: reason_num;
  content: counter(reason_num);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background-color: var(--blue);
  color: var(--yellow);
  font-size: 4cqw;
  width: 1.7em;
  aspect-ratio: 1/1;
  border-radius: 100px;
  display: grid;
  place-content: center;
  margin-inline: auto;
  transform: translate(0px, -50%);
}

.flow_card {
  display: flex;
  align-items: center;
  column-gap: 2cqw;
  position: relative;
}

.flow_card_image {width: 35%;}

.flow_card_text {
  font-size: 2.8cqw;
}

.flow_card_text_box {
  display: grid;
  row-gap: 0.8cqw;
}

.flow_card_box {
  display: grid;
  row-gap: 6cqw;
}

.flow_card_box > * + *::before {
  content: '';
  position: absolute;
  width: 8cqw;
  aspect-ratio: 2/1;
  background-color: #D9D9D9;
  left: 0;
  right: 0;
  margin-inline: auto;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  top: 0;
  transform: translate(0px, -120%);
}

.area_box {
  display: grid;
  grid-template-columns: 41% 1fr;
  align-items: center;
  column-gap: 3cqw;
  border: 4px solid var(--blue);
  border-radius: 12px;
  padding: 4cqw;
  margin-bottom: 4cqw;
}

.area_text_title {
  font-size: 4.2cqw;
}

.area_text_box {
  display: grid;
  row-gap: 2cqw;
}

.footer_box {
  background-color: #F2F2F2;
  padding: 4cqw;
  display: grid;
  row-gap: 2.5cqw;
}

.footer_logo {
  width: 21cqw;
}

.footer_text {
  font-size: 2.8cqw;
}

.copyright {
  background-color: var(--blue);
  color: #fff;
  text-align: center;
  padding: 0.6em;
  font-size: 2.4cqw;
}

.form_row :where(input, textarea) {
  background-color: #F9F9F9;
  border: 1px solid #C5C5C5;
  width: 100%;
  border-radius: 4px;
  padding: 1cqw 2cqw;
}

.form_row {
  display: grid;
  row-gap: 0.8cqw;
}

.form_container {
  display: grid;
  row-gap: 2.5cqw;
}

.wpcf7-submit {
  background-color: var(--blue);
  color: #fff;
  text-align: center;
  font-size: 3.6cqw;
  padding: 0.8em;
  border-radius: 100px;
}

section.price_table,
section.location,
section.product,
section.reason,
section.flow,
section.area,
section.contact {
  margin-top: 6cqw;
  margin-bottom: 6cqw;
}

label.form_label {
  font-size: 3.6cqw;
}