/* =========================================================
   介護施設向けAI研修 LP（Tailwind版） css/styles.css
   コンセプト：和モダン編集デザイン × 上質な日本企業品質
   Tailwindユーティリティの上に、ブランド共通の署名要素を重ねるレイヤー
   ・英字セリフのゴースト数字（.sec-head[data-num]）
   ・金細罫オフセットの二重フレーム（.frame）
   ・CTAの金シャインスイープ（.btn-shine）
   ・数字カウントアップ（.count[data-count]）
   ※漫画版・写真版LPとブランド統一（同一カラートークン・同一書体系）
   ========================================================= */

:root{
  --navy:      #14304f;
  --navy-deep: #0a1d33;
  --gold:      #ac8a48;
  --gold-bright:#ffd45c;
  --gold-cta:   #ffc83d;
  --gold-cta-deep:#f0a323;
  --gold-deep: #93753a;
  --gold-soft: #d9c596;
  --gold-pale: rgba(172,138,72,.14);
  --line:      #e1e6ec;
  --line-navy: rgba(20,48,79,.5);
  --ease:      cubic-bezier(.22,.61,.36,1);
}

html { scroll-behavior: smooth; scroll-padding-top: 84px; }
html,
body{
  max-width: 100%;
  overflow-x: hidden;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  color: #1f2a36;
  letter-spacing: 0.02em;
  line-height: 1.9;
  font-feature-settings: "palt";
}
#fv .fv-hero-link {
  width: min(100%, 100vw) !important;
  max-width: 100% !important;
  overflow: hidden;
}
#fv .fv-hero-image {
  display: block;
  width: min(100%, 100vw) !important;
  max-width: 100%;
  height: auto;
}
#fv{
  padding: 0 !important;
  background: #061a31 !important;
}
#fv .fv-visual-shell{
  background: linear-gradient(180deg, #0a2341 0%, #102e4a 58%, #061a31 100%);
}
::selection{ background: var(--navy); color:#fff; }
.lead { letter-spacing: 0.04em; }

/* ===== 見出し：明朝（Zen Old Mincho）に格上げ ===== */
.heading {
  font-family: 'Zen Old Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  font-weight: 700 !important;
  letter-spacing: 0.07em;
  line-height: 1.6;
}

/* ===== セクションラベル：英字セリフ・イタリック＋金細罫 ===== */
.accent-bar{
  display: inline-flex !important;
  align-items: center;
  gap: 14px;
  font-family: 'Cormorant Garamond', 'Zen Old Mincho', serif !important;
  font-style: italic;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: .22em !important;
  color: var(--gold) !important;
}
.accent-bar::before,
.accent-bar::after{
  content:"";
  display:inline-block;
  width:34px; height:1px;
  background: var(--gold-soft);
  margin: 0;
  vertical-align: middle;
}
/* 左寄せで使うラベル（対応カテゴリー見出しなど）は片側罫のみ */
h3.accent-bar::after{ display:none; }
h3.accent-bar{
  font-family: 'Zen Old Mincho', serif !important;
  font-style: normal;
  letter-spacing: .06em !important;
  font-size: 1.125rem !important;
  color: var(--navy) !important;
}
h3.accent-bar::before{ width: 26px; background: var(--gold); height: 2px; }

/* ===== ゴースト数字（英字セリフの大型輪郭ナンバー） ===== */
.sec-head{ position: relative; }
.sec-head[data-num]::before{
  content: attr(data-num);
  position: absolute;
  left: 50%; top: -0.42em;
  transform: translateX(-50%);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(92px, 22vw, 160px);
  line-height: 1;
  letter-spacing: .02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(20,48,79,.13);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.sec-head > *{ position: relative; z-index: 1; }
.sec-head[data-num]{ padding-top: clamp(26px, 6vw, 44px); }
/* ネイビー背景セクションでは白の輪郭線に */
.bg-navy .sec-head[data-num]::before{ -webkit-text-stroke-color: rgba(255,255,255,.14); }
.bg-lgray .sec-head[data-num]::before{ -webkit-text-stroke-color: rgba(20,48,79,.16); }

/* ===== 角丸の編集デザイン化（カード類をシャープに） ===== */
.rounded-xl{ border-radius: 2px !important; }
.rounded-2xl{ border-radius: 2px !important; }
.rounded-lg{ border-radius: 2px !important; }
.rounded{ border-radius: 2px !important; }
/* rounded-full（円形アイコン・バッジ）はそのまま */

/* ===== 画像：金細罫オフセットの二重フレーム（額装） ===== */
.frame{
  position: relative;
  display: block;
}
.frame > img{
  border: 1px solid var(--line-navy);
  background: #fff;
  box-shadow: 0 14px 36px -18px rgba(10,29,51,.32) !important;
  border-radius: 0 !important;
  width: 100%;
}
.frame::before{
  content:""; position:absolute; inset: 10px -11px -11px 10px;
  border: 1px solid var(--gold-soft);
  pointer-events:none; z-index:-1;
}
.frame::after{
  content:""; position:absolute; top:-1px; left:-1px;
  width:22px; height:22px;
  border-top:2px solid var(--gold); border-left:2px solid var(--gold);
  pointer-events:none;
}
/* 暗背景上のフレーム */
.bg-navy .frame > img{ border-color: rgba(255,255,255,.32); }
.bg-navy .frame::before{ border-color: rgba(217,197,150,.4); }

/* ===== ヘッダー：金の極細トップライン＋スクロール影 ===== */
header.fixed{
  background: rgba(251,251,250,.86) !important;
}
header.fixed::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 50%, var(--gold) 100%);
}
header.fixed.is-scrolled{ box-shadow: 0 6px 24px -8px rgba(10,29,51,.14); }
.logo-mark{ position: relative; }
.logo-mark::after{
  content:""; position:absolute; inset:3px;
  border:1px solid rgba(217,197,150,.55);
  pointer-events:none;
}
.logo-en{
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
  font-size: 10px; letter-spacing: .2em;
  color: var(--gold);
  line-height: 1.2;
}

/* ===== CTAボタン：金シャインスイープ＋金/紺の天地罫 ===== */
.btn-shine{
  position: relative;
  overflow: hidden;
  border-radius: 2px !important;
  transition: transform .25s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease) !important;
}
.btn-shine::before{
  content:""; position:absolute; top:0; bottom:0; left:-40%;
  width:36%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.32), transparent);
  transform: skewX(-22deg);
  transition: left .65s var(--ease);
}
.btn-shine:hover{ transform: translateY(-2px); }
.btn-shine:hover::before{ left:116%; }
.btn-shine.bg-gold{
  background: linear-gradient(180deg, #ffe98b 0%, var(--gold-cta) 48%, var(--gold-cta-deep) 100%) !important;
  color: var(--navy) !important;
  border-bottom: 2px solid rgba(10,29,51,.58);
  box-shadow: 0 12px 28px -10px rgba(255,194,46,.68), 0 0 22px rgba(255,199,58,.22);
  text-shadow: 0 1px 0 rgba(255,255,255,.42);
}
.btn-shine.bg-gold:hover{ box-shadow: 0 18px 36px -12px rgba(255,194,46,.75), 0 0 30px rgba(255,199,58,.35); }
.btn-shine.bg-navy{ border-bottom: 2px solid var(--gold); box-shadow: 0 12px 26px -10px rgba(20,48,79,.5); }
.btn-shine.bg-navy:hover{ box-shadow: 0 18px 32px -12px rgba(20,48,79,.55); }

/* ===== 暗背景上の可読性：本文は白、ゴールドは強調だけに限定 ===== */
.bg-navy .accent-bar{
  color: var(--gold-bright) !important;
  font-weight: 900 !important;
  text-shadow: 0 1px 10px rgba(255,212,92,.22);
}
.bg-navy .accent-bar::before,
.bg-navy .accent-bar::after{
  background: rgba(255,212,92,.72);
}
.bg-navy .text-gold{
  color: var(--gold-bright) !important;
  font-weight: 900;
  text-shadow: 0 1px 10px rgba(255,212,92,.18);
}
.bg-navy .text-white\/80,
.bg-navy .text-white\/75,
.record-relief-band .record-relief-text{
  color: rgba(255,255,255,.92) !important;
}
.bg-navy .text-white\/60{
  color: rgba(255,255,255,.78) !important;
}
.bg-navy .text-white\/50{
  color: rgba(255,255,255,.7) !important;
}
.bg-navy .text-white\/40{
  color: rgba(255,255,255,.64) !important;
}
.bg-navy .no-serif.text-gold.text-sm{
  display: inline-block;
  padding: .18rem .55rem;
  background: linear-gradient(180deg, #ffe98b 0%, var(--gold-cta) 100%);
  color: var(--navy) !important;
  border-radius: 999px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-style: normal;
  font-weight: 900 !important;
  font-size: .72rem !important;
  letter-spacing: .08em !important;
  text-shadow: none;
  box-shadow: 0 0 0 1px rgba(255,255,255,.32) inset, 0 8px 20px rgba(255,194,46,.18);
}
.bg-navy .no-serif.text-gold.text-4xl{
  color: rgba(255,212,92,.94) !important;
}

/* ===== 暗く見える訴求ブロックを明るく調整 ===== */
.effect-after-card,
.price-bright-panel{
  background: linear-gradient(160deg, #1a4b78 0%, #143a61 46%, #102a49 100%) !important;
  border: 1px solid rgba(255,212,92,.34);
  box-shadow: 0 18px 42px -22px rgba(10,29,51,.55), 0 0 34px rgba(255,212,92,.14) !important;
}
.effect-after-header{
  background: linear-gradient(180deg, #ffe58a 0%, #ffc83d 58%, #f0a323 100%) !important;
  color: var(--navy) !important;
  border-bottom: 1px solid rgba(255,255,255,.42);
  box-shadow: 0 10px 24px -18px rgba(255,199,58,.65);
}
.effect-after-header i,
.effect-after-header p{
  color: var(--navy) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
}
.effect-after-card li{
  background: rgba(255,255,255,.025);
}
.effect-after-card li:nth-child(even){
  background: rgba(255,255,255,.055);
}
.effect-after-card .fa-check{
  color: var(--gold-bright) !important;
  text-shadow: 0 0 12px rgba(255,212,92,.28);
}
.manager-support-card{
  background: linear-gradient(180deg, #fff 0%, #fbfcff 100%) !important;
  border-color: rgba(255,212,92,.28) !important;
  box-shadow: 0 18px 46px -28px rgba(10,29,51,.24), 0 0 28px rgba(255,212,92,.12) !important;
}
.manager-step-card{
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%) !important;
  border: 1px solid rgba(217,197,150,.48);
  box-shadow: 0 12px 24px -20px rgba(10,29,51,.22);
}
.manager-step-card--support{
  background: linear-gradient(180deg, #fffaf0 0%, #fff 100%) !important;
}
.manager-step-card--success{
  background: linear-gradient(160deg, #1d4f7b 0%, #143a61 100%) !important;
  border-color: rgba(255,212,92,.42);
  box-shadow: 0 16px 34px -22px rgba(10,29,51,.55), 0 0 24px rgba(255,212,92,.12);
}
.manager-step-card .bg-gold,
.manager-step-card--success .bg-gold{
  background: linear-gradient(180deg, #ffe98b 0%, var(--gold-cta) 58%, var(--gold-cta-deep) 100%) !important;
  color: var(--navy) !important;
}
.manager-feature-card{
  background: linear-gradient(180deg, #fff 0%, #fbfcff 100%);
  border-color: rgba(217,197,150,.62) !important;
  box-shadow: 0 10px 22px -20px rgba(10,29,51,.25);
}
.manager-feature-card i{
  color: var(--gold-cta-deep) !important;
  text-shadow: 0 0 10px rgba(255,199,58,.16);
}
.price-bright-badge,
.contact-subsidy-badge{
  background: linear-gradient(180deg, #ffe98b 0%, var(--gold-cta) 56%, var(--gold-cta-deep) 100%) !important;
  color: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.42);
  box-shadow: 0 10px 26px -14px rgba(255,194,46,.75), 0 0 18px rgba(255,212,92,.2);
  text-shadow: 0 1px 0 rgba(255,255,255,.44);
}
.price-bright-box{
  background: rgba(255,255,255,.14) !important;
  border-color: var(--gold-bright) !important;
  box-shadow: 0 0 36px rgba(255,212,92,.2), 0 18px 38px -24px rgba(10,29,51,.55) !important;
}
.price-bright-box .price-num{
  color: #ffe27a !important;
  text-shadow: 0 2px 18px rgba(255,212,92,.24);
}
.price-bright-panel .text-white\/60,
.price-bright-panel .text-white\/50{
  color: rgba(255,255,255,.82) !important;
}

/* ===== 数字：英字セリフ（Cormorant）で上品に ===== */
.num-serif{
  font-family: 'Cormorant Garamond', 'Zen Old Mincho', serif !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em !important;
}
/* セクション番号（01/02…・STEP番号）をイタリックセリフに */
.no-serif{
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
}

/* ===== FAQ：編集的なアコーディオン ===== */
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display:none; }
details{
  border-radius: 2px !important;
  border-top: 2px solid var(--gold-soft) !important;
  transition: background-color .3s ease, border-color .3s ease;
}
details[open]{ border-top-color: var(--gold) !important; }
details summary > span:first-child{
  position: relative;
  padding-left: 30px;
}
details summary > span:first-child::before{
  content:"Q";
  position:absolute; left:0; top:-2px;
  font-family:'Cormorant Garamond', serif;
  font-style: italic; font-weight: 600;
  font-size: 19px; color: var(--gold);
}
details[open] .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .35s var(--ease); }

/* ===== 最終CTA：内側ヘアラインの額装 ===== */
#contact::after{
  content:""; position:absolute;
  inset: clamp(14px, 3vw, 28px);
  border: 1px solid rgba(217,197,150,.25);
  pointer-events: none;
}
#contact > .relative{ z-index: 1; }
#contact::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px; z-index:1;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold-soft) 50%, var(--gold) 70%, transparent);
}

/* ===== お問い合わせフォーム（LP内設置・確認画面共通） ===== */
.contact__form,
.confirm-box,
.thanks-box{
  background: #fff;
  color: #1f2a36;
  border: 1px solid var(--line);
  border-top: 2px solid var(--gold);
  box-shadow: 0 24px 54px -28px rgba(10,29,51,.35);
}
.contact__form{
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  padding: 28px 22px;
}
.form__row{ margin-bottom: 18px; }
.form__row label,
.form__row legend{
  display: block;
  margin-bottom: 7px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
}
.contact-form-subnote{
  color: #5f6b78;
  font-size: 12px;
  font-weight: 500;
}
.form__row fieldset,
fieldset.form__row{
  min-width: 0;
  padding: 0;
  border: 0;
}
.form__req{
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  background: var(--gold);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
  vertical-align: middle;
}
.form__row input[type="text"],
.form__row input[type="email"],
.form__row input[type="tel"],
.form__row textarea,
.form__row select{
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d8d0bd;
  background: #fff;
  color: #1f2a36;
  font-size: 15px;
  line-height: 1.7;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.form__row input:focus,
.form__row textarea:focus,
.form__row select:focus{
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(172,138,72,.18);
}
.form__row textarea{
  min-height: 132px;
  resize: vertical;
}
.form__grid{
  display: grid;
  gap: 18px;
}
.form__checks{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 14px;
  border: 1px solid #d8d0bd;
  background: #fbfbfa;
}
.form__checks label,
.form__check{
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #5f6b78;
  font-size: 13px;
  line-height: 1.7;
  cursor: pointer;
}
.form__check-option--other{
  display: flex;
  align-items: center !important;
  grid-column: 1 / -1;
  gap: 9px;
  color: #5f6b78;
  font-size: 13px;
  line-height: 1.7;
}
.form__check-option--other label{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  cursor: pointer;
}
.form__check-option--other span{
  flex: 0 0 auto;
  white-space: nowrap;
}
.facility-other-input{
  flex: 1 1 auto !important;
  min-width: 0;
  width: 100% !important;
  margin-top: 0 !important;
  padding: 9px 11px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
.facility-other-input:disabled{
  background: #f1f3f5 !important;
  color: #9aa3ad;
  cursor: not-allowed;
}
.form__checks input,
.form__check input{
  flex: 0 0 auto;
  width: auto;
  margin-top: .45em;
  accent-color: var(--gold);
}
.form__check{
  margin: 8px 0 22px;
  padding: 14px;
  border: 1px solid var(--line);
  background: #fbfbfa;
}
.contact__form-note{
  margin-top: 10px;
  color: #5f6b78;
  font-size: 12px;
  line-height: 1.8;
}
.confirm-box,
.thanks-box{
  max-width: 760px;
  margin: 0 auto;
  padding: 28px 22px;
}
.thanks-box{ text-align: center; }
.confirm-table{
  width: 100%;
  margin-bottom: 24px;
  border-collapse: collapse;
}
.confirm-table th,
.confirm-table td{
  padding: 14px 8px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  vertical-align: top;
}
.confirm-table th{
  width: 36%;
  color: #5f6b78;
  font-weight: 700;
}
.confirm-table td{
  color: #1f2a36;
  word-break: break-word;
}
.confirm-errors{
  margin: 0 0 22px 1.25em;
  color: #9a3b3b;
  font-size: 14px;
  line-height: 1.9;
  list-style: disc;
}
.confirm-actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 8px;
}
@media (min-width: 640px){
  .contact__form,
  .confirm-box,
  .thanks-box{ padding: 40px 36px; }
  .form__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form__checks{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .confirm-table th{ width: 30%; }
}
@media (max-width: 480px){
  .form__check-option--other{
    flex-wrap: wrap;
  }
  .facility-other-input{
    flex-basis: 100% !important;
    margin-left: 25px;
  }
  .confirm-table th,
  .confirm-table td{
    display: block;
    width: 100%;
    padding: 10px 0;
  }
  .confirm-table th{ border-bottom: 0; padding-bottom: 2px; }
}

/* ===== スクロール出現アニメ（控えめ） ===== */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .85s var(--ease), transform .85s var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .btn-shine::before{ display:none; }
}

/* ===== 写真プレースホルダ ===== */
img { background:#e8ebf0; }

/* ===== スクリーンリーダー専用 ===== */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ===== 日本語改行制御 ===== */
h1, h2, h3, p, li, span, a, dt, dd { word-break: normal; overflow-wrap: anywhere; line-break: strict; }
.keep { word-break: keep-all; }

/* ============================
   画面下部の固定CTA
   3つの行動を独立ボタンとして常時表示
   ============================ */
body.has-fixed-cta{
  padding-bottom: calc(94px + env(safe-area-inset-bottom));
}
body.wp-admin.has-fixed-cta{
  padding-bottom: 0;
}
.fixed-cta{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  padding: 0 18px calc(12px + env(safe-area-inset-bottom));
  pointer-events: none;
}
.fixed-cta__panel{
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  max-width: 1000px;
  margin: 0 auto;
  overflow: hidden;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(255,206,84,.72);
  border-radius: 18px;
  box-shadow: 0 -12px 34px rgba(10,29,51,.18), 0 0 24px rgba(255,193,58,.32), 0 0 0 1px rgba(255,255,255,.8) inset;
  pointer-events: auto;
}
.fixed-cta__link{
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  min-height: 64px;
  padding: 10px 14px;
  color: var(--navy);
  font-size: .92rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .03em;
  text-align: center;
  white-space: nowrap;
  border-right: 1px solid rgba(255,207,85,.48);
  transition: filter .25s var(--ease), transform .25s var(--ease), background-color .25s var(--ease);
}
.fixed-cta__link::before{
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: 14px;
  pointer-events: none;
}
.fixed-cta__link span{
  min-width: 0;
}
.fixed-cta__trial-line{
  display: inline;
}
.fixed-cta__link:last-child{
  border-right: 0;
}
.fixed-cta__link i{
  color: currentColor;
  font-size: 1.05rem;
  line-height: 1;
}
.fixed-cta__link:hover{
  filter: brightness(1.04);
  transform: translateY(-1px);
}
.fixed-cta__link--trial{
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.75), transparent 22%),
    linear-gradient(180deg, #ffe88b 0%, #ffc94d 42%, #f4a925 100%);
  color: var(--navy);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), inset 0 -3px 0 rgba(151,95,7,.28), 0 0 22px rgba(255,194,46,.55);
  text-shadow: 0 1px 0 rgba(255,255,255,.38);
}
.fixed-cta__link--trial::before{
  border: 1px solid rgba(255,255,255,.58);
  box-shadow: inset 0 0 16px rgba(255,255,255,.28);
}
.fixed-cta__link--phone{
  background:
    radial-gradient(circle at 20% 18%, rgba(255,212,92,.2), transparent 30%),
    linear-gradient(180deg, #245c8c 0%, #173f69 48%, #0f2a49 100%);
  color: #fff;
  border-left: 1px solid rgba(255,212,92,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), inset 0 0 0 1px rgba(255,212,92,.32), 0 0 20px rgba(255,212,92,.22);
  text-shadow: 0 1px 8px rgba(0,0,0,.28);
}
.fixed-cta__link--phone::before{
  border: 1px solid rgba(255,212,92,.46);
  box-shadow: inset 0 0 14px rgba(255,212,92,.12), 0 0 14px rgba(255,212,92,.16);
}
.fixed-cta__link--phone i{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffe98b 0%, var(--gold-cta) 58%, var(--gold-cta-deep) 100%);
  color: var(--navy);
  font-size: .92rem;
  box-shadow: 0 0 16px rgba(255,212,92,.34);
  text-shadow: none;
}
.fixed-cta__link--phone span{
  font-weight: 950;
  color: #fff;
}
.fixed-cta__phone-label-sp{
  display: none;
}
body.wp-admin .fixed-cta{
  display: none !important;
}
.company-url-link{
  color: var(--navy);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--gold-soft);
  text-underline-offset: 4px;
  transition: color .25s var(--ease), text-decoration-color .25s var(--ease);
}
.company-url-link:hover{
  color: var(--gold);
  text-decoration-color: var(--gold);
}

/* ============================
   スマホ最適化（768px以下）
   ============================ */
@media (max-width: 768px) {
  body { line-height: 1.85; }
  .heading { line-height: 1.55; letter-spacing: 0.04em; }
  .body-sp { font-size: 0.95rem; }
}

@media (max-width: 640px) {
  #fv{
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
  #fv .fv-hero-link{
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #fv .fv-hero-image{
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
  }
  body.has-fixed-cta{
    padding-bottom: calc(78px + env(safe-area-inset-bottom));
  }
  .fixed-cta{
    left: 0;
    right: 0;
    width: auto;
    max-width: 100vw;
    transform: none;
    padding: 0 0 env(safe-area-inset-bottom);
  }
  .fixed-cta__panel{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    max-width: 100vw;
    margin: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 14px 14px 0 0;
  }
  .fixed-cta__link{
    flex-direction: column;
    width: auto;
    gap: 4px;
    min-height: 64px;
    padding: 8px 2px;
    font-size: .68rem;
    letter-spacing: 0;
    line-height: 1.25;
    white-space: normal;
  }
  .fixed-cta__link--trial{
    width: auto;
  }
  .fixed-cta__link--phone{
    width: auto;
  }
  .fixed-cta__link i{
    font-size: 1.08rem;
  }
  .fixed-cta__trial-line{
    display: block;
  }
  .fixed-cta__link--phone{
    flex-direction: row;
    font-size: .8rem;
    gap: 5px;
  }
  .fixed-cta__link--phone i{
    width: 1.55rem;
    height: 1.55rem;
    font-size: .85rem;
  }
}

/* ============================
   小型端末（400px以下）
   ============================ */
@media (max-width: 400px) {
  h2.heading { font-size: 1.2rem; line-height: 1.6; }
  .price-num { font-size: 2.75rem !important; }
  .accent-bar{ gap:10px; font-size:13.5px !important; letter-spacing:.12em !important; white-space:nowrap; }
  .accent-bar::before, .accent-bar::after{ width:16px; }
  .fixed-cta__link{
    font-size: .64rem;
  }
  .fixed-cta__link--phone{
    font-size: .76rem;
  }
  .fixed-cta__link--phone span{
    white-space: nowrap;
  }
  .fixed-cta__phone-label-pc{
    display: none;
  }
  .fixed-cta__phone-label-sp{
    display: inline;
  }
}

@media print {
  body.has-fixed-cta{
    padding-bottom: 0 !important;
  }
  .fixed-cta{
    display: none !important;
  }
}

/* ============================
   ファーストビュー画像
   スマホ：横幅いっぱい（全幅）
   PC（640px以上）：最大1000px・中央寄せ＋ネイビー余白フレーム
   ※ コンパイル済みtailwind.cssにsm:変種が無いためCSSで制御
   ============================ */
@media (min-width: 640px) {
  #fv .fv-visual-shell { padding: 2.5rem 1.5rem 0; }
  #fv .fv-hero-link {
    max-width: 1000px !important;
  }
  #fv img {
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  }
}

/* =========================================================
   洗練レイヤー（2026-08）
   コンセプト：ネイビー×シャンパンゴールドの上質モダン
   ・黄色の強いCTA/グローを落ち着いたシャンパン系に
   ・角丸を大きく、影を柔らかい拡散系に
   ・ネイビーは深みのあるグラデーションに
   ・写真は装飾フレームをやめてクリーンな角丸＋ソフトシャドウ
   ※既存定義の後から上書きする前提のレイヤー
   ========================================================= */

:root{
  --gold:        #b3925a;
  --gold-bright: #e9c76e;
  --gold-cta:    #f0c25a;
  --gold-cta-deep:#d29a33;
  --gold-soft:   #ddcda4;
  --gold-pale:   rgba(179,146,90,.12);
  --champagne:   #efe3c4;
  --ink:         #1c2733;
  --shadow-soft: 0 24px 48px -24px rgba(13,32,54,.28);
}

/* ---- カラー・ユーティリティの上書き（tailwind.cssはビルド済みのため） ---- */
.text-gold{ color: var(--gold) !important; }
.border-gold{ border-color: rgba(179,146,90,.75) !important; }
.bg-gold\/15{ background-color: var(--gold-pale) !important; }
.bg-lgray{ background-color: #f6f7f9 !important; }

/* ネイビーのセクションは深みのあるグラデーションに */
section.bg-navy{
  background: linear-gradient(180deg, #0e2036 0%, #16334f 52%, #0f2740 100%) !important;
}
/* ---- 角丸：シャープ編集風 → 上質モダン ---- */
.rounded-xl{ border-radius: 16px !important; }
.rounded-2xl{ border-radius: 22px !important; }
.rounded-lg{ border-radius: 12px !important; }
.rounded{ border-radius: 10px !important; }
details{ border-radius: 14px !important; }

/* ---- CTAボタン：ピル型＋シャンパンゴールド ---- */
.btn-shine{ border-radius: 999px !important; }
.btn-shine.bg-gold{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 52%, var(--gold-cta-deep) 100%) !important;
  border-bottom: 0;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    inset 0 -2px 0 rgba(120,80,15,.18),
    0 14px 30px -12px rgba(190,140,45,.55);
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.btn-shine.bg-gold:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -2px 0 rgba(120,80,15,.18),
    0 20px 40px -14px rgba(190,140,45,.62);
}
.btn-shine.bg-navy{
  border-bottom: 0;
  box-shadow: inset 0 0 0 1px rgba(221,205,164,.5), 0 14px 30px -14px rgba(13,32,54,.5);
}
.btn-shine.bg-navy:hover{
  box-shadow: inset 0 0 0 1px rgba(221,205,164,.75), 0 20px 38px -16px rgba(13,32,54,.55);
}

/* ---- 写真：額装フレーム → クリーンな角丸＋ソフトシャドウ ---- */
.frame::before,
.frame::after{ display: none; }
.frame > img{
  border: 0;
  border-radius: 18px !important;
  box-shadow: var(--shadow-soft) !important;
}
.bg-navy .frame > img{
  box-shadow: 0 26px 52px -26px rgba(0,0,0,.55) !important;
}

/* ---- 信頼バー：FVから続くネイビー帯・セリフ数字×ヘアライン罫 ---- */
.trust-band{
  background: linear-gradient(180deg, #0c2440 0%, #0e2741 100%);
  border-top: 1px solid rgba(233,199,110,.16);
  border-bottom: 1px solid rgba(233,199,110,.22);
}
.trust-band__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1000px;
  margin: 0 auto;
  padding: 24px 14px 26px;
}
.trust-band__item{
  position: relative;
  padding: 4px 8px;
  text-align: center;
}
.trust-band__item + .trust-band__item::before{
  content: "";
  position: absolute;
  left: 0;
  top: 14%;
  bottom: 14%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(233,199,110,.42), transparent);
}
.trust-band__label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(72px, 22vw, 112px);
  margin: 0 0 10px;
  padding: 4px clamp(6px, 1.6vw, 12px);
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 2px;
  background: linear-gradient(180deg, #f6d47a 0%, #e9c76e 100%);
  color: #061a31;
  box-shadow: 0 5px 14px rgba(0,0,0,.16);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  line-height: 1.4;
  white-space: nowrap;
}
.trust-band__value{
  margin: 0;
  color: var(--gold-bright);
  line-height: 1.05;
  white-space: nowrap;
}
.trust-band__pref{
  font-family: 'Zen Old Mincho', serif;
  font-size: .95rem;
  font-weight: 700;
  margin-right: .1em;
  vertical-align: .35em;
}
.trust-band__num{
  font-size: clamp(2rem, 6vw, 2.7rem);
  font-weight: 600 !important;
}
.trust-band__unit{
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(.95rem, 3vw, 1.25rem);
  font-weight: 700;
  margin-left: .06em;
}
.trust-band__tail{
  margin-left: .35em;
  color: rgba(255,255,255,.92);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  vertical-align: .18em;
}
.trust-band__note{
  margin: 5px 0 0;
  color: #fff;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .03em;
}
@media (min-width: 640px){
  .trust-band__grid{ padding: 32px 18px 34px; }
  .trust-band__label{ font-size: .78rem; }
  .trust-band__tail{ font-size: .88rem; }
  .trust-band__note{ font-size: .74rem; }
}
@media (max-width: 400px){
  .trust-band__tail{ display: block; margin: 4px 0 0; }
  .trust-band__value{ white-space: normal; }
}

/* ---- 暗背景の金の光沢を控えめなシャンパンに ---- */
.bg-navy .accent-bar{
  color: var(--gold-bright) !important;
  text-shadow: none;
}
.bg-navy .accent-bar::before,
.bg-navy .accent-bar::after{ background: rgba(233,199,110,.55); }
.bg-navy .text-gold{
  color: var(--gold-bright) !important;
  text-shadow: none;
}
.effect-after-card,
.price-bright-panel{
  background: linear-gradient(160deg, #1a4471 0%, #16385d 50%, #112c49 100%) !important;
  border: 1px solid rgba(233,199,110,.28);
  box-shadow: 0 26px 54px -28px rgba(9,24,42,.6) !important;
}
.effect-after-header{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 55%, var(--gold-cta-deep) 100%) !important;
  border-bottom: 0;
  box-shadow: none;
}
.price-bright-badge,
.contact-subsidy-badge{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 55%, var(--gold-cta-deep) 100%) !important;
  border: 0;
  border-radius: 999px !important;
  box-shadow: 0 10px 22px -10px rgba(190,140,45,.5);
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.price-bright-box{
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(233,199,110,.6) !important;
  border-radius: 18px !important;
  box-shadow: 0 22px 44px -26px rgba(9,24,42,.6) !important;
}
.price-bright-box .price-num{
  color: #f3d489 !important;
  text-shadow: none;
}
.bg-navy .no-serif.text-gold.text-sm{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 100%);
  box-shadow: none;
}
.bg-navy .no-serif.text-gold.text-4xl{ color: rgba(233,199,110,.9) !important; }
.effect-after-card .fa-check{
  color: var(--gold-bright) !important;
  text-shadow: none;
}

/* ---- 研修担当者向けカード類 ---- */
.manager-support-card{
  border-color: rgba(221,205,164,.5) !important;
  box-shadow: var(--shadow-soft) !important;
}
.manager-step-card{
  border: 1px solid rgba(221,205,164,.5);
  box-shadow: 0 14px 28px -22px rgba(13,32,54,.2);
}
.manager-step-card--success{
  background: linear-gradient(160deg, #1a4471 0%, #16385d 100%) !important;
  border-color: rgba(233,199,110,.4);
  box-shadow: 0 18px 36px -22px rgba(9,24,42,.5);
}
.manager-step-card .bg-gold,
.manager-step-card--success .bg-gold{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 58%, var(--gold-cta-deep) 100%) !important;
}
.manager-feature-card{
  border-color: rgba(221,205,164,.6) !important;
  box-shadow: 0 12px 24px -20px rgba(13,32,54,.2);
}
.manager-feature-card i{
  color: var(--gold-cta-deep) !important;
  text-shadow: none;
}

/* ---- FV下のCTA帯：深いネイビーグラデ＋ヘアライン ---- */
.fv-mobile-action{
  background: linear-gradient(180deg, #061a31 0%, #0c2440 100%);
  margin-top: -1px;
  border-top: 0;
}
.fv-mobile-action__catch{
  font-family: 'Zen Old Mincho', 'Hiragino Mincho ProN', serif;
}
.fv-mobile-action__button{
  border: 0;
  border-radius: 999px;
  background: linear-gradient(160deg, #ffe9a8 0%, #f0c25a 52%, #d29a33 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    inset 0 -2px 0 rgba(120,80,15,.18),
    0 16px 34px -14px rgba(190,140,45,.6);
}
/* ---- 固定CTA：すりガラスパネル ---- */
.fixed-cta__panel{
  background: rgba(252,252,251,.82);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(221,205,164,.6);
  border-radius: 20px;
  box-shadow: 0 -8px 40px -12px rgba(13,32,54,.28);
}
.fixed-cta__link{ border-right: 1px solid rgba(221,205,164,.45); }
.fixed-cta__link--trial{
  background: linear-gradient(160deg, #ffe9a8 0%, #f0c25a 50%, #d29a33 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), inset 0 -2px 0 rgba(120,80,15,.16);
  text-shadow: 0 1px 0 rgba(255,255,255,.38);
}
.fixed-cta__link--trial::before{
  border: 0;
  box-shadow: none;
}
.fixed-cta__link--phone{
  background: linear-gradient(160deg, #1c4a77 0%, #163a5f 52%, #102a47 100%);
  border-left: 1px solid rgba(221,205,164,.4);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
  text-shadow: none;
}
.fixed-cta__link--phone::before{
  border: 0;
  box-shadow: none;
}
.fixed-cta__link--phone i{
  background: linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 58%, var(--gold-cta-deep) 100%);
  box-shadow: none;
}

/* ---- フォーム：丸み＋ニュートラルな枠線 ---- */
.contact__form,
.confirm-box,
.thanks-box{
  border: 1px solid rgba(221,205,164,.55);
  border-top: 1px solid rgba(221,205,164,.55);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
}
.form__row input[type="text"],
.form__row input[type="email"],
.form__row input[type="tel"],
.form__row textarea,
.form__row select{
  border: 1px solid #dde2e9;
  border-radius: 12px;
  background: #fcfcfb;
}
.form__row input:focus,
.form__row textarea:focus,
.form__row select:focus{
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(179,146,90,.16);
  background: #fff;
}
.form__checks{
  border: 1px solid #e4e8ee;
  border-radius: 14px;
  background: #f9fafb;
}
.form__check{
  border: 1px solid #e4e8ee;
  border-radius: 14px;
  background: #f9fafb;
}
.form__req{
  border-radius: 999px;
  padding: 2px 9px;
  background: var(--navy);
  letter-spacing: .06em;
}

/* ---- FAQ：カード型アコーディオン ---- */
details{
  border: 1px solid #e4e8ee !important;
  border-top: 1px solid #e4e8ee !important;
  box-shadow: 0 10px 24px -20px rgba(13,32,54,.16);
}
details[open]{
  border-color: rgba(179,146,90,.55) !important;
  box-shadow: 0 16px 32px -22px rgba(13,32,54,.22);
}

/* ---- ヘッダー ---- */
header.fixed{
  background: rgba(252,252,251,.8) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
header.fixed::before{
  background: linear-gradient(90deg, transparent, var(--gold-soft) 30%, var(--gold) 50%, var(--gold-soft) 70%, transparent);
}

/* ---- ゴースト数字・罫線をより繊細に ---- */
.sec-head[data-num]::before{ -webkit-text-stroke-color: rgba(20,48,79,.1); }
.bg-lgray .sec-head[data-num]::before{ -webkit-text-stroke-color: rgba(20,48,79,.12); }
.bg-navy .sec-head[data-num]::before,
section.bg-navy .sec-head[data-num]::before{ -webkit-text-stroke-color: rgba(255,255,255,.12); }
#contact::before{
  background: linear-gradient(90deg, transparent, rgba(221,205,164,.7) 35%, rgba(233,199,110,.9) 50%, rgba(221,205,164,.7) 65%, transparent);
}
#contact::after{ border-color: rgba(221,205,164,.18); border-radius: 18px; }

/* =========================================================
   洗練レイヤー2（2026-08-27）
   タイポグラフィの品格・ボタンのディテール・紙色の温度
   ========================================================= */

/* ---- 紙色：青みグレー → 温かみのあるアイボリーグレー ---- */
.bg-lgray{ background-color: #f7f5f1 !important; }
body{ color: #212d39; }
.form__checks,
.form__check{ background: #faf9f5; border-color: #e8e4da; }
details{ border-color: #e8e4da !important; border-top-color: #e8e4da !important; }

/* ---- ネイビーセクション：右上に微かな金のグローで奥行き ---- */
section.bg-navy{
  background:
    radial-gradient(58% 42% at 88% -4%, rgba(233,199,110,.08), transparent 70%),
    linear-gradient(180deg, #0e2036 0%, #16334f 52%, #0f2740 100%) !important;
}

/* ---- 見出し：字間を広げ、下に金の細ルール ---- */
.heading{ letter-spacing: .1em; }
.sec-head h2.heading::after{
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  margin: 18px auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--gold), var(--gold-soft));
}
section.bg-navy .sec-head h2.heading::after{
  background: linear-gradient(90deg, var(--gold-bright), rgba(233,199,110,.35));
}

/* ---- 英字ラベル：トラッキングを強めて小さく・上品に ---- */
.accent-bar{
  font-size: 13px !important;
  letter-spacing: .32em !important;
}
.accent-bar::before,
.accent-bar::after{ width: 44px; background: rgba(179,146,90,.45); }

/* ---- 本文・サブテキストの色調 ---- */
.text-sub{ color: #67717c !important; }

/* ---- CTAボタン：矢印＋字間 ---- */
.btn-shine{ letter-spacing: .05em; }
.btn-shine.bg-gold::after{
  content: "→";
  display: inline-block;
  margin-left: .55em;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  transition: transform .3s var(--ease);
}
.btn-shine.bg-gold:hover::after{ transform: translateX(5px); }
.fv-mobile-action__button::after{
  content: "→";
  display: inline-block;
  margin-left: .55em;
  font-weight: 700;
  transition: transform .3s var(--ease);
}
.fv-mobile-action__button:hover::after{ transform: translateX(5px); }
header .btn-shine.bg-gold::after{ margin-left: .4em; }

/* ---- CTAボタン：角丸をなくし、最終CTAの2ボタンを同寸法に揃える ---- */
.btn-shine,
.fv-mobile-action__button,
.fixed-cta__panel,
.fixed-cta__link,
.fixed-cta__link::before{
  border-radius: 0 !important;
}
.contact-action-row{
  align-items: flex-start;
}
.contact-action-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  box-sizing: border-box;
  border-radius: 0 !important;
  line-height: 1.4;
}
.contact-action-group{
  width: 100%;
}
@media (max-width: 639px){
  .contact-action-button{
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: normal !important;
    text-align: center;
    font-size: clamp(.82rem, 4vw, 1rem);
    line-height: 1.45;
  }
}
@media (min-width: 640px){
  .contact-action-row > .contact-action-button,
  .contact-action-row > .contact-action-group{
    flex: 1 1 0;
    min-width: 0;
  }
}

/* ---- 固定CTA・FV帯のタイポ ---- */
.fixed-cta__link{ letter-spacing: .04em; }
.fv-mobile-action__catch{ letter-spacing: .06em; }

/* ---- スマホ：FV画像内にコピーがあるため、帯はボタン＋補足のみに（縦長対策） ---- */
@media (max-width: 767px){
  .fv-mobile-action__catch,
  .fv-mobile-action__lead{ display: none; }
  .fv-mobile-action{ padding: 16px 18px 22px; }
}

/* ---- フォーム：ラベル字間・送信ボタンをどっしり ---- */
.form__row label,
.form__row legend{ letter-spacing: .07em; }
.contact__form button[type="submit"]{
  width: min(100%, 440px);
  padding-top: 18px;
  padding-bottom: 18px;
  font-size: 1.02rem;
  letter-spacing: .08em;
}

/* ---- FAQ：ホバーで金のヘアライン ---- */
details:hover{ border-color: rgba(179,146,90,.45) !important; }
details summary{ transition: color .25s var(--ease); }
details summary:hover{ color: var(--gold-cta-deep); }

/* ---- PC幅：セクションの垂直余白を一段広く ---- */
@media (min-width: 1024px){
  main > section:has(.sec-head){
    padding-top: 7.5rem;
    padding-bottom: 7.5rem;
  }
}

/* =========================================================
   30秒AI化診断（モーダル）／共通仕様フォーム  2026-08-31
   ---------------------------------------------------------
   ※ 本LPのTailwindはビルド済みのため、ここは素のCSSで追記している。
     新しいユーティリティクラスは使わないこと。
   ※ 配色はこの :root ブロックだけで調整できる。
     本LP既存の変数（--navy / --gold 系 / --line）を参照しているため、
     LP側の配色を変えると診断モーダルも追従する。
   ========================================================= */
:root{
  --dx-main:        var(--navy);       /* #14304f 見出し・濃色面（白文字が乗る濃さ） */
  --dx-main-deep:   var(--navy-deep);  /* #0a1d33 */
  --dx-accent:      #8a6a2e;           /* var(--gold) #b3925a を白地でAAを満たす濃さに調整 */
  --dx-edge:        var(--gold);       /* #b3925a 装飾専用（上端罫・進捗バー・マーカー） */
  --dx-sub:         #8a6a2e;           /* 白地に乗る小さいラベル文字 */
  --dx-sub-soft:    var(--gold-soft);  /* #ddcda4 細罫・装飾 */
  --dx-sub-pale:    var(--gold-pale);  /* rgba(179,146,90,.12) タグの地色 */
  --dx-white:       #ffffff;
  --dx-bg:          #f7f8fa;           /* モーダルの地色（.bg-lgray 相当） */
  --dx-tint:        #f9fafb;           /* 淡い面（.form__checks と同じ） */
  --dx-hover-bg:    #f6f8fb;
  --dx-line:        #e4e8ee;           /* 罫線（.form__checks と同じ） */
  --dx-line-tint:   #dde2e9;           /* 入力欄の罫線と同じ */
  --dx-line-main:   var(--line-navy);  /* rgba(20,48,79,.5) */
  --dx-ink:         #1f2a36;           /* body の本文色 */
  --dx-ink-soft:    #5f6b78;           /* .text-sub と同じ */
  --dx-ink-dark:    var(--navy);
  --dx-muted:       #9aa3ad;
  --dx-alert:       #b3352b;
  --dx-alert-line:  #e8c0ba;
  --dx-backdrop:    rgba(10,29,51,.62);

  --dx-font-display: 'Zen Old Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  --dx-font-body:    'Noto Sans JP', sans-serif;
  --dx-font-en:      'Cormorant Garamond', 'Zen Old Mincho', serif;
  --dx-radius:       12px;   /* 入力欄・カード（ボタン類は個別に999px） */
  --dx-ease:         cubic-bezier(.22,.61,.36,1);
}

/* ---------- 前提：ボックスモデルを固定する ---------- */
.dx, .dx *, .dx *::before, .dx *::after,
.dxcarry, .dxcarry *, .dxbtn, .dxbtn *{ box-sizing:border-box; }

/* ---------- 起動ボタン（サブCTA） ---------- */
.dx-launch{ text-align:center; }
.dx-launch__lead{
  margin:0 0 10px;
  font-family:var(--dx-font-body);
  font-size:12.5px; font-weight:700; letter-spacing:.08em;
  color:var(--dx-ink-soft);
}
.dxbtn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px; flex-wrap:wrap;
  width:100%; max-width:420px;
  min-height:58px; padding:14px 26px;
  font-family:var(--dx-font-body); font-size:15px; font-weight:700; letter-spacing:.06em;
  line-height:1.5; text-align:center; cursor:pointer;
  color:var(--dx-main);
  background:var(--dx-white);
  border:2px solid var(--dx-main);
  border-radius:999px;
  box-shadow:0 10px 22px -14px rgba(13,32,54,.5);
  transition:background-color .3s var(--dx-ease), color .3s var(--dx-ease),
             transform .25s var(--dx-ease), box-shadow .3s var(--dx-ease);
}
.dxbtn:hover{
  background:var(--dx-main); color:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 30px -14px rgba(13,32,54,.55);
}
.dxbtn__ico{ flex:none; width:20px; height:20px; display:inline-grid; place-items:center; }
.dxbtn__ico svg{ width:100%; height:100%; }
.dxbtn__tag{
  flex:none; padding:4px 9px; border-radius:999px;
  background:var(--dx-sub-pale); color:var(--dx-sub);
  font-size:10.5px; font-weight:700; letter-spacing:.08em; line-height:1;
  transition:background-color .3s ease, color .3s ease;
}
.dxbtn:hover .dxbtn__tag{ background:rgba(255,255,255,.16); color:var(--dx-sub-soft); }
.dxbtn__note{
  margin-top:10px;
  font-family:var(--dx-font-body);
  font-size:12px; line-height:1.8; letter-spacing:.02em;
  color:var(--dx-ink-soft);
  text-align:center;
}

/* 設置ブロックの余白 */
.dx-launch--hero{ padding:34px 0 8px; background:#fff; }
.dx-launch--works{ margin-top:44px; }
.dx-launch--final{ margin-top:26px; }

/* ---------- モーダル本体 ---------- */
.dx{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:flex-end; justify-content:center;
}
.dx[hidden]{ display:none; }
body.is-dx-open{ overflow:hidden; }

.dx__backdrop{
  position:absolute; inset:0;
  background:var(--dx-backdrop);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0;
  transition:opacity .3s var(--dx-ease);
}
.dx.is-open .dx__backdrop{ opacity:1; }

.dx__panel{
  position:relative;
  width:100%; max-width:720px;
  max-height:92dvh;
  display:flex; flex-direction:column;
  background:var(--dx-bg);
  border-top:5px solid var(--dx-edge);
  border-radius:18px 18px 0 0;
  box-shadow:0 -20px 60px rgba(10,29,51,.4);
  transform:translateY(24px);
  opacity:0;
  transition:transform .38s var(--dx-ease), opacity .3s var(--dx-ease);
}
.dx.is-open .dx__panel{ transform:none; opacity:1; }
.dx__panel:focus{ outline:none; }

.dx__close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  cursor:pointer;
  color:var(--dx-ink-soft);
  background:var(--dx-white);
  border:1px solid var(--dx-line);
  transition:color .25s ease, border-color .25s ease;
}
.dx__close svg{ width:19px; height:19px; }
.dx__close:hover{ color:var(--dx-main); border-color:var(--dx-line-main); }

.dx__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:18px 58px 12px 20px;
}
.dx__eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  margin:0;
  font-family:var(--dx-font-display); font-weight:700;
  font-size:13px; letter-spacing:.14em;
  color:var(--dx-main-deep);
}
.dx__eyebrow::before{ content:""; width:4px; height:15px; background:var(--dx-edge); }
.dx__count{
  margin:0;
  font-family:var(--dx-font-en); font-weight:600;
  font-size:14px; letter-spacing:.1em; color:var(--dx-ink-soft);
  font-variant-numeric:tabular-nums;
}
.dx__progress{ height:4px; margin:0 20px; border-radius:999px; background:var(--dx-line); overflow:hidden; }
.dx__bar{
  display:block; height:100%; width:50%; border-radius:999px;
  background:linear-gradient(90deg, var(--dx-main), var(--dx-edge));
  transition:width .45s var(--dx-ease);
}

.dx__body{
  flex:1 1 auto; overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:20px 20px 26px;
}
.dx__step{ display:none; }
.dx__step.is-active{ display:block; animation:dxin .35s var(--dx-ease) both; }
@keyframes dxin{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){
  .dx__step.is-active{ animation:none; }
  .dx__panel, .dx__backdrop{ transition:none; }
}

.dx__q{
  margin:0;
  font-family:var(--dx-font-display); font-weight:700;
  font-size:clamp(17px, 4.8vw, 22px);
  line-height:1.7; letter-spacing:.06em;
  color:var(--dx-ink-dark);
  text-align:center;
}
.dx__sub{
  margin:8px 0 0; text-align:center;
  font-family:var(--dx-font-body);
  font-size:12.5px; letter-spacing:.04em; color:var(--dx-ink-soft);
}

/* STEP1：2択カード */
.dx__choices{ display:grid; grid-template-columns:1fr; gap:12px; margin:20px 0 0; padding:0; list-style:none; }
.dxcard{
  display:flex; flex-direction:column; gap:9px;
  width:100%; padding:20px 18px;
  text-align:left; cursor:pointer;
  font-family:var(--dx-font-body);
  background:var(--dx-white);
  border:1px solid var(--dx-line);
  border-left:4px solid var(--dx-line-main);
  border-radius:var(--dx-radius);
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.dxcard:hover, .dxcard:focus-visible{
  border-color:var(--dx-sub-soft);
  border-left-color:var(--dx-main);
  box-shadow:0 16px 30px -18px rgba(13,32,54,.5);
  transform:translateY(-2px);
}
.dxcard__head{
  font-family:var(--dx-font-display); font-weight:700;
  font-size:clamp(15px, 4.2vw, 17px); line-height:1.7; letter-spacing:.05em;
  color:var(--dx-ink-dark);
}
.dxcard__text{ font-size:13px; line-height:1.9; color:var(--dx-ink-soft); }
.dxcard__go{
  display:inline-flex; align-items:center; gap:7px;
  align-self:flex-start;
  font-size:13px; font-weight:700; letter-spacing:.04em;
  color:var(--dx-accent);
}
.dxcard__go::before{ content:"\25B6"; font-size:.82em; line-height:1; }

/* STEP2：業務カード */
.dx__tasks{ display:grid; grid-template-columns:1fr; gap:9px; margin:18px 0 0; padding:0; list-style:none; }
.dxtask{
  display:flex; align-items:center; gap:12px;
  width:100%; padding:14px 15px;
  text-align:left; cursor:pointer;
  font-family:var(--dx-font-body);
  background:var(--dx-white);
  border:1px solid var(--dx-line);
  border-radius:var(--dx-radius);
  transition:border-color .25s ease, background-color .25s ease, transform .2s ease;
}
.dxtask:hover, .dxtask:focus-visible{
  border-color:var(--dx-main);
  background:var(--dx-hover-bg);
  transform:translateX(3px);
}
.dxtask__cat{
  flex:none; min-width:58px; padding:5px 0; border-radius:4px;
  text-align:center; white-space:nowrap;
  font-size:11.5px; font-weight:700; letter-spacing:.08em;
  color:#fff; background:var(--dx-main);
}
.dxtask__name{
  font-size:14px; font-weight:700; line-height:1.6; letter-spacing:.02em;
  color:var(--dx-ink-dark);
}
.dx__back{
  display:inline-flex; align-items:center;
  margin-top:18px; padding:0;
  font-family:var(--dx-font-body); font-size:13px; letter-spacing:.04em;
  cursor:pointer; background:none; border:none;
  color:var(--dx-ink-soft);
  border-bottom:1px solid transparent;
  transition:color .25s ease, border-color .25s ease;
}
.dx__back:hover{ color:var(--dx-main); border-bottom-color:currentColor; }
.dx__step--result .dx__back{ display:block; margin-inline:auto; margin-top:16px; }

/* STEP2：自由記入 */
.dxtask-other{ grid-column:1 / -1; }
.dxtask--other{ border-style:dashed; border-color:var(--dx-line-main); }
.dxtask--other:hover,
.dxtask--other:focus-visible,
.dxtask--other.is-active{
  border-style:solid;
  border-color:var(--dx-main);
  background:var(--dx-hover-bg);
}
.dxtask__cat--other{ background:var(--dx-ink-soft); }

.dx__other{
  margin-top:12px; padding:16px;
  background:var(--dx-white);
  border:1px solid var(--dx-main);
  border-radius:var(--dx-radius);
}
.dx__other[hidden]{ display:none; }
.dx__other-label{
  display:block; margin-bottom:9px;
  font-family:var(--dx-font-body);
  font-size:12.5px; font-weight:700; letter-spacing:.03em;
  color:var(--dx-ink-dark);
}
.dx__other-row{ display:flex; gap:8px; align-items:stretch; }
.dx__other-input{
  flex:1 1 auto; min-width:0;
  padding:12px 13px;
  font-family:var(--dx-font-body); font-size:15px; line-height:1.6;
  color:var(--dx-ink);
  background:var(--dx-white);
  border:1px solid var(--dx-line-tint);
  border-radius:var(--dx-radius);
  transition:border-color .22s ease, box-shadow .22s ease;
}
.dx__other-input::placeholder{ color:var(--dx-muted); font-size:13.5px; }
.dx__other-input:focus{
  outline:none;
  border-color:var(--dx-edge);
  box-shadow:0 0 0 3px rgba(179,146,90,.16);
}
.dx__other-go{
  flex:none; min-width:80px; padding:12px 18px;
  font-family:var(--dx-font-body); font-size:14px; font-weight:700; letter-spacing:.06em;
  cursor:pointer;
  color:#fff;
  background:var(--dx-main);
  border:1px solid var(--dx-main);
  border-radius:999px;
  transition:background-color .22s ease;
}
.dx__other-go:hover{ background:var(--dx-main-deep); }
.dx__other-err{ margin:9px 0 0; font-size:12px; line-height:1.7; color:var(--dx-alert); }
.dx__other-err[hidden]{ display:none; }

/* 診断結果 */
.dx__result-eyebrow{
  margin:0 0 12px; text-align:center;
  font-family:var(--dx-font-en); font-weight:600;
  font-size:13px; letter-spacing:.2em; color:var(--dx-sub);
}
.dx__result-title{
  margin:0; text-align:center;
  font-family:var(--dx-font-display); font-weight:700;
  font-size:clamp(17px, 4.8vw, 23px);
  line-height:1.7; letter-spacing:.06em;
  color:var(--dx-ink-dark);
}
.dx__result-title b{
  background:linear-gradient(transparent 62%, rgba(179,146,90,.45) 62%);
  font-weight:700;
}
.dx__result-card{
  margin-top:18px; padding:18px;
  background:var(--dx-white);
  border:1px solid var(--dx-line);
  border-top:3px solid var(--dx-edge);
  border-radius:var(--dx-radius);
}
.dx__result-text{ margin:0; font-family:var(--dx-font-body); font-size:14px; line-height:2.05; color:var(--dx-ink); }
.dx__result-plan{
  margin-top:14px; padding:16px 18px;
  background:var(--dx-tint);
  border:1px solid var(--dx-line-tint);
  border-radius:var(--dx-radius);
}
.dx__result-plan-label{
  margin:0 0 8px;
  font-family:var(--dx-font-body);
  font-size:11.5px; font-weight:700; letter-spacing:.12em;
  color:var(--dx-sub);
}
.dx__result-plan-text{ margin:0; font-family:var(--dx-font-body); font-size:13.5px; line-height:1.95; color:var(--dx-ink); }
.dx__result-assure{
  display:flex; flex-direction:column; gap:7px;
  margin:18px 0 20px; padding:0; list-style:none;
}
.dx__result-assure li{
  position:relative; padding-left:23px;
  font-family:var(--dx-font-body);
  font-size:13px; line-height:1.75; color:var(--dx-ink-dark); font-weight:500;
}
.dx__result-assure li::before{
  content:""; position:absolute; left:2px; top:.5em;
  width:10px; height:6px;
  border-left:2px solid var(--dx-main);
  border-bottom:2px solid var(--dx-main);
  transform:rotate(-45deg);
}
/* 結果画面のCTA（本LPの金のピル型CTAと同じ見え方にそろえたもの） */
.dx__cta{
  display:flex; align-items:center; justify-content:center;
  width:100%; min-height:62px; padding:14px 24px;
  font-family:var(--dx-font-body); font-size:16px; font-weight:900; letter-spacing:.06em;
  line-height:1.5; text-align:center; text-decoration:none; cursor:pointer;
  color:var(--dx-main);
  background:linear-gradient(160deg, #ffe9a8 0%, var(--gold-cta) 52%, var(--gold-cta-deep) 100%);
  border:none; border-radius:999px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    inset 0 -2px 0 rgba(120,80,15,.18),
    0 14px 30px -12px rgba(190,140,45,.55);
  text-shadow:0 1px 0 rgba(255,255,255,.4);
  transition:transform .25s var(--dx-ease), box-shadow .3s var(--dx-ease);
}
.dx__cta:hover{
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -2px 0 rgba(120,80,15,.18),
    0 20px 40px -14px rgba(190,140,45,.62);
}

/* ---------- フォーム上部の引き継ぎ表示 ---------- */
.dxcarry{
  margin-bottom:22px;
  padding:16px 18px;
  background:var(--dx-tint);
  border:1px solid var(--dx-line-tint);
  border-left:4px solid var(--dx-main);
  border-radius:var(--dx-radius);
}
.dxcarry[hidden]{ display:none; }
.dxcarry__label{
  margin:0 0 9px;
  font-family:var(--dx-font-body);
  font-size:11.5px; font-weight:700; letter-spacing:.12em;
  color:var(--dx-sub);
}
.dxcarry__list{ display:flex; flex-direction:column; gap:6px; list-style:none; margin:0; padding:0; }
.dxcarry__row{
  display:flex; flex-wrap:wrap; align-items:baseline;
  gap:4px 10px; padding:7px 0;
  border-bottom:1px dashed var(--dx-line-tint);
}
.dxcarry__row:last-child{ border-bottom:0; }
.dxcarry__key{
  flex:none; min-width:88px;
  font-size:11.5px; font-weight:700; letter-spacing:.06em;
  color:var(--dx-ink-soft);
}
.dxcarry__val{
  flex:1 1 160px; min-width:0;
  font-size:13px; line-height:1.7; font-weight:700;
  color:var(--dx-ink-dark);
}
.dxcarry__edit{
  flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; padding:8px 16px; border-radius:999px;
  font-family:var(--dx-font-body); font-size:11.5px; font-weight:700; letter-spacing:.04em;
  cursor:pointer;
  color:var(--dx-main);
  background:var(--dx-white);
  border:1px solid var(--dx-line-main);
  transition:background-color .22s ease, color .22s ease, border-color .22s ease;
}
.dxcarry__edit:hover{ background:var(--dx-main); color:#fff; border-color:var(--dx-main); }
/* 「この内容を送らない」：同じ大きさで色だけ変え、取り消し操作だと分かるようにする */
.dxcarry__clear{
  flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; padding:8px 16px; border-radius:999px;
  font-family:var(--dx-font-body); font-size:11.5px; font-weight:700; letter-spacing:.04em;
  cursor:pointer;
  color:var(--dx-alert);
  background:var(--dx-white);
  border:1px solid var(--dx-alert-line);
  transition:background-color .22s ease, color .22s ease, border-color .22s ease;
}
.dxcarry__clear:hover{ background:var(--dx-alert); color:#fff; border-color:var(--dx-alert); }
.dxcarry__row--action{ border-bottom:0; padding-top:10px; }
.dxcarry__row--action .dxcarry__val{
  flex:1 1 160px; font-weight:500; font-size:11.5px; color:var(--dx-ink-soft);
}
.dxcarry__note{ margin:10px 0 0; font-size:11.5px; line-height:1.7; color:var(--dx-ink-soft); }

/* ---------- タブレット以上 ---------- */
@media (min-width:768px){
  .dx{ align-items:center; padding:24px; }
  .dx__panel{
    max-height:86dvh;
    border-top:5px solid var(--dx-edge);
    border-radius:18px;
    box-shadow:0 30px 80px rgba(10,29,51,.45);
  }
  .dx__head{ padding:22px 60px 14px 26px; }
  .dx__progress{ margin:0 26px; }
  .dx__body{ padding:24px 26px 30px; }
  .dx__tasks{ grid-template-columns:1fr 1fr; }
  .dx__choices{ grid-template-columns:1fr 1fr; }
  .dxcard{ padding:24px 20px; }
}

/* ---------- 都道府県セレクト（既存の入力欄と同じ見た目にそろえる） ----------
   矢印色はメインカラー #14304f（%2314304f）。
   padding / border / border-radius / font-size / line-height は
   .form__row input と同値にして、高さを一致させている。 */
.contact__form .form__row select{
  box-sizing:border-box;
  width:100%;
  padding:12px 42px 12px 14px;
  border:1px solid #dde2e9;
  border-radius:12px;
  background-color:#fcfcfb;
  color:#1f2a36;
  font-family:var(--dx-font-body);
  font-size:15px;
  line-height:1.7;
  height:auto;
  cursor:pointer;
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5l5-5' fill='none' stroke='%2314304f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
  background-size:12px 8px;
}
.contact__form .form__row select:focus{
  outline:none;
  background-color:#fff;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(179,146,90,.16);
}
/* 未選択のあいだだけ、プレースホルダーらしく淡くする */
.contact__form .form__row select:invalid{ color:var(--dx-ink-soft); }

/* ---------- 送信後の流れを示す補足ブロック ---------- */
.contact-form__aside{
  box-sizing:border-box;
  margin:0 0 18px;
  padding:12px 15px;
  background:var(--dx-tint);
  border:1px solid var(--dx-line);
  border-left:3px solid var(--dx-edge);
  border-radius:var(--dx-radius);
}
.contact-form__aside-list{
  display:flex; flex-direction:column; gap:4px;
  list-style:none; margin:0; padding:0;
}
.contact-form__aside-list li{
  position:relative;
  padding-left:17px;
  font-family:var(--dx-font-body);
  font-size:11.5px; line-height:1.6; letter-spacing:.02em;
  color:var(--dx-ink-soft);
}
.contact-form__aside-list li::before{
  content:""; position:absolute; left:1px; top:.55em;
  width:8px; height:5px;
  border-left:1.6px solid var(--dx-main);
  border-bottom:1.6px solid var(--dx-main);
  transform:rotate(-45deg);
}

/* ---------- フォーム内「デモ・ご相談を希望する」チェック ---------- */
.dxdemo{
  box-sizing:border-box;
  margin:0 0 18px;
  padding:16px 18px;
  background:var(--dx-tint);
  border:1px solid var(--dx-line-tint);
  border-left:4px solid var(--dx-main);
  border-radius:var(--dx-radius);
}
.dxdemo__label{
  display:flex; align-items:flex-start; gap:11px;
  margin:0; cursor:pointer;
  font-family:var(--dx-font-body);
  font-size:14.5px; font-weight:700; line-height:1.7;
  color:var(--dx-ink-dark);
}
.dxdemo__label input{
  flex:none; width:20px; height:20px; margin-top:3px;
  accent-color:var(--dx-main);
  cursor:pointer;
}
.dxdemo__tag{
  display:inline-block; margin-left:6px; padding:3px 8px; border-radius:999px;
  font-size:10.5px; font-weight:700; letter-spacing:.08em; line-height:1;
  color:var(--dx-sub); background:var(--dx-sub-pale);
  vertical-align:1px;
}
.dxdemo__note{
  margin:9px 0 0 31px;
  font-family:var(--dx-font-body);
  font-size:12px; line-height:1.8;
  color:var(--dx-ink-soft);
}
@media (max-width:767px){
  .dxdemo__note{ margin-left:0; }
}

/* ---------- 同意チェック内の「必須」バッジが縦に折れるのを防ぐ ---------- */
.form__check .form__req{ white-space:nowrap; }

/* ---------- ヘッダーCTA：文言統一で長くなったため1行に収める ---------- */
.header-cta-link{ white-space:nowrap; }
@media (min-width:640px) and (max-width:900px){
  .header-cta-link{ font-size:12px; padding-left:12px; padding-right:12px; letter-spacing:0; }
}

/* ---------- スマホ：同意チェックの「必須」バッジが単独で改行落ちするのを防ぐ ---------- */
@media (max-width: 767px) {
  .form__req {
    padding: 2px 5px;
    margin-left: 5px;
    font-size: 10px;
    white-space: nowrap;
  }
}
/* =========================================================
   スマホ統一基準 20260902
   ・本文14px以上／注釈12.5px以上（8〜11pxを全廃）
   ・タップ領域44px以上
   ・CTA高さ64px以上
   ・日本語の改行を文節単位に統一
   ========================================================= */
@media (max-width: 767px){

  /* --- 1. 文字サイズの下限を揃える --- */
  .hero__note, .subsidy__note, .subsidy__small, .final-cta__note,
  .target__note, .price__note, .company__note, .dxbtn__note,
  .midcta__note, .contact-form__aside-list li, .cf-aside li,
  .form__note, .contact__note, .voice__meta, .note, .notes,
  .trust-band__note, .company-url-link, .text-xs{
    font-size: 12.5px !important;
    line-height: 1.85 !important;
  }
  .target__item{ font-size: 12.5px !important; }

  /* 本文 */
  .section__desc, .problem__item, .solution__item p, .reason__text,
  .format__text, .flow__text, .faq__a, .usecase__text, .body-text,
  .lead, .desc{
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  /* --- 2. タップ領域 44px 以上 --- */
  .footer__nav a, footer nav a, footer a,
  .company__link, .company-url-link,
  a[href^="tel"], .header__logo, .site-header a{
    display: inline-flex; align-items: center;
    min-height: 44px;
  }
  .footer__nav li{ margin: 0; }

  /* --- 3. CTAボタンの高さを揃える --- */
  .btn--gold, .btn--primary, .btn-entry, .hero-cta__btn,
  .sticky-cta__btn, .f-entry, .fv-pc-cta, .midcta__btn,
  button[type="submit"], .form-submit, .cf-submit{
    min-height: 64px !important;
  }

  /* --- 4. 日本語の改行ルール --- */
  h1, h2, h3, .heading, .section__title, .cta-lead,
  .midcta__lead, .hero__catch, .answer-copy, .hero__headline{
    word-break: auto-phrase;
  }
  p, li, dd, .section__desc, .usecase__text, .faq__a{
    text-wrap: pretty;
  }
}

/* --- 5. 中間CTA（活用例の直後） --- */
.midcta{ padding: 40px 0; background: #f4f8fb; }
.midcta__lead{
  text-align:center; font-weight:800; line-height:1.8; font-size:15px;
}
.midcta__btns{ max-width:480px; margin:16px auto 0; }
.midcta__btn{
  display:flex; align-items:center; justify-content:center;
  min-height:64px; padding:0 20px;
  font-size:16px; font-weight:800; letter-spacing:.04em;
  text-align:center; text-decoration:none; border-radius:10px;
}
.midcta__note{ margin-top:12px; text-align:center; font-size:12.5px; line-height:1.85; }
@media (max-width:767px){
  .midcta{ padding:32px 0; }
  .midcta__lead{ font-size:14px; }
}
/* 中間CTA（Tailwind版・ゴールド系ボタン） */
.midcta{ background:#f4f8fb; }
.midcta__lead{ color:#14304f; }
.midcta__btn{
  color:#14304f;
  background:linear-gradient(180deg,#f5d67e,#e0b354);
  box-shadow:0 10px 24px rgba(20,48,79,.22);
}
.midcta__note{ color:#5f6b78; }
/* ---------- FV直下：問い合わせCTAと30秒診断を同一ブロックに並べる ---------- */
.cta-pair__sub{ margin-top: 12px; }
.cta-pair__sub .dxbtn{
  width: 100%; max-width: none;
  min-height: 56px;
  background: rgba(255,255,255,.06);
  border: 1.5px solid rgba(255,255,255,.55);
  color: #fff;
}
.cta-pair__sub .dxbtn:hover{ background: rgba(255,255,255,.14); color:#fff; }
.cta-pair__sub .dxbtn__tag{ background: rgba(255,255,255,.18); color:#fff; }
@media (min-width: 768px){
  .cta-pair__sub{ margin-top: 14px; }
  .cta-pair__sub .dxbtn{ max-width: 420px; margin: 0 auto; }
}
/* ---------- FV直下の受講条件チップ ---------- */
.fv-assure{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px;
  margin: 14px 0 0; padding:0; list-style:none;
}
.fv-assure li{
  position:relative;
  padding: 6px 12px 6px 26px;
  font-size: 12.5px; font-weight:700; line-height:1.5;
  color:#fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
}
.fv-assure li::before{
  content:""; position:absolute; left:11px; top:50%;
  width:8px; height:5px; margin-top:-3px;
  border-left:1.8px solid #e0b354; border-bottom:1.8px solid #e0b354;
  transform: rotate(-45deg);
}
@media (min-width: 768px){ .fv-assure li{ font-size:13px; } }
/* 診断ボタン直下の説明文（濃色背景） */
.cta-pair__sub .dx-hero-note{
  margin-top: 8px; text-align:center;
  font-size: 12.5px; line-height:1.8;
  color: rgba(255,255,255,.85);
}
/* チップスはCTAの上に置くため下側の余白へ調整 */
.fv-assure{ margin: 4px 0 14px !important; }
/* =========================================================
   右端の見切れ対策 20260902
   100vw はスクロールバー幅を含むため、縦スクロールがある環境で
   約15px 右にはみ出す（body の overflow-x:hidden で切れて見える）。
   幅指定を親基準（100%）に上書きする。
   ========================================================= */
/* 対象は 100vw 指定の要素のみ。.container / .hero__visual の
   デザイン上の最大幅（額装枠920px 等）は絶対に潰さないこと。 */
.hero .container{ width: 100% !important; max-width: 100% !important; }
.hero-visual,
.hero-visual picture,
.fv-hero-link,
.fv-hero-image{ max-width: 100% !important; }
.hero-visual picture{ width: 100% !important; }
html, body{ overflow-x: clip; }
/* =========================================================
   スマホCTAサイズの適正化 20260902
   64px は画面占有が大きいため 56px に。タップ領域44pxは十分確保。
   ========================================================= */
@media (max-width: 767px){
  .btn--gold, .btn--primary, .btn-entry, .hero-cta__btn,
  .f-entry, .fv-pc-cta, .midcta__btn, .btn-orange,
  .fv-mobile-action__button, .fv-sp-cta__btn,
  button[type="submit"], .form-submit, .cf-submit,
  .dxbtn, .dxbtn-inline, .btn--ghost{
    min-height: 56px !important;
  }
  /* 上下パディングが効いて肥大するボタンを抑制 */
  .hero__cta .btn, .hero-cta__btn, .midcta__btn,
  .fv-mobile-action__button, .fv-sp-cta__btn{
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  /* 固定CTAは押し間違い防止のため据え置き（66px） */
  .sticky-cta__btn, .sticky-cta__phone,
  .sp-fixed-cta a, .fixbar-cta{ min-height: 60px !important; }
}
/* =========================================================
   スマホCTA 追い込み 20260902b
   padding + line-height(2.0) の合算で 68〜72px になっていたため、
   行間を詰めて min-height 56px を実効値にする。
   ========================================================= */
@media (max-width: 767px){
  a.btn, button.btn, .btn-cta, .btn--primary, .btn--gold, .btn--ghost-light,
  .btn-orange, .btn-primary, .btn-entry, .midcta__btn,
  .fv-mobile-action__button, .fv-sp-cta__btn,
  input[type="submit"], button[type="submit"], .form-submit{
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    line-height: 1.4 !important;
    min-height: 56px !important;
  }
  /* 2行になるボタンだけ 高さを許容（上限64px） */
  .cta-actions__main, .quick-demo-btn{ max-height: none !important; }
  /* 固定CTAは据え置き */
  .sticky-cta__btn, .sticky-cta__phone{
    padding-top: 0 !important; padding-bottom: 0 !important;
    min-height: 60px !important; line-height: 1.35 !important;
  }
}
/* ylp1系（Tailwindビルド）の2行CTAの行間を詰める 20260902b */
@media (max-width: 767px){
  a.btn-shine, a.sp-menu-tel, .cta-actions__main, button.dxbtn{
    padding-top: 10px !important; padding-bottom: 10px !important;
    line-height: 1.45 !important;
  }
}
/* =========================================================
   kaigo2系 FVの 100vw はみ出し対策 20260902n
   100vw はスクロールバー幅を含むため親基準（100%）に置き換える
   ========================================================= */
@media (max-width: 640px){
  section#fv{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  section#fv .fv-hero-link,
  section#fv .fv-hero-image{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
/* =========================================================
   kaigo2系 ヘッダー整理 20260902t
   ビルド済み styles.css に .hidden / sm: のユーティリティが
   含まれておらず、PC専用の電話ブロックがスマホでも表示され
   ロゴに重なっていた。ヘッダー内に限定して打ち消す。
   ========================================================= */
@media (max-width: 639px){
  header a.hidden{ display: none !important; }
  header > div{ gap: 8px; }
  header > div > a:first-child{ flex: 1 1 auto; min-width: 0; overflow: hidden; }
  header .header-cta-link{
    flex: 0 0 auto;
    max-width: 150px;
    min-height: 44px;
    padding: 6px 10px !important;
    font-size: 11.5px !important;
    line-height: 1.25 !important;
    text-align: center;
    white-space: normal !important;
  }
}
/* =========================================================
   中間CTAボタンに背景色を付与（LPのメインCTAと同色） 20260902u
   これまで背景・文字色の指定がなく、ただのテキストに見えていた。
   ========================================================= */
.midcta__btn{
  background: linear-gradient(160deg,#ffe9a8 0%,#f0c25a 52%,#d29a33 100%) !important;
  color: #14304f !important;
  border: 0;
  border-radius: 10px;
  box-shadow: 0 10px 22px -10px rgba(178,132,40,.34);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.midcta__btn:hover,
.midcta__btn:focus-visible{
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 14px 26px -10px rgba(178,132,40,.34);
}
/* =========================================================
   中間CTAの背景・文字を各LPのベースカラー／フォントに合わせる 20260902y
   これまで全LP共通で #f4f8fb（青白）＋既定フォントだったため浮いていた。
   ========================================================= */
.midcta{
  background: #f7f5f1 !important;
  border-top: 1px solid rgba(0,0,0,.055);
  border-bottom: 1px solid rgba(0,0,0,.055);
}
.midcta__lead{
  font-family: 'Zen Old Mincho','Hiragino Mincho ProN',serif !important;
  color: #14304f !important;
}
.midcta__note{
  color: rgba(33,45,57,.82) !important;
}
/* =========================================================
   日本語の改行ルールを全テキストに適用 20260902z
   ・禁則処理（行頭に句読点・閉じ括弧を置かない）
   ・見出しは文節単位で折り返し＋行長を均す
   ・本文は最終行に1〜2文字だけ残さない
   ・.nb は分割禁止（電話番号＋受付時間など）
   ========================================================= */
p, li, dd, dt, td, th, figcaption, blockquote, small, label, address,
.lead, .desc, .note, .text, [class*="__text"], [class*="__lead"],
[class*="__desc"], [class*="__note"], [class*="-text"], [class*="-note"]{
  line-break: strict;
  text-wrap: pretty;
  word-break: normal;
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, summary,
.heading, .catch, .eyebrow,
[class*="__title"], [class*="-title"], [class*="__head"], [class*="__q"],
.cta-lead, .midcta__lead, .section__title, .sec-title, .fv-title{
  line-break: strict;
  word-break: auto-phrase;
  text-wrap: balance;
  overflow-wrap: break-word;
}

/* ボタン内の文言は文節で折り返す */
.btn, a.btn, button.btn, .btn-cta, .midcta__btn, .dxbtn,
.header-cta-sp, [class*="cta__btn"], [class*="cta-btn"]{
  line-break: strict;
  word-break: auto-phrase;
  text-wrap: balance;
}

/* 途中で切ってはいけないかたまり */
.nb{ white-space: nowrap; display: inline-block; }
/* グリッド項目の min-width:auto でトラックが親より広くなるのを防ぐ 20260902z2 */
ol.grid > li, ul.grid > li, .grid > li{ min-width: 0; }