@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
*/

ul.s2-list li {
  margin-bottom: 6px !important;
  margin-top: 0 !important;
}

ul.s2-list li + li {
  margin-top: 6px !important;
}

ul.s2-list li::before {
  color: #1d9e75 !important;
}

ul.s2-list li::marker {
  color: #1d9e75 !important;
}

ul.s2-list {
  max-width: 600px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.post_content
  h2:where(
    :not([class^='swell-block-']):not(.faq_q):not(.p-postList__title)
  )::before {
  border-top: none;
  border-bottom: none;
  /* border-top:solid 2px var(--color_htag); */
  /* border-bottom:solid 2px var(--color_htag); */
}

/* FVタイトル全体のリセットと基本設定 */
.lp-fv .fv-copy {
  margin: 0;
  padding: 0;
  background: none !important;
  border: none !important;
  box-shadow: none !important;

  /* font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif; */
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: #1a3d6e;
}

/* 行ごとに制御 */
.lp-fv .fv-copy__line {
  display: block;
}

/* 1行目→2行目の間を広めに */
.lp-fv .fv-copy__line--1 {
  margin-bottom: 0.42em;
}

/* 2行目→3行目の間をやや詰める */
.lp-fv .fv-copy__line--2 {
  margin-bottom: 0.08em;
}

.lp-fv .fv-copy__line--3 {
  margin-bottom: 0;
}

/* 「月1万円台」全体にマーカー風下線 */
.lp-fv .fv-copy__accent-wrap {
  display: inline-block;
  padding: 0 0.03em;
  background: linear-gradient(transparent 72%, rgba(244, 210, 94, 0.85) 72%);
}

/* 「1万円」だけ強調 */
.lp-fv .fv-copy__price {
  display: inline-block;
  color: #c89b2b;
  font-size: 1.22em;
  font-weight: 800;
  line-height: 1;
  vertical-align: baseline;
}

/* スマホ微調整 */
@media (max-width: 767px) {
  .lp-fv .fv-copy {
    font-size: clamp(24px, 7vw, 32px);
    line-height: 1.3;
    letter-spacing: 0.01em;
  }

  .lp-fv .fv-copy__line--1 {
    margin-bottom: 0.32em;
  }

  .lp-fv .fv-copy__line--2 {
    margin-bottom: 0.06em;
  }

  .lp-fv .fv-copy__price {
    font-size: 1.16em;
  }
}

.lp-fv .fv-copy {
  position: relative;
  display: inline-block;
  padding-bottom: 0.45em;
}

/* 見出し下のグラデーション線 */
.lp-fv .fv-copy::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(120, 170, 230, 0.55) 0%,
    rgba(170, 205, 245, 0.35) 45%,
    rgba(255, 255, 255, 0) 100%
  );
}

.fv-section {
  /*  height: 100vh; */
  position: relative;
}

.pc-py-80 {
  padding-bottom: 15em !important;
  padding-top: 8em !important;
}

@media (max-width: 767px) {
  .fv-section.swell-block-fullWide {
    background-position: 75% center !important;
  }
}

@media (max-width: 767px) {
  /* テキスト周囲の余白を確保 */
  .fv-section .swell-block-fullWide__inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* ボタンを中央揃えまたは左余白を追加 */
  .fv-section .swell-block-button {
    text-align: center !important;
  }
}

@media (max-width: 767px) {
  .lp-fv .fv-copy {
    font-size: clamp(20px, 5.5vw, 28px) !important;
  }
}

span.swl-format-1 {
  font-family: inter, serif;
}

/* 見出し装飾 */
.post_content .my-section-title_solutions {
  position: relative;
  padding-top: 0.8em;
}

.post_content .my-section-title_benefits {
  position: relative;
  padding-top: 0.8em;
}

.post_content .my-section-title_plans {
  position: relative;
  padding-top: 0.8em;
}

.post_content .my-section-title_testimonials {
  position: relative;
  padding-top: 0.8em;
}

.post_content .my-section-title_faq {
  position: relative;
  padding-top: 0.8em;
}

.post_content .my-section-title_contact {
  position: relative;
  padding-top: 0.8em;
}

.swell-block-fullWide__inner h2.is-style-section_ttl {
  margin-bottom: 12px !important;
}

/* solutions */
.post_content .my-section-title_solutions::before {
  content: '- Solutions -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

.solutions-section
  .is-style-clmn-shadow
  > .swell-block-columns__inner
  > .swell-block-column {
  background-color: #fff;
  box-shadow: var(--swl-box_shadow);
  color: #333;
}

.swell-block-column.swl-has-mb--s.solutions-card {
  border-radius: 16px;
}

.sol-suggestion-area {
  background-color: #142a53;
}

.wp-block-column.sol-suggesßtion.has-background {
  padding: 18px;
}

.wp-block-column.sol-suggestion.has-background {
  padding: 10px;
}

/* benefits: */
.post_content .my-section-title_benefits::before {
  content: '- Benefits -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

.benefits-label {
  display: inline-block;
  border-radius: 9999px;
  background: #0284c7;
  height: 28px;
  padding: 6px 12px;
}

.benefits-card {
  background: #f1f5f9;
  border-radius: 16px;
}

.benefits-section
  .is-style-clmn-shadow
  > .swell-block-columns__inner
  > .swell-block-column {
  background-color: #fff;
  background-color: #f1f5f9;
  box-shadow: var(--swl-box_shadow);
  color: #333;
}

.benefits-section .alignwide.swell-block-columns {
  padding-left: 30px !important;
  padding-right: 30px !important;
}

/* plans */
.post_content .my-section-title_plans::before {
  content: '- Services & Plans -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

.plans-label {
  display: inline-block;
  border-radius: 9999px;
  background: #f1f5f9;
  height: 28px;
  padding: 6px 12px;
}

.plans-card {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e2e8f0;
}

.plans-section
  .is-style-clmn-shadow
  > .swell-block-columns__inner
  > .swell-block-column {
  background-color: #fff;
  box-shadow: var(--swl-box_shadow);
  color: #333;
}

.plans-list {
  color: #475569;
}

ul.wp-block-list.is-style-check_list.plans-list {
  padding-left: 12%;
}

.service-list-detail {
  padding-left: 10%;
}

.is-style-check_list li:before {
  content: '\e923';
  color: #10b981;
}

.is-style-bad_list li,
.is-style-check_list li,
.is-style-good_list li,
.is-style-triangle_list li {
  padding-left: 1.6em;
}

.service-list-detail {
  border-top: 1px solid #f1f5f9;
  padding-top: 21px;
}

/* testimonials */
.post_content .my-section-title_testimonials::before {
  content: '- Testimonials -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

.user-image {
  padding-right: 10px;
}

.user-history {
  margin-top: -10px !important;
}

/* faq */
.post_content .my-section-title_faq::before {
  content: '- FAQ -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

/* contact */
.contact-row-col {
  background-color: #f8fafc;
  border-radius: 16px;
}

p.has-border.-border03.contact-description {
  /* padding-right: 38px; */
  width: 90%;
  border-radius: 12px;
  border: 1px solid #f1f5f9;
}

h3.wp-block-heading.has-text-align-left.is-style-section_ttl.vk_block-margin-xs--margin-bottom.u-mb-ctrl.u-mb-10.contact_h3 {
  font-family: 'Inter';
}

h2.wp-block-heading.has-text-align-left.is-style-section_ttl {
  font-family: 'Inter';
}

.post_content .my-section-title_contact::before {
  content: '- Contact -';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #0284c7;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  line-height: 1;
}

/* contact (cf7) */
.wpcf7 abbr {
  text-decoration: none;
  border-bottom: none;
}

.cf7-field-wrap label {
  display: block;
  margin-bottom: 4px;
}

.cf7-field-wrap label {
  display: block;
  margin-bottom: 4px !important;
}

.cf7-field-wrap p label {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.cf7-field-wrap br {
  display: none;
}

.has-swl-deep-02-color {
  /* color:var(--color_deep02)!important; */
  color: #fff !important;
}

/* フッターデザイン */

/* > アイコンを非表示 */
#footer .c-listMenu a::before {
  display: none !important;
}

/* アイコン分の左パディングをリセット */
#footer .c-listMenu a {
  padding-left: 0 !important;
}

/* メニュー項目間の横線を削除 */
#footer .c-listMenu__item {
  border-bottom: none !important;
}

/* 見出し下の横線を削除 */
#footer .c-widget__title-footer {
  border-bottom: none !important;
}

.c-listMenu a {
  border-bottom: none;
}

/* 見出し下・左の装飾線を削除 */
#footer .c-widget__title-footer {
  border-bottom: none !important;
  border-left: none !important;
  padding-left: 0 !important;
}

/* カラムの左パディングをリセット */
#footer .widget {
  padding-left: 0 !important;
}

/* メニュー項目の行間を広げる */
#footer .c-listMenu__item {
  margin-bottom: 14px !important;
}

/* メニューリンクのフォントサイズ・色 */
#footer .c-listMenu a {
  font-size: 14px;
  color: #a0b4cc;
}

#footer .c-listMenu a:hover {
  color: #ffffff;
}

#footer .c-widget__title.-footer::before,
#footer .c-widget__title.-footer::after {
  display: none !important;
}

/* 左カラムの右側にpaddingを追加 */
#footer .l-container.w-footer.-col3 > div:first-child {
  /* padding-right: 60px; */
}

/* フォントサイズ・色 */
#footer .textwidget p,
#footer .textwidget {
  font-size: 14px !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

/* 見出しタイトルの色も統一 */
#footer .c-widget__title.-footer {
  font-size: 14px !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

/* メニューリンク */
#footer .c-listMenu a {
  font-size: 14px !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

#footer .c-listMenu a:hover {
  color: rgba(255, 255, 255, 1) !important;
}

#footer .c-widget__title.-footer {
  padding: 0 !important;
}

@media (min-width: 768px) {
  #footer .l-container.w-footer.-col3 {
    display: flex;
    gap: 40px;
  }

  /* 左カラム（事務所名・説明） */
  #footer .l-container.w-footer.-col3 > div:nth-child(1) {
    flex: 2;
  }

  /* 中カラム（サイトメニュー） */
  #footer .l-container.w-footer.-col3 > div:nth-child(2) {
    flex: 1.5;
  }

  /* 右カラム（お問い合わせ） */
  #footer .l-container.w-footer.-col3 > div:nth-child(3) {
    flex: 2;
  }
}

.l-footer .copyright {
  text-align: left !important;
  padding-left: 2%;
  color: rgba(255, 255, 255, 0.3);
}

#footer .c-widget__title.-footer {
  font-size: 18px !important;
}

@media (min-width: 768px) {
  #footer .l-container.w-footer.-col3 > div:nth-child(2) {
    flex: 1.5;
    /*   padding-left: 14%; */
  }
}

.l-footer__foot,
.l-footer__widgetArea {
  padding: 48px 0;
}

/* フェードイン */

.js-fade {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
}

.js-fade.active {
  opacity: 1;
  transform: translateY(0);
}

.js-fade:nth-child(1) {
  transition-delay: 0.1s;
}
.js-fade:nth-child(2) {
  transition-delay: 0.2s;
}
.js-fade:nth-child(3) {
  transition-delay: 0.3s;
}

.wp-block-columns.alignwide.shadow_on.has-background {
  border-radius: 16px;
}

/* ===== LP グローバルナビ ===== */
.lp-nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 20px 0;
}

.lp-nav__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

.lp-nav__logo {
  font-size: 16px;
  font-weight: 700;
  color: #1a3d6e;
  white-space: nowrap;
}

.lp-nav__list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 32px;
}

.lp-nav__list li {
  margin: 0;
}

.lp-nav__list a {
  font-size: 14px;
  font-weight: 500;
  color: #1a3d6e;
  text-decoration: none;
  transition: opacity 0.2s;
}

.lp-nav__list a:hover {
  opacity: 0.6;
}

/* スマホではナビを非表示 */
@media (max-width: 767px) {
  .lp-nav {
    display: none;
  }
}

/* innerコンテナをrelativeの基準から外す */
.fv-section .swell-block-fullWide__inner {
  position: static !important;
}

/* fv-section自体をrelativeに */
.fv-section.swell-block-fullWide {
  position: relative !important;
}

/* ロゴのフォントサイズ・太字 */
.lp-nav__logo {
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* ナビ全体の左右位置をキャッチコピーに合わせる */
.lp-nav__inner {
  padding: 0 var(--swl-pad-container, 40px) !important;
}

/* .lp-nav__inner {
  padding-left: 56.5px !important;
  padding-right: 56.5px !important;
} */

.lp-nav__inner {
  padding-left: 40px !important;
  padding-right: 40px !important;
}

.lp-nav__inner {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
}

.lp-nav__cta {
  background-color: #1a3d6e;
  color: #ffffff !important;
  padding: 8px 20px !important;
  border-radius: 4px;
  font-weight: 600;
  transition: background-color 0.2s;
}

.lp-nav__cta:hover {
  background-color: #2a5a9e !important;
  opacity: 1 !important;
}

/* タブレット幅でのナビ調整 */
@media (max-width: 960px) {
  .lp-nav__inner {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  .lp-nav__logo {
    font-size: 18px !important;
  }

  .lp-nav__list {
    gap: 16px !important;
  }

  .lp-nav__list a {
    font-size: 12px !important;
  }
}

/* 768px以下はナビ非表示（既存設定） */
@media (max-width: 767px) {
  .lp-nav {
    display: none !important;
  }
}

/* FVセクション全体の左右余白を確保 */
@media (max-width: 960px) {
  .fv-section .swell-block-fullWide__inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

@media (max-width: 960px) {
  .lp-fv {
    /* padding-left: 20px !important; */
  }

  /* ナビも同じ左余白に */
  .lp-nav__inner {
    padding-left: 20px !important;
  }
}

@media (max-width: 960px) {
  .fv-section .l-container {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

/* 全セクションの左右余白を確保 */
@media (max-width: 1460px) {
  .swell-block-fullWide__inner.l-container {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

@media (max-width: 960px) {
  .swell-block-fullWide__inner.l-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* コンテナの最大幅を画面幅に合わせて拡張 */
.solutions-section .swell-block-fullWide__inner {
  max-width: 100% !important;
  padding-left: clamp(20px, 4vw, 60px) !important;
  padding-right: clamp(20px, 4vw, 60px) !important;
}

.solutions-section .alignwide,
.benefits-section .alignwide,
.plans-section .alignwide {
  left: 0 !important;
  width: 100% !important;
}

@media (max-width: 1200px) {
  .swell-block-fullWide__inner.l-container {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  ul.wp-block-list.is-style-check_list.plans-list {
    padding-left: 34%;
  }

  .service-list-detail {
    padding-left: 34%;
  }

  .u-mb-10 {
    padding-left: 20px;
  }

  .benefits-section .wp-block-column:last-child {
    font-size: clamp(40px, 5vw, 84px) !important;
  }

  .lp-nav__list {
    display: none;
  }
}

.benefits-section .swell-block-fullWide__inner.l-container {
  max-width: 100% !important;
  width: 100% !important;
}

/* @media (max-width: 894px) {
  span.swl-inline-color.has-white-color {
    font-size: clamp(18px, 5vw, 36px) !important;
  }
} */

/* @media (max-width: 894px) {
  .solutions-section span.swl-inline-color.has-white-color,
  .benefits-section span.swl-inline-color.has-white-color {
    font-size: clamp(18px, 4vw, 24px) !important;
  }
} */

@media (max-width: 894px) {
  .solutions-section span.swl-fz.u-fz-l,
  .benefits-section span.swl-fz.u-fz-l {
    font-size: clamp(18px, 4vw, 24px) !important;
  }

  fs_xs,
  .has-xs-font-size,
  .u-fz-xs {
    font-size: var(--swl-fz--xs) !important;
  }
}

/* PC時は改行あり、スマホ時は改行なし */
/* @media (max-width: 894px) {
  .pc-br {
    display: none;
  }
} */

@media (max-width: 885px) {
  .pc-br {
    display: none;
  }
}

@media (max-width: 894px) {
  #solutions-section .wp-block-column.sol-suggestion p {
    font-size: clamp(18px, 4vw, 20px) !important;
  }
  .benefits-section .alignwide.swell-block-columns {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }
  p.has-border.-border03.contact-description {
    /* padding-right: 38px; */
    width: 100%;
    padding: 10px;
  }

  .l-footer__foot,
  .l-footer__widgetArea {
    padding: 48px 10px;
  }

  .lp-nav__list {
    display: none;
  }

  .lp-fv {
    /* margin-top: -7rem;
    padding-bottom: 260px; */
  }

  .sp-py-80 {
    /* padding-bottom: 5em !important; */
  }

  .u-mb-40 {
    /* margin-bottom: 2em !important; */
    padding-left: 20px;
  }
  /* .lp-fv {
    margin-top: -89px;
    padding-bottom: 252px;
  } */
}

@media (max-width: 414px) {
  .swell-block-fullWide__inner.l-container {
    padding-left: 30px !important;
    padding-right: 20px !important;
  }

  .lp-fv {
    margin-top: -7rem;
    padding-bottom: 260px;
  }
  .u-mb-40 {
    margin-bottom: 2em !important;
    padding-left: 0;
  }
  .sp-py-80 {
    padding-bottom: 5em !important;
  }

  p.u-mb-ctrl.u-mb-10.vk_hidden-md.vk_hidden-lg.vk_hidden-xl-v2.vk_hidden-xxl.has-white-background-color.has-background {
    backdrop-filter: blur(6px);
    background-color: rgba(255, 255, 255, 0.5) !important;
    padding: 18px 20px;
  }

  .post_content div > :first-child,
  .post_content > :first-child {
    margin-top: 0 !important;
  }

  ul.wp-block-list.is-style-check_list.plans-list {
    padding-left: 12%;
  }

  .service-list-detail {
    padding-left: 10%;
  }
}
