@charset "UTF-8";
:root {
  --main: #5F9476;
  --bgor: #F0F2F1;
  --txt: #151515;
  --br: #ccc;
}

/* 表示切替 */
#lp .pc, #lp .tab, #lp .sp { display: none; }
@media (max-width: 999px) {
  #lp .sp { display: block!important; }
}
@media (min-width: 1000px) and (max-width: 1399px) {
  #lp .tab { display: block!important; }
}
@media (min-width: 1400px) {
  #lp .pc { display: block!important; }
}

/* 基本 */
.seo-hidden { display: none; }
.site_branding {
    width: 100px;
}
#lp { line-height: 1.6; }
#lp a:hover { opacity: .8; transition: .5s; }

/* 内枠 */
.lp-inner-wrap {
  margin: 0 auto;
  max-width: 1100px;
  width: 100%;
}
.lp-inner-wrap p {}
.lp-inner-wrap p img { width: auto; margin: 0 auto; }

@media screen and (max-width: 1400px) {
  .lp-inner-wrap {
    padding-left: clamp(20px, 2.2vw, 30px);
    padding-right: clamp(20px, 2.2vw, 30px);
  }
}
@media screen and (max-width: 999px) {
  .lp-inner-wrap {
    margin: 0 auto;
    max-width: 600px;
    width: 100%;
    padding-left: 5%;
    padding-right: 5%;
  }
  .lp-inner-wrap p {}
  .lp-inner-wrap p img { width: auto; margin: 0 auto; }
}

/* ========================
   タイトル群
======================== */
.lp-ttl-wrap, .lp-ttl02-wrap { text-align: center; }

.lp-ttl-wrap p {
  /* 18px ↔ 20px */
  font-size: clamp(1.125rem, 3.2vw, 1.25rem);
  font-weight: 600;
  margin-bottom: clamp(6px, 1.6vw, 8px);
  line-height: 1;
}
.lp-ttl-wrap h2 {
  /* 42px ↔ 48px */
  font-size: clamp(1.625rem, 6.4vw, 3rem);
  font-weight: 600;
  color: var(--main);
}

.lp-ttl02-wrap p {
  /* 12px ↔ 14px */
  font-size: clamp(0.75rem, 2.2vw, 0.875rem);
  font-weight: 600;
  color: #fff;
  background: var(--main);
  margin-bottom: clamp(6px, 1.6vw, 8px);
  line-height: 1;
  display: inline-block;
  /* 横だけ流体化 */
  padding: 2px clamp(20px, 4.5vw, 30px);
}
.lp-ttl02-wrap h2 {
  /* 42px ↔ 48px */
  font-size: clamp(2.2rem, 6.4vw, 3rem);
  font-weight: 600;
  color: var(--txt);
}
.lp-ttl02-wrap h2 span { color: var(--main); }

.lp-ttl03-wrap { text-align: center; }
.lp-ttl03-wrap p {
  line-height: 1;
  margin-bottom: clamp(4px, 1vw, 5px);
  font-weight: 600;
}
.lp-ttl03-wrap p span { color: var(--main); }
.lp-ttl03-wrap h2 {
  /* 38px ↔ 48px */
  font-size: clamp(2.2rem, 6vw, 3rem);
  color: var(--main);
  line-height: 1;
}


/* ========================
   ボタン
======================== */
.btn01-wrap {
  margin-top: clamp(14px, 3vw, 20px);
  text-align: center;
}
a.btn01 { color: #fff; }


/* ========================
   CTA 共通
======================== */
.lp-cta {
  background: url(aidx-training/img/cta_back.png) no-repeat center center / cover;
  padding: clamp(30px, 6vw, 60px) 0;
  text-align: center;
}
.lp-cta-txt {
  max-width: 800px;
  margin: 0 auto;
}
.cta-btn-wrap {
  display: flex;
  align-items: end;
  justify-content: center;
  gap: clamp(15px, 4.5vw, 30px);
  margin-top: clamp(6px, 2vw, 10px);
}
.cta-btn-wrap a {
  display: block;
  width: 100%;
  max-width: clamp(280px, 60vw, 400px);
}

@media screen and (max-width: 999px) {
  .lp-cta {
    background: url(aidx-training/img/cta_back-sp.png) no-repeat center center / cover;
    padding: clamp(20px, 6vw, 30px) 0 clamp(20px, 6vw, 30px);
  }
  .cta-fv-under .lp-cta { padding: clamp(8px, 3vw, 10px) 0 clamp(30px, 8vw, 45px); }
  .cta-btn-wrap {
    flex-direction: column-reverse;
    gap: clamp(10px, 4vw, 15px);
    margin-top: clamp(4px, 1.6vw, 5px);
  }
  .cta-btn-wrap a { margin: 0 auto; }
}

/* ========================
   ヘッダー
======================== */
.lp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(8px, 1.6vw, 10px) clamp(20px, 5vw, 50px);
  width: 100%;
  background: #fff;
  z-index: 999;
  position: fixed;
}
.lp-header-logo { display: flex; align-items: center; }
.lp-header-logo h1 img { height: clamp(24px, 2.2vw, 27px); }

/* PCナビ */
#lp-navi { display: flex; align-items: center; }
.lp-navi-first {
  display: flex; align-items: center; justify-content: flex-end;
  gap: clamp(12px, 2.4vw, 20px);
  padding-left: 0;
}
.lp-navi-first li {
  /* 14px ↔ 16px */
  font-size: clamp(0.875rem, 2vw, 1rem);
  font-weight: bold;
  cursor: pointer; line-height: 1;
  list-style-type: none;
}
.lp-navi-first li a { color: var(--txt); }
.lp-navi-first li:last-child a {
  display: block; color: #fff;
  background: linear-gradient(180deg, rgba(89,212,77,1) 0%, rgba(60,178,48,1) 100%);
  padding: clamp(6px, 1.6vw, 7px) clamp(18px, 6vw, 30px);
  border-radius: 30px; border: 1px solid #fff; transition: 0.25s;
}

/* ハンバーガー */
.menu-trigger {
  position: relative; width: 28px; height: 20px;
  background: transparent; border: none; padding: 0; cursor: pointer;
  display: none; z-index: 1000;
}
.menu-trigger span {
  position: absolute; left: 0; width: 100%; height: 2px;
  background: var(--txt);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.menu-trigger span:nth-child(1){ top: 0; }
.menu-trigger span:nth-child(2){ top: 50%; transform: translateY(-50%); }
.menu-trigger span:nth-child(3){ bottom: 0; }
.menu-trigger[aria-expanded="true"] span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.menu-trigger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.menu-trigger[aria-expanded="true"] span:nth-child(3){ transform: translateY(10px) rotate(-45deg); }

@media (max-width: 1399px) {
  .lp-header { padding: 7px 5%; }
  .menu-trigger { display: block; }
  #lp-navi {
    display: flex; flex-direction: column; position: fixed; top: 0; right: 0;
    width: 75%; max-width: 380px; height: 100vh;
    padding: 100px 20px 40px; background: #fff;
    transform: translateX(100%); transition: transform 0.3s ease; z-index: 999;
    overflow-y: auto; box-shadow: -5px 0 15px rgba(0,0,0,0.12);
  }
  #lp-navi.is-open { transform: translateX(0); }
  .lp-header-logo h1 img { height: 24px; }
  .lp-navi-first {
    flex-direction: column; gap: clamp(18px, 3.2vw, 28px); align-items: center; width: 90%;
  }
  .lp-navi-first li { display: block; width: 100%; text-align: center; padding: clamp(8px, 2.2vw, 10px) 0; }
  body.is-menu-open { overflow: hidden; }
}

/* ========================
   フッター
======================== */
#lp-footer { padding: clamp(40px, 8vw, 60px) 0 0; }
.lp-footer-inner { text-align: center; }
.footer-logo { max-width: clamp(140px, 18vw, 180px); margin: 0 auto; }
.footer-logo-txt {
  margin-top: clamp(10px, 2.8vw, 15px);
  font-weight: 600;
  letter-spacing: 0.125rem; /* 2px 相当 */
}
.footer-number { margin-top: clamp(24px, 6vw, 40px); }
.copyright { margin-top: clamp(8px, 2.8vw, 10px)!important; }

/* ========================
   FV
======================== */
#fv { position: relative; }
.fv-main-ttl { margin: 0 auto; max-width: 1440px; }
.fv-under-txt-wrap { background: var(--main); }
.fv-under-txt { max-width: 1440px; margin: 0 auto; }

@media screen and (max-width: 1399px) {
  .fv-main-ttl-wrap {
    background: url(aidx-training/img/fv-back-sp.png) no-repeat center top / 100%;
    padding: clamp(30px, 6vw, 50px);
    padding-left: 5%; padding-right: 5%;
    height: auto;
  }
  .fv-under-txt-wrap { background: var(--main); }
  .fv-main-ttl {
    margin: 0 auto; max-width: 55vw; margin-left: 0; margin-right: auto;
  }
  .fv-under-txt-wrap {
    padding: clamp(10px, 3.6vw, 15px) 0 clamp(4px, 1.8vw, 5px);
    padding-left: 5%; padding-right: 5%;
    height: auto; background: var(--main); display: flex; align-items: center;
  }
  .fv-under-txt { margin: 0 auto; max-width: 55vw; margin-left: 0; margin-right: auto; }
}

@media screen and (max-width: 999px) {
  .fv-main-ttl-wrap {
    background: url(aidx-training/img/fv-back-sp.png) no-repeat center top / 100%;
    padding: clamp(30px, 6vw, 50px);
    padding-left: 5%; padding-right: 5%;
    height: auto;
  }
  .fv-main-ttl { margin: 0 auto; max-width: 600px; }
  .fv-under-txt { margin: 0 auto; max-width: 600px; }
  .fv-under-txt-wrap {
    padding: clamp(10px, 3.6vw, 15px) 0 clamp(4px, 1.8vw, 5px);
    padding-left: 5%; padding-right: 5%;
    height: auto; background: var(--main); display: flex; align-items: center;
  }
}

/* ========================
   フォーム（FV）
======================== */
input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], input[type="range"],
input[type="date"], input[type="month"], input[type="week"], input[type="time"],
input[type="datetime"], input[type="datetime-local"], input[type="color"] {
  color: #666; border: 1px solid #ccc; border-radius: 3px; padding: 3px;
}

.fv-form {
  position: absolute;
  top: 50%;
  left: calc(50% + clamp(200px, 21vw, 300px));
  width: 28%;
  max-width: 470px;
  background: #fff;
  padding: clamp(14px, 2.4vw, 32px) clamp(18px, 3.2vw, 30px);
  border: 1px solid var(--main);
  border-radius: 10px;
  transform: translate(0, -50%);
  filter: drop-shadow(4px 4px 10px rgba(0,0,0,.12));
}

#lp .form_document_input { display: block; margin-top: clamp(10px, 2.2vw, 20px); line-height: 1; }
#lp .form_document_input .wpcf7-form-control { width: 100%; padding: 3px; }
#lp .form_document_name_ttl { margin-bottom: clamp(5px, 1.6vw, 7px); position: relative; padding-right: clamp(28px, 4vw, 40px); display: block; }
#lp .form_document_input .wpcf7-select { padding: 4px 3px; }
#lp .form_policy_wrap { margin-top: clamp(10px, 2.2vw, 15px); }
#lp .form_policy { margin-bottom: clamp(8px, 2vw, 10px); font-size: 0.68rem; }
#lp .checkbox input[type="checkbox"] { display: block!important; }

#lp .form_btn_wrap .wpcf7-submit {
  position: absolute; display: block; top: 0; left: 0; height: 100%; width: 100%; opacity: 0; z-index: 1;
}
#lp .form_policy_wrap .checkbox { display: block; text-align: center; }
#lp .wpcf7-not-valid-tip { font-size: 0.75rem; margin: 4px 0;}

#lp .form_btn_wrap {
  margin: 0 auto;
  margin-top: clamp(14px, 3vw, 20px);
  padding: clamp(10px, 3.6vw, 15px) 0;
  position: relative; width: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.25rem; /* 20px */
  font-weight: 600; line-height: 1; color: #fff;
  border-radius: 45px; box-sizing: border-box;
  background: linear-gradient(180deg, rgba(89,212,77,1) 0%, rgba(60,178,48,1) 100%);
  overflow: hidden; box-shadow: 2px 4px 4px rgb(0 0 0 / 40%); transition: .3s;
}
#lp .form_btn_wrap:hover { box-shadow: 0 2px 3px rgb(0 0 0 / 0); transition: .3s; }

#lp .wpcf7-spinner {
  visibility: hidden; display: inline-block; background-color: #23282d; opacity: .75;
  width: 24px; height: 24px; border: none; border-radius: 100%;
  padding: 0; margin: 0 24px; position: absolute; bottom: -25px; right: 0;
}

#form-sp-wrap {
  background: var(--bgor);
  padding: clamp(40px, 8vw, 60px) 0 clamp(40px, 8vw, 60px);
}
.form-sp {
  width: 100%; background: #fff; margin: 0 auto; max-width: 600px;
  margin-top: clamp(48px, 4.6vw, 100px);
  padding: clamp(38px, 6vw, 32px) 5%;
  border: 1px solid var(--main); border-radius: 10px;
  filter: drop-shadow(4px 4px 10px rgba(0,0,0,.12));
}

@media screen and (max-width: 1399px) {
  #lp .form_document_input .wpcf7-form-control { font-size: clamp(0.875rem, 2.2vw, 1rem); }
  .fv-form {
    width: 30%; left: auto; right: 5%; top: 40px;
    padding: clamp(12px, 2.4vw, 15px) clamp(12px, 2.4vw, 15px);
    transform: translate(0,0);
  }
}
@media screen and (max-width: 999px) {
  .fv-form { display: none; }
}

/* ========================
   VOICE
======================== */
#voice { padding: clamp(60px, 10vw, 100px) 0; background: var(--bgor); }
.voice-inner { margin-top: clamp(20px, 4.8vw, 30px); text-align: center; }
.voice-con {
  margin: 0 auto; background: #fff; border: solid 1px var(--main);
  padding: clamp(20px, 6vw, 30px) clamp(20px, 6vw, 30px);
  border-radius: 5px; display: flex; align-items: center; justify-content: space-between;
  gap: clamp(10px, 3vw, 15px);
  width: 100%; max-width: 910px; margin-top: clamp(10px, 3.6vw, 20px);
}
.voice-con:first-child { width: 100%; max-width: 985px; margin-top: 0; }
.voice-txt-wrap { max-width: 548px; }
.voice-con:first-child .voice-txt-wrap { max-width: 985px; margin-top: 0; }

.voice-img {
  border: 1px solid var(--main); border-radius: 10px; background: #fff;
  filter: drop-shadow(4px 4px 10px rgba(0,0,0,.12)); transition: .5s;
}
.voice-img img { border-radius: 10px; }
.voice-con:first-child .voice-img { padding: clamp(20px, 4.8vw, 30px) clamp(10px, 3.6vw, 15px) clamp(14px, 3.6vw, 20px); max-width: 316px; }
.voice-img:hover { filter: drop-shadow(4px 4px 4px rgba(0,0,0,.3)); }

.youtube-link { position: relative; }
.youtube-link figure { width: 70%; margin: 0 auto; }
.youtube-link .circle-arrow { position: absolute; bottom: 10px; right: 10px; }

@media screen and (max-width: 999px) {
  #voice { padding: clamp(40px, 10vw, 60px) 0; }
  .voice-inner { margin-top: clamp(14px, 4vw, 20px); }
  .voice-con {
    margin-top: clamp(8px, 3vw, 10px);
    padding: clamp(12px, 5vw, 15px) 5%;
    flex-direction: column; gap: clamp(8px, 3.6vw, 10px);
  }
  .voice-con:first-child { padding: clamp(12px, 5vw, 15px) 5% clamp(12px, 5vw, 15px); }
  .voice-img { border-radius: 5px; filter: drop-shadow(5px 5px 2px rgba(0,0,0,.12)); }
  .voice-con:first-child .voice-img { padding: clamp(14px, 5vw, 20px) clamp(24px, 7vw, 35px) clamp(14px, 5vw, 20px); filter: drop-shadow(5px 5px 2px rgba(0,0,0,.12)); }
  .voice-img:hover { filter: drop-shadow(0 0 0 rgba(0,0,0,.3)); }
}

/* ========================
   WORRIES
======================== */
#worries { background: #fff; padding: clamp(60px, 10vw, 100px) 0 clamp(20px, 6vw, 30px); }
.worries-inner {
  display: flex; justify-content: center; gap: clamp(16px, 3.6vw, 30px);
  margin-top: clamp(20px, 4.8vw, 30px);
}
.worries-under-wrap {
  margin: 0 auto; margin-top: clamp(40px, 7vw, 60px); max-width: 600px;
}
@media screen and (max-width: 999px) {
  #worries { background: #fff; padding: clamp(40px, 10vw, 60px) 0 clamp(20px, 6vw, 30px); }
  .worries-inner { flex-direction: column; gap: clamp(12px, 4.5vw, 20px); margin-top: clamp(14px, 4vw, 20px); }
  .worries-under-wrap { margin-top: clamp(24px, 6vw, 40px); }
}

/* ========================
   ABOUT / REGION / COMPARISON
======================== */
#about {
  background: var(--bgor);
  padding: clamp(60px, 10vw, 100px) 0;
  text-align: center;
}
.about-txt, .region-txt, .comparison-txt {
  margin-top: clamp(18px, 4.8vw, 30px);
  /* 16px ↔ 20px */
  font-size: clamp(1rem, 2.6vw, 1.25rem);
  font-weight: 600;
}
.about-outline { margin-top: clamp(20px, 5vw, 30px); }
.about-con { margin-top: clamp(40px, 8vw, 60px); }

.about-con-item {
  margin-top: clamp(40px, 8vw, 60px);
  display: flex; align-items: center; justify-content: center; gap: 5%;
}
.about-con-item:nth-child(even) { flex-direction: row-reverse; }

.about-con-item-txt-wrap { width: 45%; text-align: left; }
.about-con-item-txt-number {
  color: var(--main); border-bottom: 1px solid var(--main);
  padding-bottom: 5px;
  /* 14px ↔ 20px */
  font-size: clamp(0.875rem, 2.2vw, 1.25rem);
  font-weight: 600; font-family: var(--en); line-height: 1; display: inline-block;
}
.about-con-item-txt-ttl {
  margin-top: clamp(10px, 3.6vw, 15px);
  /* 26px ↔ 40px */
  font-size: clamp(1.625rem, 4.5vw, 2.5rem);
  line-height: 1.3;
}
.about-con-item-txt-ttl span { color: var(--main); }
.about-con-item-txt-normal {
  margin-top: clamp(20px, 6vw, 30px);
  line-height: clamp(1.6, 3.5vw, 1.8);
}
.about-con-item-txt-normal span { font-weight: 600; }

.about-con-item-img {
  width: 50%; border-radius: 10px; overflow: hidden; border: 1px solid var(--main);
}

@media screen and (max-width: 999px) {
  #about { padding: clamp(40px, 10vw, 60px) 0; }
  .about-txt, .region-txt, .comparison-txt { margin-top: clamp(12px, 4vw, 15px); font-size: clamp(1rem, 2.4vw, 1rem); }
  .about-outline { margin-top: clamp(20px, 6vw, 30px); }
  .about-con { margin-top: clamp(40px, 10vw, 60px); }
  .about-con-item {
    margin-top: clamp(40px, 10vw, 60px);
    flex-direction: column; gap: clamp(14px, 4.8vw, 20px) clamp(14px, 4.8vw, 20px);
  }
  .about-con-item:nth-child(even) { flex-direction: column; }
  .about-con-item-txt-wrap { width: 100%; }
  .about-con-item-txt-number { font-size: 0.875rem; }
  .about-con-item-txt-ttl { margin-top: clamp(10px, 3.6vw, 15px); font-size: 1.625rem; line-height: 1.3; }
  .about-con-item-txt-normal { margin-top: clamp(20px, 6vw, 30px); line-height: 2; }
  .about-con-item-img { width: 100%; }
}

/* ========================
   FEATURES / REGION / COMPARISON セクション余白
======================== */
#features { background: #fff; padding: clamp(60px, 10vw, 100px) 0 0; text-align: center; }
.features-con { display: flex; justify-content: center; gap: 3%; margin-top: clamp(20px, 5vw, 30px); }
.features-con-item { overflow: hidden; border-radius: 10px; filter: drop-shadow(4px 4px 10px rgba(0,0,0,.12)); }

#region { padding: clamp(60px, 10vw, 100px) 0 0; text-align: center; }
.region-con { margin-top: clamp(14px, 4.5vw, 20px); }

#comparison { padding: clamp(60px, 10vw, 100px) 0; text-align: center; }
.comparison-con { margin: 0 auto; margin-top: clamp(14px, 4.5vw, 20px); max-width: 900px; }
.comparison-con-item img { width: auto; margin: 0 auto; }

@media screen and (max-width: 999px) {
  #features { padding: clamp(40px, 10vw, 60px) 0 0; }
  .features-con { flex-direction: column; gap: clamp(12px, 5vw, 20px) clamp(12px, 5vw, 20px); margin-top: clamp(14px, 4.5vw, 20px); }
  .features-con-item { filter: drop-shadow(4px 4px 5px rgba(0,0,0,.12)); }
  #region { padding: clamp(40px, 10vw, 60px) 0 0; }
  .region-con, .comparison-con { margin-top: clamp(10px, 4vw, 15px); }
  #comparison { padding: clamp(40px, 10vw, 60px) 0; }
}

/* ========================
   FLOW
======================== */
#flow { padding: clamp(60px, 10vw, 100px) 0 clamp(20px, 6vw, 30px); }
.flow-con-list {
  margin-top: clamp(40px, 8vw, 60px);
  display: flex; justify-content: space-between; gap: clamp(12px, 5vw, 20px);
}
.flow-under-txt {
  margin: 0 auto!important;
  margin-top: clamp(40px, 8vw, 60px)!important;
  max-width: clamp(240px, 40vw, 330px)!important;
}
@media screen and (max-width: 999px) {
  #flow { padding: clamp(40px, 10vw, 60px) 0 clamp(14px, 5vw, 20px); }
  .flow-con-list { margin-top: clamp(24px, 7vw, 40px); flex-direction: column; gap: clamp(12px, 5vw, 20px) clamp(12px, 5vw, 20px); }
  .flow-under-txt { margin-top: clamp(40px, 8vw, 60px); max-width: 100%; }
}

/* ========================
   FAQ
======================== */
#faq { padding: clamp(60px, 10vw, 100px) 0; }
.faq-wrap { max-width: 900px; margin: 20px auto 0; }
.faq {
  /* margin-top: clamp(20px, 5vw, 30px); */
  margin-top: 0, 5vw;
  border-bottom: 1px solid var(--br);
  /* border-top: 1px solid var(--br); */
}
dt.faq-q { font-weight: 400; }

.faq-q {
  background: #fff;
  padding: clamp(24px, 6vw, 40px) clamp(18px, 4.5vw, 30px);
  padding-left: clamp(36px, 6vw, 60px);
  position: relative;
}
.faq-a {
  background: var(--bgor);
  padding: clamp(24px, 6vw, 40px) clamp(18px, 4.5vw, 30px);
  padding-left: clamp(36px, 6vw, 60px);
  position: relative;
}
.faq-q::before, .faq-a::before {
  position: absolute;
  /* 20px ↔ 34px */
  font-size: clamp(1.25rem, 4.2vw, 2.125rem);
  top: 50%;
  left: clamp(16px, 3.2vw, 30px);
  font-family: "Arial";
  transform: translate(-50%, -50%);
}
.faq-q::before { content: "Q"; color: var(--txt); }
.faq-a::before { content: "A"; color: var(--main); }

/* 矢印は線幅3px維持 */
.faq-q:after{
  content:""; display:block; width: 8px; height: 8px;
  border-top: var(--main) 3px solid; border-right: var(--main) 3px solid;
  transform: rotate(135deg) translate(0, -50%);
  position:absolute; right: clamp(12px, 2.2vw, 15px); bottom: 50%;
  transition-duration: .5s;
}
.open .faq-q:after{ transform: rotate(-45deg) translate(0, -50%); top: 50%; }

@media screen and (max-width: 999px) {
  #faq { padding: clamp(40px, 10vw, 60px) 0; }
  .faq { margin-top: clamp(20px, 5vw, 30px); }
  .faq-q {
    padding: clamp(14px, 5vw, 20px) clamp(16px, 4.5vw, 26px);
    padding-left: clamp(28px, 5vw, 30px);
  }
  .faq-a {
    padding: clamp(14px, 5vw, 20px) clamp(16px, 4.5vw, 26px);
    padding-left: clamp(28px, 5vw, 30px);
  }
  .faq-q::before, .faq-a::before { font-size: clamp(1rem, 4.5vw, 1.25rem); top: 50%; left: 16px; }
  .faq-q:after { right: 12px; }
}

/* ========================
   フォーム
======================== */
#lp span.form_document_name_ttl {
  display: inline-block;
}

#lp .form_document_name_ttl {
  margin-bottom: 7px;
  position: relative;
  padding-right: 48px;
}
#lp .form_document_name_ttl.required::after {
  position: absolute;
  content: "必須";
  color: #fff;
  font-size: 0.8rem;
  background: var(--main);
  padding: 4px 8px;
  border-radius: 20px;
  top: 50%;
  right: 0;
  transform: translate(0, -50%);
}

/* フォーム全体を包む要素 */
.form-wrapper {
  position: relative;
  background: #fff;
  border-radius: 16px;
  /* padding: 40px 0px 0px; */
  max-width: 640px;
  /* margin: 0 auto; */
}

/* 吹き出し本体 */
.bubble {
  --bg: #fff36b; /* 黄色 */
  position: absolute;
  left: 50%;
  top: -3.0rem;
  transform: translate(-50%, -60%);
  background: var(--bg);
  color: #333;
  font-weight: 700;
  font-size: 14px;
  text-align: center;
  padding: 16px 12px;
  border-radius: 28px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  line-height: 1.5;
  white-space: normal;
  min-width: 106%;
}

/* 吹き出しのしっぽ（三角形タイプ） */
.bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 12px solid var(--bg);
}

/* スマホ対応 */
@media (max-width: 480px) {
  .bubble {
    top: -3.3rem;
    font-size: 12px;
    padding: 14px 20px;
    white-space: normal;
    min-width: 88%;
  }
}



/* ========================
   ボタン追加
======================== */
/* 事例ボタン */
.btn01-wrap .btn01 {
  position: relative;
  display: inline-block;
  align-items: center;
  width: 250px;
  padding: 10px 45px 10px 35px;
  /* font-size: 1.6rem; */
  border-radius: 45px;
  box-sizing: border-box;
  text-align: left;
  background-color: #5F9476;
  overflow: hidden;
}

.btn01-wrap .btn01::after {
  position: absolute;
  top: 0;
  right: calc(-100% + 3.125rem);
  height: 100%;
  width: 100%;
  content: "";
  transform: translate3d(0, 0, 0) skew(-15deg);
  background-color: rgba(255, 255, 255, 0.2);
  will-change: transform;
  transition: transform cubic-bezier(0.8, 0, 0.2, 1) 0.5s;
}
.btn01-wrap .btn01:hover::after {
  transform: translate3d(calc(-100% + 3.125rem), 0, 0) skew(-15deg);
}
.btn01-wrap .btn01_text {
  position: relative;
  color: #fff;
  z-index: 1;
}
.btn01-wrap .btn01_arrow {
  position: absolute;
  top: 50%;
  right: 1.25rem;
  height: 1rem;
  width: 0.625rem;
  transform: translate3d(0, -50%, 0);
  z-index: 99;
}
.btn01-wrap .btn01_og {
  background-color: #fff;
}
.btn01-wrap .btn01_og::after {
  background-color: #ffe2dc;
}
.btn01-wrap .btn01_og .btn01_text {
  color: var(--main);
}

/* フォームボタン */
.form_btn_wrap {
  margin: 0 auto;
  margin-top: 30px;
  text-align: center;
  padding: 10px;
  position: relative;
  width: 80%;
  align-items: center;
  font-size: 1.6rem;
  line-height: 2;
  color: #fff;
  border-radius: 45px;
  box-sizing: border-box;
  background-color: #e7380d;
  overflow: hidden;
}
.form_btn_wrap::after {
  position: absolute;
  top: 0;
  right: calc(-100% + 3.125rem);
  height: 100%;
  width: 100%;
  content: "";
  transform: translate3d(0, 0, 0) skew(-15deg);
  background-color: rgba(255, 255, 255, 0.2);
  will-change: transform;
  transition: transform cubic-bezier(0.8, 0, 0.2, 1) 0.5s;
}
.form_btn_wrap:hover::after {
  transform: translate3d(calc(-100% + 3.125rem), 0, 0) skew(-15deg);
}
.form_btn_arrow {
  position: absolute;
  top: 50%;
  right: 1.25rem;
  height: 1rem;
  width: 0.625rem;
  transform: translate3d(0, -50%, 0);
  z-index: 99;
}
.form_btn_wrap .wpcf7-submit {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  z-index: 1;
}


/* ========================
   リセットCSS
======================== */
ol.flow-con-list {
  list-style: none;      /* ← これで数字マーカーを消す */
  counter-reset: none;   /* ← 念のため番号カウンターもリセット */
  padding-left: 0;       /* ← 左の余白も消す（必要に応じて） */
}

ol.flow-con-list li::marker {
  content: none;         /* ← marker要素自体を非表示 */
}

form a{
  color: #4169e1;
}

.footer-logo {
  display: block;
  margin: 0; /* ← 左寄せにする */
}