:root {
  --main-color: #01a3bc;
  --sub-color1: #ffd526;
  --sub-color2: #bf0266;
  --sub-color3: #dd0202;
  --sub-color4: #fffaec;
  --fs-24: 24px;
  --fs-s: 16px;
  --fs-m: 30px;
  --fs-l: 48px;
  --base-box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 768px) {
  :root {
    --fs-s: clamp(14px, 3vw, 16px);
    --fs-sl: clamp(16px, 3.5vw, 24px);
    --fs-m: clamp(18px, 4vw, 30px);
    --fs-l: clamp(24px, 5vw, 48px);
    --fs-24: 5vw;
    --img-col1-height: clamp(50px, 22vh, 180px);
    --img-col1-s-height: 14vh;
  }
}
body.lp {
  padding-bottom: 105px;
}
.cont {
  max-width: 1000px;
  margin: 0 auto;
}
.pc_only {
  display: none;
}

/* 
fv */
.fv {
  background: var(--main-color);
}
.fv-cta {
  padding: 2vw 4vw;
}
.fv-cta .fixed-bnr-title {
  margin-bottom: 2vw;
}
.fv-cta .fixed-bnr-txt-img p {
  font-size: 3.7vw;
  margin-top: 0.5em;
}
.fv-cta .fixed-bnr-txt-img {
  background: #fff;
  border-radius: 10px;
  padding: 10px;
}

/* 
sec01 */
.sec01 {
  background: var(--sub-color1);
  padding: 0;
  text-align: center;
}

/* 
sec02 */
.sec02 {
  background: url(../../img/page/lp/fukuoka-mamagement/sec02-bg.png) bottom left
    var(--sub-color1) no-repeat;
  background-size: 340%;
  padding: 0 0 12vw;
  text-align: center;
}
.sec02-title {
  padding: 2vw 4vw;
}
.reason {
  padding: 4vw;
  margin-top: 8vw;
}
.reason-box {
  background: #fff;
  position: relative;
  padding: 8vw 4vw 4vw;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.25);
}
.reason li {
  flex: 0 0 auto;
  margin-bottom: 14vw;
}
.reason li:last-child {
  margin-bottom: 0;
}
.reason-num {
  position: absolute;
  top: -9vw;
  left: 0;
  right: 0;
  max-width: 40%;
  margin: 0 auto;
}
.reason-img {
  display: flex;
  align-items: center;
  gap: 1em;
}
.reason li:nth-child(2) .reason-img {
  display: block;
}
.reason-img img {
  width: auto;
  height: auto;
  max-width: 31%; /* 必要に応じてサイズ調整 */
  flex-shrink: 0; /* 縮まないように固定 */
}
.reason li:nth-child(2) .reason-img img {
  max-width: 100%; /* 必要に応じてサイズ調整 */
}

.reason-img p {
  font-size: 5vw;
  font-weight: bold;
  line-height: 1.4;
  text-align: left;
}
.reason li:nth-child(2) .reason-img p {
  text-align: center;
  margin-top: 0.5em;
}

.reason-img p span {
  color: var(--sub-color3);
}
/* 
sec03 */
.sec03 {
  padding: 18vw 4vw;
  text-align: center;
  position: relative;
  z-index: 1; /* 子要素の z-index 管理のため */
}

.sec03::before,
.sec03::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 236px; /* 背景画像の高さに合わせて調整 */
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; /* もしくは contain や auto */
  z-index: -1; /* ←これが重要！ 背景として後ろに */
}

.sec03::before {
  top: 0;
  background-image: url(../../img/page/lp/fukuoka-mamagement/sec03-bg-top.png);
}

.sec03::after {
  bottom: 0;
  background-image: url(../../img/page/lp/fukuoka-mamagement/sec03-bg-btm.png);
}

.sec03-list {
  margin-top: 4vw;
  list-style: none;
}

.sec03-list li {
  background: #fffaec;
  border: 2px solid #bf0266;
  box-shadow: 0 4px 0 0 rgba(164, 199, 237, 0.4);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  border-radius: 45px;
  margin-bottom: 1em;
}
.sec03-list li:last-child {
  margin-bottom: 0;
}

.sec03-list li a {
  font-size: var(--fs-24);
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  text-align: center;
  width: 100%;
  height: 100%;
  line-height: 1.2;
  font-weight: bold;
  padding: 0.5em 1.4em;
}

.sec03-icon {
  flex-shrink: 0;
  margin-right: 10px;
  max-width: 14vw;
}

.sec03-arrow {
  flex-shrink: 0;
  margin-left: 10px;
}

.sec03-list li a > div,
.sec03-list li a > span,
.sec03-list li a > p {
  display: flex;
  align-items: center;
}
/* 
sec04 */
.sec04 {
  background: url(../../img/page/lp/fukuoka-mamagement/sec04-bg.png) no-repeat
    center center;
  background-size: cover;
}
.sec04-title {
}
.sec04-img {
  padding: 6vw 4vw;
}
.sec04-img ul li {
  margin-bottom: 4vw;
}
.sec04-img ul li:last-child {
  margin-bottom: 0;
}
/* 
sec05 */
.sec05 {
  background: var(--sub-color4);
}
.sec05-title {
}
.sec05-list {
  padding: 4vw 4vw 18vw;
}
.sec05-list li:first-child {
  margin-bottom: 4vw;
}
/* 
sec06 */
.sec06,
.sec08 {
  background: url(../../img/page/lp/fukuoka-mamagement/sp/sec06-bg.png) top;
  background-size: cover;
  padding: 8vw 4vw 18vw;
  position: relative;
}
.cta-area {
  position: relative;
}
.cta-title {
  margin-bottom: 20px;
}
.cta-book {
  position: absolute;
  top: -13vw;
  right: -4vw;
  z-index: 2;
  max-width: 44vw;
}
.cta-box {
  background: linear-gradient(to bottom, #fffbf0, #ffffff);
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.25);
  border-radius: 20px;
  padding: 4vw;
  position: relative;
}
.cta-txt-area {
  display: flex;
  align-items: flex-start; /* 上揃え（中央揃えにしたいなら center） */
  gap: 20px; /* 任意：要素の間に余白をつけたい場合 */
  margin-top: 24px;
}

.cta-flug {
  flex-shrink: 0; /* アイコン画像などが縮まないように */
}

.cta-txt {
  text-align: left;
}
.cta-txt {
  font-size: 14px;
}
.cta-txt a {
  text-decoration: underline;
  color: var(--sub-color3);
  font-weight: bold;
}
.cta-icon {
  position: absolute;
  right: 22px;
  bottom: 0;
}
.page-top-btn {
  position: absolute;
  bottom: 0;
  right: 4vw;
}
.page-top-btn a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fffaec;
  border: 2px solid #fff;
  border-radius: 10px 10px 0 0;
  font-size: 3.4vw;
  font-weight: bold;
  padding: 1em 2em;
  text-decoration: none;
  line-height: 1;
}
/* 
sec07 */
.sec07 {
  background: url(../../img/page/lp/fukuoka-mamagement/sec07-bg.png) top center
    no-repeat #ebf5ff;
  padding: 14vw 4vw 14vw;
}
.sec07-list {
  margin-top: 5vw;
}
.sec07-list li {
  margin-bottom: 6vw;
}
.sec07-list li:last-child {
  margin-bottom: 0;
}
.sec07-list-img {
}
.sec07-list-img-popup {
  background: #fff;
}
.sec07-list-img-popup img {
  display: block;
}
.sec07-list-box {
  background: #fff;
  position: relative;
  border: solid var(--sub-color2) 2px;
  z-index: 2;
  padding: 8vw 4vw;
}
.sec07-list li:nth-child(even) .sec07-list-box {
  margin-left: auto; /* 右寄せの決め手 */
}

.sec07-list-num {
  position: absolute;
  top: 10px;
  right: 0;
}
.sec07-list-num.sec07-list-num1 {
  right: 7px;
}
.sec07-list-txt h3 {
  font-size: 7vw;
  font-weight: bold;
  color: var(--sub-color2);
  line-height: 1.4;
}

.sec07-list-txt h3 span {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.sec07-list-txt h3 span::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.1em; /* 被り具合の調整 */
  width: 100%;
  height: 10px;
  background-color: var(--sub-color1);
  z-index: -1;
}

.sec07-list-txt p {
  font-size: var(--fs-24);
  margin-top: 1em;
  font-weight: bold;
  line-height: 1.6;
}
.sec07-list-txt p.notes {
  font-size: 16px;
  font-weight: normal;
  margin-top: 1em;
}
/* 
sec09 */

/* 
sec03 */
.sec09 {
  padding: 0 0 8vw;
  text-align: center;
  position: relative;
  z-index: 1; /* 子要素の z-index 管理のため */
}
.sec09-img02 {
  padding: 0 4vw;
  margin-top: 16vw;
}

.sec09::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 236px; /* 背景画像の高さに合わせて調整 */
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; /* もしくは contain や auto */
  z-index: -1; /* ←これが重要！ 背景として後ろに */
}

.sec09::after {
  bottom: 0;
  background-image: url(../../img/page/lp/fukuoka-mamagement/sec09-bg-btm.png);
}
/* 
sec10 */
.sec10 {
  background: var(--sub-color4);
  padding-bottom: 10vw;
}
.sec10 ul {
  padding: 4vw;
}
.sec10 ul li {
  background: #fff;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.25);
  margin-bottom: 4vw;
  display: flex;
  align-items: center;
}
.sec10-txt {
  padding: 8vw 0 0;
}
.sec10 ul li h3 {
  padding: 0 4vw;
  font-size: 6.2vw;
  line-height: 1.4;
  font-weight: bold;
  color: var(--sub-color2);
}
.sec10 ul li p {
  padding: 0 4vw;
  font-size: 4.8vw;
  margin-top: 1em;
  line-height: 1.4;
}

.sec10-logo {
  text-align: center;
  padding: 4vw;
}
.sec10-logo p {
  margin-top: 1em;
  font-size: 4.8vw;
  font-weight: bold;
  line-height: 1.6;
}
/* 
feq */
.faq {
  padding: 16vw 4vw;
}
.faq h2 {
  text-align: center;
  font-size: 8vw;
  font-weight: bold;
  line-height: 1;
}
.faq h2:after {
  content: "";
  display: block;
  width: 20vw;
  margin: 4vw auto 1em;
  height: 4px;
  background: var(--sub-color2);
}
.faq-item {
  margin-bottom: 16px;
  overflow: hidden;
}

.faq-question {
  width: 100%;
  background: var(--sub-color2);
  color: #fff;
  font-size: 4.2vw;
  padding: 4vw;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  text-align: left;
  gap: 2vw;
}

.faq-question-left {
  display: flex;
  align-items: center;
}

.faq-question span {
  display: inline-block;
}

.faq-arrow {
  width: 20px;
  height: auto;
}

.faq-question img {
  margin-right: 16px;
  height: auto;
}

.faq-answer {
  display: none;
  padding: 4vw;
  font-size: 3.6vw;
  border-bottom: 2px solid var(--sub-color2);
  align-items: center;
}

.faq-answer p {
  display: flex;
  align-items: flex-start;
}

.faq-answer img {
  height: 30px;
  width: auto;
  flex-shrink: 0;
  margin-right: 1em;
}
/* 
contact */
.contact-box-sp {
  background: var(--main-color);
  padding: 10vw 4vw;
  position: relative;
}
.contact h2 {
  text-align: center;
}
.contact .data-txt {
  font-size: 4.8vw;
  margin: 1em 0;
  color: #fff;
}

.contact-cta {
  background: #fff;
  max-width: 800px;
  border-radius: 10px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.25);
  justify-content: center;
}
.contact-cta .cta-txt-area {
  margin: 0;
  position: relative;
}
.cta-flug {
  position: absolute;
  right: -6vw;
  top: -31vw;
  max-width: 43vw;
}
.contact-box {
  padding: 4vw;
}
.cta-txt p {
  font-size: 3.54vw;
}
.contact-box .wpcf7-list-item {
  margin: 0 0 0.5em 0;
}
.contact-box span.wpcf7-list-item.last {
  margin: 0;
}
.contact-box dl dd p {
  font-size: 3.6vw;
}
.contact-box input,
.contact-box select {
  padding: 0.6em 8.1px 1.2em;
  border: 1px solid #ccc;
  border-radius: 5px;
}
.contact-box span.sample {
  color: #686868;
  margin-top: 0.5em;
  display: block;
}
.fm-contact dl {
  margin-bottom: 8vw;
}

.fm-contact dl.first {
  margin-bottom: 2vw;
}
.fm-contact dl dt p {
  font-size: 4vw;
  display: flex;
  gap: 0.5em;
  margin-bottom: 1em;
  font-weight: bold;
  align-items: flex-start;
}
span.required {
  font-size: 0.8em;
  padding: 0.5em 1em;
  display: inline-block;
  background: #d51313;
  color: #fff;
  border-radius: 5px;
  line-height: 1;
  white-space: nowrap; /* テキストの折り返しを防ぐ（例：'必須'が2行にならないように） */
}
span.any {
  font-size: 0.8em;
  padding: 0.5em 1em;
  display: inline-block;
  background: #808080;
  color: #fff;
  border-radius: 5px;
  line-height: 1;
  white-space: nowrap; /* テキストの折り返しを防ぐ（例：'必須'が2行にならないように） */
}
textarea#content {
  padding: 0.5em 1em;
  border: 1px solid #ccc;
  border-radius: 5px;
  width: 100%;
}

.privacy h3,
.terms h3 {
  font-size: var(--fs-24);
  font-weight: bold;
  line-height: 1;
  margin: 2em 0 0.8em;
}
.privacy-box h4,
.terms-box h4 {
  font-size: 4vw;
  font-weight: bold;
  line-height: 1;
  margin: 2em 0 0.8em;
}
.privacy-box h4:first-of-type,
.terms-box h4:first-of-type {
  margin: 0 0 0.8em;
}
.privacy-box,
.terms-box {
  padding: 4vw;
  background: #fff;
  border: 1px solid #ccc;
  height: 235px;
  overflow-y: scroll;
}
div#privacy p {
  font-size: 4vw;
  line-height: 1.8;
}
.privacy-box a,
.terms-box a {
  word-break: break-all; /* 単語途中でも強制的に改行 */
  overflow-wrap: break-word; /* 長い単語を改行して折り返す */
  overflow-wrap: anywhere;
}
.contact .form-policy-check-box {
  display: flex;
  align-items: flex-start;
  gap: 1em;
  margin-top: 1em;
}
.contact .form-policy-check-box label {
  font-size: 3.6vw;
  display: flex;
  align-items: flex-start;
  gap: 0.5em;
}
.contact .form-policy-check-box label span {
  position: relative;
  top: -0.2em;
  line-height: 1.4;
}
p.check-notice {
  font-size: 3vw;
  text-align: right;
}
input.wpcf7-form-control.wpcf7-submit.has-spinner {
  background: var(--main-color);
  color: #fff;
  text-align: center;
  display: block;
  width: 100%;
  font-size: 4vw;
  padding: 1em 2em;
  border-radius: 10px;
  border: none;
  margin-top: 1em;
}

/* 
fixed-bnr */
.fixed-bnr {
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 9999999;
}
