.flex {display: flex;}
.justify-start {justify-content: start;}
.justify-end {justify-content: end;}
.justify-center {justify-content: center;}
.justify-between {justify-content: space-between;}
.items-stretch {align-items: stretch;}
.items-start {align-items: start;}
.items-center {align-items: center;}
.items-end {align-items: end;}
.flex-col {flex-direction: column;}
.flex-wrap {flex-wrap: wrap;}

.sp {display: none;}
@media (max-width: 750px) {
  .pc {display: none;}
  .sp {display: block;}
}

:root {
  /* ============================================================
   *  Brand main (Orange) — テーマで変わる
   * ============================================================ */
  --c-main: #FF6A00;
  --c-main-rgb: 255, 106, 0;
  --c-main-grad-from: #FF9831;
  --c-main-grad-from-rgb: 255, 152, 49;
  --c-main-grad-to: #EF4000;
  --c-main-grad-to-rgb: 239, 64, 0;
  --c-main-light: #ffb060;
  --c-main-light-2: #FFB380;
  --c-main-dark: #E55A00;
  --c-main-bg-soft: #FFF7EE;
  --c-main-bg-soft-2: #FFFBF5;
  --c-main-bg-soft-3: #FFE5CC;
  --c-main-border-soft: #FFD9B3;

  /* ============================================================
   *  Brand sub (Blue) — テーマで変わる
   * ============================================================ */
  --c-sub: #1665C4;
  --c-sub-rgb: 22, 101, 196;
  --c-sub-dark: #0064DF;
  --c-sub-dark-rgb: 0, 100, 223;
  --c-sub-darker: #004bb0;
  --c-sub-light: #7CB7FF;
  --c-sub-light-rgb: 124, 183, 255;
  --c-sub-bg: #b8d4f0;
  --c-sub-bg-2: #E8EEF8;
  --c-sub-navy: #102B5C;
  --c-sub-navy-dark: #0A1B3D;
  --c-sub-grad-from: #2F5FA8;
  --c-sub-grad-to: #1A3F7D;

  /* ============================================================
   *  Accent yellow / cream — テーマで変わる
   * ============================================================ */
  --c-accent: #FFE072;
  --c-accent-dark: #FFCC00;
  --c-accent-dark-rgb: 255, 204, 0;
  --c-accent-light: #FFE990;
  --c-accent-bright: #FFD54F;
  --c-accent-faint: #FFFDEC;
  --c-accent-faint-2: #FFF6BE;
  --c-accent-faint-2-rgb: 255, 246, 190;
  --c-accent-soft: #fffdf7;
  --c-accent-bubble: rgba(var(--c-accent-faint-2-rgb), 0.3);
  --c-accent-bg-soft: #FDF5E1;
  --c-accent-bg-warm: #F5D5A5;

  /* ============================================================
   *  Danger red — テーマで変わる
   * ============================================================ */
  --c-danger: #d43d3d;
  --c-danger-rgb: 212, 61, 61;
  --c-danger-dark: #993333;
  --c-danger-bg: #fef8f5;
  --c-danger-bg-2: #f0d8c8;
  --c-danger-border: #f0c4c4;

  /* ============================================================
   *  Laurel (月桂冠ゴールド) — テーマで変わる
   *  ※ laurel.js が getComputedStyle で読み取る
   * ============================================================ */
  --c-laurel-light: #f0d860;
  --c-laurel-mid: #c49832;
  --c-laurel-dark: #b89030;
  --c-laurel-stem: #a08430;
  --c-laurel-stem-dark: #8a6e20;

  /* ============================================================
   *  Neutral — テーマでは原則変えない（共通）
   * ============================================================ */
  --c-white: #fff;
  --c-black: #000;
  --c-text-darkest: #111;
  --c-text-dark: #222;
  --c-text: #333;
  --c-text-mid: #444;
  --c-text-muted: #555;
  --c-text-muted-2: #666;
  --c-text-light: #888;
  --c-text-light-2: #999;
  --c-text-lighter: #aaa;
  --c-text-lighter-2: #ABABAB;
  --c-bg-light: #f8f9fb;
  --c-bg-light-2: #f5f9fe;
  --c-bg-light-3: #f0f4f8;
  --c-bg-cool: #e8ecf2;
  --c-bg-cool-2: #dde5ef;
  --c-bg-warm: #f5f0e8;
  --c-bg-warm-2: #f0e8d8;
  --c-bg-neutral: #F5F4F4;
  --c-bg-neutral-2: #F5F5F5;
  --c-bg-stroke: #e6e6e6;
  --c-bg-stroke-2: #eee;
  --c-bg-stroke-3: #f0f0f0;
  --c-bg-bar-gray: #B0B8C0;
  --c-shadow-strong: rgba(0, 0, 0, 0.25);
  --c-shadow: rgba(0, 0, 0, 0.12);
  --c-shadow-mid: rgba(0, 0, 0, 0.10);
  --c-shadow-soft: rgba(0, 0, 0, 0.08);
  --c-shadow-softer: rgba(0, 0, 0, 0.06);
  --c-shadow-faint: rgba(0, 0, 0, 0.05);
  --c-shadow-very-faint: rgba(0, 0, 0, 0.04);
  --c-shadow-deep: rgba(0, 0, 0, 0.30);
  --c-modal-bg: rgba(15, 20, 25, 0.55);
  --c-white-overlay: rgba(255, 255, 255, 0.25);
  --c-white-overlay-strong: rgba(255, 255, 255, 0.95);
  --c-white-overlay-mid: rgba(255, 255, 255, 0.90);
  --c-white-overlay-mid-2: rgba(255, 255, 255, 0.85);
  --c-white-overlay-light: rgba(255, 255, 255, 0.60);
  --c-warm-shadow: rgba(180, 170, 155, 0.13);

  /* ============================================================
   *  Legacy aliases — 既存記述との互換
   * ============================================================ */
  --mainOrange: var(--c-main);
  --gradationOrange: linear-gradient(180deg, var(--c-main-grad-from) 0%, var(--c-main-grad-to) 100%);
  --mainBlue: var(--c-sub);
}

.c-inner_s {
  max-width: 43.75rem;
  width: 90%;
  margin: 0 auto;
  padding: 4rem 0 5rem;
}
.c-inner_m{
  max-width: 62.5rem;
  width: 90%;
  margin: 0 auto;
  padding: 4rem 0 5rem;
}
.c-inner_l{
  max-width: 90rem;
  width: 100%;
  margin: 0 auto;
  padding: 5rem 0;
}
@media(max-width: 768px) {
  .c-inner_s,
  .c-inner_m,
  .c-inner_l {
    padding: 4rem 0;
  }
}
.c-title{
  position: relative;
  text-align: center;
  /* margin-bottom: ; */
  & .c-text01{
    font-size: 1rem;
    color: var(--mainBlue);
    letter-spacing: 0.1em;
    line-height: 1;
    font-weight: 600 !important;
  }
  & .c-text02{
    font-size: 1.125rem;
    font-weight: 700 !important;
    margin: 0.5rem auto 0.25rem;
  }
  & .c-heading01{
    font-size: 2rem;
    line-height: 1.5;
    font-weight: 700 !important;
    padding-bottom: 2.5rem;
    & span{
      color: var(--mainOrange);
    }
  }
}
@media(max-width: 768px) {
.c-title {
  & .c-text01 {
    font-size: 1.792rem;
    padding-bottom: 0.75rem;
  }
    & .c-text02 {
      font-size: 2.304rem;
      font-weight: 700 !important;
      margin: 0.5rem auto 0.25rem;
    }
  & .c-heading01 {
    font-size: 3.328rem;
    padding-bottom: 4rem;
  }
}
}
.c-btn{
  display: block;
  max-width: 26.25rem;
  width: 100%;
  color: white;
  background: linear-gradient(180deg, var(--c-sub-light) 0%, var(--c-sub-dark) 100%);;
  border-radius: 2.5rem;
  padding: 1.2rem 0 2.4rem;
  position: relative;
  margin: 0 auto;
  font-weight: 700 !important;
  box-shadow: 0 0.25rem 0.25rem var(--c-shadow-strong);
  &.left{
    margin: 0;
  }
  & .c-text01{
    font-size: 1rem;
    letter-spacing: 0.1em;
    color: var(--mainBlue);
    border: 2px solid var(--c-sub-light);
    background: white;
    border-radius: 2.5rem;
    position: relative;
    max-width: 15.25rem;
    padding: 0.15rem 0 0.2rem;
    width: 90%;
    text-align: center;
    position: absolute;
    left: 50%;
    top: -1rem;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    & span{
      color: var(--mainOrange);
      font-size: 1.25rem;
    }
    & .normal{
      font-size: 1rem;
    }
    & .big{
      font-size: 1.75rem;
      line-height: 1;
    }
  }
  & .c-text02{
    font-size: 1.5rem;
    letter-spacing: 0.05em;
    text-align: center;
    position: relative;
    letter-spacing: 0.05em;
    line-height: 1;
    gap: 1rem;
    &::after{
      display: block;
      content: "";
      background: white;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      width: 0.78125rem;
      height: 0.78125rem;
    }
  }
}
@media(max-width: 768px) {
.c-btn {
  max-width: 38.4rem;
  border-radius: 5.12rem;
  padding: 3rem 0 2.5rem;
  box-shadow: 0 0.512rem 0.512rem var(--c-shadow-strong);
  &.left {
    margin: 0 auto;
  }
  & .c-text01 {
    font-size: 1.792rem;
    border-radius: 5.12rem;
    max-width: 21.76rem;
    top: -2.25rem;
    & .normal {
      font-size: 1.792rem;
    }
    & .big {
      font-size: 3.072rem;
    }
  }
  
  & .c-text02 {
    font-size: 2.304rem;
    gap: 1.5rem;
    &::after {
      width: 1.25rem;
      height: 1.25rem;
    }
  }
}
}

.fv{
  position: relative;
  background-image: url(assets/img/bg/fv_background.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 3.5rem 0 1.5rem;
  & .inner{
    width: 90%;
    max-width: 75rem;
    margin: auto;
  }
  & .wrap01{
    width: fit-content;
    margin-bottom: 3.75rem;
    position: relative;
    z-index: 2;
  }
  & .heading01{
    width: 48.875rem;
    & img{
      width: 100%;
    }
  }
  & .text01{
    font-size: 0.875rem;
  }
  & .img02{
    width: 38.0625rem;
    margin-bottom: 2.5rem;
  }
  & .img03{
    width: 38.375rem;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 0;
  }
}
@media screen and (max-width: 1279px) and (min-width: 769px) {
  .fv{
    & .img03{
      width: 32.5rem;
    }
  }
}
@media(max-width: 768px) {
.fv {
  background-image: url(assets/img/bg/fv_background-sp.webp);
  padding: 4rem 0 3rem;
  & .inner {
    width: 92.5%;
  }
  & .wrap01 {
    width: 100%;
  }
  & .heading01 {
    width: 43.008rem;
  }
  & .text01 {
    font-size: 1.536rem;
  }
  & .img02 {
    width: 16.64rem;
  }
}
}

/* こんなお悩みありませんか */
.section01{
  background: var(--c-accent-bubble);
  & .block01{
    gap: 2.5rem;
  }
  & .list01{
    gap: 1.5rem;
    margin-bottom: 3rem;
  }
  & .item01{
    width: 100%;
    background: white;
    position: relative;
    padding: 0.75rem 0.5rem;
    &.small{
      max-width: 16.4375rem;
    }
    &.large{
      max-width: 19.625rem;
    }
    &::before,
    &::after{
      content: "";
      position: absolute;
      width: 1.375rem;
      height: 1.375rem;
      background: var(--gradationOrange);
      z-index: -1;
    }
    &::before{
      top: -0.1875rem;
      left: -0.1875rem;
    }
    &::after{
      bottom: -0.1875rem;
      right: -0.1875rem;
      transform: rotate(180deg);
    }
  }
  & .heading01{
    font-size: 2.625rem;
    font-weight: 700 !important;
    line-height: 1.3;
    font-style: italic;
    text-align: center;
    width: fit-content;
    background: var(--gradationOrange);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    position: relative;
    margin-bottom: 3.5rem;
    margin-left: 2.5rem;
    &::after{
      content: "";
      position: absolute;
      background: var(--c-accent);
      height: 0.6875rem;
      width: 100%;
      bottom: 0.25rem;
      left: 0;
      z-index: -1;
    }
    &::before{
      content: "";
      position: absolute;
      background-image: url(assets/img/bg/section01_img02.svg);
      background-repeat: no-repeat;
      background-position: center;
      background-size: contain;
      height: 2.375rem;
      width: 4.4375rem;
      left: 50%;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      bottom: -2.8125rem;
    }
  }
  & .text00{
    font-size: 1rem;
    text-align: center;
    & span{
      font-size: 1.125rem;
      color: var(--mainOrange);
      font-weight: 700 !important;
    }
  }
  & .text01{
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 3.75rem;
  }
  & .img01{
    width: 15.6875rem;
  }
}
@media(max-width: 768px) {
.section01 {
  & .block01 {
    width: 100%;
  }
  & .list01 {
    margin-bottom: 6rem;
  }
  & .item01 {
    padding: 0;
    height: 12.8rem;
    &.small {
      max-width: 100%;
    }
    &.large {
      max-width: 100%;
    }
    &::before,
    &::after {
      width: 2.816rem;
      height: 2.816rem;
    }
    &::before {
      top: -0.384rem;
      left: -0.384rem;
    }
    &::after {
      bottom: -0.384rem;
      right: -0.384rem;
    }
  }
  & .heading01 {
    font-size: 3.776rem;
    margin: 0 auto 5rem;
    &::after {
      height: 1rem;
    }
    &::before {
      height: 3.328rem;
      width: 6.4rem;
      bottom: -4.16rem;
    }
  }
  & .text00 {
    font-size: 2.048rem;
    & span {
      font-size: 2.304rem;
    }
  }
  & .text01 {
    font-size: 2.048rem;
    margin-bottom: 6rem;
  }
}
}

/* 解決できること */
.section02{
  & .block01{
    max-width: 82rem;
    width: 97.5%;
    margin: 0 0 0 auto;
    position: relative;
    & .wrap01{
      left: 0;
      right: auto;
    }
    &.reverse{
      margin: 0 auto 0 0;
      & .wrap01{
        left: auto;
        right: 0;
      }
    }
    &:not(:last-child){
      margin-bottom: 5rem;
    }
  }
  & .wrap01{
    max-width: 42rem;
    width: 60%;
    position: absolute;
    top: 0;
    z-index: 1;
  }
  & .heading01{
    font-size: 1.75rem;
    line-height: 1.45;
    margin-bottom: 1rem;
  }
  & .text01{
    color: var(--c-sub-transparent);
    font-size: 3.75rem;
    font-weight: 700 !important;
    line-height: 1.25;
  }
  & .text02{
    font-size: 1rem;
    line-height: 1.75;
    & span{
      color: var(--mainOrange);
      font-weight: 700 !important;
    }
  }
  & .img01{
    width: 50rem;
    position: relative;
    z-index: 0;
  }
}
@media(max-width: 768px) {
.section02 {
  & .block01 {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
    & .wrap01 {
      left: auto;
      right: auto;
    }
    &.reverse {
      margin: 0 auto;
      & .wrap01 {
        left: auto;
        right: auto;
      }
    }
    &:not(:last-child) {
      margin-bottom: 6.5rem;
    }
  }
  & .wrap01 {
    position: relative;
    max-width: 90%;
    width: 90%;
    margin: 0 auto;
  }
  & .heading01 {
    font-size: 2.816rem;
    margin-bottom: 5rem;
  }
  & .text01 {
    font-size: 5.12rem;
    margin-bottom: 1rem;
  }
  & .text02 {
    font-size: 2.048rem;
  }
  & .img01 {
    width: 100%;
    position: absolute;
    left: 0;
    right: 0;
    &.img01-01{
      top: 2rem;
    }
    &.img01-02{
      top: 3.5rem;
    }
    &.img01-03{
      top: -2rem;
    }
    &.img01-04{
      top: 4rem;
    }
  }
}
}

/* 導入事例 */
.section03{
  background: var(--c-accent-bubble);
  overflow: hidden;
  & .swiper{
    overflow: visible;
    margin-bottom: 3.5rem;
  }
  & .block01{
    background: white;
    box-shadow: 0 0 0.625rem var(--c-shadow-strong);
    border-radius: 1rem;
    padding: 2rem 4rem;
    width: 100%;
  }
  & .item01{
    gap: 0.75rem;
    &:not(:last-child){
      margin-bottom: 0.75rem;
    }
  }
  & .wrap02{
    background: var(--c-bg-neutral);
    border-radius: 1rem;
    padding: 0 2.5rem;
  }
  & .texts01{
    gap: 1rem;
    border-bottom: 1px solid var(--mainOrange);
    position: relative;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }
  & .texts02{
    margin-bottom: 1.5rem;
  }
  & .texts03{
    gap: 0.5rem;
    &:not(:last-child){
      margin-bottom: 0.6rem;
    }
  }
  & .texts04{
    gap: 0.5rem;
  }
  & .heading01,
  & .heading02{
    font-size: 1.375rem;
    font-weight: 700 !important;
  }
  & .heading02{
    line-height: 1.7;
    margin-bottom: 0.8rem;
    & span{
      position: relative;
      -webkit-text-decoration: underline var(--c-accent);
      text-decoration: underline var(--c-accent);
      text-underline-offset: -0.3125rem;
      text-decoration-thickness: 0.6875rem;
    }
  }
  & .heading03{
    font-size: 1.375rem;
    font-weight: 700 !important;
    color: var(--mainOrange);
    margin-bottom: 0.9rem;
  }
  & .text01{
    background: var(--mainOrange);
    color: white;
    font-size: 1.125rem;
    font-weight: 700 !important;
    padding: 0.3rem 1.25rem 0.25rem;
    border-radius: 1rem;
  }
  & .text03{
    font-size: 1.125rem;
    font-weight: 700 !important;
  }
  & .text04,
  & .text05{
    font-size: 0.875rem;
  }
  & .text04{
    background: var(--c-bg-neutral);
    padding: 0.5rem;
  }
  & .img01{
    width: 9.63rem;
    position: absolute;
    right: 0;
    top: 0;
  }
  & .img02{
    width: 2.75rem;
  }
  & .movie{
    & iframe,
    & img{
      width: 25.8125rem;
      height: auto;
      aspect-ratio: 16 / 9;
    }
  }
}
.swiper-button-prev,
.swiper-button-next {
  background: var(--gradationOrange);
  width: 2.5rem !important;
  height: 2.5rem !important;
  border-radius: 50%;
  &::after {
    font-size: 1rem !important;
    color: white !important;
    font-weight: 500 !important;
  }
}
.swiper-button-prev{
  left: -1rem !important;
}
.swiper-button-next {
  right: -1rem !important;
}
@media(max-width: 768px) {
.section03 {
  & .swiper {
    overflow: visible;
    margin-bottom: 8rem;
  }
  & .block01 {
    box-shadow: 0 0 1.28rem var(--c-shadow-strong);
    border-radius: 2.048rem;
    padding: 3rem 2.5rem 3.5rem;
  }
  & .wrap01{
    flex-direction: column-reverse;
    gap: 1.5rem;
  }
  & .wrap02 {
    border-radius: 1.536rem;
    padding: 2rem 1.8rem;
  }
  & .wrap03{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  & .texts01 {
    flex-direction: column;
    align-items: start;
    gap: 1.5rem;
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
  }
  & .texts02 {
    margin-bottom: 1.6rem;
  }
  & .texts03 {
    flex-direction: column;
    align-items: start;
    &:not(:last-child) {
      margin-bottom: 1.5rem;
    }
  }
  & .texts04{
    gap: 1.5rem;
  }
  & .heading01 {
    font-size: 2.816rem;
  }
  & .heading02 {
    font-size: 2.304rem;
    margin-bottom: 1.5rem;
    & span {
      text-underline-offset: -0.64rem;
      text-decoration-thickness: 1.408rem;
    }
  }
  & .heading03 {
    font-size: 2.048rem;
    margin-bottom: 1.25rem;
  }
  & .text01 {
    font-size: 1.792rem;
    padding: 0.5rem 2rem 0.3rem;
    border-radius: 1.664rem;
  }
  & .text03 {
    font-size: 1.92rem;
  }
  & .text04,
  & .text05 {
    font-size: 1.792rem;
  }
  & .text04 {
    padding: 0.5rem;
  }
  & .img01 {
    height: auto;
    width: 11.52rem;
    position: relative;
    right: auto;
    top: auto;
  }
  & .img02 {
    width: 4.832rem;
  }
  & .movie {
    & iframe,
    & img {
      width: 25.088rem;
    }
  }
}
.swiper-button-prev,
.swiper-button-next {
  width: 3.84rem !important;
  height: 3.84rem !important;
  top: 20rem !important;
  &::after {
    font-size: 1.5rem !important;
    color: white !important;
    font-weight: 500 !important;
  }
}
.swiper-button-prev{
  left: -1.85rem !important;
}
.swiper-button-next {
  right: -1.85rem !important;
}
}

/* 高品質のサービス提供 */
.section04{
  & .block01{
    background-image: url(assets/img/bg/section04_background.webp);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 1rem;
    padding: 2.75rem 3.75rem 2.5rem;
    position: relative;
    &:not(:last-child){
      margin-bottom: 3.5rem;
    }
  }
  & .list01{
    width: 20.1875rem;
  }
  & .item01{
    width: 100%;
    border-radius: 20px;
    overflow: hidden;
    &:not(:first-child){
      margin-top: 0.5rem;
    }
  }
  & .wrap01{
    gap: 2.5rem;
  }
  & .wrap02{
    max-width: 750px;
    width: 100%;
    gap: 2.5rem;
    margin: 3rem auto 0;
  }
  & .texts01{
    flex: 1;
  }
  & .texts02{
    &:not(:last-child){
      margin-bottom: 1.25rem;
    }
  }
  & .heading01{
    text-align: center;
    line-height: 1.45;
    margin-top: 1.5rem;
    & .small{
      font-size: 1.375rem;
    }
    & .middle{
      font-size: 1.5rem;
    }
    & .big{
      font-size: 1.75rem;
    }
    &.left{
      margin-bottom: 0.75rem;
      text-align: left;
    }
  }
  & .text01{
    color: var(--mainBlue);
    border: 2px solid var(--mainBlue);
    background: white;
    width: fit-content;
    position: absolute;
    padding: 0.25rem 1.5rem 0.3rem;
    border-radius: 1.375rem;
    letter-spacing: 0.1em;
    font-weight: 700 !important;
    left: 50%;
    top: -1rem;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }
  & .text02{
    font-size: 1.125rem;
    font-weight: 700 !important;
  }
  & .text03{
    font-size: 0.875rem;
    line-height: 1.75;
    & span{
      font-weight: 700;
      &.orange{
        color: var(--mainOrange);
      }
    }
  }
  & .img01{
    width: 100%;
  }
}
@media(max-width: 768px) {
.section04 {
  & .block01 {
    background-image: url(assets/img/bg/section04_background-sp.webp);
    border-radius: 2.048rem;
    padding: 5rem 2.5rem 4rem;
    &:not(:last-child) {
      margin-bottom: 5rem;
    }
  }
  & .list01 {
    width: 100%;
  }
  & .item01 {
    width: 100%;
    &:not(:first-child){
      margin-top: 1rem;
    }
  }
  & .wrap01 {
    flex-direction: column;
    gap: 2rem;
  }
  & .wrap02{
    flex-direction: column;
    gap: 1.25rem;
  }
  & .texts02 {
    &:not(:last-child) {
      margin-bottom: 1.25rem;
    }
  }
  & .heading01 {
    margin-top: 2rem;
    & .small {
      font-size: 2.048rem;
    }
    & .middle {
      font-size: 2.816rem;
    }
    & .big {
      font-size: 2.816rem;
      & span{
        font-size: 2.7rem;
      }
    }
    &.left {
      margin-bottom: 1.25rem;
    }
    &.sp-center{
      text-align: center;
    }
  }
  & .text01 {
    width: auto;
    text-align: center;
    font-size: 2.1rem;
    padding: 0.5rem 2rem 0.75rem;
    border-radius: 2.816rem;
    top: -2.5rem;
  }
  & .text02 {
    font-size: 2.304rem;
  }
  & .text03 {
    font-size: 1.792rem;
  }
  & .img01 {
    width: 100%;
  }
}
}

/* プラン */
.section05{
  background: var(--c-accent-bubble);
  & .item01{
    gap: 0.5rem;
    &:not(:last-child){
      margin-bottom: 1.6rem;
    }
  }
  & .wrap01{
    gap: 2rem;
  }
  & .wrap02{
    margin-top: 2rem;
  }
  & .texts01{
    background: var(--gradationOrange);
    border-radius: 1rem;
    position: relative;
    padding: 1.25rem 0;
    z-index: 2;
    margin-bottom: 2.5rem;
    &::after{
      content: "";
      background: var(--c-main-grad-to);
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      position: absolute;
      z-index: 0;
      width: 4.6875rem;
      height: 1.5625rem;
      left: 50%;
      bottom: -1.5rem;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
    }
  }
  & .texts02{
    background: white;
    width: 100%;
    border-radius: 1rem;
    padding: 2.5rem 2rem 2rem; 
  }
  & .heading01{
    color: white;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 600 !important;
    &.bottom{
      padding: 0.75rem 0;
    }
  }
  & .heading02{
    font-size: 1.25rem;
    position: relative;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    &::after{
      content: "";
      position: absolute;
      width: 1.875rem;
      height: 0.25rem;
      background: var(--mainOrange);
      left: 50%;
      bottom: 0;
      transform: translateX(-50%);
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
    }
  }
  & .heading02{
    font-family: 1.25rem;
    font-weight: 700 !important;
    text-align: center;
  }
  & .text01{
    font-size: 1rem;
    text-align: center;
    color: white;
    margin-top: 0.5rem;
  }
  & .text02{
    font-size: 1rem;
    line-height: 1.75;
    flex: 1;
    &.center{
      text-align: center;
    }
  }
  & .text03{
    font-size: 0.75rem;
    margin: 1.5rem auto 2rem;
  }
  & .text04{
    font-size: 1rem;
    color: white;
    background: var(--gradationOrange);
    width: 1.875rem;
    height: 1.875rem;
    line-height: 1.875rem;
    text-align: center;
    border-radius: 50%;
  }
}
@media(max-width: 768px) {
.section05 {
  & .item01 {
    gap: 1rem;
    &:not(:last-child) {
      margin-bottom: 3rem;
    }
  }
  & .wrap01 {
    gap: 2rem;
    flex-direction: column;
  }
  & .wrap02 {
    margin-top: 5rem;
    overflow-x: scroll;
  }
  & .texts01 {
    border-radius: 2.048rem;
    padding: 2rem 2.25rem;
    margin-bottom: 5rem;
    &::after {
      width: 8.32rem;
      height: 3.072rem;
      bottom: -2.944rem;
    }
  }
  & .texts02 {
    border-radius: 2.048rem;
    padding: 2.5rem 2rem 2rem;
  }
  & .heading01 {
    font-size: 2.816rem;
    &.bottom {
      padding: 0.75rem 0;
    }
  }
  & .heading02 {
    font-size: 2.56rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    &::after {
      width: 3.84rem;
      height: 0.512rem;
    }
  }
  & .heading02 {
    font-family: 2.56rem;
  }
  & .text01 {
    font-size: 2.048rem;
    margin-top: 1.25rem;
  }
  & .text02 {
    font-size: 2.048rem;
    &.center {
      text-align: left;
    }
  }
  & .text03 {
    font-size: 1.536rem;
    margin: 1.5rem auto 5rem;
  }
  & .text04 {
    font-size: 2.048rem;
    width: 3.84rem;
    height: 3.84rem;
    line-height: 3.84rem;
  }
  & .img02{
    max-width: none;
    &.img02-01{
      width: 69.888rem;
    }
    &.img02-02{
      width: 55.552rem;
    }
  }
  }
}

/* オプション */
.section06{
  & .inner{
    padding: 7.5rem 0 5rem;
  }
  & .block01{
    border: 2px solid var(--mainOrange);
    padding: 3rem 3rem 2.5rem;
    position: relative;
    margin-bottom: 5rem;
  }
  & .wrap01{
    gap: 2rem;
  }
  & .texts01{
    position: absolute;
    left: 50%;
    top: -3rem;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }
  & .texts03{
    gap: 0.5rem;
    border-bottom: 2px solid var(--mainOrange);
    padding-bottom: 0.5rem;
    margin-bottom: 0.75rem;
  }
  & .heading01{
    font-size: 1.25rem;
    color: var(--mainOrange);
    font-weight: 700 !important;
    text-align: center;
    background: white;
    border: 2px solid var(--mainOrange);
    border-radius: 1.5625rem;
    width: fit-content;
    padding: 0.5rem 2rem;
    text-align: center;
    margin: 0 auto;
  }
  & .heading02{
    color: var(--mainOrange);
    font-size: 1.5rem;
    font-weight: 700 !important;
    position: relative;
    & .small{
      font-size: 1.25rem;
    }
    & .big{
      font-size: 2.5rem;
      line-height: 1;
    }
    &::before{
      content: "(税込)";
      position: absolute;
      font-size: 0.75rem;
      letter-spacing: 0.05em;
      top: 0.175rem;
      right: 0.5rem;
    }
  }
  & .text01{
    font-size: 1rem;
    font-weight: 700 !important;
    position: relative;
    width: fit-content;
    margin: 0 auto;
    &::after,
    &::before{
      content: "";
      width: 0.9375rem;
      height: 2px;
      background: var(--c-black);
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
    }
    &::before{
      transform: rotate(60deg);
      left: -1.25rem;
    }
    &::after{
      transform: rotate(-60deg);
      right: -1.25rem;
    }
  }
  & .text02{
    font-size: 0.75rem;
    letter-spacing: 0.05em;
  }
  & .text03{
    font-size: 1rem;
  }
  & .img01{
    width: 17.4375rem;
  }
}
@media(max-width: 768px) {
.section06 {
  overflow: hidden;
  & .inner {
    padding: 12.5rem 0 7.5rem;
  }
  & .block01 {
    padding: 5rem 2rem 3rem;
    margin-bottom: 6.5rem;
  }
  & .wrap01 {
    gap: 1rem;
    flex-direction: column;
    margin-bottom: 3.5rem;
  }
  & .option-swiper{
    width: 33rem;
    overflow: visible;
  }
  & .swiper-button-prev {
    left: -4rem !important;
  }
  & .swiper-button-next {
    right: -4rem !important;
  }
  & .texts01 {
    width: 100%;
    top: -6rem;
  }
  & .texts03 {
    flex-direction: column;
    gap: 1rem;
    padding: 0 1.25rem 0.8rem;
    margin-bottom: 0.85rem;
  }
  & .heading01 {
    font-size: 2.048rem;
    border-radius: 3.2rem;
    padding: 0.8rem 0;
    width: 39.04rem;
  }
  & .heading02 {
    font-size: 2.048rem;
    letter-spacing: 0.075em;
    & .small {
      font-size: 2.56rem;
    }
    & .big {
      font-size: 5.12rem;
    }
    &::before {
      font-size: 1.536rem;
      right: 2rem;
    }
  }
  & .text01 {
    font-size: 1.792rem;
    margin: 0 auto 1rem;
    &::after,
    &::before {
      width: 1.92rem;
      height: 2px;
    }
    &::before {
      left: -2.5rem;
    }
    &::after {
      right: -2.5rem;
    }
  }
  & .text02 {
    font-size: 1.536rem;
  }
  & .text03{
    font-size: 2.048rem;
  }
  & .img01 {
    width: 22.656rem;
  }
}
}

/* 流れ */
.section07{
  background: var(--c-accent-bubble);
  & .list01{
    margin-bottom: 4rem;
  }
  & .item01{
    background: white;
    border-radius: 1rem;
    gap: 2.75rem;
    padding: 1.5rem 2rem;
    &:not(:last-child){
      margin-bottom: 3rem;
      position: relative;
      &::before{
        position: absolute;
        content: "";
        width: 5.625rem;
        height: 1.5625rem;
        clip-path: polygon(0 0, 100% 0, 50% 100%);
        background: var(--mainOrange);
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        bottom: -2.2rem;
      }
    }
  }
  & .wrap01{
    flex: 1;
  }
  & .heading01{
    font-size: 1.25rem;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--mainOrange);
    padding-bottom: 0.5rem;
    margin-bottom: 0.5rem;
  }
  & .text01{
    font-size: 1rem;
    line-height: 1.75;
  }
  & .link01{
    background: var(--gradationOrange);
    color: white;
    max-width: 14.4375rem;
    text-align: center;
    width: 100%;
    font-size: 1rem;
    border-radius: 1.375rem;
    padding: 0.65rem 0;
    margin-top: 1rem;
  }
  & .img01{
    width: 7.25rem;
  }
}
@media(max-width: 768px) {
.section07 {
  & .list01 {
    margin-bottom: 6.5rem;
  }
  & .item01 {
    border-radius: 2.048rem;
    align-items: start;
    gap: 1.5rem;
    padding: 2.5rem 2rem;
    &:not(:last-child) {
      margin-bottom: 5.5rem;
      &::before {
        width: 11.52rem;
        height: 3.2rem;
        bottom: -4.25rem;
      }
    }
  }
  & .heading01 {
    font-size: 2.56rem;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
  }
  & .text01 {
    font-size: 2.048rem;
    line-height: 1.5;
  }
  & .link01 {
    font-size: 2.048rem;
    border-radius: 2.816rem;
    padding: 1.1rem 0 1.25rem;
    margin-top: 1rem;
    max-width: none;
  }
  & .img01 {
    width: 9.6rem;
    padding-top: 2rem;
  }
}
}

/* よくある質問 */
.section08{
  & .list01{
    margin-bottom: 4rem;
  }
  & .item01{
    background: var(--c-accent-faint);
    border-radius: 1rem;
    &:not(:last-child){
      margin-bottom: 1.5rem;
    }
  }
  & .wrap01{
    background: linear-gradient(180deg, var(--c-accent-dark) 0%, var(--c-accent-light) 100%);
    border-radius: 1rem;
    padding: 0.85rem 1.25rem 1.1rem;
  }
  & .wrap02{
    gap: 1rem;
    padding: 0 1.4rem;
    background: var(--c-accent-faint);
    border-radius: 1rem;
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease 0s;
    &.active{
      padding: 1.25rem 1.4rem;
      height: auto;
    }
  }
  & .texts01{
    gap: 1rem;
  }
  & .text01{
    font-size: 1.125rem;
    font-weight: 700 !important;
    padding-top: 0.25rem;
  }
  & .text02{
    font-size: 1rem;
    line-height: 1.75;
  }
  & .a,
  & .q{
    font-size: 1.75rem;
    font-weight: 700 !important;
    line-height: 1;
  }
  & .q{
    color: var(--mainOrange);
  }
  & .icon{
    position: relative;
    height: 0.5rem;
    width: 1rem;
    padding-top: 0.25rem;
    &::after{
      content: "";
      background-image: url(assets/img/bg/section08_img01.svg);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      height: 0.5rem;
      width: 1rem;
      display: block;
      transform: rotate(180deg);
    }
    &.active{
      padding-top: 0;
      &::after{
        transform: rotate(0);
      }
    }
  }
}
@media(max-width: 768px) {
.section08 {
  & .list01 {
    margin-bottom: 6.5rem;
  }
  & .item01 {
    border-radius: 0.64rem;
    &:not(:last-child) {
      margin-bottom: 2.25rem;
    }
  }
  & .wrap01 {
    border-radius: 0.64rem;
    padding: 1.5rem 1.25rem 1.65rem;
  }
  & .wrap02 {
    border-radius: 0.64rem;
    &.active {
      padding: 1.35rem 1.5rem;
    }
  }
  & .texts01 {
    align-items: start;
  }
  & .text01 {
    font-size: 2.304rem;
  }
  & .text02 {
    font-size: 2.048rem;
  }
  & .a,
  & .q {
    font-size: 2.816rem;
  }
  & .icon {
    height: 0.768rem;
    width: 1.792rem;
    padding-top: 0.5rem;
    &::after {
      height: 0.768rem;
      width: 1.792rem;
    }
  }
}
}

/* お問い合わせ */
.section09{
  background: linear-gradient(180deg, var(--c-accent-light) 0%, var(--c-accent-dark) 100%);
  padding: 4rem 0 5rem;
  & .inner{
    background: white;
    border-radius: 1rem;
    padding: 3rem;
  }
  & .wrap01{
    &:not(:last-child){
      margin-bottom: 1.75rem;
    }
  }
  & .wrap02{
    width: fit-content;
    margin: 0 auto 1rem;
  }
  & .texts01{
    gap: 1.25rem;
    margin-bottom: 1.1rem;
  }
  & .mw_wp_form{
    max-width: 55rem;
    width: 90%;
    margin: 0 auto;
  }
  & .form-input,
  & .form-textarea{
    width: 100%;
    border: none;
    background: var(--c-bg-neutral-2);
    border-radius: 0.3125rem !important;
    font-weight: 400 !important;
    font-size: 1rem;
    line-height: 1.4;
    padding: 0.6rem 1rem;
    &::placeholder{
      color: var(--c-text-lighter-2);
    }
  }
  & .form-payment-note{
    text-align: center;
    font-size: 0.875rem;
    color: var(--c-text-muted-2);
    margin-bottom: 0.75rem;
  }
  & .form-btn{
    width: 100%;
    max-width: 16.875rem;
    background: var(--gradationOrange);
    border: none;
    margin: 0 auto;
    display: block;
    color: white;
    padding: 0.4rem 0 0.5rem;
    font-size: 1.5rem;
    border-radius: 1.5625rem;
    cursor: pointer;
  }
  & .text01,
  & .text03{
    font-size: 1rem;
  }
  & .text02{
    font-size: 0.75rem;
    color: white;
    background: var(--mainOrange);
    border-radius: 0.1875rem;
    padding: 0.175rem 0.75rem 0.225rem;
  }
  & .text03{
    margin-bottom: 0.5rem;
    &:not(:first-child){
      margin-top: 0.75rem;
    }
  }
  & .link01{
    display: inline-block;
    font-size: 0.875rem;
    text-decoration: underline;
  }
}
@media(max-width: 768px) {
.section09 {
  padding: 7.5rem 0 7.5rem;
  & .inner {
    border-radius: 2.048rem;
    padding: 5rem 0;
  }
  & .wrap01 {
    &:not(:last-child) {
      margin-bottom: 3.5rem;
    }
  }
  & .wrap02 {
    margin: 0 auto 3rem;
  }
  & .texts01 {
    gap: 2.5rem;
    margin-bottom: 2.25rem;
  }
  & .mw_wp_form {
    max-width: 38.912rem;
    width: 100%;
  }
  & .form-input,
  & .form-textarea {
    border-radius: 0.64rem !important;
    font-size: 2.048rem;
    padding: 1.25rem 1.25rem;
  }
  & .form-btn {
    max-width: 34.56rem;
    padding: 0.9rem 0 1rem;
    font-size: 3.072rem;
    border-radius: 3.2rem;
  }
  & .text01,
  & .text03 {
    font-size: 2.048rem;
  }
  & .text02 {
    font-size: 1.536rem;
    border-radius: 0.384rem;
    padding: 0.25rem 1.25rem 0.25rem;
  }
  & .text03 {
    font-size: 2.048rem;
    margin-bottom: 0.5rem;
    &:not(:first-child) {
      margin-top: 0.75rem;
    }
  }
  & .link01 {
    font-size: 1.792rem;
  }
}
}

.footer{
  background: var(--c-black);
  padding: 1.25rem 0;
  & .text01{
    font-size: 0.875rem;
    color: white;
    text-align: center;
  }
}
@media(max-width: 768px) {
.footer{
  padding: 3rem 0;
  & .text01{
    font-size: 1.792rem;
  }
}
}

/* ============================================================
   FV Override - AIコスト削減LP
   参考: ペパコミのスマホFV構成に準拠
   ============================================================ */

/* --- ロゴ --- */
.fv .fv-logo {
  margin-bottom: 1.25rem;
}
.fv .fv-logo-img {
  height: 2.75rem;
  width: auto;
}

/* --- オレンジ帯 --- */
.fv .fv-orange-bar {
  display: inline-block;
  background: linear-gradient(90deg, var(--mainOrange) 0%, var(--c-main-grad-from) 70%, rgba(var(--c-main-grad-from-rgb), 0) 100%);
  color: var(--c-white);
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 0.45rem 1.5rem 0.45rem 1.25rem;
  border-radius: 0 1.5rem 1.5rem 0;
  margin-bottom: 1.25rem;
  margin-left: -1rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

/* --- 見出し --- */
.fv .heading01.fv-text-heading {
  width: 48.875rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.fv .fv-main-copy {
  display: block;
  font-weight: 900;
  line-height: 1.3;
  color: var(--c-text-darkest);
}
.fv .fv-line1 {
  display: block;
  font-size: 1.75rem;
  font-weight: 900;
  letter-spacing: 0.02em;
}
.fv .fv-line2 {
  display: block;
  font-size: 3.25rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.fv .fv-line3 {
  display: block;
  font-size: 3.75rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.fv .fv-highlight {
  color: var(--mainOrange);
  position: relative;
  display: inline;
}
.fv .fv-highlight::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.05em;
  height: 0.3em;
  background: var(--c-accent);
  z-index: -1;
  border-radius: 2px;
}

/* --- サブコピー統合版 --- */
.fv .fv-subcopy-unified {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--c-text);
  margin-bottom: 1.5rem;
  max-width: 38rem;
}
.fv .fv-guarantee-text {
  font-weight: 700;
  color: var(--mainBlue);
}
.fv .fv-desc-text {
  font-weight: 500;
}

/* --- バッジ3つ --- */
.fv .fv-badges {
  display: flex;
  gap: 0.875rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.fv .fv-badge {
  position: relative;
  background: var(--c-white);
  border-radius: 0.625rem;
  padding: 1.5rem 2.5rem;
  text-align: center;
  min-width: 9rem;
  flex: 1;
  max-width: 14rem;
  box-shadow: 0 2px 8px var(--c-shadow-softer);
  border: 1px solid var(--c-bg-warm-2);
}
/* 月桂冠デコ（PNG画像） */
.fv .fv-badge { overflow: visible; }
.fv .fv-badge::before,
.fv .fv-badge::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 30rem;
  height: 960%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
}
.fv .fv-badge::before {
  left: -3.5rem;
  background-image: url("laurel-left.webp");
}
.fv .fv-badge::after {
  right: -3.5rem;
  background-image: url("laurel-right.webp");
}
.badge-crown {
  position: absolute;
  top: -1.8rem;
  left: 50%;
  transform: translateX(-50%);
  width: 2.8rem;
  height: auto;
  pointer-events: none;
  z-index: 2;
}
.fv .fv-badge-small {
  font-size: 0.6875rem;
  color: var(--c-text-muted-2);
  font-weight: 600;
  line-height: 1.3;
  position: relative;
  z-index: 1;
}
.fv .fv-badge-big {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--c-text-dark);
  line-height: 1.2;
  position: relative;
  z-index: 1;
}
.fv .fv-badge-big span {
  font-size: 0.8rem;
  font-weight: 700;
}

/* --- CTA幅 --- */
.fv .c-btn {
  max-width: 32rem;
}
.fv .c-btn .c-text02 {
  font-size: 1.25rem;
  letter-spacing: 0.02em;
}

/* ============================================================
   FV SP — ペパコミのスマホFVに準拠した構成
   ============================================================ */
@media (max-width: 768px) {

  .fv {
    position: relative;
    overflow: hidden;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .fv .inner {
    position: relative;
    z-index: 2;
  }
  .fv .wrap01 {
    position: relative;
    z-index: 2;
  }

  /* イラスト — ペパコミ同様にしっかり見せる（右側に配置、テキストと共存） */
  .fv .fv-illust {
    display: block !important;
    position: absolute;
    top: auto;
    bottom: 0;
    right: -1rem;
    width: 55%;
    max-width: 26rem;
    opacity: 0.85;
    z-index: 1;
    pointer-events: none;
  }

  /* ロゴ */
  .fv .fv-logo {
    margin-bottom: 0.75rem;
  }
  .fv .fv-logo-img {
    height: 4rem;
  }

  /* オレンジ帯 — ペパコミ同様に左端から横長 */
  .fv .fv-orange-bar {
    font-size: 1.408rem;
    padding: 0.5rem 1.5rem 0.5rem 5%;
    margin-left: -5%;
    margin-bottom: 1.25rem;
    border-radius: 0 1.25rem 1.25rem 0;
    display: inline-block;
    text-align: left;
    background: linear-gradient(90deg, var(--mainOrange) 0%, var(--c-main-grad-from) 75%, rgba(var(--c-main-grad-from-rgb), 0) 100%);
    line-height: 1.5;
  }

  /* 見出し — サイズの強弱を大きくつける */
  .fv .heading01.fv-text-heading {
    width: 100%;
    gap: 0;
    margin-bottom: 1rem;
  }
  .fv .fv-main-copy {
    line-height: 1.15;
  }
  .fv .fv-line1 {
    font-size: 2.56rem;
    margin-bottom: 0.25rem;
  }
  .fv .fv-line2 {
    font-size: 5rem;
    line-height: 1.1;
  }
  .fv .fv-line3 {
    font-size: 5rem;
    line-height: 1.1;
  }

  /* サブコピー */
  .fv .fv-subcopy-unified {
    font-size: 1.536rem;
    margin-bottom: 1rem;
    line-height: 1.6;
    max-width: 100%;
  }
  .fv .fv-guarantee-text {
    font-size: 1.536rem;
  }

  /* バッジ — ペパコミ同様に縦に3つ並べる */
  .fv .fv-badges {
    flex-direction: column;
    gap: 0.625rem;
    margin-bottom: 3.5rem; /* CTAの上ラベル分の余白を確保 */
    max-width: 55%;
  }
  .fv .fv-badge {
    max-width: none;
    min-width: 0;
    padding: 0.625rem 0.75rem;
    text-align: center;
    border-radius: 0.75rem;
  }
  .fv .fv-badge::before,
  .fv .fv-badge::after {
    width: 9rem;
    height: 288%;
  }
  .fv .fv-badge-small {
    font-size: 1.152rem;
  }
  .fv .fv-badge-big {
    font-size: 2.304rem;
  }
  .fv .fv-badge-big span {
    font-size: 1.28rem;
  }

  /* CTA */
  .fv .c-btn {
    max-width: 42rem;
  }
  .fv .c-btn .c-text02 {
    font-size: 1.792rem;
  }
  .fv .cta-wrap {
    margin-bottom: 0.75rem;
  }
  .fv .cta-sub {
    display: none;
  }
  .fv .text01 {
    position: relative;
    z-index: 2;
    font-size: 1.152rem;
  }
}

/* タブレット */
@media screen and (max-width: 1279px) and (min-width: 769px) {
  .fv .fv-line1 { font-size: 1.5rem; }
  .fv .fv-line2 { font-size: 2.75rem; }
  .fv .fv-line3 { font-size: 3.25rem; }
  .fv .fv-logo-img { height: 2.5rem; }
}

/* ============================================================
   Section01 Override - 悩み + ありがちな失敗
   既存の .section01 構造を流用、失敗リストのみ追加CSS
   ============================================================ */

/* heading01のオレンジ色スパン */
.section01 .heading01-orange {
  color: var(--mainOrange);
}

/* ありがちな失敗ブロック — 中央揃え */
.section01 .mistakes-block {
  display: block;
  text-align: center;
}
.section01 .mistakes-block .heading01 {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* 失敗リスト */
.section01 .mistakes-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}
.section01 .mistakes-list {
  list-style: none;
  padding: 0;
  margin: 1.5rem auto 2rem;
  max-width: 32rem;
  text-align: left;
}
.section01 .mistakes-item {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--c-text);
  padding: 1rem 1rem 1rem 0.5rem;
  border-bottom: 1px solid var(--c-bg-stroke-3);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  line-height: 1.6;
}
.section01 .mistakes-item:last-child {
  border-bottom: none;
}
.section01 .mistakes-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--c-danger);
  color: var(--c-white);
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 900;
  margin-top: 0.15rem;
}
.section01 .mistakes-bottom {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--c-text-mid);
  text-align: center;
  line-height: 1.7;
  margin-bottom: 2.5rem;
}
.section01 .mistakes-bottom span {
  color: var(--mainOrange);
  font-weight: 900;
}

@media (max-width: 768px) {
  .section01 .mistakes-item {
    font-size: 2.048rem;
    padding: 1.5rem 0;
  }
  .section01 .mistakes-icon {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.2rem;
  }
  .section01 .mistakes-bottom {
    font-size: 2.304rem;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 4rem;
  }
}

/* ============================================================
   Section02 Override - 真実（業務設計が9割）
   元のSection02の c-inner_l を c-inner_m に変更して使用
   block01群を比較UIに差し替え
   ============================================================ */
.truth-section {
  max-width: 62.5rem;
  padding-top: 0;
  padding-bottom: 5rem;
}

/* 導入テキスト */
.truth-intro {
  max-width: 42rem;
  margin: 0 auto 1.5rem;
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--c-text);
  text-align: center;
}
.truth-intro p {
  margin-bottom: 0.75rem;
}
.truth-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0;
}
.truth-list li {
  font-weight: 700;
  padding: 0.25rem 0;
}
.truth-list li::before {
  content: "・";
}
.truth-list--wrong li {
  color: var(--c-danger);
}

/* 2カラム比較 */
.truth-compare {
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.truth-col {
  flex: 1;
  padding: 2rem 1.75rem;
  border-radius: 1rem;
  background: var(--c-white);
}
.truth-col--ng {
  border: 2px solid var(--c-danger-border);
}
.truth-col--ok {
  border: 2px solid var(--c-sub-bg);
}
.truth-badge {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  padding: 0.25rem 0.875rem;
  border-radius: 0.25rem;
  color: var(--c-white);
  margin-bottom: 0.875rem;
}
.truth-badge--ng {
  background: var(--c-danger);
}
.truth-badge--ok {
  background: var(--mainBlue);
}
.truth-col-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.truth-col--ng .truth-col-title {
  color: var(--c-danger-dark);
}
.truth-col--ok .truth-col-title {
  color: var(--mainBlue);
}
.truth-col-list {
  list-style: none;
  padding: 0;
}
.truth-col-list li {
  font-size: 1rem;
  color: var(--c-text-muted);
  line-height: 2;
  padding-left: 1.25em;
  position: relative;
}
.truth-col-list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* 結論ボックス */
.truth-result {
  max-width: 42rem;
  margin: 0 auto;
  background: var(--c-danger-bg);
  border: 1px solid var(--c-danger-bg-2);
  border-left: 4px solid var(--c-danger);
  border-radius: 0.5rem;
  padding: 2rem 2.25rem;
}
.truth-result-label {
  font-size: 1.125rem;
  font-weight: 900;
  color: var(--c-danger);
  margin-bottom: 0.75rem;
}
.truth-result-list {
  list-style: none;
  padding: 0;
  margin-bottom: 1.5rem;
}
.truth-result-list li {
  font-size: 1rem;
  font-weight: 600;
  color: var(--c-text-muted);
  line-height: 2;
  padding-left: 1.5rem;
  position: relative;
}
.truth-result-list li::before {
  content: "✕";
  position: absolute;
  left: 0;
  color: var(--c-danger);
  font-weight: 900;
}
.truth-result-conclusion {
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--c-text-dark);
  line-height: 1.7;
  border-top: 1px solid var(--c-bg-stroke-2);
  padding-top: 1.25rem;
  text-align: center;
}
.truth-result-conclusion span {
  color: var(--mainOrange);
  border-bottom: 3px solid rgba(var(--c-main-rgb), 0.25);
}

/* SP */
@media (max-width: 768px) {
  .truth-section {
    padding-top: 4rem;
    padding-bottom: 7.5rem;
  }
  .truth-intro {
    font-size: 2.048rem;
    text-align: left;
  }
  .truth-compare {
    flex-direction: column;
  }
  .truth-col {
    padding: 2.5rem 2rem;
    border-radius: 1.5rem;
  }
  .truth-badge {
    font-size: 1.536rem;
    padding: 0.4rem 1.25rem;
  }
  .truth-col-title {
    font-size: 2.304rem;
    margin-bottom: 1rem;
  }
  .truth-col-list li {
    font-size: 1.792rem;
    line-height: 2;
  }
  .truth-result {
    padding: 2.5rem 2rem;
  }
  .truth-result-label {
    font-size: 2.048rem;
  }
  .truth-result-list li {
    font-size: 1.792rem;
  }
  .truth-result-conclusion {
    font-size: 2.304rem;
  }
}

/* ============================================================
   Section03 Override - ④ サービス説明（セッションの流れ）
   section03の背景色 var(--c-accent-bubble) はそのまま効く
   中身をステップUIに差し替え
   ============================================================ */
.service-lead {
  text-align: center;
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--c-text);
  margin-bottom: 3rem;
}
.service-lead strong {
  color: var(--mainOrange);
  font-weight: 700;
}

/* ステップ — section07 の item01 構造を参考にしたデザイン */
.service-steps {
  list-style: none;
  padding: 0;
  margin: 0 auto 3.5rem;
  max-width: 42rem;
}
.service-step {
  background: white;
  border-radius: 1rem;
  gap: 2rem;
  padding: 1.75rem 2rem;
  position: relative;
}
.service-step:not(:last-child) {
  margin-bottom: 2.5rem;
}
/* 下向き三角（ステップ間） */
.service-step:not(:last-child)::before {
  position: absolute;
  content: "";
  width: 4rem;
  height: 1.25rem;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  background: var(--mainOrange);
  left: 50%;
  transform: translateX(-50%);
  bottom: -1.875rem;
}
.service-step-num {
  flex-shrink: 0;
  width: 3.5rem;
  height: 3.5rem;
  background: var(--gradationOrange);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 900;
}
.service-step-body {
  flex: 1;
}
.service-step-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--c-text-dark);
  border-bottom: 1px solid var(--mainOrange);
  padding-bottom: 0.4rem;
  margin-bottom: 0.5rem;
}
.service-step-text {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--c-text-muted);
}

@media (max-width: 768px) {
  .service-lead {
    font-size: 2.048rem;
    text-align: left;
  }
  .service-step {
    border-radius: 2.048rem;
    gap: 1.5rem;
    padding: 2.5rem 2rem;
  }
  .service-step:not(:last-child) {
    margin-bottom: 5rem;
  }
  .service-step:not(:last-child)::before {
    width: 8rem;
    height: 2.5rem;
    bottom: -3.75rem;
  }
  .service-step-num {
    width: 6rem;
    height: 6rem;
    font-size: 2.5rem;
  }
  .service-step-title {
    font-size: 2.304rem;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
  }
  .service-step-text {
    font-size: 2.048rem;
  }
}

/* ============================================================
   Section04 Override - ⑤ 成果物イメージ（10枚レポート）
   section04 の block01 構造（背景画像カード + text01ラベル）を流用
   ============================================================ */

/* レポートカード全体 */
.report-card {
  padding-bottom: 3rem !important;
}

/* レポートモック（資料風ビジュアル） */
.report-visual {
  width: 20.1875rem;
  flex-shrink: 0;
}
.report-mock {
  background: white;
  border: 1px solid var(--c-bg-cool-2);
  border-radius: 0.5rem;
  box-shadow: 0 4px 24px var(--c-shadow-soft), 0 1px 4px var(--c-shadow-very-faint);
  overflow: hidden;
  position: relative;
}
.report-mock-header {
  background: var(--gradationOrange);
  color: white;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.875rem 1.25rem;
  letter-spacing: 0.05em;
}
.report-mock-body {
  padding: 1.5rem 1.25rem 1rem;
}
.report-mock-line {
  height: 0.5rem;
  background: var(--c-bg-cool);
  border-radius: 2px;
  margin-bottom: 0.625rem;
}
.report-mock-line--title {
  height: 0.75rem;
  background: var(--c-text);
  width: 60%;
  margin-bottom: 1rem;
}
.report-mock-line--short {
  width: 45%;
}
.report-mock-chart {
  height: 4rem;
  background: linear-gradient(135deg, var(--c-accent-faint-2) 0%, var(--c-accent-light) 50%, var(--c-accent-bright) 100%);
  border-radius: 0.375rem;
  margin: 1rem 0;
  position: relative;
  overflow: hidden;
}
.report-mock-chart::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 15%;
  height: 60%;
  background: var(--mainOrange);
  border-radius: 0.25rem 0.25rem 0 0;
  opacity: 0.7;
}
.report-mock-chart::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 35%;
  width: 15%;
  height: 85%;
  background: var(--mainBlue);
  border-radius: 0.25rem 0.25rem 0 0;
  opacity: 0.6;
}
.report-mock-pages {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-text-light-2);
  padding: 0.5rem 0 0.75rem;
  border-top: 1px solid var(--c-bg-stroke-3);
}

/* 内容リスト 4カラム */
.report-contents {
  gap: 1.25rem;
  flex-wrap: wrap;
}
.report-item {
  flex: 1 1 calc(25% - 1rem);
  min-width: 12rem;
  background: white;
  border-radius: 0.75rem;
  padding: 1.5rem 1.25rem;
  border: 1px solid var(--c-bg-cool);
}
.report-item .text02 {
  font-size: 1.75rem;
  font-weight: 900;
  color: rgba(var(--c-sub-dark-rgb), 0.15);
  margin-bottom: 0.5rem;
  line-height: 1;
}
.report-item .text03 {
  font-size: 0.875rem;
  line-height: 1.75;
}
.report-item .text03 span {
  font-weight: 700;
  color: var(--c-text-dark);
  display: block;
  font-size: 1rem;
  margin-bottom: 0.25rem;
}

/* 結論テキスト */
.report-conclusion {
  text-align: center;
  font-size: 1.375rem;
  font-weight: 900;
  color: var(--c-text-dark);
  margin-top: 2.5rem;
  line-height: 1.7;
}

@media (max-width: 768px) {
  .report-visual {
    width: 100%;
    margin-bottom: 2rem;
  }
  .report-mock-header {
    font-size: 1.536rem;
    padding: 1.25rem 1.5rem;
  }
  .report-mock-body {
    padding: 2rem 1.5rem 1.25rem;
  }
  .report-mock-line { height: 0.75rem; margin-bottom: 0.875rem; }
  .report-mock-line--title { height: 1rem; margin-bottom: 1.5rem; }
  .report-mock-chart { height: 6rem; margin: 1.5rem 0; }
  .report-mock-pages { font-size: 1.28rem; padding: 0.75rem 0 1rem; }
  .report-contents {
    flex-direction: column;
    gap: 1.5rem;
  }
  .report-item {
    flex: none;
    min-width: 0;
    padding: 2rem 1.5rem;
    border-radius: 1.5rem;
  }
  .report-item .text02 {
    font-size: 3rem;
  }
  .report-item .text03 {
    font-size: 1.792rem;
  }
  .report-item .text03 span {
    font-size: 2.048rem;
  }
  .report-conclusion {
    font-size: 2.304rem;
  }
}

/* ============================================================
   Section05 Override - ⑥ お客様の声
   section05 の背景 var(--c-accent-bubble) + block01 構造を流用
   ============================================================ */
.voice-card {
  padding: 2rem 2.5rem 2.5rem !important;
}
.voice-card .wrap01 {
  flex-direction: column;
  gap: 1rem;
}
.voice-card-header {
  margin-bottom: 0;
}
.voice-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.voice-avatar {
  width: 3.5rem;
  height: 3.5rem;
  flex-shrink: 0;
  background: var(--mainBlue);
  color: var(--c-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 900;
}
.voice-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--c-text-dark);
}
.voice-industry {
  font-size: 0.8125rem;
  color: var(--c-text-light);
}
.voice-card .text02 {
  font-size: 1rem;
  line-height: 1.85;
  color: var(--c-text-mid);
}
.voice-highlight {
  color: var(--mainOrange);
  font-weight: 700;
}
@media (max-width: 768px) {
  .voice-card {
    padding: 3rem 2.5rem 3.5rem !important;
  }
  .voice-avatar {
    width: 6rem;
    height: 6rem;
    font-size: 2rem;
  }
  .voice-name { font-size: 2.048rem; }
  .voice-industry { font-size: 1.536rem; }
  .voice-card .text02 { font-size: 2.048rem; }
}

/* ============================================================
   Section06 Override - ⑦ コンサル紹介
   section06 の block01 構造を流用
   ============================================================ */
.consultant-photo-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.consultant-badges-sp {
  display: none;
}
.consultant-card {
  border-color: var(--c-bg-cool-2) !important;
  border-radius: 1rem;
}
.consultant-layout {
  gap: 2.5rem;
}
.consultant-photo {
  width: 16rem;
  flex-shrink: 0;
}
.consultant-img {
  width: 100%;
  border-radius: 0.75rem;
  object-fit: cover;
}
.consultant-profile {
  flex: 1;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.consultant-name {
  font-size: 1.75rem;
  font-weight: 900;
  color: var(--c-text-dark);
  margin-bottom: 0.25rem;
}
.consultant-title {
  font-size: 0.9375rem;
  color: var(--c-text-light);
  font-weight: 600;
  margin-bottom: 1.25rem;
  line-height: 1.5;
}
.consultant-bio {
  margin-bottom: 1.5rem !important;
}
.consultant-bio strong {
  color: var(--mainOrange);
}
.consultant-badges {
  gap: 0.5rem;
}
.consultant-badge {
  display: inline-block;
  background: var(--c-bg-light-3);
  border: 1px solid var(--c-bg-cool-2);
  border-radius: 2rem;
  padding: 0.4rem 1rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--mainBlue);
}
@media (max-width: 768px) {
  .consultant-layout {
    flex-direction: column;
    gap: 2rem;
  }
  .consultant-photo-col {
    display: flex;
    flex-direction: row;
    gap: 1.2rem;
    width: 100%;
    align-items: flex-start;
  }
  .consultant-photo {
    width: 50%;
    max-width: 20rem;
    margin: 0;
    flex-shrink: 0;
  }
  .consultant-badges-sp {
    display: flex !important;
    flex: 1;
    flex-direction: column !important;
    gap: 1.4rem;
    align-self: center;
  }
  .consultant-badges-pc {
    display: none !important;
  }
  .consultant-name { font-size: 3.072rem; }
  .consultant-title { font-size: 1.792rem; margin-bottom: 2rem; }
  .consultant-bio { font-size: 2.048rem !important; }
  .consultant-badge { font-size: 1.536rem; padding: 0.6rem 1.5rem; }
}

/* ============================================================
   Section07 Override - ⑨ 料金
   section07 の背景 var(--c-accent-bubble) を流用
   ============================================================ */
.pricing-box {
  max-width: 28rem;
  margin: 0 auto 3rem;
  text-align: center;
}
.pricing-label {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--c-text-light);
  letter-spacing: 0.1em;
  margin-bottom: 0.25rem;
}
.pricing-label--special {
  color: var(--c-white);
  background: var(--mainOrange);
  display: inline-block;
  padding: 0.3rem 1.25rem;
  border-radius: 2rem;
  font-size: 0.9375rem;
  margin-bottom: 0.5rem;
}
.pricing-amount {
  font-weight: 900;
  line-height: 1.1;
}
.pricing-amount--old {
  font-size: 2.5rem;
  color: var(--c-text-lighter);
  text-decoration: line-through;
  text-decoration-color: var(--c-danger);
  text-decoration-thickness: 2px;
}
.pricing-amount--new {
  font-size: 4.5rem;
  color: var(--mainOrange);
}
.pricing-tax {
  font-size: 0.875rem;
  color: var(--c-text-light);
  margin-top: 0.25rem;
}
.pricing-arrow {
  width: 0;
  height: 0;
  border-left: 1.5rem solid transparent;
  border-right: 1.5rem solid transparent;
  border-top: 1.25rem solid var(--mainOrange);
  margin: 1.25rem auto;
}
.pricing-normal {
  padding: 1.5rem 0;
}
.pricing-special {
  background: var(--c-white);
  border: 3px solid var(--mainOrange);
  border-radius: 1rem;
  padding: 2rem 1.5rem;
}
.pricing-limit {
  font-size: 1rem;
  font-weight: 700;
  color: var(--c-danger);
  margin-top: 1.25rem;
}
.pricing-limit strong {
  font-size: 1.25rem;
}
@media (max-width: 768px) {
  .pricing-box { max-width: 100%; }
  .pricing-label { font-size: 1.792rem; }
  .pricing-label--special { font-size: 1.792rem; padding: 0.5rem 2rem; }
  .pricing-amount--old { font-size: 4rem; }
  .pricing-amount--new { font-size: 7rem; }
  .pricing-tax { font-size: 1.536rem; }
  .pricing-arrow {
    border-left-width: 2.5rem;
    border-right-width: 2.5rem;
    border-top-width: 2rem;
    margin: 2rem auto;
  }
  .pricing-special { padding: 3rem 2rem; border-radius: 2rem; }
  .pricing-limit { font-size: 2.048rem; }
  .pricing-limit strong { font-size: 2.56rem; }
}

/* ============================================================
   ⑩ 最終CTA セクション
   ============================================================ */
.final-cta-section {
  background: linear-gradient(180deg, var(--c-sub-dark) 0%, var(--c-sub-darker) 100%);
  padding: 5rem 0;
  text-align: center;
}
.final-cta-heading {
  font-size: 2rem;
  font-weight: 900;
  color: var(--c-white);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.final-cta-heading span {
  color: var(--c-accent);
}
.final-cta-text {
  font-size: 1.125rem;
  color: var(--c-white-overlay-mid-2);
  margin-bottom: 2.5rem;
  line-height: 1.7;
}
.final-cta-section .c-btn {
  background: linear-gradient(180deg, var(--c-main-grad-from) 0%, var(--c-main-grad-to) 100%);
  box-shadow: 0 0.25rem 1rem rgba(var(--c-main-grad-to-rgb), 0.35);
  max-width: 32rem;
}
.final-cta-section .c-btn .c-text01 {
  border-color: var(--c-main-light);
}
.final-cta-section .c-btn .c-text02 {
  font-size: 1.25rem;
}
@media (max-width: 768px) {
  .final-cta-section { padding: 7.5rem 0; }
  .final-cta-heading { font-size: 3.328rem; }
  .final-cta-text { font-size: 2.048rem; margin-bottom: 5rem; }
  .final-cta-section .c-btn { max-width: 42rem; }
  .final-cta-section .c-btn .c-text02 { font-size: 2rem; }
}

/* ============================================================
   CV改善 - CTA補足テキスト
   ============================================================ */
.cta-wrap {
  text-align: center;
  padding-top: 1.5rem;
}
@media (max-width: 768px) {
  .cta-wrap {
    padding-top: 3rem; /* c-text01 の top:-2.25rem 分 + 余裕 */
  }
}
.cta-sub {
  font-size: 0.8125rem;
  color: var(--c-text-light);
  margin-top: 0.875rem;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
.cta-sub strong {
  color: var(--mainOrange);
  font-weight: 900;
  font-size: 0.9375rem;
}
@media (max-width: 768px) {
  .cta-sub {
    font-size: 1.536rem;
    margin-top: 1.5rem;
  }
  .cta-sub strong {
    font-size: 1.792rem;
  }
}

/* ============================================================
   CV改善 - スマホCTAサイズアップ
   ============================================================ */
@media (max-width: 768px) {
  .c-btn {
    min-height: 7rem;
    padding: 3.5rem 0 3rem !important;
  }
  .c-btn .c-text01 {
    top: -2.75rem !important;
  }
}

/* ============================================================
   CV改善 - 追従CTA（スマホ限定）
   ============================================================ */
.sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: 1rem 1.25rem;
  padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  background: var(--c-white-overlay-strong);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 -2px 12px var(--c-shadow-mid);
}
.sticky-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  width: 100%;
  background: linear-gradient(180deg, var(--c-sub-light) 0%, var(--c-sub-dark) 100%);
  color: var(--c-white);
  border-radius: 5rem;
  padding: 1.75rem 2rem;
  font-weight: 700;
  box-shadow: 0 0.4rem 0.8rem rgba(var(--c-sub-dark-rgb), 0.3);
}
.sticky-cta-price {
  background: var(--c-white);
  color: var(--mainOrange);
  font-size: 1.792rem;
  font-weight: 900;
  padding: 0.3rem 1rem;
  border-radius: 2rem;
  line-height: 1.2;
}
.sticky-cta-text {
  font-size: 2.048rem;
  letter-spacing: 0.02em;
}
/* 追従CTAが出ているときbodyの下に余白 */
@media (max-width: 750px) {
  body {
    padding-bottom: 7rem;
  }
}

/* ============================================================
   CV改善 - 不安解消セクション
   ============================================================ */
.reassure-section {
  background: var(--c-bg-light);
  padding: 3rem 0;
}
.reassure-grid {
  display: flex;
  gap: 1.25rem;
  justify-content: center;
  flex-wrap: wrap;
}
.reassure-item {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--c-white);
  border: 1px solid var(--c-bg-cool);
  border-radius: 0.75rem;
  padding: 0.875rem 1.25rem;
  min-width: 11rem;
}
.reassure-icon {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  background: var(--mainBlue);
  color: var(--c-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 900;
}
.reassure-text {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--c-text);
  line-height: 1.4;
}
.reassure-text strong {
  color: var(--mainBlue);
}
@media (max-width: 768px) {
  .reassure-section {
    padding: 5rem 0;
  }
  .reassure-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
  .reassure-item {
    padding: 1.5rem 1.25rem;
    min-width: 0;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  .reassure-icon {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1.5rem;
  }
  .reassure-text {
    font-size: 1.792rem;
  }
}

/* ============================================================
   CV改善 - 料金の理由テキスト
   ============================================================ */
.pricing-reason {
  font-size: 0.875rem;
  color: var(--c-text-light);
  text-align: center;
  margin-top: 1rem;
  line-height: 1.7;
}
@media (max-width: 768px) {
  .pricing-reason {
    font-size: 1.792rem;
    margin-top: 2rem;
  }
}

/* ============================================================
   CV改善 - スマホ全体最適化
   ============================================================ */
@media (max-width: 768px) {
  /* 横スクロール防止 */
  html, body {
    overflow-x: hidden;
    max-width: 100%;
  }
  /* 行間広げ */
  .section01 .text00,
  .section02 .text02,
  .section03 .text05,
  .section04 .text03,
  .section05 .text02,
  .truth-intro,
  .truth-col-list li,
  .service-step-text,
  .voice-card .text02,
  .consultant-bio {
    line-height: 1.8 !important;
  }
  /* カード内余白 */
  .truth-col {
    padding: 3rem 2.25rem !important;
  }
  /* フォーム領域 追従CTA分の余白 */
  .section09 {
    padding-bottom: 8rem;
  }
}

/* ============================================================
   最終CV調整
   ============================================================ */

/* 追従CTA: 残り枠 + 税込small */
.sticky-cta-limit {
  text-align: center;
  font-size: 1.28rem;
  font-weight: 700;
  color: var(--c-danger);
  margin-top: 0.5rem;
  line-height: 1;
}
.sticky-cta-price small {
  font-size: 1.28rem;
  font-weight: 500;
  opacity: 0.8;
}

/* お客様の声: 社会的証明テキスト */
.voice-social-proof {
  color: var(--c-text-light) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  margin-top: -1.5rem;
  padding-bottom: 2rem;
}
@media (max-width: 768px) {
  .voice-social-proof {
    font-size: 1.792rem !important;
    margin-top: -2.5rem;
    padding-bottom: 3rem;
  }
}

/* ============================================================
   信頼性・安心感の最終調整
   ============================================================ */

/* ① cta-sub直下の注釈（数字の信頼性） */
.cta-note {
  font-size: 0.6875rem;
  color: var(--c-text-lighter);
  margin-top: 0.375rem;
  letter-spacing: 0.01em;
  line-height: 1.5;
  text-align: center;
}
@media (max-width: 768px) {
  .cta-note { font-size: 1.28rem; margin-top: 0.625rem; }
}

/* ② 返金保証テキスト（料金セクション内） */
.pricing-guarantee {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--mainBlue);
  text-align: center;
  margin-top: 1rem;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .pricing-guarantee { font-size: 1.792rem; margin-top: 1.5rem; }
}

/* ③ 最終CTA直前の安心テキスト */
.final-cta-reassure {
  font-size: 0.9375rem;
  color: var(--c-white-overlay-light);
  margin-bottom: 2rem;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .final-cta-reassure { font-size: 1.792rem; margin-bottom: 4rem; }
}

/* ④ フォーム上部の安心要素 */
.form-reassure {
  gap: 1.25rem;
  margin-bottom: 2rem;
}
.form-reassure-item {
  font-size: 0.8125rem;
  color: var(--c-text-light);
  background: var(--c-bg-light);
  border: 1px solid var(--c-bg-cool);
  border-radius: 2rem;
  padding: 0.4rem 1rem;
  white-space: nowrap;
}
.form-reassure-item strong {
  color: var(--mainBlue);
  font-weight: 700;
}
@media (max-width: 768px) {
  .form-reassure { gap: 1rem; justify-content: center; }
  .form-reassure-item { font-size: 1.536rem; padding: 0.6rem 1.5rem; }
}

/* ============================================================
   Before / After セクション
   ============================================================ */
.ba-section {
  padding: 4rem 0;
  background: var(--c-white);
}
.ba-grid {
  gap: 1.5rem;
  max-width: 42rem;
  margin: 0 auto;
}
.ba-col {
  flex: 1;
  padding: 2rem 1.75rem;
  border-radius: 1rem;
}
.ba-col--before {
  background: var(--c-danger-bg);
  border: 2px solid var(--c-danger-border);
}
.ba-col--after {
  background: var(--c-bg-light-2);
  border: 2px solid var(--c-sub-bg);
}
.ba-label {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  padding: 0.2rem 0.875rem;
  border-radius: 0.25rem;
  display: inline-block;
  color: var(--c-white);
  margin-bottom: 1rem;
}
.ba-label--before { background: var(--c-danger); }
.ba-label--after { background: var(--mainBlue); }
.ba-list {
  list-style: none;
  padding: 0;
}
.ba-list li {
  font-size: 1rem;
  font-weight: 600;
  line-height: 2;
  padding-left: 1.25em;
  position: relative;
}
.ba-col--before .ba-list li { color: var(--c-danger-dark); }
.ba-col--after .ba-list li { color: var(--mainBlue); }
.ba-list li::before {
  position: absolute;
  left: 0;
}
.ba-col--before .ba-list li::before { content: "✕"; color: var(--c-danger); font-weight: 900; }
.ba-col--after .ba-list li::before { content: "✓"; color: var(--mainBlue); font-weight: 900; }

/* 矢印 */
.ba-arrow {
  flex-shrink: 0;
  align-self: center;
  width: 0;
  height: 0;
  border-top: 1rem solid transparent;
  border-bottom: 1rem solid transparent;
  border-left: 1.25rem solid var(--mainOrange);
}

@media (max-width: 768px) {
  .ba-section { padding: 3rem 0; }
  .ba-grid {
    flex-direction: column;
    gap: 0;
  }
  .ba-col {
    padding: 2.5rem 2rem;
    border-radius: 1.5rem;
  }
  .ba-label { font-size: 1.536rem; padding: 0.3rem 1.25rem; }
  .ba-list li { font-size: 1.792rem; }
  .ba-arrow {
    align-self: center;
    border-top: none;
    border-bottom: none;
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    border-top: 1.25rem solid var(--mainOrange);
    margin: 1.25rem 0;
  }
}


/* ============================================================
   PC表示: スマホ用CSSを常時適用（メディアクエリなし）
   ============================================================ */
.pc {display: none;}
  .sp {display: block;}

.c-inner_s,
  .c-inner_m,
  .c-inner_l {
    padding: 4rem 0;
  }

.c-title {
  & .c-text01 {
    font-size: 1.792rem;
    padding-bottom: 0.75rem;
  }
    & .c-text02 {
      font-size: 2.304rem;
      font-weight: 700 !important;
      margin: 0.5rem auto 0.25rem;
    }
  & .c-heading01 {
    font-size: 3.328rem;
    padding-bottom: 4rem;
  }
}

.c-btn {
  max-width: 38.4rem;
  border-radius: 5.12rem;
  padding: 3rem 0 2.5rem;
  box-shadow: 0 0.512rem 0.512rem var(--c-shadow-strong);
  &.left {
    margin: 0 auto;
  }
  & .c-text01 {
    font-size: 1.792rem;
    border-radius: 5.12rem;
    max-width: 21.76rem;
    top: -2.25rem;
    & .normal {
      font-size: 1.792rem;
    }
    & .big {
      font-size: 3.072rem;
    }
  }
  
  & .c-text02 {
    font-size: 2.304rem;
    gap: 1.5rem;
    &::after {
      width: 1.25rem;
      height: 1.25rem;
    }
  }
}

.fv {
  background-image: url(assets/img/bg/fv_background-sp.webp);
  padding: 4rem 0 3rem;
  & .inner {
    width: 92.5%;
  }
  & .wrap01 {
    width: 100%;
  }
  & .heading01 {
    width: 43.008rem;
  }
  & .text01 {
    font-size: 1.536rem;
  }
  & .img02 {
    width: 16.64rem;
  }
}

.section01 {
  & .block01 {
    width: 100%;
  }
  & .list01 {
    margin-bottom: 6rem;
  }
  & .item01 {
    padding: 0;
    height: 12.8rem;
    &.small {
      max-width: 100%;
    }
    &.large {
      max-width: 100%;
    }
    &::before,
    &::after {
      width: 2.816rem;
      height: 2.816rem;
    }
    &::before {
      top: -0.384rem;
      left: -0.384rem;
    }
    &::after {
      bottom: -0.384rem;
      right: -0.384rem;
    }
  }
  & .heading01 {
    font-size: 3.776rem;
    margin: 0 auto 5rem;
    &::after {
      height: 1rem;
    }
    &::before {
      height: 3.328rem;
      width: 6.4rem;
      bottom: -4.16rem;
    }
  }
  & .text00 {
    font-size: 2.048rem;
    & span {
      font-size: 2.304rem;
    }
  }
  & .text01 {
    font-size: 2.048rem;
    margin-bottom: 6rem;
  }
}

.section02 {
  & .block01 {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
    & .wrap01 {
      left: auto;
      right: auto;
    }
    &.reverse {
      margin: 0 auto;
      & .wrap01 {
        left: auto;
        right: auto;
      }
    }
    &:not(:last-child) {
      margin-bottom: 6.5rem;
    }
  }
  & .wrap01 {
    position: relative;
    max-width: 90%;
    width: 90%;
    margin: 0 auto;
  }
  & .heading01 {
    font-size: 2.816rem;
    margin-bottom: 5rem;
  }
  & .text01 {
    font-size: 5.12rem;
    margin-bottom: 1rem;
  }
  & .text02 {
    font-size: 2.048rem;
  }
  & .img01 {
    width: 100%;
    position: absolute;
    left: 0;
    right: 0;
    &.img01-01{
      top: 2rem;
    }
    &.img01-02{
      top: 3.5rem;
    }
    &.img01-03{
      top: -2rem;
    }
    &.img01-04{
      top: 4rem;
    }
  }
}

.section03 {
  & .swiper {
    overflow: visible;
    margin-bottom: 8rem;
  }
  & .block01 {
    box-shadow: 0 0 1.28rem var(--c-shadow-strong);
    border-radius: 2.048rem;
    padding: 3rem 2.5rem 3.5rem;
  }
  & .wrap01{
    flex-direction: column-reverse;
    gap: 1.5rem;
  }
  & .wrap02 {
    border-radius: 1.536rem;
    padding: 2rem 1.8rem;
  }
  & .wrap03{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  & .texts01 {
    flex-direction: column;
    align-items: start;
    gap: 1.5rem;
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
  }
  & .texts02 {
    margin-bottom: 1.6rem;
  }
  & .texts03 {
    flex-direction: column;
    align-items: start;
    &:not(:last-child) {
      margin-bottom: 1.5rem;
    }
  }
  & .texts04{
    gap: 1.5rem;
  }
  & .heading01 {
    font-size: 2.816rem;
  }
  & .heading02 {
    font-size: 2.304rem;
    margin-bottom: 1.5rem;
    & span {
      text-underline-offset: -0.64rem;
      text-decoration-thickness: 1.408rem;
    }
  }
  & .heading03 {
    font-size: 2.048rem;
    margin-bottom: 1.25rem;
  }
  & .text01 {
    font-size: 1.792rem;
    padding: 0.5rem 2rem 0.3rem;
    border-radius: 1.664rem;
  }
  & .text03 {
    font-size: 1.92rem;
  }
  & .text04,
  & .text05 {
    font-size: 1.792rem;
  }
  & .text04 {
    padding: 0.5rem;
  }
  & .img01 {
    height: auto;
    width: 11.52rem;
    position: relative;
    right: auto;
    top: auto;
  }
  & .img02 {
    width: 4.832rem;
  }
  & .movie {
    & iframe,
    & img {
      width: 25.088rem;
    }
  }
}
.swiper-button-prev,
.swiper-button-next {
  width: 3.84rem !important;
  height: 3.84rem !important;
  top: 20rem !important;
  &::after {
    font-size: 1.5rem !important;
    color: white !important;
    font-weight: 500 !important;
  }
}
.swiper-button-prev{
  left: -1.85rem !important;
}
.swiper-button-next {
  right: -1.85rem !important;
}

.section04 {
  & .block01 {
    background-image: url(assets/img/bg/section04_background-sp.webp);
    border-radius: 2.048rem;
    padding: 5rem 2.5rem 4rem;
    &:not(:last-child) {
      margin-bottom: 5rem;
    }
  }
  & .list01 {
    width: 100%;
  }
  & .item01 {
    width: 100%;
    &:not(:first-child){
      margin-top: 1rem;
    }
  }
  & .wrap01 {
    flex-direction: column;
    gap: 2rem;
  }
  & .wrap02{
    flex-direction: column;
    gap: 1.25rem;
  }
  & .texts02 {
    &:not(:last-child) {
      margin-bottom: 1.25rem;
    }
  }
  & .heading01 {
    margin-top: 2rem;
    & .small {
      font-size: 2.048rem;
    }
    & .middle {
      font-size: 2.816rem;
    }
    & .big {
      font-size: 2.816rem;
      & span{
        font-size: 2.7rem;
      }
    }
    &.left {
      margin-bottom: 1.25rem;
    }
    &.sp-center{
      text-align: center;
    }
  }
  & .text01 {
    width: auto;
    text-align: center;
    font-size: 2.1rem;
    padding: 0.5rem 2rem 0.75rem;
    border-radius: 2.816rem;
    top: -2.5rem;
  }
  & .text02 {
    font-size: 2.304rem;
  }
  & .text03 {
    font-size: 1.792rem;
  }
  & .img01 {
    width: 100%;
  }
}

.section05 {
  & .item01 {
    gap: 1rem;
    &:not(:last-child) {
      margin-bottom: 3rem;
    }
  }
  & .wrap01 {
    gap: 2rem;
    flex-direction: column;
  }
  & .wrap02 {
    margin-top: 5rem;
    overflow-x: scroll;
  }
  & .texts01 {
    border-radius: 2.048rem;
    padding: 2rem 2.25rem;
    margin-bottom: 5rem;
    &::after {
      width: 8.32rem;
      height: 3.072rem;
      bottom: -2.944rem;
    }
  }
  & .texts02 {
    border-radius: 2.048rem;
    padding: 2.5rem 2rem 2rem;
  }
  & .heading01 {
    font-size: 2.816rem;
    &.bottom {
      padding: 0.75rem 0;
    }
  }
  & .heading02 {
    font-size: 2.56rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    &::after {
      width: 3.84rem;
      height: 0.512rem;
    }
  }
  & .heading02 {
    font-family: 2.56rem;
  }
  & .text01 {
    font-size: 2.048rem;
    margin-top: 1.25rem;
  }
  & .text02 {
    font-size: 2.048rem;
    &.center {
      text-align: left;
    }
  }
  & .text03 {
    font-size: 1.536rem;
    margin: 1.5rem auto 5rem;
  }
  & .text04 {
    font-size: 2.048rem;
    width: 3.84rem;
    height: 3.84rem;
    line-height: 3.84rem;
  }
  & .img02{
    max-width: none;
    &.img02-01{
      width: 69.888rem;
    }
    &.img02-02{
      width: 55.552rem;
    }
  }
  }

.section06 {
  overflow: hidden;
  & .inner {
    padding: 12.5rem 0 7.5rem;
  }
  & .block01 {
    padding: 5rem 2rem 3rem;
    margin-bottom: 6.5rem;
  }
  & .wrap01 {
    gap: 1rem;
    flex-direction: column;
    margin-bottom: 3.5rem;
  }
  & .option-swiper{
    width: 33rem;
    overflow: visible;
  }
  & .swiper-button-prev {
    left: -4rem !important;
  }
  & .swiper-button-next {
    right: -4rem !important;
  }
  & .texts01 {
    width: 100%;
    top: -6rem;
  }
  & .texts03 {
    flex-direction: column;
    gap: 1rem;
    padding: 0 1.25rem 0.8rem;
    margin-bottom: 0.85rem;
  }
  & .heading01 {
    font-size: 2.048rem;
    border-radius: 3.2rem;
    padding: 0.8rem 0;
    width: 39.04rem;
  }
  & .heading02 {
    font-size: 2.048rem;
    letter-spacing: 0.075em;
    & .small {
      font-size: 2.56rem;
    }
    & .big {
      font-size: 5.12rem;
    }
    &::before {
      font-size: 1.536rem;
      right: 2rem;
    }
  }
  & .text01 {
    font-size: 1.792rem;
    margin: 0 auto 1rem;
    &::after,
    &::before {
      width: 1.92rem;
      height: 2px;
    }
    &::before {
      left: -2.5rem;
    }
    &::after {
      right: -2.5rem;
    }
  }
  & .text02 {
    font-size: 1.536rem;
  }
  & .text03{
    font-size: 2.048rem;
  }
  & .img01 {
    width: 22.656rem;
  }
}

.section07 {
  & .list01 {
    margin-bottom: 6.5rem;
  }
  & .item01 {
    border-radius: 2.048rem;
    align-items: start;
    gap: 1.5rem;
    padding: 2.5rem 2rem;
    &:not(:last-child) {
      margin-bottom: 5.5rem;
      &::before {
        width: 11.52rem;
        height: 3.2rem;
        bottom: -4.25rem;
      }
    }
  }
  & .heading01 {
    font-size: 2.56rem;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
  }
  & .text01 {
    font-size: 2.048rem;
    line-height: 1.5;
  }
  & .link01 {
    font-size: 2.048rem;
    border-radius: 2.816rem;
    padding: 1.1rem 0 1.25rem;
    margin-top: 1rem;
    max-width: none;
  }
  & .img01 {
    width: 9.6rem;
    padding-top: 2rem;
  }
}

.section08 {
  & .list01 {
    margin-bottom: 6.5rem;
  }
  & .item01 {
    border-radius: 0.64rem;
    &:not(:last-child) {
      margin-bottom: 2.25rem;
    }
  }
  & .wrap01 {
    border-radius: 0.64rem;
    padding: 1.5rem 1.25rem 1.65rem;
  }
  & .wrap02 {
    border-radius: 0.64rem;
    &.active {
      padding: 1.35rem 1.5rem;
    }
  }
  & .texts01 {
    align-items: start;
  }
  & .text01 {
    font-size: 2.304rem;
  }
  & .text02 {
    font-size: 2.048rem;
  }
  & .a,
  & .q {
    font-size: 2.816rem;
  }
  & .icon {
    height: 0.768rem;
    width: 1.792rem;
    padding-top: 0.5rem;
    &::after {
      height: 0.768rem;
      width: 1.792rem;
    }
  }
}

.section09 {
  padding: 7.5rem 0 7.5rem;
  & .inner {
    border-radius: 2.048rem;
    padding: 5rem 0;
  }
  & .wrap01 {
    &:not(:last-child) {
      margin-bottom: 3.5rem;
    }
  }
  & .wrap02 {
    margin: 0 auto 3rem;
  }
  & .texts01 {
    gap: 2.5rem;
    margin-bottom: 2.25rem;
  }
  & .mw_wp_form {
    max-width: 38.912rem;
    width: 100%;
  }
  & .form-input,
  & .form-textarea {
    border-radius: 0.64rem !important;
    font-size: 2.048rem;
    padding: 1.25rem 1.25rem;
  }
  & .form-btn {
    max-width: 34.56rem;
    padding: 0.9rem 0 1rem;
    font-size: 3.072rem;
    border-radius: 3.2rem;
  }
  & .text01,
  & .text03 {
    font-size: 2.048rem;
  }
  & .text02 {
    font-size: 1.536rem;
    border-radius: 0.384rem;
    padding: 0.25rem 1.25rem 0.25rem;
  }
  & .text03 {
    font-size: 2.048rem;
    margin-bottom: 0.5rem;
    &:not(:first-child) {
      margin-top: 0.75rem;
    }
  }
  & .link01 {
    font-size: 1.792rem;
  }
}

.footer{
  padding: 3rem 0;
  & .text01{
    font-size: 1.792rem;
  }
}

.fv {
    position: relative;
    overflow: hidden;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .fv .inner {
    position: relative;
    z-index: 2;
  }
  .fv .wrap01 {
    position: relative;
    z-index: 2;
  }

  /* イラスト — ペパコミ同様にしっかり見せる（右側に配置、テキストと共存） */
  .fv .fv-illust {
    display: block !important;
    position: absolute;
    top: auto;
    bottom: 0;
    right: -1rem;
    width: 55%;
    max-width: 26rem;
    opacity: 0.85;
    z-index: 1;
    pointer-events: none;
  }

  /* ロゴ */
  .fv .fv-logo {
    margin-bottom: 0.75rem;
  }
  .fv .fv-logo-img {
    height: 4rem;
  }

  /* オレンジ帯 — ペパコミ同様に左端から横長 */
  .fv .fv-orange-bar {
    font-size: 1.408rem;
    padding: 0.5rem 1.5rem 0.5rem 5%;
    margin-left: -5%;
    margin-bottom: 1.25rem;
    border-radius: 0 1.25rem 1.25rem 0;
    display: inline-block;
    text-align: left;
    background: linear-gradient(90deg, var(--mainOrange) 0%, var(--c-main-grad-from) 75%, rgba(var(--c-main-grad-from-rgb), 0) 100%);
    line-height: 1.5;
  }

  /* 見出し — サイズの強弱を大きくつける */
  .fv .heading01.fv-text-heading {
    width: 100%;
    gap: 0;
    margin-bottom: 1rem;
  }
  .fv .fv-main-copy {
    line-height: 1.15;
  }
  .fv .fv-line1 {
    font-size: 2.56rem;
    margin-bottom: 0.25rem;
  }
  .fv .fv-line2 {
    font-size: 5rem;
    line-height: 1.1;
  }
  .fv .fv-line3 {
    font-size: 5rem;
    line-height: 1.1;
  }

  /* サブコピー */
  .fv .fv-subcopy-unified {
    font-size: 1.536rem;
    margin-bottom: 1rem;
    line-height: 1.6;
    max-width: 100%;
  }
  .fv .fv-guarantee-text {
    font-size: 1.536rem;
  }

  /* バッジ — ペパコミ同様に縦に3つ並べる */
  .fv .fv-badges {
    flex-direction: column;
    gap: 0.625rem;
    margin-bottom: 3.5rem; /* CTAの上ラベル分の余白を確保 */
    max-width: 55%;
  }
  .fv .fv-badge {
    max-width: none;
    min-width: 0;
    padding: 0.625rem 0.75rem;
    text-align: center;
    border-radius: 0.75rem;
  }
  .fv .fv-badge::before,
  .fv .fv-badge::after {
    width: 9rem;
    height: 288%;
  }
  .fv .fv-badge-small {
    font-size: 1.152rem;
  }
  .fv .fv-badge-big {
    font-size: 2.304rem;
  }
  .fv .fv-badge-big span {
    font-size: 1.28rem;
  }

  /* CTA */
  .fv .c-btn {
    max-width: 42rem;
  }
  .fv .c-btn .c-text02 {
    font-size: 1.792rem;
  }
  .fv .cta-wrap {
    margin-bottom: 0.75rem;
  }
  .fv .cta-sub {
    display: none;
  }
  .fv .text01 {
    position: relative;
    z-index: 2;
    font-size: 1.152rem;
  }

.section01 .mistakes-item {
    font-size: 2.048rem;
    padding: 1.5rem 0;
  }
  .section01 .mistakes-icon {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.2rem;
  }
  .section01 .mistakes-bottom {
    font-size: 2.304rem;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 4rem;
  }

.truth-section {
    padding-top: 4rem;
    padding-bottom: 7.5rem;
  }
  .truth-intro {
    font-size: 2.048rem;
    text-align: left;
  }
  .truth-compare {
    flex-direction: column;
  }
  .truth-col {
    padding: 2.5rem 2rem;
    border-radius: 1.5rem;
  }
  .truth-badge {
    font-size: 1.536rem;
    padding: 0.4rem 1.25rem;
  }
  .truth-col-title {
    font-size: 2.304rem;
    margin-bottom: 1rem;
  }
  .truth-col-list li {
    font-size: 1.792rem;
    line-height: 2;
  }
  .truth-result {
    padding: 2.5rem 2rem;
  }
  .truth-result-label {
    font-size: 2.048rem;
  }
  .truth-result-list li {
    font-size: 1.792rem;
  }
  .truth-result-conclusion {
    font-size: 2.304rem;
  }

.service-lead {
    font-size: 2.048rem;
    text-align: left;
  }
  .service-step {
    border-radius: 2.048rem;
    gap: 1.5rem;
    padding: 2.5rem 2rem;
  }
  .service-step:not(:last-child) {
    margin-bottom: 5rem;
  }
  .service-step:not(:last-child)::before {
    width: 8rem;
    height: 2.5rem;
    bottom: -3.75rem;
  }
  .service-step-num {
    width: 6rem;
    height: 6rem;
    font-size: 2.5rem;
  }
  .service-step-title {
    font-size: 2.304rem;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
  }
  .service-step-text {
    font-size: 2.048rem;
  }

.report-visual {
    width: 100%;
    margin-bottom: 2rem;
  }
  .report-mock-header {
    font-size: 1.536rem;
    padding: 1.25rem 1.5rem;
  }
  .report-mock-body {
    padding: 2rem 1.5rem 1.25rem;
  }
  .report-mock-line { height: 0.75rem; margin-bottom: 0.875rem; }
  .report-mock-line--title { height: 1rem; margin-bottom: 1.5rem; }
  .report-mock-chart { height: 6rem; margin: 1.5rem 0; }
  .report-mock-pages { font-size: 1.28rem; padding: 0.75rem 0 1rem; }
  .report-contents {
    flex-direction: column;
    gap: 1.5rem;
  }
  .report-item {
    flex: none;
    min-width: 0;
    padding: 2rem 1.5rem;
    border-radius: 1.5rem;
  }
  .report-item .text02 {
    font-size: 3rem;
  }
  .report-item .text03 {
    font-size: 1.792rem;
  }
  .report-item .text03 span {
    font-size: 2.048rem;
  }
  .report-conclusion {
    font-size: 2.304rem;
  }

.voice-card {
    padding: 3rem 2.5rem 3.5rem !important;
  }
  .voice-avatar {
    width: 6rem;
    height: 6rem;
    font-size: 2rem;
  }
  .voice-name { font-size: 2.048rem; }
  .voice-industry { font-size: 1.536rem; }
  .voice-card .text02 { font-size: 2.048rem; }

.consultant-layout {
    flex-direction: column;
    gap: 2rem;
  }
  .consultant-photo-col {
    display: flex;
    flex-direction: row;
    gap: 1.2rem;
    width: 100%;
    align-items: flex-start;
  }
  .consultant-photo {
    width: 50%;
    max-width: 20rem;
    margin: 0;
    flex-shrink: 0;
  }
  .consultant-badges-sp {
    display: flex !important;
    flex: 1;
    flex-direction: column !important;
    gap: 1.4rem;
    align-self: center;
  }
  .consultant-badges-pc {
    display: none !important;
  }
  .consultant-name { font-size: 3.072rem; }
  .consultant-title { font-size: 1.792rem; margin-bottom: 2rem; }
  .consultant-bio { font-size: 2.048rem !important; }
  .consultant-badge { font-size: 1.536rem; padding: 0.6rem 1.5rem; }

.pricing-box { max-width: 100%; }
  .pricing-label { font-size: 1.792rem; }
  .pricing-label--special { font-size: 1.792rem; padding: 0.5rem 2rem; }
  .pricing-amount--old { font-size: 4rem; }
  .pricing-amount--new { font-size: 7rem; }
  .pricing-tax { font-size: 1.536rem; }
  .pricing-arrow {
    border-left-width: 2.5rem;
    border-right-width: 2.5rem;
    border-top-width: 2rem;
    margin: 2rem auto;
  }
  .pricing-special { padding: 3rem 2rem; border-radius: 2rem; }
  .pricing-limit { font-size: 2.048rem; }
  .pricing-limit strong { font-size: 2.56rem; }

.final-cta-section { padding: 7.5rem 0; }
  .final-cta-heading { font-size: 3.328rem; }
  .final-cta-text { font-size: 2.048rem; margin-bottom: 5rem; }
  .final-cta-section .c-btn { max-width: 42rem; }
  .final-cta-section .c-btn .c-text02 { font-size: 2rem; }

.cta-wrap {
    padding-top: 3rem; /* c-text01 の top:-2.25rem 分 + 余裕 */
  }

.cta-sub {
    font-size: 1.536rem;
    margin-top: 1.5rem;
  }
  .cta-sub strong {
    font-size: 1.792rem;
  }

.c-btn {
    min-height: 7rem;
    padding: 3.5rem 0 3rem !important;
  }
  .c-btn .c-text01 {
    top: -2.75rem !important;
  }

body {
    padding-bottom: 7rem;
  }

.reassure-section {
    padding: 5rem 0;
  }
  .reassure-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
  .reassure-item {
    padding: 1.5rem 1.25rem;
    min-width: 0;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  .reassure-icon {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1.5rem;
  }
  .reassure-text {
    font-size: 1.792rem;
  }

.pricing-reason {
    font-size: 1.792rem;
    margin-top: 2rem;
  }

/* 横スクロール防止 */
  html, body {
    overflow-x: hidden;
    max-width: 100%;
  }
  /* 行間広げ */
  .section01 .text00,
  .section02 .text02,
  .section03 .text05,
  .section04 .text03,
  .section05 .text02,
  .truth-intro,
  .truth-col-list li,
  .service-step-text,
  .voice-card .text02,
  .consultant-bio {
    line-height: 1.8 !important;
  }
  /* カード内余白 */
  .truth-col {
    padding: 3rem 2.25rem !important;
  }
  /* フォーム領域 追従CTA分の余白 */
  .section09 {
    padding-bottom: 8rem;
  }

.voice-social-proof {
    font-size: 1.792rem !important;
    margin-top: -2.5rem;
    padding-bottom: 3rem;
  }

.cta-note { font-size: 1.28rem; margin-top: 0.625rem; }

.pricing-guarantee { font-size: 1.792rem; margin-top: 1.5rem; }

.final-cta-reassure { font-size: 1.792rem; margin-bottom: 4rem; }

.form-reassure { gap: 1rem; justify-content: center; }
  .form-reassure-item { font-size: 1.536rem; padding: 0.6rem 1.5rem; }

.ba-section { padding: 3rem 0; }
  .ba-grid {
    flex-direction: column;
    gap: 0;
  }
  .ba-col {
    padding: 2.5rem 2rem;
    border-radius: 1.5rem;
  }
  .ba-label { font-size: 1.536rem; padding: 0.3rem 1.25rem; }
  .ba-list li { font-size: 1.792rem; }
  .ba-arrow {
    align-self: center;
    border-top: none;
    border-bottom: none;
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    border-top: 1.25rem solid var(--mainOrange);
    margin: 1.25rem 0;
  }


/* SP/PC 表示切替: 常にスマホ表示 */
.pc { display: none !important; }
.sp { display: block !important; }

/* PC表示: コンテンツ幅を制限して中央配置 */
@media (min-width: 769px) {
  body {
    max-width: 720px;
    margin: 0 auto;
  }
  /* 固定CTAボタン: LP幅に合わせて中央配置 */
  .sticky-cta {
    width: 720px;
    max-width: 720px;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    margin-top: 0.25rem;
  }
  /* カルーセル: overflow修正 + ナビボタンを内側に */
  .voice-section,
  .section05 {
    overflow: hidden;
  }
  .voice-swiper {
    overflow: hidden !important;
    position: relative;
  }
  .voice-swiper .swiper-button-prev,
  .voice-swiper .swiper-button-next {
    display: flex !important;
  }
  .voice-swiper .swiper-button-prev {
    left: 0.5rem !important;
  }
  .voice-swiper .swiper-button-next {
    right: 0.5rem !important;
  }
  /* FV: 文字サイズがウィンドウ幅で巨大にならないよう固定 */
  .fv .heading01.fv-text-heading {
    font-size: 3rem !important;
  }
}

/* ============================================================
   最終レター: 紙っぽい背景
   ============================================================ */
.final-letter-section {
  background: var(--c-bg-warm);
  padding: 3rem 0;
}
.letter-paper {
  background: var(--c-accent-soft);
  border-radius: 0.5rem;
  padding: 2.5rem 2rem;
  box-shadow:
    0 1px 4px var(--c-shadow-softer),
    0 4px 16px var(--c-shadow-very-faint);
  border: 1px solid var(--c-shadow-softer);
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 1.9rem,
      var(--c-warm-shadow) 1.9rem,
      var(--c-warm-shadow) 2rem
    );
  background-position: 0 0.5rem;
  font-size: 0.9375rem;
  line-height: 2rem;
  color: var(--c-text);
}
.letter-paper p {
  margin-bottom: 1.5rem;
}
.letter-paper strong {
  color: var(--mainOrange);
}
.letter-paper ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.letter-paper ul li {
  margin-bottom: 0.25rem;
}
@media (max-width: 768px) {
  .final-letter-section { padding: 5rem 0; }
  .letter-paper {
    padding: 4rem 2.5rem;
    font-size: 1.792rem;
    line-height: 1.9;
    border-radius: 1rem;
  }
  .letter-paper p { margin-bottom: 2.5rem; }
}

/* 最終CTA: 青背景 + レターテキスト */
.final-cta-content {
  text-align: left;
  color: var(--c-white-overlay-mid);
  font-size: 1.792rem;
  line-height: 1.9;
}
.final-cta-content p {
  margin-bottom: 2rem;
}
.final-cta-content strong {
  color: var(--c-accent);
}
.final-cta-content ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.25rem;
}
.final-cta-content ul li {
  margin-bottom: 0.3rem;
}
@media (max-width: 768px) {
  .final-cta-content {
    font-size: 1.792rem;
    line-height: 1.8;
  }
  .final-cta-content p { margin-bottom: 2rem; }
}

/* カルーセル矢印: カード枠外に小さく配置 */
.voice-swiper {
  padding: 0 2.5rem 3rem !important;
  position: relative;
}
.voice-swiper .swiper-button-prev,
.voice-swiper .swiper-button-next {
  width: 2rem !important;
  height: 2rem !important;
  background: transparent !important;
  color: var(--c-text-light-2) !important;
  top: 50% !important;
}
.voice-swiper .swiper-button-prev::after,
.voice-swiper .swiper-button-next::after {
  font-size: 1.5rem !important;
  font-weight: 900 !important;
  color: var(--mainOrange) !important;
}
.voice-swiper .swiper-button-prev {
  left: 0 !important;
}
.voice-swiper .swiper-button-next {
  right: 0 !important;
}

/* ============================================================
   コンサルタントのメッセージセクション
   ============================================================ */
.message-section {
  background: var(--c-accent-bubble);
}
.message-content {
  font-size: 1.6875rem;
  line-height: 2;
  color: var(--c-text);
}
.message-content p {
  margin-bottom: 1.5rem;
}
.message-content strong {
  color: var(--mainOrange);
}
.message-content ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.message-content ul li {
  margin-bottom: 0.25rem;
}
.message-signature {
  text-align: right;
  font-family: "Yuji Boku", serif;
  font-size: 2.25rem;
  font-weight: 400;
  color: var(--c-text-dark);
  margin-top: 2.5rem;
  margin-bottom: 0 !important;
  letter-spacing: 0.2em;
}
@media (max-width: 768px) {
  .message-content {
    font-size: 1.792rem;
    line-height: 1.9;
  }
  .message-content p { margin-bottom: 2.5rem; }
  .message-signature {
    font-size: 3.2rem;
    margin-top: 4rem;
  }
}

/* ========================================
   Secret Movie（限定公開動画）
   ======================================== */
.section-secret-movie {
  padding: 5rem 0;
  background: linear-gradient(180deg, var(--c-sub-navy-dark) 0%, var(--c-sub-navy) 100%);
  color: var(--c-white);
  position: relative;
  overflow: hidden;
}
.section-secret-movie::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(var(--c-sub-light-rgb), 0.15), transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(var(--c-accent-dark-rgb), 0.10), transparent 40%);
  pointer-events: none;
}
.section-secret-movie .inner { position: relative; z-index: 1; }
.section-secret-movie .c-title .c-text01 {
  color: var(--c-accent-dark);
  letter-spacing: 0.2em;
}
.section-secret-movie .c-title .c-heading01 {
  color: var(--c-white);
  padding-bottom: 2rem;
}
.section-secret-movie .c-title .c-heading01 span { color: var(--c-accent-dark); }
.secret-movie-lead {
  font-size: 1.25rem;
  line-height: 1.7;
  text-align: center;
  margin: 0 auto 0.75rem;
  max-width: 50rem;
}
.secret-movie-lead strong {
  color: var(--c-accent-dark);
  font-weight: 700 !important;
  font-size: 1.5rem;
}
.secret-movie-sub {
  font-size: 1rem;
  line-height: 1.7;
  text-align: center;
  margin: 0 auto 2.5rem;
  opacity: 0.9;
}
.secret-movie-frame {
  max-width: 56rem;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.5);
  border: 2px solid rgba(var(--c-accent-dark-rgb), 0.4);
  background: var(--c-black);
}
.secret-movie-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
@media(max-width: 768px) {
  .section-secret-movie {
    padding: 6rem 0;
  }
  .secret-movie-lead {
    font-size: 2.048rem;
    padding: 0 2rem;
  }
  .secret-movie-lead strong {
    font-size: 2.56rem;
  }
  .secret-movie-sub {
    font-size: 1.792rem;
    padding: 0 2rem;
    margin-bottom: 3rem;
  }
  .secret-movie-frame {
    width: 92%;
    border-radius: 1.5rem;
  }
}
