@charset "UTF-8";
/* 画面全体のオーバーレイ */
.wrap_popup {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
}

/* 表示状態のフラグ（JSでaria-hidden切替） */
.wrap_popup[aria-hidden=false] {
  display: flex;
}

/* ダイアログ */
.area_popup {
  padding: 16px;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
}

/* カード本体 */
.content_qr {
  position: relative;
  width: min(92vw, 360px);
  background: #fff;
  border-radius: 14px;
  padding: 50px 20px 50px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  opacity: 0;
  transform: translateY(6px) scale(0.98);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
@media screen and (min-width: 641px) {
  .content_qr {
    width: min(92vw, 480px);
  }
}

.content_qr .image {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* 表示時のアニメ最終状態 */
.wrap_popup[aria-hidden=false] .content_qr {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.content_qr .title {
  display: block;
  margin: 14px 0 6px;
  font-size: 16px;
  font-weight: 700;
}

.content_qr .desc {
  margin: 0;
  font-size: 13px;
  opacity: 0.85;
  line-height: 1.5;
}

/* 閉じるボタン（右上） */
.button_close {
  position: absolute;
  top: 10px;
  right: 10px;
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 6px;
}

body.is-locked {
  overflow: hidden; /* 背景スクロールロック */
  touch-action: none; /* iOS系での微スクロール抑制 */
}

/*=====================
  共通スタイル
======================*/
* {
  box-sizing: border-box;
}

@media screen and (max-width: 640px) {
  html {
    font-size: 3.466vw;
    height: 100%;
    scroll-behavior: smooth;
  }
}
@media screen and (min-width: 641px) {
  html {
    font-size: 16px;
  }
}
body {
  font-family: "Noto Sans JP", "Roboto", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: black;
  line-height: 1.6;
  margin: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: justify;
  overflow-x: hidden;
  line-height: 1.8rem;
}

.br-sp {
  display: block;
}

@media screen and (min-width: 641px) {
  .br-sp {
    display: none;
  }
}
.br-pc {
  display: block;
}

@media screen and (max-width: 640px) {
  .br-pc {
    display: none;
  }
}
.spacer-sm {
  display: block;
  height: 0.5rem;
}

@media screen and (min-width: 641px) {
  .spacer-sm {
    display: block;
    height: 10px;
  }
}
.spacer {
  display: block;
  height: 1rem;
}

body .pc-item {
  display: none !important;
}

body .sp-item {
  display: block !important;
}

@media screen and (min-width: 641px) {
  body .pc-item {
    display: block !important;
  }
  body .sp-item {
    display: none !important;
  }
}
.grid {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 641px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    width: min(100%, 960px);
    margin: 0 auto;
    gap: 0px;
  }
}

/* ボタン共通 */
.rollover {
  background: #329a1e;
  color: #fff;
  transition: background-color 0.2s;
}

/* ホバー/フォーカス時だけ少し濃く */
.rollover:is(:hover, :focus-visible) {
  background: rgb(41.6847826087, 128.3891304348, 25.0108695652);
}

/*ページ内リンク下げる*/
.contact {
  display: block;
  padding-top: 10px;
  margin-top: -10px;
}

.mail__form {
  display: block;
  padding-top: 0px;
  margin-top: -20px;
}

/*=====================
  マージン・パディング
======================*/
.mb-sm {
  margin-bottom: 0.5rem !important;
}

.mb-md, .triangle-02, .triangle {
  margin-bottom: 1.5rem !important;
}

.mb-lg {
  margin-bottom: 2.5rem !important;
}

.mb-xl {
  margin-bottom: 4rem !important;
}
@media screen and (min-width: 641px) {
  .mb-xl {
    margin-bottom: 60px !important;
  }
}

.pb-sm {
  padding-bottom: 16px !important;
}

.pb-lg {
  padding-bottom: 80px !important;
}
@media screen and (min-width: 641px) {
  .pb-lg {
    padding-bottom: 50px !important;
  }
}

/*=====================
  フォント
======================*/
.font-ss {
  font-size: 0.7rem;
  line-height: 1.8rem;
}
@media screen and (min-width: 641px) {
  .font-ss {
    font-size: 14px;
  }
}

.font-sm, .price_content .price_btn, .flow .flow_content .flow_desc, .faq #accordion .panel-body {
  font-size: 0.8rem;
  line-height: 1.4rem;
  font-weight: 500;
}
@media screen and (min-width: 641px) {
  .font-sm, .price_content .price_btn, .flow .flow_content .flow_desc, .faq #accordion .panel-body {
    font-size: 16px;
  }
}

.font-md, .charm_content, .device .device_content, .plan .plan_content, .flow .flow_content .flow_ttl {
  font-size: 1.2rem;
  line-height: 2.4rem;
}
@media screen and (min-width: 641px) {
  .font-md, .charm_content, .device .device_content, .plan .plan_content, .flow .flow_content .flow_ttl {
    font-size: 20px;
  }
}

.font-lg, .str-green04, .sub-title, .str-red {
  font-size: 1.5rem;
}
@media screen and (min-width: 641px) {
  .font-lg, .str-green04, .sub-title, .str-red {
    font-size: 22px;
  }
}

.font-xl {
  font-size: 1.8rem;
}
@media screen and (min-width: 641px) {
  .font-xl {
    font-size: 26px;
  }
}

.bold14-white {
  color: white;
  font-weight: bold;
  font-size: 1.4rem;
}
@media screen and (min-width: 641px) {
  .bold14-white {
    font-size: 22px;
  }
}

.str-red {
  font-weight: 600;
  text-align: left;
  color: #ec5137;
  margin-bottom: 0.5rem;
}

.sub-title {
  margin-bottom: 1rem;
}

.str-green02 {
  color: #246c0a;
  font-weight: bold;
  background-color: #a8d2d1;
}

.str-green03 {
  color: #246c0a;
}

.str-green04 {
  color: #246c0a;
  font-weight: bold;
}

.yellow-underline {
  background: linear-gradient(transparent 90%, #ffed5a 90%);
  display: inline-block;
}

.dot {
  background-position: top left 0px;
  background-repeat: repeat-x;
  background-size: 1em 0.3em;
  background-image: radial-gradient(0.15em 0.15em at center center, #246c0a, #246c0a 100%, transparent, transparent);
  padding-top: 0.6em;
}

.str_bold {
  font-weight: bold;
  font-size: 1.2rem;
}

/*=====================
  other
======================*/
a.rollover:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: "alpha( opacity=70 )";
}

.rollover:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: "alpha( opacity=70 )";
}

a {
  text-decoration: none;
}

.flex, .header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hr-dotted {
  border: none;
  border-top: 2px dotted black;
}

.hr-dashed {
  border: none;
  border-top: 2px dashed #246c0a;
}

.triangle {
  background: #246c0a;
  height: 17.3205080757px;
  width: 20px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  margin: 0 auto;
  top: 0;
}

.triangle-02 {
  background: #ec5137;
  height: 17.3205080757px;
  width: 20px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  margin: 0 auto;
  top: 0;
}

.header {
  width: 95%;
  margin: 0 auto;
}
.header .logo img {
  width: 80%;
  padding: 0.2rem 0;
}
.header .head-btn {
  color: black;
}
@media screen and (min-width: 641px) {
  .header {
    max-width: 1440px;
  }
}

.fv {
  background-color: black;
  padding-bottom: 5%;
}
@media screen and (min-width: 641px) {
  .fv {
    position: relative;
    height: 2236px;
    padding-bottom: 30px;
    background: url("../images/fv_2000_pc.jpg") center top/2000px no-repeat;
    background-color: black;
  }
  .fv .fv_ttl {
    position: absolute;
    z-index: 2;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
  }
  .fv .fv_ttl img {
    display: block;
    width: 1101px;
    height: auto;
  }
  .fv .fv_bg {
    position: relative;
    width: 1000px;
    margin: 0 auto;
    isolation: isolate;
  }
  .fv img {
    max-width: 1050px;
    margin: 0 auto;
  }
}
.fv .scene_bg {
  position: relative;
}
.fv .scene_txt {
  position: absolute;
  inset: 0;
  text-align: center;
  font-size: 1.1rem;
  line-height: 1.2;
}
.fv .scene_txt .scene_txt01,
.fv .scene_txt .scene_txt02,
.fv .scene_txt .scene_txt03,
.fv .scene_txt .scene_txt04,
.fv .scene_txt .scene_txt05,
.fv .scene_txt .scene_txt06 {
  position: absolute;
}
.fv .scene_txt .scene_txt01 {
  top: 24%;
  left: 11%;
}
.fv .scene_txt .scene_txt02 {
  top: 24%;
  left: 58%;
}
.fv .scene_txt .scene_txt03 {
  top: 57%;
  left: 6%;
}
.fv .scene_txt .scene_txt04 {
  top: 57%;
  left: 59%;
}
.fv .scene_txt .scene_txt05 {
  top: 90%;
  left: 8%;
}
.fv .scene_txt .scene_txt06 {
  top: 91%;
  left: 63%;
}
@media screen and (min-width: 641px) {
  .fv .scene_txt {
    font-size: 20px;
    line-height: 1.3;
  }
  .fv .scene_txt .scene_txt01 {
    top: 1630px;
    left: 97px;
  }
  .fv .scene_txt .scene_txt02 {
    top: 1630px;
    left: 417px;
  }
  .fv .scene_txt .scene_txt03 {
    top: 1630px;
    left: 731px;
  }
  .fv .scene_txt .scene_txt04 {
    top: 2070px;
    left: 95px;
  }
  .fv .scene_txt .scene_txt05 {
    top: 2070px;
    left: 412px;
  }
  .fv .scene_txt .scene_txt06 {
    top: 2080px;
    left: 774px;
  }
}

.charm_content {
  position: relative;
  max-width: 1000px;
  text-align: center;
  line-height: 1.3;
}
.charm_content .image img {
  display: block;
  width: 100%;
  height: auto;
}
.charm_content .charm_txt {
  color: white;
}
.charm_content .charm_txt .charm_ttl {
  position: absolute;
  font-size: 1.5rem;
  line-height: 1.9rem;
  font-weight: bold;
  text-align: left;
  font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
  font-variant-east-asian: proportional-width;
  font-feature-settings: "pwid";
}
.charm_content .charm_txt .charm_desc {
  position: absolute;
  font-size: 0.8rem;
  text-align: left;
  text-align: justify;
  line-height: 1.5;
  width: 45%;
}
.charm_content .charm_txt .ttl01 {
  top: 3%;
  left: 52%;
}
.charm_content .charm_txt .desc01 {
  top: 9.5%;
  left: 51%;
}
.charm_content .charm_txt .ttl02 {
  top: 21%;
  left: 3%;
}
.charm_content .charm_txt .desc02 {
  top: 25.5%;
  left: 3%;
}
.charm_content .charm_txt .ttl03 {
  top: 34%;
  left: 49.5%;
}
.charm_content .charm_txt .desc03 {
  top: 40.5%;
  left: 50%;
}
.charm_content .charm_txt .ttl04 {
  top: 52%;
  left: 3.5%;
}
.charm_content .charm_txt .desc04 {
  top: 58.5%;
  left: 4%;
}
.charm_content .charm_txt .ttl05 {
  top: 68%;
  left: 51.5%;
}
.charm_content .charm_txt .desc05 {
  top: 72.5%;
  left: 52%;
}
.charm_content .charm_txt .ttl06 {
  top: 85.5%;
  left: 4.5%;
}
.charm_content .charm_txt .desc06 {
  top: 92.5%;
  left: 4%;
}

@media screen and (min-width: 641px) {
  .charm {
    background: url("../images/02_bg_pc.jpg") center top/2000px auto no-repeat;
  }
  .charm .charm_ttl img {
    margin: 0 auto;
  }
  .charm .charm_content {
    margin: 0 auto;
    width: 1000px;
  }
  .charm .charm_content .charm_ttl {
    position: absolute;
    font-size: 36px;
    line-height: 1.3;
  }
  .charm .charm_content .charm_desc {
    position: absolute;
    font-size: 18px;
    width: 380px;
  }
  .charm .charm_content .ttl01 {
    top: 301px;
    left: 544px;
  }
  .charm .charm_content .desc01 {
    top: 458px;
    left: 545px;
  }
  .charm .charm_content .ttl02 {
    top: 727px;
    left: 26px;
  }
  .charm .charm_content .desc02 {
    top: 848px;
    left: 25px;
  }
  .charm .charm_content .ttl03 {
    top: 1171px;
    left: 544px;
  }
  .charm .charm_content .desc03 {
    top: 1328px;
    left: 545px;
  }
  .charm .charm_content .ttl04 {
    top: 1628px;
    left: 26px;
  }
  .charm .charm_content .desc04 {
    top: 1788px;
    left: 25px;
  }
  .charm .charm_content .ttl05 {
    top: 2081px;
    left: 544px;
  }
  .charm .charm_content .desc05 {
    top: 2192px;
    left: 545px;
  }
  .charm .charm_content .ttl06 {
    top: 2518px;
    left: 26px;
  }
  .charm .charm_content .desc06 {
    top: 2678px;
    left: 25px;
  }
}
.place {
  padding: 8% 0 0;
  background-color: #0a223f;
}
.place::after {
  content: "";
  display: block;
  width: 100%;
  height: 64px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Crect width='1440' height='80' fill='%23004879'/%3E%3Cpath d='M0 48 C240 80 480 80 720 48 C960 16 1200 16 1440 48 L1440 0 L0 0 Z' fill='%230a223f'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;
}
@media screen and (min-width: 641px) {
  .place {
    background: url("../images/03_bg_pc.png") center top/2000px auto no-repeat;
    background-color: #0a223f;
  }
}
.place .ttl_img {
  width: 75%;
  margin: 0 auto;
}
.place picture img {
  display: block;
  width: 100%;
  height: auto;
}
.place .place_slider {
  width: min(92%, 900px);
  margin: 8% auto 5%;
}
.place .place_slider_track {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 16/9;
}
.place .place_slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateX(100%);
  transition: transform 0.6s ease, opacity 0.6s ease;
  width: 100%;
}
.place .place_slide.is-active {
  opacity: 1;
  transform: translateX(0);
  z-index: 2;
}
.place .place_slide.is-enter {
  opacity: 1;
  transform: translateX(100%);
  z-index: 3;
}
.place .place_slide.is-exit {
  opacity: 0;
  transform: translateX(-100%);
  z-index: 1;
}
.place .place_slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.place .place_dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
}
.place .place_dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #fff;
  background: transparent;
  opacity: 0.6;
}
.place .place_dot.is-active {
  background: #fff;
  opacity: 1;
}
.place .place_video {
  width: min(92%, 900px);
  margin: 5% auto 5%;
}
.place .place_video iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border-radius: 12px;
  border: 0;
}
@media screen and (min-width: 641px) {
  .place .place_slider {
    width: 960px;
    height: auto;
    margin-top: 150px;
  }
  .place .place_video {
    width: 960px;
    height: auto;
  }
}

.device {
  background-color: #004879;
}
.device .ttl_img {
  width: 90%;
  margin: 0 auto;
  padding: 5% 0;
}
.device::after {
  content: "";
  display: block;
  width: 100%;
  height: 64px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Crect width='1440' height='80' fill='%230a223f'/%3E%3Cpath d='M0 48 C240 80 480 80 720 48 C960 16 1200 16 1440 48 L1440 0 L0 0 Z' fill='%23004879'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;
}
.device .device_content {
  position: relative;
  text-align: center;
  line-height: 1.3;
}
.device .device_content .image img {
  display: block;
  width: 100%;
  height: auto;
}
.device .device_content .device_txt01 {
  position: absolute;
  top: 18%;
  left: 12%;
}
.device .device_content .device_txt02 {
  position: absolute;
  top: 18%;
  left: 66%;
}
.device .device_content .device_txt03 {
  position: absolute;
  top: 43%;
  left: 13%;
}
.device .device_content .device_txt04 {
  position: absolute;
  top: 43%;
  left: 64%;
}
.device .device_content .device_txt05 {
  position: absolute;
  top: 68%;
  left: 17%;
}
.device .device_content .device_txt06 {
  position: absolute;
  top: 68%;
  left: 68%;
}
.device .device_content .device_txt07 {
  position: absolute;
  top: 93%;
  left: 16%;
}

@media screen and (min-width: 641px) {
  .device {
    background: url("../images/04_bg_pc.png") center top/2000px auto no-repeat;
  }
  .device .device_content {
    width: 1000px;
    margin: 0 auto;
  }
  .device .device_content .device_txt01 {
    top: 515px;
    left: 68px;
  }
  .device .device_content .device_txt02 {
    top: 515px;
    left: 338px;
  }
  .device .device_content .device_txt03 {
    top: 515px;
    left: 568px;
  }
  .device .device_content .device_txt04 {
    top: 515px;
    left: 821px;
  }
  .device .device_content .device_txt05 {
    top: 774px;
    left: 92px;
  }
  .device .device_content .device_txt06 {
    top: 774px;
    left: 349px;
  }
  .device .device_content .device_txt07 {
    top: 774px;
    left: 575px;
  }
}
.plan {
  background-color: #0a223f;
}
.plan .ttl_img {
  width: 90%;
  margin: 0 auto;
  padding: 5% 0;
}
.plan .bg_img {
  width: 95%;
  margin: 0 auto;
  padding: 3% 0;
}
.plan .plan_content {
  position: relative;
  text-align: center;
  line-height: 1.3;
}
.plan .plan_content .image img {
  display: block;
  width: 100%;
  height: auto;
}
.plan .plan_content .plan_txt {
  color: #0a223f;
}
.plan .plan_content .plan_txt .plan_recommend {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.plan .plan_content .plan_txt .plan_recommend_label {
  display: inline-block;
  padding: 0.35rem 0.5rem;
  border-radius: 999px;
  background-color: #004879;
  color: white;
  font-size: 0.6rem;
  font-weight: bold;
  line-height: 1;
  white-space: nowrap;
}
.plan .plan_content .plan_txt .plan_recommend_value {
  color: #e6463a;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.plan .plan_content .plan_txt .plan_recommend_unit {
  font-size: 0.6rem;
  font-weight: 600;
}
.plan .plan_content .plan_txt .plan_ttl {
  position: absolute;
  font-size: 1.5rem;
  line-height: 1.9rem;
  font-weight: bold;
  text-align: left;
  font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
  font-variant-east-asian: proportional-width;
  font-feature-settings: "pwid";
}
.plan .plan_content .plan_txt .plan_desc {
  position: absolute;
  font-size: 0.7rem;
  text-align: left;
  text-align: justify;
  line-height: 1.5;
  width: 40%;
}
.plan .plan_content .ttl01 {
  top: 7.5%;
  left: 51%;
}
.plan .plan_content .rec01 {
  top: 17%;
  left: 50%;
}
.plan .plan_content .desc01 {
  top: 20.5%;
  left: 51%;
}
.plan .plan_content .ttl02 {
  top: 42%;
  left: 51%;
}
.plan .plan_content .rec02 {
  top: 51%;
  left: 50%;
}
.plan .plan_content .desc02 {
  top: 54.5%;
  left: 51%;
}
.plan .plan_content .ttl03 {
  top: 76%;
  left: 51%;
}
.plan .plan_content .rec03 {
  top: 85%;
  left: 50%;
}
.plan .plan_content .desc03 {
  top: 89%;
  left: 51%;
}

@media screen and (min-width: 641px) {
  .plan {
    background: url("../images/05_bg_pc.png") center top/2000px auto no-repeat;
  }
  .plan .plan_content {
    width: 1000px;
    margin: 0 auto;
  }
  .plan .plan_content .plan_txt .plan_ttl {
    font-size: 40px;
    line-height: 1.2;
  }
  .plan .plan_content .plan_txt .plan_recommend .plan_recommend_label {
    padding: 0.35rem 0.5rem;
    border-radius: 999px;
    font-size: 18px;
  }
  .plan .plan_content .plan_txt .plan_recommend .plan_recommend_value {
    font-size: 22px;
  }
  .plan .plan_content .plan_txt .plan_recommend .plan_recommend_unit {
    font-size: 18px;
  }
  .plan .plan_content .plan_txt .plan_desc {
    font-size: 18px;
    width: 450px;
  }
  .plan .plan_content .ttl01 {
    top: 381px;
    left: 471px;
  }
  .plan .plan_content .rec01 {
    top: 495px;
    left: 471px;
  }
  .plan .plan_content .desc01 {
    top: 538px;
    left: 471px;
  }
  .plan .plan_content .ttl02 {
    top: 822px;
    left: 471px;
  }
  .plan .plan_content .rec02 {
    top: 929px;
    left: 471px;
  }
  .plan .plan_content .desc02 {
    top: 974px;
    left: 471px;
  }
  .plan .plan_content .ttl03 {
    top: 1262px;
    left: 471px;
  }
  .plan .plan_content .rec03 {
    top: 1377px;
    left: 471px;
  }
  .plan .plan_content .desc03 {
    top: 1424px;
    left: 471px;
  }
}
.price_content {
  position: relative;
}
.price_content .price_btn {
  position: absolute;
  background-color: #874799;
  padding: 0.5rem;
  color: white;
  border-radius: 40px;
  font-weight: bold;
  width: 35%;
  text-align: center;
}
.price_content .price_btn a {
  color: inherit;
  text-decoration: none;
}
.price_content .price_btn a:visited {
  color: inherit;
}
.price_content .price_btn.btn01 {
  position: absolute;
  top: 40%;
  left: 8%;
}
.price_content .price_btn.btn02 {
  position: absolute;
  top: 40%;
  left: 57%;
}
.price_content .price_btn.btn03 {
  position: absolute;
  top: 76.5%;
  left: 32.5%;
}

@media screen and (min-width: 641px) {
  .price {
    background: url("../images/06_bg_pc.jpg") center top/2000px auto no-repeat;
    background-color: #0a223f;
  }
  .price .price_content {
    width: 1000px;
    margin: 0 auto;
  }
  .price .price_btn {
    width: 180px;
  }
  .price .price_btn.btn01 {
    top: 510px;
    left: 164px;
  }
  .price .price_btn.btn02 {
    top: 510px;
    left: 412px;
  }
  .price .price_btn.btn03 {
    top: 510px;
    left: 655px;
  }
}
.flow {
  background-color: #0a223f;
}
.flow::after {
  content: "";
  display: block;
  width: 100%;
  height: 64px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Crect width='1440' height='80' fill='%23004879'/%3E%3Cpath d='M0 48 C240 80 480 80 720 48 C960 16 1200 16 1440 48 L1440 0 L0 0 Z' fill='%230a223f'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;
}
.flow .ttl_img {
  width: 90%;
  margin: 0 auto;
  padding-bottom: 5%;
}
.flow .bg_img {
  width: 95%;
  margin: 0 auto;
}
.flow .flow_content {
  position: relative;
}
.flow .flow_content .flow_ttl {
  position: absolute;
}
.flow .flow_content .flow_desc {
  position: absolute;
  padding-top: 0.6rem;
  width: 55%;
}
.flow .flow_content .flow_desc::before {
  content: "";
  position: absolute;
  top: -3%;
  left: 0;
  width: 100%;
  border-top: 1px dashed black;
  opacity: 0.8;
}
.flow .flow_content .flow_ttl.ttl01 {
  top: 3.5%;
  left: 9%;
}
.flow .flow_content .flow_desc.desc01 {
  top: 7%;
  left: 9%;
}
.flow .flow_content .flow_ttl.ttl02 {
  top: 23%;
  left: 9%;
}
.flow .flow_content .flow_desc.desc02 {
  top: 26.5%;
  left: 9%;
}
.flow .flow_content .flow_ttl.ttl03 {
  top: 42.5%;
  left: 9%;
}
.flow .flow_content .flow_desc.desc03 {
  top: 46%;
  left: 9%;
}
.flow .flow_content .flow_ttl.ttl04 {
  top: 62.5%;
  left: 9%;
}
.flow .flow_content .flow_desc.desc04 {
  top: 66.5%;
  left: 9%;
}
.flow .flow_content .flow_ttl.ttl05 {
  top: 80.5%;
  left: 9%;
}
.flow .flow_content .flow_desc.desc05 {
  top: 84%;
  left: 9%;
}

@media screen and (min-width: 641px) {
  .flow {
    background: url("../images/07_bg_pc.png") center top/2000px auto no-repeat;
  }
  .flow .flow_content {
    width: 1000px;
    margin: 0 auto;
  }
  .flow .flow_content .flow_ttl {
    font-size: 28px;
  }
  .flow .flow_content .flow_desc {
    width: 600px;
    line-height: 1.7;
  }
  .flow .flow_content .flow_ttl.ttl01 {
    top: 284px;
    left: 63px;
  }
  .flow .flow_content .flow_desc.desc01 {
    top: 341px;
    left: 63px;
  }
  .flow .flow_content .flow_ttl.ttl02 {
    top: 611px;
    left: 63px;
  }
  .flow .flow_content .flow_desc.desc02 {
    top: 667px;
    left: 63px;
  }
  .flow .flow_content .flow_ttl.ttl03 {
    top: 931px;
    left: 63px;
  }
  .flow .flow_content .flow_desc.desc03 {
    top: 987px;
    left: 63px;
  }
  .flow .flow_content .flow_ttl.ttl04 {
    top: 1251px;
    left: 63px;
  }
  .flow .flow_content .flow_desc.desc04 {
    top: 1305px;
    left: 63px;
  }
  .flow .flow_content .flow_ttl.ttl05 {
    top: 1544px;
    left: 63px;
  }
  .flow .flow_content .flow_desc.desc05 {
    top: 1599px;
    left: 63px;
  }
}
.faq {
  background-color: #004879;
  /*General style */
  /* Code for animation -- to change direction of chevron just change -40px to 40px and vice versa */
}
@media screen and (max-width: 640px) {
  .faq::after {
    content: "";
    display: block;
    width: 100%;
    height: 64px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Crect width='1440' height='80' fill='%230a223f'/%3E%3Cpath d='M0 48 C240 80 480 80 720 48 C960 16 1200 16 1440 48 L1440 0 L0 0 Z' fill='%23004879'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;
  }
}
.faq .ttl_img {
  width: 95%;
  margin: 0 auto;
  padding-top: 5%;
}
.faq #accordion {
  width: min(92%, 900px);
  margin: 0 auto;
  padding: 6% 0 5%;
}
.faq .panel-title a {
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 600;
  padding-right: 20px;
}
.faq .panel-default > .panel-heading {
  text-align: left;
}
.faq .panel-heading {
  padding: 15px 5px 15px 15px;
}
.faq .glyphicon-chevron-down-custom span,
.faq .glyphicon-chevron-up-custom span {
  width: 10px;
  height: 5px;
  background-color: rgb(99, 99, 99);
  display: inline-block;
  transition: all 0.1s linear;
}
.faq .glyphicon-chevron-down-custom .sp-1,
.faq .glyphicon-chevron-up-custom .sp-2 {
  transform: skewY(-40deg);
}
.faq .glyphicon-chevron-up-custom .sp-1,
.faq .glyphicon-chevron-down-custom .sp-2 {
  transform: skewY(40deg);
}
.faq .glyphicon {
  top: -2px;
}
.faq #accordion .panel {
  margin: 0 0 12px 0;
  border: 1px solid #0a223f;
  border-radius: 10px;
  background: #f7f7f7;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.06);
  overflow: hidden;
}
.faq #accordion .panel-heading {
  padding: 16px 8px 16px 18px;
  background: #0a223f;
  border: 0;
}
.faq #accordion .panel-title a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 1rem;
  font-weight: 700;
  text-transform: none;
  color: white;
  text-decoration: none;
}
.faq #accordion .faq-qrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.faq #accordion .faq-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
}
.faq #accordion .faq-text {
  display: inline-block;
  width: 100%;
  line-height: 1.3;
  font-size: 1.1rem;
}
.faq #accordion .panel-title a:hover {
  color: white;
}
.faq #accordion .panel-body {
  padding: 14px 18px 18px;
  background: #fff;
  color: #0a223f;
}
.faq #accordion .indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.faq #accordion .glyphicon-chevron-down-custom span,
.faq #accordion .glyphicon-chevron-up-custom span {
  width: 8px;
  height: 4px;
  background-color: white;
}
.faq #accordion .panel-collapse {
  height: 0;
  overflow: hidden;
  transition: height 0.6s ease;
}

@media screen and (min-width: 641px) {
  .faq {
    background: url("../images/08_faq_bg.png") center top/2000px auto no-repeat;
  }
  .faq #accordion {
    width: 960px;
    height: 1480px;
    padding-top: 230px;
  }
  .faq #accordion .panel {
    margin-bottom: 20px;
  }
  .faq #accordion .glyphicon-chevron-down-custom span,
  .faq #accordion .glyphicon-chevron-up-custom span {
    width: 12px;
    height: 6px;
  }
  .faq #accordion .faq-text {
    width: 600px;
  }
  .faq #accordion .panel-body {
    padding: 30px 40px;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.5;
  }
}
.access {
  padding: 8% 0 45%;
  background-color: #0a223f;
  background-image: url("../images/09_bottom_bg_sp.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
}
.access .ttl_img {
  width: 95%;
  margin: 0 auto;
}
.access .access-map {
  width: min(92%, 900px);
  margin: 6% auto 6%;
}
.access .access-map iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border: 0;
  border-radius: 12px;
}
.access .map_txt {
  color: white;
  width: 93%;
  display: block;
  margin: 0 auto;
}
.access .access-info-grid {
  width: 100%;
  margin: 0;
}
.access .access-info {
  width: min(92%, 900px);
  margin: 6% auto 0;
  padding: 26px 22px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 26px;
}
.access .access-info__header {
  display: flex;
  align-items: center;
  gap: 16px;
}
.access .access-info__icon {
  width: 50px;
  height: auto;
  display: block;
  flex: 0 0 auto;
}
.access .access-info__title {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: #000;
}
.access .access-info__divider {
  height: 1px;
  background: #1f2a33;
  margin: 18px 0;
}
.access .access-info__text {
  margin: 0;
  line-height: 1.7;
  color: #000;
  font-size: 1rem;
}
.access .access-info__text a {
  color: #000;
  text-decoration: underline;
}
.access .access-info__icon02 {
  width: auto;
  height: 45px;
  display: block;
  flex: 0 0 auto;
}

@media screen and (min-width: 641px) {
  .access {
    background-image: url("../images/09_bottom_bg_pc.png");
    padding: 20px 0 180px;
  }
  .access .ttl_img img {
    margin: 0 auto 20px;
  }
  .access .access-map {
    width: 100%;
  }
  .access .map_txt {
    width: 100%;
    margin: 20px 0 0 30px;
  }
  .access .access-info-grid {
    width: min(92%, 960px);
    margin: 3% auto 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
  .access .access-info-grid .access-info {
    width: 100%;
    margin: 0;
  }
  .access .access-info-grid .info01,
  .access .access-info-grid .info02,
  .access .access-info-grid .info03 {
    grid-column: 1;
  }
  .access .access-info-grid .info04 {
    grid-column: 2;
    grid-row: 1/span 3;
  }
  .access .access-info {
    padding: 30px;
  }
}
:root {
  /* Safe Area（iPhoneの下の余白） */
}

/* =========================
   Fixed CTA（共通）
========================= */
.fixed-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: #fff;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
  /* 表示/非表示 */
  opacity: 0;
  transform: translateY(110%);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  /* === mobile default === */
  height: auto;
  padding: 5px 0 var(--cta-safe-bottom);
}

.fixed-cta.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.fixed-cta__lead {
  margin: 5px 0 5px;
  text-align: center;
  color: #111;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: 0.02em;
}

/* ボタン群（スマホでも横並び） */
.fixed-cta__buttons {
  display: flex;
  align-items: stretch;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
  gap: 0;
}

/* =========================
   Buttons（共通）
========================= */
.fixed-cta__btn {
  /* 2ボタンで横並びしつつ、1個あたり最大460px */
  flex: 1 1 0;
  width: 100%;
  max-width: 460px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  height: 100px;
  padding: 10px 18px 0;
  margin: 0;
  text-decoration: none;
  text-align: center;
  color: #fff;
  font-weight: 900;
  font-size: 1.2rem;
  line-height: 1.3;
  transition: transform 0.15s ease, filter 0.15s ease;
}

.fixed-cta__btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
}

.fixed-cta__btn:active {
  transform: translateY(0);
  filter: brightness(0.98);
}

.fixed-cta__btn:focus-visible {
  outline: 3px solid rgba(0, 0, 0, 0.35);
  outline-offset: 3px;
}

/* 色 */
.fixed-cta__btn--green {
  background: #f28c28;
}

.fixed-cta__btn--blue {
  background: #f2c200;
}

/* 電話ボタン（スマホ時は縦積み） */
.fixed-cta__btn--blue {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
}

.fixed-cta__tel {
  display: block;
  font-size: 1.4rem;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: -0.3rem;
}

.fixed-cta__sub {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  opacity: 0.95;
  line-height: 1.4;
}

/* =========================
   PC（mq(pc) 側で上書き）
========================= */
@media screen and (min-width: 641px) {
  .fixed-cta {
    height: 110px;
    padding: 5px 0 calc(14px + var(--cta-safe-bottom));
  }
  .fixed-cta__lead {
    margin: 5px 0 5px;
  }
  .fixed-cta__btn {
    height: 70px;
    padding: 0 18px;
    align-items: center;
    font-size: 18px;
    line-height: 1;
  }
  /* PCでは電話ボタンも横並びに戻す */
  .fixed-cta__btn--blue {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  .fixed-cta__tel {
    font-size: 18px;
  }
  .fixed-cta__sub {
    font-size: 14px;
  }
}/*# sourceMappingURL=style.css.map */