@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

@charset "UTF-8";

/* ===========================
   LP共通リセット
=========================== */
html, body {
  margin: 0;
  padding: 0;
}

/* SP用改行ユーティリティ */
.lp-br-sp {
  display: none;
}

@media (max-width: 768px) {
  .lp-br-sp {
    display: inline;
  }
}

.lp-wrap {
  font-family: 'Noto Sans JP', sans-serif;
  color: #212121;
  line-height: 1.8;
}

.lp-wrap * {
  box-sizing: border-box;
}

/* ===========================
   LPヘッダー
=========================== */
.lp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid #E8E8E8;
  padding: 12px 0;
}

.lp-header__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.lp-header__logo {
  display: flex;
  align-items: center;
  line-height: 0;
}

.lp-header__logo img {
  display: block;
  height: 40px;
  width: auto;
}

.lp-header__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #2C5F2D;
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(14px, 1.39vw, 20px);
  font-style: normal;
  font-weight: 500;
  line-height: 150%;
  letter-spacing: 0.06em;
  padding: 10px 20px;
  border-radius: 6px;
  text-decoration: none;
  transition: opacity 0.2s;
}

.lp-header__cta:hover {
  opacity: 0.85;
}

.lp-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

/* ===========================
   FVセクション
=========================== */
.lp-fv {
  position: relative;
  background: #FFFFFF;
  overflow: hidden;
  min-height: calc(100vh - 64px);
  min-height: calc(100dvh - 64px);
}

.lp-fv__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 40px;
  min-height: calc(100vh - 64px);
  min-height: calc(100dvh - 64px);
  display: flex;
  align-items: center;
}

.lp-fv__content {
  max-width: 760px;
}

/* タグライン */
.lp-fv__tag {
  display: inline-block;
  color: #2C5F2D;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(11px, 1.67vw, 24px);
  font-style: normal;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0.06em;
  white-space: nowrap;
  border: 1px solid #2C5F2D;
  border-radius: 20px;
  padding: 8px 20px;
  margin-top: 20px;
  margin-bottom: 0;
}

/* h1 */
.lp-fv__title {
  color: #1A1A1A;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(26px, 3.89vw, 56px);
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: 0.06em;
  margin-top: 0.33em;
  margin-bottom: 20px;
}

.lp-fv__title--accent {
  color: #2C5F2D;
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* 説明文 */
.lp-fv__desc {
  color: #2D2D2D;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(13px, 1.11vw, 16px);
  font-style: normal;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
}

/* CTAボタン */
.lp-fv__btns {
  display: flex;
  gap: 12px;
  flex-wrap: nowrap;
  margin-bottom: 20px;
}

.lp-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 24px;
  border-radius: 6px;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.2s;
  cursor: pointer;
}

.lp-btn:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.lp-btn--primary {
  background: #2C5F2D;
  color: #FFFFFF;
  border: 2px solid #2C5F2D;
}

.lp-btn--primary small {
  font-size: 12px;
  font-weight: 400;
}

.lp-btn--outline {
  background: #FFFFFF;
  color: #2C5F2D;
  border: 2px solid #2C5F2D;
}

/* バッジ */
.lp-fv__badges {
  display: flex;
  gap: 12px;
  flex-wrap: nowrap;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.lp-badge {
  white-space: nowrap;
}

.lp-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #525252;
  background: #F5F5F5;
  border-radius: 20px;
  padding: 4px 14px;
}

.lp-badge__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  color: #2C5F2D;
}

/* 画像エリア（ヒーローセクション全面背景） */
.lp-fv__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.lp-fv__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* テキスト可読性のためのオーバーレイ（左側ほど白くフェード） */
.lp-fv::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(255, 255, 255, 0.75) 40%,
    rgba(255, 255, 255, 0) 75%
  );
  z-index: 0;
}

/* ===========================
   SP対応
=========================== */
@media (max-width: 768px) {
  .lp-header__inner {
    padding: 0 20px;
  }

  .lp-fv {
    min-height: auto;
  }

  .lp-fv__inner {
    padding: 32px 20px 16px;
    align-items: flex-end;
  }

  .lp-fv__img img {
    object-position: calc(100% + 110px) center;
  }

  /* SPでは背景画像をやや薄めに見せ、テキスト可読性を確保 */
  .lp-fv::before {
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.92) 0%,
      rgba(255, 255, 255, 0.75) 60%,
      rgba(255, 255, 255, 0.6) 100%
    );
  }

  .lp-fv__btns {
    flex-direction: column;
  }

  .lp-btn {
    justify-content: center;
    width: 100%;
  }
}

/* ===========================
   共通セクション
=========================== */
.lp-sec {
  padding: 80px 0;
}

.lp-sec__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

/* セクションヘッド */
.lp-sec-head {
  text-align: center;
  margin-bottom: 48px;
}

.lp-sec-head__sparkle {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
  line-height: 0;
}

.lp-sec-head__num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 12px;
}

.lp-sec-head__deco {
  display: block;
  width: 324.002px;
  height: 1px;
  background: #E8B339;
}

.lp-sec-head__label {
  font-size: 18px;
  font-weight: 700;
  color: #2C5F2D;
  letter-spacing: 0.1em;
}

.lp-sec-head__title {
  color: #2C5F2D;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(16px, 2.5vw, 36px);
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}

.lp-sec-head__lead {
  font-size: 14px;
  line-height: 1.9;
  color: #525252;
  text-align: left;
}

/* ポイントカード */
.lp-sec01 .lp-sec__inner {
  max-width: 1240px;
}

.lp-point-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.lp-point-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: #FFFFFF;
  border: 1px solid #E8E8E8;
  border-radius: 8px;
  padding: 24px;
  position: relative;
}

.lp-point-card__icon {
  flex-shrink: 0;
  width: 81px;
  height: 77px;
  aspect-ratio: 81 / 77;
  margin-top: 41px;
}

.lp-point-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lp-point-card__body {
  flex: 1;
  min-width: 0;
}

.lp-point-badge {
  display: inline-block;
  background: #2C5F2D;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 16px;
  letter-spacing: 0.05em;
}

.lp-point-card--warning .lp-point-badge {
  background: #D01B2C;
}

.lp-point-card__title {
  font-size: 16px;
  font-weight: 700;
  color: #212121;
  margin: 0 0 10px;
  line-height: 1.5;
}

.lp-point-card__text {
  font-size: 13px;
  line-height: 1.8;
  color: #525252;
  margin: 0;
}

/* SP */
@media (max-width: 768px) {
  .lp-sec {
    padding: 56px 0;
  }

  .lp-sec__inner {
    padding: 0 20px;
  }

  .lp-point-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ===========================
   セクション02：お悩み
=========================== */
.lp-sec02 {
  background: #F7F7F5;
}

.lp-worry-box {
  background: #FFF;
  border: 1px solid rgba(0, 0, 0, 0.10);
  border-radius: 6px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  padding: 40px 56px;
  max-width: 760px;
  margin: 0 auto 28px;
}

.lp-worry-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lp-worry-list__item {
  position: relative;
  padding-left: 36px;
  font-size: 15px;
  line-height: 1.9;
  color: #212121;
}

.lp-worry-list__item + .lp-worry-list__item {
  margin-top: 8px;
}

.lp-worry-list__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 24px;
  height: 24px;
  background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14 24.5C15.3789 24.5 16.7443 24.2284 18.0182 23.7007C19.2921 23.1731 20.4496 22.3996 21.4246 21.4246C22.3996 20.4496 23.1731 19.2921 23.7007 18.0182C24.2284 16.7443 24.5 15.3789 24.5 14C24.5 12.6211 24.2284 11.2557 23.7007 9.98182C23.1731 8.70791 22.3996 7.55039 21.4246 6.57538C20.4496 5.60036 19.2921 4.82694 18.0182 4.29926C16.7443 3.77159 15.3789 3.5 14 3.5C11.2152 3.5 8.54451 4.60625 6.57538 6.57538C4.60625 8.54451 3.5 11.2152 3.5 14C3.5 16.7848 4.60625 19.4555 6.57538 21.4246C8.54451 23.3938 11.2152 24.5 14 24.5ZM13.7293 18.2467L19.5627 11.2467L17.7707 9.75333L12.754 15.7722L10.1582 13.1752L8.5085 14.8248L12.0085 18.3248L12.9115 19.2278L13.7293 18.2467Z' fill='%23E8B339'/%3E%3C/svg%3E") no-repeat center / contain;
}

.lp-sec02__note {
  font-size: 14px;
  line-height: 1.9;
  color: #525252;
  text-align: left;
}

@media (max-width: 768px) {
  .lp-worry-box {
    padding: 24px 20px;
  }

  .lp-worry-list__item {
    font-size: 14px;
    padding-left: 28px;
  }

  .lp-sec02__note br {
    display: none;
  }
}

/* ===========================
   セクション03：サービス内容
=========================== */
.lp-service-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.lp-service-card {
  background: #FFF;
  border: 1px solid #E8E8E8;
  border-radius: 8px;
  padding: 24px 16px 28px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lp-service-badge {
  display: inline-block;
  background: #2C5F2D;
  color: #FFF;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 16px;
  letter-spacing: 0.05em;
}

.lp-service-card__title {
  font-size: 15px;
  font-weight: 700;
  color: #2C5F2D;
  line-height: 1.4;
  margin: 0 0 12px;
  min-height: 2.8em;
}

.lp-service-card__text {
  font-size: 12px;
  line-height: 1.7;
  color: #525252;
  margin: 0;
  min-height: 3.4em;
}

.lp-service-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 72px;
}

.lp-service-card__icon img {
  object-fit: contain;
}

.lp-service-card__icon--01 img {
  width: 71px;
  height: 72px;
}

.lp-service-card__icon--02 img {
  width: 50px;
  height: 50px;
  aspect-ratio: 1 / 1;
}

.lp-service-card__icon--03 img {
  width: 77px;
  height: 72px;
  aspect-ratio: 16 / 15;
}

.lp-service-card__icon--04 img {
  width: 58px;
  height: 62px;
  aspect-ratio: 72 / 77;
}

.lp-service-card__icon--05 img {
  width: 58px;
  height: 58px;
  aspect-ratio: 1 / 1;
}

/* ===========================
   セクション04：タイムライン
=========================== */
.lp-timeline {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  position: relative;
  margin-bottom: 95px;
}

.lp-timeline::before {
  content: "";
  position: absolute;
  top: 14px;
  left: calc((100% - 32px) / 10);
  right: calc((100% - 32px) / 10);
  height: 2px;
  background: #E8B339;
  z-index: 0;
}

.lp-timeline__item {
  text-align: center;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lp-timeline__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #E8B339;
  color: #FFF;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}

.lp-timeline__day {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 10px;
  background: #FFF8E0;
  border-radius: 12px;
  color: #B8862C;
  font-size: 12px;
  font-weight: 700;
}

.lp-timeline__title {
  margin: 16px 0 8px;
  font-size: 14px;
  font-weight: 700;
  color: #212121;
  line-height: 1.4;
}

.lp-timeline__text {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: #525252;
}

.lp-sec04__note {
  margin: 0 auto;
  max-width: 560px;
  padding: 12px 20px;
  background: #F1F2E8;
  border-radius: 6px;
  color: #2C5F2D;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 1.08px;
}

/* ===========================
   SP対応（セクション03・04）
=========================== */
@media (max-width: 768px) {
  .lp-service-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .lp-timeline {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0;
  }

  .lp-timeline::before {
    display: none;
  }
}

/* ===========================
   セクション05：料金表
=========================== */
.lp-sec05 {
  background: #F1F2E8;
}

.lp-pricing {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  grid-template-areas:
    "plans included"
    "note included";
  gap: 16px;
  align-items: start;
}

.lp-pricing__plans {
  grid-area: plans;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.lp-pricing__note {
  grid-area: note;
  margin: 0;
  padding: 14px 20px;
  background: #E5E8D0;
  border-radius: 6px;
  text-align: center;
  color: #525252;
  font-size: 13px;
}

.lp-pricing__included {
  grid-area: included;
  background: #FFF;
  border: 1px solid #E0E0E0;
  border-radius: 8px;
  padding: 24px 20px;
}

/* プラン */
.lp-plan {
  background: #FFF;
  border: 1px solid #E0E0E0;
  border-radius: 8px;
  padding: 28px 12px 24px;
  text-align: center;
  position: relative;
}

.lp-plan--recommended {
  background: #FFF6DD;
  border-color: #E8B339;
}

.lp-plan__ribbon {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: #E8B339;
  color: #FFF;
  padding: 3px 14px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.lp-plan__title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  color: #2C5F2D;
  line-height: 1.4;
}

.lp-plan__desc {
  margin: 0 0 18px;
  font-size: 11px;
  line-height: 1.6;
  color: #525252;
  min-height: 2.4em;
}

.lp-plan__price {
  margin: 0;
  font-weight: 700;
  color: #212121;
  line-height: 1;
}

.lp-plan__price-num {
  font-size: 22px;
}

.lp-plan__price-yen {
  font-size: 13px;
  margin-left: 2px;
}

.lp-plan__price--text {
  font-size: 18px;
}

.lp-plan__price-tax {
  margin: 6px 0 0;
  font-size: 11px;
  font-weight: 400;
  color: #525252;
}

/* 含まれるもの */
.lp-pricing__included-title {
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 700;
  color: #212121;
}

.lp-pricing__included-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lp-pricing__included-item {
  position: relative;
  padding-left: 26px;
  font-size: 12px;
  line-height: 1.7;
  color: #525252;
}

.lp-pricing__included-item + .lp-pricing__included-item {
  margin-top: 10px;
}

.lp-pricing__included-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14 24.5C15.3789 24.5 16.7443 24.2284 18.0182 23.7007C19.2921 23.1731 20.4496 22.3996 21.4246 21.4246C22.3996 20.4496 23.1731 19.2921 23.7007 18.0182C24.2284 16.7443 24.5 15.3789 24.5 14C24.5 12.6211 24.2284 11.2557 23.7007 9.98182C23.1731 8.70791 22.3996 7.55039 21.4246 6.57538C20.4496 5.60036 19.2921 4.82694 18.0182 4.29926C16.7443 3.77159 15.3789 3.5 14 3.5C11.2152 3.5 8.54451 4.60625 6.57538 6.57538C4.60625 8.54451 3.5 11.2152 3.5 14C3.5 16.7848 4.60625 19.4555 6.57538 21.4246C8.54451 23.3938 11.2152 24.5 14 24.5ZM13.7293 18.2467L19.5627 11.2467L17.7707 9.75333L12.754 15.7722L10.1582 13.1752L8.5085 14.8248L12.0085 18.3248L12.9115 19.2278L13.7293 18.2467Z' fill='%232C5F2D'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ===========================
   セクション06：選ばれる理由
=========================== */
.lp-reason-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.lp-reason-card {
  background: #FFF;
  border: 1px solid #E8E8E8;
  border-radius: 8px;
  padding: 24px;
}

.lp-reason-card__head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.lp-reason-card__icon {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #E8F0DD;
  color: #2C5F2D;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lp-reason-card__head-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lp-reason-badge {
  display: inline-block;
  align-self: flex-start;
  background: #2C5F2D;
  color: #FFF;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.05em;
}

.lp-reason-card__title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #212121;
  line-height: 1.4;
}

.lp-reason-card__text {
  margin: 0;
  font-size: 13px;
  line-height: 1.9;
  color: #525252;
}

/* ===========================
   SP対応（セクション05・06）
=========================== */
@media (max-width: 768px) {
  .lp-pricing {
    grid-template-columns: 1fr;
    grid-template-areas:
      "plans"
      "note"
      "included";
  }

  .lp-pricing__plans {
    grid-template-columns: repeat(2, 1fr);
  }

  .lp-reason-grid {
    grid-template-columns: 1fr;
  }
}

/* ===========================
   セクション07：FAQ
=========================== */
.lp-faq {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lp-faq__item {
  background: #FFF;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.lp-faq__question {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 16px 20px;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  color: #212121;
  font-size: 14px;
  font-weight: 500;
}

.lp-faq__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #2C5F2D;
  color: #FFF;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.lp-faq__text {
  flex: 1;
  line-height: 1.5;
}

.lp-faq__arrow {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #999;
  transition: transform 0.2s;
}

.lp-faq__item.is-open .lp-faq__arrow {
  transform: rotate(180deg);
}

.lp-faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.lp-faq__item.is-open .lp-faq__answer {
  max-height: 1000px;
}

.lp-faq__answer p {
  margin: 0;
  padding: 0 20px 18px 60px;
  font-size: 13px;
  line-height: 1.9;
  color: #525252;
}

@media (max-width: 768px) {
  .lp-faq__answer p {
    padding-left: 20px;
  }
}

/* ===========================
   お問い合わせ
=========================== */
.lp-contact {
  background: #2C5F2D;
}

.lp-sec-head--inline .lp-sec-head__title--inline {
  margin: 0;
  color: #FFF;
}

.lp-sec-head__num--with-title {
  gap: 24px;
}

.lp-form {
  max-width: 540px;
  margin: 0 auto;
  padding: 40px 48px;
  background: #FFF;
  border-radius: 8px;
}

.lp-form__group {
  margin-bottom: 18px;
}

.lp-form__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #212121;
}

.lp-form__tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.05em;
}

.lp-form__tag--optional {
  background: #E8E8E8;
  color: #525252;
}

.lp-form__tag--required {
  background: #D01B2C;
  color: #FFF;
}

.lp-form__input {
  width: 100%;
  padding: 10px 14px;
  background: #F5F5F5;
  border: 1px solid #E0E0E0;
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  color: #212121;
  box-sizing: border-box;
  transition: border-color 0.15s, background 0.15s;
}

.lp-form__input::placeholder {
  color: #B0B0B0;
}

.lp-form__input:focus {
  outline: none;
  border-color: #2C5F2D;
  background: #FFF;
}

.lp-form__input--textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.6;
}

.lp-form__agree {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 20px 0 18px;
  font-size: 13px;
  color: #525252;
  cursor: pointer;
}

.lp-form__checkbox {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #2C5F2D;
  cursor: pointer;
}

.lp-form__submit {
  display: block;
  width: 100%;
  padding: 14px 24px;
  background: #2C5F2D;
  color: #FFF;
  border: 0;
  border-radius: 4px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: opacity 0.2s;
}

.lp-form__submit:hover {
  opacity: 0.85;
}

@media (max-width: 768px) {
  .lp-form {
    padding: 28px 20px;
  }
}

/* ===========================
   フッター
=========================== */
.lp-footer {
  background: #1F4520;
  padding: 20px 0;
  text-align: center;
}

.lp-footer__copy {
  margin: 0;
  color: #FFF;
  font-size: 12px;
  letter-spacing: 0.05em;
}

/* ===========================
   SP対応（全体調整）
=========================== */
@media (max-width: 768px) {
  /* 共通: 見出し */
  .lp-sec-head {
    margin-bottom: 32px;
  }

  .lp-sec-head__deco {
    width: 32%;
    max-width: 120px;
  }

  .lp-sec-head__num {
    gap: 10px;
  }

  .lp-sec-head__title {
    margin-bottom: 12px;
  }

  .lp-sec-head__lead br {
    display: none;
  }

  .lp-sec-head__lead {
    font-size: 13px;
    line-height: 1.8;
  }

  /* セクション01: max-width解除 */
  .lp-sec01 .lp-sec__inner {
    max-width: 100%;
  }

  /* FV: タグ・タイトル */
  .lp-fv__content {
    max-width: 100%;
  }

  .lp-fv__desc br {
    display: none;
  }

  .lp-fv__badges {
    gap: 6px;
  }

  .lp-badge {
    font-size: 11px;
    padding: 3px 10px;
  }

  .lp-fv__tag {
    padding: 6px 14px;
    letter-spacing: 0.04em;
  }

  /* セクション01: ポイントカード */
  .lp-point-card {
    padding: 20px;
    gap: 14px;
  }

  .lp-point-card__icon {
    width: 56px;
    height: 56px;
    margin-top: 8px;
  }

  /* セクション03: サービス */
  .lp-service-card {
    padding: 20px 12px 14px;
  }

  .lp-service-card__title {
    font-size: 14px;
  }

  /* セクション04: タイムライン → 縦並びレイアウト */
  .lp-timeline__item {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    gap: 14px;
    padding-bottom: 16px;
    border-bottom: 1px dashed #E0D5A3;
  }

  .lp-timeline__item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }

  .lp-timeline__num {
    margin-top: 2px;
  }

  .lp-timeline__day {
    margin-top: 0;
  }

  .lp-timeline__title {
    margin: 0 0 4px;
  }

  .lp-sec04__note {
    font-size: 14px;
    letter-spacing: 0.04em;
    padding: 14px 18px;
  }

  /* セクション05: 料金表 */
  .lp-pricing {
    padding-top: 14px;
  }

  .lp-plan {
    padding: 24px 10px 20px;
  }

  .lp-plan__title {
    font-size: 16px;
  }

  .lp-plan__desc {
    min-height: 0;
    margin-bottom: 14px;
  }

  .lp-pricing__included {
    padding: 20px 18px;
  }

  /* セクション06: 選ばれる理由 */
  .lp-reason-card {
    padding: 20px;
  }

  .lp-reason-card__head {
    gap: 14px;
    margin-bottom: 12px;
  }

  .lp-reason-card__icon {
    width: 48px;
    height: 48px;
  }

  /* セクション07: FAQ */
  .lp-faq {
    gap: 10px;
  }

  .lp-faq__question {
    padding: 14px 16px;
    font-size: 13px;
    gap: 10px;
  }

  .lp-faq__icon {
    width: 22px;
    height: 22px;
    font-size: 11px;
  }

  /* お問い合わせ */
  .lp-sec-head--inline .lp-sec-head__num--with-title {
    flex-wrap: nowrap;
    gap: 12px;
  }

  .lp-sec-head--inline .lp-sec-head__deco {
    width: 16%;
    max-width: 60px;
  }

  .lp-sec-head__title--inline {
    font-size: clamp(20px, 5.5vw, 28px);
    white-space: nowrap;
  }

  .lp-form {
    padding: 28px 18px;
  }

  .lp-form__group {
    margin-bottom: 14px;
  }

  .lp-form__label {
    font-size: 12px;
  }

  .lp-form__input {
    font-size: 14px;
    padding: 9px 12px;
  }

  .lp-form__agree {
    font-size: 12px;
  }
}

/* ===========================
   SP対応（小型 ~480px）
=========================== */
@media (max-width: 480px) {
  .lp-sec {
    padding: 48px 0;
  }

  .lp-pricing__plans {
    grid-template-columns: 1fr;
  }

  .lp-plan__desc {
    min-height: 0;
  }

  .lp-fv__btns {
    gap: 8px;
  }

  /* ヘッダーCTAを小さく */
  .lp-header__cta {
    padding: 8px 12px;
    gap: 6px;
    font-size: 12px;
    letter-spacing: 0.04em;
  }

  .lp-header__cta .lp-btn-icon svg {
    width: 14px;
    height: 14px;
  }

  .lp-header__logo img {
    height: 32px;
  }
}

/* ===========================
   SP対応（極小 ~360px）
=========================== */
@media (max-width: 360px) {
  .lp-header__inner {
    padding: 0 14px;
  }

  .lp-header__cta {
    padding: 6px 10px;
    gap: 4px;
    font-size: 11px;
    letter-spacing: 0;
  }

  .lp-header__cta .lp-btn-icon svg {
    width: 12px;
    height: 12px;
  }

  .lp-header__logo img {
    height: 28px;
  }
}