/* =========================================================
   Global basics
   ========================================================= */
:root{
  --navy-900:#1e3a8a;
  --light-blue-500:#3b82f6;
  --text-900:#111827;
  --text-700:#374151;
  --muted-500:#6b7280;
  --border:#e5e7eb;
  --bg:#ffffff;
  --bg-soft:#f9fafb;
  --radius-lg:1rem;
  --shadow-card:0 1px 3px rgba(0,0,0,.08);
}

/* a hover下線全体無効 */
a:hover{ text-decoration:none; }

/* アクセシビリティ：フォーカス時 */
a:focus-visible,
.prose a:focus-visible,
.entry-content a:focus-visible,
.rich-content a:focus-visible{
  outline: 2px solid var(--light-blue-500);
  outline-offset: 2px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* hover時のアンダーライン無効化（ユーティリティ） */
.hover\:underline:hover,
.group:hover .group-hover\:underline{
  text-decoration: none !important;
  text-decoration-line: none !important;
}

.u_break_sp {
  display: block;
}

@media (min-width: 768px) {
  .u_break_sp {
    display: none;
  }
}

/* =========================================================
   PCナビ：hoverで左→右に伸びる下線
   ========================================================= */
@media (min-width: 1280px) {
  .nav-primary > li > a { position: relative; display:block; line-height: inherit; }
  .nav-primary > li > a > span { position: relative; }
  .nav-primary > li > a > span::after{
    content:""; position:absolute; left:0; bottom:0; width:0%; height:2px;
    background-color:#1e3a8a; transition: width .28s ease;
  }
  .nav-primary > li > a:hover > span::after,
  .nav-primary > li.current-menu-item > a > span::after,
  .nav-primary > li.current-menu-ancestor > a > span::after,
  .nav-primary > li > a:focus-visible > span::after{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .nav-primary > li > a > span::after{ transition:none; }
}

/* =========================================================
   Hamburger / Mobile Nav
   ========================================================= */
.hamburger{ position:relative; width:40px; height:40px; border:1px solid #d1d5db; border-radius:9999px; display:inline-flex; align-items:center; justify-content:center; background:#fff; cursor:pointer; }
.hamburger:hover{ background:#f9fafb; }
.hamburger span{ position:absolute; left:10px; right:10px; height:2px; background:#111827; border-radius:1px; transition: transform .22s ease, opacity .18s ease; }
.hamburger span:nth-child(1){ transform: translateY(-6px); }
.hamburger span:nth-child(2){ transform: translateY(0); }
.hamburger span:nth-child(3){ transform: translateY(6px); }
.hamburger.is-active span:nth-child(1){ transform: translateY(0) rotate(45deg); }
.hamburger.is-active span:nth-child(2){ opacity:0; }
.hamburger.is-active span:nth-child(3){ transform: translateY(0) rotate(-45deg); }

.nav-overlay{ position:fixed; left:0; right:0; top:64px; bottom:0; z-index:30; pointer-events:none; }
.nav-overlay.hidden{ display:none; }
.nav-overlay .nav-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.35); opacity:0; transition:opacity .22s ease; }
.nav-overlay .nav-sheet{ position:absolute; left:0; right:0; top:0; background:#fff; border-bottom-left-radius:1rem; border-bottom-right-radius:1rem; box-shadow:0 10px 30px rgba(0,0,0,.12); transform:translateY(-8px); opacity:0; transition: transform .25s ease, opacity .2s ease; padding:1rem; }
.nav-overlay.is-open{ pointer-events:auto; }
.nav-overlay.is-open .nav-backdrop{ opacity:1; }
.nav-overlay.is-open .nav-sheet{ transform:translateY(0); opacity:1; }
@media (prefers-reduced-motion: reduce){
  .hamburger span, .nav-overlay .nav-backdrop, .nav-overlay .nav-sheet{ transition:none !important; }
}

/* =========================================================
   SNS Buttons
   ========================================================= */
.sns-btn{ width:38px; height:38px; border-radius:9999px; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:#111827; box-shadow:0 3px 10px rgba(0,0,0,.18); transition: transform .15s ease, filter .15s ease, box-shadow .15s ease; }
.sns-btn:hover{ transform: translateY(-1px); filter: brightness(1.05); box-shadow:0 6px 16px rgba(0,0,0,.2); }
.sns-btn svg{ width:18px; height:18px; fill: currentColor; }
.sns--facebook{ background:#1877F2; }
.sns--x{ background:#111827; }
.sns--line{ background:#06C755; }

/* =========================================================
   Bottom Nav
   ========================================================= */
.bnv{ position:fixed; left:0; right:0; bottom:0; z-index:45; background:rgba(255,255,255,.94); backdrop-filter: blur(10px); border-top:1px solid #e5e7eb; box-shadow:0 -8px 24px rgba(0,0,0,.08); transform: translateY(calc(100% + env(safe-area-inset-bottom))); transition: transform .25s ease; padding-bottom: env(safe-area-inset-bottom); }
.bnv__inner{ max-width:72rem; margin:0 auto; padding:0; display:flex; width:100%; }
.bnv__btn{ flex:1; display:flex; justify-content:center; align-items:center; gap:8px; height:56px; font-weight:700; text-decoration:none; border-radius:0; }
.bnv__btn--primary{ background:#1e3a8a; color:#fff; }
.bnv__btn--ghost{ background:#ffffff; color:#111827; border-left:1px solid #e5e7eb; }
.bnv__ic{ width:18px; height:18px; fill:currentColor; }
.bnv--show{ transform: translateY(0); }

/* =========================================================
   Floating CTA（旧）
   ========================================================= */
.fcta{ position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom)); width:64px; height:64px; border-radius:9999px; background:#06C755; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 28px rgba(6,199,85,.35); transform:translateY(8px); opacity:0; transition: transform .25s ease, opacity .25s ease; z-index:46; text-decoration:none; }
@media (min-width:1024px){ .fcta{ width:72px; height:72px; right:24px; bottom:24px; } }
.fcta.is-show{ transform:translateY(0); opacity:1; }
.fcta.with-bnv{ bottom: calc(88px + env(safe-area-inset-bottom)); }
.fcta__icon svg{ width:28px; height:28px; fill:#fff; }
@media (min-width:1024px){ .fcta__icon svg{ width:32px; height:32px; } }
.fcta__label{ position:absolute; right: calc(100% + 10px); bottom: 6px; background:#06C755; color:#fff; font-weight:700; white-space:nowrap; border-radius:9999px; padding:10px 14px; box-shadow:0 8px 24px rgba(6,199,85,.25); transform: translateX(8px); opacity:0; pointer-events:auto; }
.fcta:hover .fcta__label, .fcta:focus-visible .fcta__label{ transform: translateX(0); opacity:1; }
@media (min-width:1024px){ .fcta__label{ transform:none; opacity:1; } }

/* =========================================================
   CF7 / Forms
   ========================================================= */


/* =========================================================
   FAQ（Easy Accordion）—最小変更＋Q/Aバッジ
   ========================================================= */
.ta-ea .sp-ea-icon,
.ta-ea .ea-expand-icon,
.ta-ea .accordion-icon{ display:none !important; }

.ta-ea .sp-ea-single,
.ta-ea .eap-single,
.ta-ea .ea-card,
.ta-ea .ea-item,
.ta-ea .accordion-item{
  background:#fff !important; border:1px solid #e7ebf2 !important; border-radius:14px !important;
  overflow:hidden !important; margin-top:14px !important;
  box-shadow:0 1px 2px rgba(17,24,39,.04) !important; transition: box-shadow .25s ease, border-color .25s ease !important;
}
.ta-ea .sp-ea-single:hover,
.ta-ea .eap-single:hover,
.ta-ea .ea-card:hover,
.ta-ea .ea-item:hover,
.ta-ea .accordion-item:hover{ box-shadow:0 6px 18px rgba(17,24,39,.06) !important; }

.ta-ea .sp-ea-title,
.ta-ea .eap-title,
.ta-ea .ea-header,
.ta-ea .accordion-header{ margin:0 !important; padding:0 !important; background:transparent !important; border:none !important; }

.ta-ea .sp-ea-title > a,
.ta-ea .eap-title > a,
.ta-ea .ea-header > a,
.ta-ea .accordion-header > a{
  position:relative !important; display:flex !important; align-items:center !important; gap:12px !important; width:100% !important;
  padding:16px 48px 16px 18px !important; color:#0f172a !important; text-decoration:none !important; cursor:pointer !important; outline:none !important; font-size:18px !important;
}
.ta-ea .sp-ea-title > a:focus-visible,
.ta-ea .eap-title > a:focus-visible,
.ta-ea .ea-header > a:focus-visible,
.ta-ea .accordion-header > a:focus-visible{ outline:3px solid rgba(59,130,246,.35) !important; outline-offset:2px !important; border-radius:10px !important; }

.ta-ea .sp-ea-title > a::before,
.ta-ea .eap-title > a::before,
.ta-ea .ea-header > a::before,
.ta-ea .accordion-header > a::before{
  content:'Q'; flex:0 0 auto; width:26px; height:26px; border-radius:9999px; display:grid; place-items:center; background:#0f172a; color:#fff; font-weight:700; font-size:.78rem; line-height:1;
}
.ta-ea .sp-ea-title > a::after,
.ta-ea .eap-title > a::after,
.ta-ea .ea-header > a::after,
.ta-ea .accordion-header > a::after{
  content:''; position:absolute; right:16px; top:50%; transform:translateY(-50%); width:22px; height:22px; border-radius:6px;
  background:
    linear-gradient(#0f172a,#0f172a) center/14px 2px no-repeat,
    linear-gradient(#0f172a,#0f172a) center/2px 14px no-repeat;
  opacity:.95; transition: background-size .2s ease, opacity .2s ease;
}
.ta-ea .sp-ea-title > a[aria-expanded="true"]::after,
.ta-ea .eap-title > a[aria-expanded="true"]::after,
.ta-ea .ea-header > a[aria-expanded="true"]::after,
.ta-ea .accordion-header > a[aria-expanded="true"]::after{
  background:
    linear-gradient(#0f172a,#0f172a) center/14px 2px no-repeat,
    linear-gradient(#0f172a,#0f172a) center/0 14px no-repeat;
}

.ta-ea .sp-ea-content,
.ta-ea .eap-body,
.ta-ea .ea-content,
.ta-ea .accordion-content,
.ta-ea .ea-body{
  position:relative !important; padding:0 18px 16px 50px !important; color:#334155 !important; font-size:.95rem !important; line-height:1.9 !important;
}
.ta-ea .sp-ea-content::before,
.ta-ea .eap-body::before,
.ta-ea .ea-content::before,
.ta-ea .accordion-content::before,
.ta-ea .ea-body::before{
  content:'A'; position:absolute; left:18px; top:16px; width:26px; height:26px; border-radius:9999px; display:grid; place-items:center; background:#ef4444; color:#fff; font-weight:700; font-size:.78rem; line-height:1;
}

@media (max-width: 480px){
  .ta-ea .sp-ea-title > a,
  .ta-ea .eap-title > a,
  .ta-ea .ea-header > a,
  .ta-ea .accordion-header > a{ padding:14px 46px 14px 16px !important; }
  .ta-ea .sp-ea-title > a::before,
  .ta-ea .eap-title > a::before,
  .ta-ea .ea-header > a::before,
  .ta-ea .accordion-header > a::before{ width:24px; height:24px; font-size:.75rem; }
  .ta-ea .sp-ea-content,
  .ta-ea .eap-body,
  .ta-ea .ea-content,
  .ta-ea .accordion-content,
  .ta-ea .ea-body{ padding:0 16px 14px 46px !important; }
  .ta-ea .sp-ea-content::before,
  .ta-ea .eap-body::before,
  .ta-ea .ea-content::before,
  .ta-ea .accordion-content::before,
  .ta-ea .ea-body::before{ left:16px; top:14px; width:24px; height:24px; }
}

/* =========================================================
   Gutenberg Rich Content (front-end)
   ========================================================= */
.prose, .entry-content, .rich-content{ color:var(--text-900); line-height:1.9; font-feature-settings:"palt"; }
.prose > * + *, .entry-content > * + *, .rich-content > * + *{ margin-top:1.25em; }
.prose h1, .entry-content h1, .rich-content h1{
  font-family:Inter, ui- "Noto Sans JP", sans-serif, system-ui, -apple-system,"Noto Sans JP", sans-serif;
  font-weight:800; line-height:1.25; font-size:clamp(1.75rem, 1.3rem + 1.2vw, 2.25rem); letter-spacing:.01em; margin:1.2em 0 .6em;
}
.prose h2, .entry-content h2, .rich-content h2{
  font-weight:700; line-height:1.35; font-size:clamp(1.5rem, 1.1rem + .9vw, 1.875rem);
  border-left:4px solid var(--navy-900); padding-left:.75rem; margin:1.8em 0 .7em;
}
.prose h3, .entry-content h3, .rich-content h3{ font-weight:700; line-height:1.45; font-size:1.25rem; margin:1.4em 0 .5em; }
.prose h4, .entry-content h4, .rich-content h4{ font-weight:600; font-size:1.125rem; }
.prose h2, .prose h3, .entry-content h2, .entry-content h3, .rich-content h2, .rich-content h3{ scroll-margin-top:96px; }
.prose p, .entry-content p, .rich-content p{ color:var(--text-700); letter-spacing: 0.4px;}
.prose a, .entry-content a, .rich-content a{ color:var(--navy-900); text-decoration:underline; text-underline-offset:2px; transition:color .3s ease; }
.prose a:hover, .entry-content a:hover, .rich-content a:hover{ color:var(--light-blue-500); }
.prose ul, .entry-content ul, .rich-content ul{ list-style:disc; padding-left:1.25rem; }
.prose ol, .entry-content ol, .rich-content ol{ list-style:decimal; padding-left:1.25rem; }
.prose li::marker, .entry-content li::marker, .rich-content li::marker{ color:var(--navy-900); font-weight:600; }
.prose li + li, .entry-content li + li, .rich-content li + li{ margin-top:.35em; }
.prose blockquote, .entry-content blockquote, .rich-content blockquote{
  margin:1.5em 0; padding:1rem 1.25rem; border-left:4px solid var(--navy-900);
  background:#f8fafc; border-radius:.75rem; color:var(--text-700);
}
.prose blockquote cite, .entry-content blockquote cite, .rich-content blockquote cite{
  display:block; margin-top:.5rem; color:var(--muted-500); font-style:normal; font-size:.9em;
}
.prose figure, .entry-content figure, .rich-content figure{ margin:1.25em 0; }
.prose img, .entry-content img, .rich-content img{ max-width:100%; height:auto; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); background:#fff; }
.prose figcaption, .entry-content figcaption, .rich-content figcaption{ text-align:center; color:var(--muted-500); font-size:.875rem; margin-top:.5rem; }
.wp-block-gallery{ gap:.75rem; }
.wp-block-gallery .blocks-gallery-item img{ border-radius:.75rem; box-shadow:var(--shadow-card); }
.wp-block-separator{ height:1px; border:none; background:var(--border); margin:2rem 0; }
.wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; background:var(--navy-900); color:#fff; border-radius:9999px; padding:.75rem 1.25rem; font-weight:600; transition:background .3s ease, color .3s ease, box-shadow .3s ease; box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.wp-block-button__link:hover{ background:var(--light-blue-500); }
.wp-block-button.is-style-outline .wp-block-button__link{ background:transparent; color:var(--navy-900); border:1px solid var(--navy-900); }
.wp-block-button.is-style-outline .wp-block-button__link:hover{ color:#fff; background:var(--navy-900); }
.prose table, .entry-content table, .rich-content table{ width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--border); border-radius:.75rem; overflow:hidden; }
.prose th, .entry-content th, .rich-content th{ background:var(--bg-soft); text-align:left; font-weight:600; color:var(--text-900); }
.prose th, .prose td, .entry-content th, .entry-content td, .rich-content th, .rich-content td{ padding:.75rem 1rem; border-bottom:1px solid var(--border); }
.prose tr:last-child td, .entry-content tr:last-child td, .rich-content tr:last-child td{ border-bottom:none; }
.prose pre, .entry-content pre, .rich-content pre{ background:#0b1020; color:#e5e7eb; border-radius:.75rem; padding:1rem; overflow:auto; box-shadow:var(--shadow-card); }
.prose code, .entry-content code, .rich-content code{ background:#f3f4f6; color:#1f2937; padding:.2em .4em; border-radius:.375rem; font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,"Liberation Mono","Courier New",monospace; }
.wp-block-pullquote{ border-top:2px solid var(--navy-900); border-bottom:2px solid var(--navy-900); color:var(--navy-900); text-align:center; padding:1rem 0; margin:2rem 0; }
.wp-block-pullquote blockquote{ border:none; background:transparent; padding:0; }
.alignwide{ width:min(1100px,100%); margin-left:auto; margin-right:auto; }
.alignfull{ width:100vw; margin-left:50%; transform:translateX(-50%); }
.alignleft{ float:left; margin:.25rem 1rem 1rem 0; max-width:50%; }
.alignright{ float:right; margin:.25rem 0 1rem 1rem; max-width:50%; }
@media (max-width:640px){ .alignleft,.alignright{ float:none; margin:1rem 0; max-width:100%; } }
.wp-block-columns{ gap:1rem; }
.wp-block-column > * + *{ margin-top:1rem; }
.single .entry-content:last-child{ margin-bottom:0; }

/* =========================================================
   CTA buttons（共通）
   ========================================================= */
.buttonIconText02,
.buttonIconText03{
  --ta-navy:#1e3a8a;
  --ta-blue:#3b82f6;
  --ta-white:#fff;
  --ta-text:#1f2937;
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.625rem 1rem; border-radius:9999px;
  font-weight:600; font-size:0.95rem; line-height:1;
  text-decoration:none; transition:all .2s ease; border:1.5px solid currentColor;
}
.buttonIconText02{ color:var(--ta-navy); background:transparent; }
.buttonIconText02:hover{ color:var(--ta-blue); background:rgba(59,130,246,.06); }
.buttonIconText02__reverse{ color:#fff; background:var(--ta-navy); border-color:var(--ta-navy); }
.buttonIconText02__reverse:hover{ color:#fff; background:#19327a; border-color:#19327a; }
.buttonIconText02:focus-visible,
.buttonIconText03:focus-visible{ outline:3px solid rgba(59,130,246,.45); outline-offset:2px; }
.buttonIconText02_icon,.buttonIconText03_icon{ display:inline-grid; place-items:center; width:1.9rem; height:1.9rem; border-radius:9999px; background:transparent; }
.buttonIconText02__reverse .buttonIconText02_icon{ background:rgba(255,255,255,.16); }
.buttonIconText02__reverse:hover .buttonIconText02_icon{ background:rgba(255,255,255,.22); }
.buttonIconText02 svg,.buttonIconText03 svg{ width:1.2rem; height:1.2rem; display:block; }
.buttonIconText02 svg *, .buttonIconText03 svg *{ stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.buttonIconText02.w-full, .buttonIconText03.w-full{ justify-content:center; }
@media (min-width:768px){ .buttonIconText02, .buttonIconText03{ font-size:1rem; padding:.7rem 1.1rem; } }

/* 暗色セクション用 */
.on-dark .buttonIconText02{ color:#fff; border-color:rgba(255,255,255,.9); }
.on-dark .buttonIconText02:hover{ background:rgba(255,255,255,.12); color:#fff; }
.on-dark .buttonIconText02__reverse{ color:#1e3a8a; background:#fff; border-color:#fff; }
.on-dark .buttonIconText02__reverse:hover{ background:#2554b3; border-color:#f3f4f6; }
.on-dark .buttonIconText02__reverse .buttonIconText02_icon{ background:rgba(30,58,138,.10); }
.on-dark .buttonIconText02__reverse:hover .buttonIconText02_icon{ background:rgba(30,58,138,.15); }
.on-dark .buttonIconText02:focus-visible{ outline:3px solid rgba(255,255,255,.6); }

/* “もっと見る”専用 */
.buttonMore{ position:relative; overflow:hidden; isolation:isolate; color:var(--navy-900); background:#fff; border-color:var(--navy-900); border-width:1.5px; border-radius:0 !important; transition: color .25s ease, border-color .25s ease, background-color .25s ease; }
.buttonMore > *{ position:relative; z-index:1; }
.buttonMore::before{ content:""; position:absolute; inset:0; background:var(--navy-900); transform:scaleX(0); transform-origin:left center; transition: transform .35s ease; z-index:0; }
.buttonMore:hover,.buttonMore:focus-visible{ color:#fff; border-color:var(--navy-900); }
.buttonMore:hover::before,.buttonMore:focus-visible::before{ transform:scaleX(1); }
.buttonMore .buttonIconText02_icon{ order:2; margin-left:.5rem; }
.buttonMore .buttonIconText02_text{ order:1; }
@media (prefers-reduced-motion: reduce){ .buttonMore, .buttonMore::before{ transition:none !important; } }

/* =========================================================
   Global CTA（右下ピル）
   ========================================================= */
.gcta{ position:fixed; z-index:46; right:18px; bottom:calc(18px + env(safe-area-inset-bottom)); display:inline-flex; align-items:center; gap:8px; text-decoration:none; background:#06C755; color:#fff; border-radius:9999px; height:48px; padding:0 14px; box-shadow:0 10px 28px rgba(6,199,85,.28); transform:translateY(8px); opacity:0; pointer-events:none; transition: transform .25s ease, opacity .25s ease, filter .2s ease, background-color .2s ease; }
.gcta.is-show{ transform:translateY(0); opacity:1; pointer-events:auto; }
.gcta:hover{ filter: brightness(1.05); }
.gcta:focus-visible{ outline:3px solid rgba(6,199,85,.55); outline-offset:2px; }
.gcta.with-bnv{ bottom: calc(88px + env(safe-area-inset-bottom)); }
.gcta__icon svg{ width:20px; height:20px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.gcta__text{ display:flex; flex-direction:column; line-height:1.05; }
.gcta__text strong{ font-weight:800; font-size:14px; font-family: Inter, ui- "Noto Sans JP", sans-serif, system-ui, -apple-system,"Noto Sans JP", sans-serif; }
.gcta__text small{ font-size:10.5px; opacity:.95; margin-top:1px; }
@media print{ .gcta{ display:none !important; } }

/* =========================================================
   ★ 修正ポイント
   1) 改行描画（\n / 実改行の双方）
   2) プランCTA hoverの白飛び防止＋アニメ
   ========================================================= */

/* 改行表示ユーティリティ */
.ta-preline{ white-space: pre-line; }

/* Plans CTA：グラデ保持＋アニメ（白飛びしない） */
.ta-cta{
  position: relative;
  color: #fff;
  background-image: linear-gradient(90deg,var(--cta-s1) 0%, var(--cta-s2) 50%, var(--cta-s3) 100%);
  background-size: 200% 100%;
  background-position: 0% 50%;
  transition: background-position .35s ease, transform .25s ease, box-shadow .25s ease, filter .25s ease;
  will-change: background-position, transform;
}
.ta-cta:hover{
  background-position: 100% 50%;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  filter: saturate(1.02);
}
.ta-cta__icon{
  background: rgba(255,255,255,.16);
  color: #fff;
  transition: background-color .25s ease, transform .25s ease;
}
.ta-cta:hover .ta-cta__icon{
  background: rgba(255,255,255,.22);
  transform: translateX(2px);
}
@media (prefers-reduced-motion: reduce){
  .ta-cta, .ta-cta:hover{ transition:none; transform:none; box-shadow:none; background-position:0% 50%; }
}
/* ===== Plans：ボタンの位置を最下部で揃える ===== */
.ta-plan{
  display:flex;
  flex-direction:column;
  height:100%;            /* 親の h-full を埋める */
}
.ta-plan__features{
  flex:1 1 auto;          /* 特徴リストで高さを稼いで差分を吸収 */
  min-height: 1px;        /* Safari対策 */
}

/* ===== Service page helpers ===== */
/* 下向きマーク（ページ内メニュー用） */
@keyframes taDownHint { 0%,100%{transform:translateY(0);opacity:.75} 50%{transform:translateY(4px);opacity:1} }
.ta-down{
  width:0; height:0;
  border-left:6px solid transparent;
  border-right:6px solid transparent;
  border-top:8px solid currentColor;
}
.ta-down-anim{ animation: taDownHint 1.4s ease-in-out infinite; }

/* Plans：カード高さを揃え、CTAを底に寄せる */
.ta-plan{ display:flex; flex-direction:column; height:100%; }


/* CTA の見た目（front-page と同等） */
.ta-cta{
  background: linear-gradient(90deg, var(--cta-s1,#0ea5e9), var(--cta-s2,#2563eb));
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.ta-cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(37,99,235,.35);
  filter: saturate(1.05);
}
.ta-cta__icon{
  background: linear-gradient(90deg, var(--cta-s2,#2563eb), var(--cta-s3,#0ea5e9));
  color:#fff;
}

/* Options: 小さなチップ */
.ta-chip{
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/* Options: 右側イラスト枠のリング感（ほんのり） */
.ta-opt__illu{
  border: 1px solid rgba(0,0,0,.06);
}
@media (prefers-reduced-motion: reduce){
  .ta-chip, .ta-opt__illu{ transition: none !important; }
}
/* ====== Contact（CF7）基礎 ====== */
.wpcf7 form { max-width: 800px; margin: 0 auto; }
.cf7-row { margin-top: 22px; }
.cf7-row:first-child { margin-top: 0; }

.cf7-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 14px;
  color: #222;
}
.badge {
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 3px;
  vertical-align: middle;
}
.badge.req { background: #ffe9ea; color: #c62828; border: 1px solid #ffc7cc; }
.badge.opt { background: #eef6ff; color: #1e88e5; border: 1px solid #cfe6ff; }

/* ====== 入力フィールド ====== */
.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="tel"],
.wpcf7 form select,
.wpcf7 form textarea {
  width: 100%;
  background: #e9e9e9;
  border-radius: 5px;
  padding: 12px 14px;
  font-size: 14px;
  color: #111;
  box-sizing: border-box;
}
.wpcf7 form textarea { min-height: 160px; resize: vertical; }

.wpcf7 form input::placeholder,
.wpcf7 form textarea::placeholder { color: #9aa0a6; }

/* フォーカス */
.wpcf7 form :is(input, select, textarea):focus {
  outline: none;
  border-color: #60a5fa; /* blue-400 */
  box-shadow: 0 0 0 3px rgba(96,165,250,.25);
}

/* セレクトの矢印（右側 ▼） */
.wpcf7-form-control-wrap:has(select) {
  position: relative;
}
.wpcf7-form-control-wrap:has(select)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 10px;
  height: 10px;
  transform: translateY(-50%) rotate(90deg);
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg width='10' height='10' viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 2l6 3-6 3z' fill='%23333'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
.wpcf7 select { appearance: none; -webkit-appearance: none; }

/* ====== 同意チェック（正方形＋✔） ====== */
/* ネイティブのチェックは隠す */
.wpcf7-acceptance input[type="checkbox"] {
  position: absolute;
  opacity: 0;
}

/* ラベル（テキスト全体をクリック可） */
.cf7-row--agreement .wpcf7-list-item-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  color: #222;
}

/* 四角いボックス */
.cf7-row--agreement .wpcf7-list-item-label::before {
  content: "";
  width: 24px;
  height: 24px;
  background: #fff;
  border: 1px solid #bbb;
  border-radius: 4px;            /* ←正方形 */
  flex-shrink: 0;
}

/* ✔アイコン（データURI） */
.cf7-row--agreement .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  left: 4px;
  width: 18px;
  height: 18px;
  opacity: 0;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg width='22' height='18' viewBox='0 0 22 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 9l6 6L20 3' fill='none' stroke='%23008C45' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

/* チェック時に表示 */
.wpcf7-acceptance input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

/* テキストリンク */
.cf7-agreeText a {
  color: #1e88e5;
  text-decoration: underline;
}

/* ====== エラー表示（必要に応じて） ====== */
.wpcf7-not-valid-tip { margin-top: 6px; font-size: 12px; color: #c62828; }
.wpcf7 form.invalid .wpcf7-response-output { border-color: #c62828; }
/* ============ 基本色（必要なら調整） ============ */
:root{
  --c-bg:#f5f7fb;          /* ページ背景の淡いグレー */
  --c-card:#ffffff;        /* カード背景 */
  --c-line:#e5eaf2;        /* 枠線グレー */
  --c-text:#1b1e27;        /* 文字 */
  --c-muted:#9aa3b2;       /* 補助文字 */
  --c-blue:#2f6fec;        /* アクセント青 */
  --c-blue-dark:#1e4fb3;
  --c-alert-bg:#ffe9e9;    /* 注意枠の薄赤 */
  --c-alert:#e05a5a;       /* 注意文言 */
  --radius:10px;
  --shadow:0 10px 30px rgba(20,33,61,.08);
}

/* ============ レイアウト ============ */
.p-contactPage__fv{
  background: url('/wp-content/themes/yourtheme/assets/images/under_fv.jpg') center/cover no-repeat;
  position: relative;
  padding: 60px 16px 80px;
  color:#fff;
}
.p-contactPage__fv::before{
  content:""; position:absolute; inset:0; background:rgba(20,40,80,.55);
}
.p-contactPage__fvInner{ position:relative; max-width:1100px; margin:0 auto; text-align:center; }
.p-contactPage__title{ font-size:28px; font-weight:700; letter-spacing:.04em; margin:0 0 10px; }
.p-contactPage__lead{ font-size:14px; opacity:.95; }

.l-container{ max-width:1100px; margin:0 auto; padding:40px 16px 120px; background:transparent; }

/* ============ 電話ボックス ============ */
.p-contactTel{ margin-top:24px; }
.p-contactTel__ttl{ text-align:center; font-size:18px; font-weight:700; margin:0 0 16px; color:var(--c-text); }
.p-contactTel__box{
  background:var(--c-card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:26px 20px;
  text-align:center;
}
.p-contactTel__label{
  display:inline-block; font-weight:700; color:var(--c-muted);
  letter-spacing:.1em; margin-right:8px;
}
.p-contactTel__num{
  font-size:28px; font-weight:800; color:#136fda; text-decoration:none;
}
.p-contactTel__num:hover {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.p-contactTel__note{ margin-top:6px; color:var(--c-muted); font-size:12px; }

/* ============ メールフォーム 見出し・注意 ============ */
.p-contactForm{ margin-top:28px; }
.p-contactForm__ttl{
  text-align:center; font-size:18px; font-weight:700; color:var(--c-blue-dark); margin:0 0 12px;
}
.p-contactForm__alert{
  background:var(--c-alert-bg); border:1px solid var(--c-alert);
  color:var(--c-alert); border-radius:8px; padding:12px 16px;
  max-width:780px; margin:0 auto 18px; font-size:13px; line-height:1.7;
}

/* ============ カード ============ */
.p-contactForm__card{
  background:var(--c-card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  max-width:780px; margin:0 auto;
}
.p-contactForm__inner{ padding:24px 18px; }
@media(min-width:768px){
  .p-contactForm__inner{ padding:32px 36px; }
}

/* ============ フォーム（CF7） ============ */
.wpcf7-form-layout{ display:grid; row-gap:18px; }
.cf7-row{ display:block; }
.cf7-label{
  display:block; font-weight:700; font-size:14px; color:var(--c-text);
  margin:0 0 8px;
}
.badge{
  display:inline-block; font-size:11px; line-height:1;
  padding:4px 6px; border-radius:4px; margin-left:6px; vertical-align:middle;
}
.badge.req{ background:#ffefef; color:#d04545; border:1px solid #f2b3b3; }
.badge.opt{ background:#eef6ff; color:#4673d6; border:1px solid #b7ccff; }

/* エラーメッセージ（CF7既定） */
.wpcf7-not-valid-tip{ margin-top:6px; font-size:12px; color:#d04545; }
.wpcf7 form .wpcf7-response-output{
  margin:18px 0 0; border-radius:6px;
}

/* ======= 同意チェック（確実に見える正方形） ======= */
.cf7-row--accept{
  margin-top:8px;
  text-align: center;
}

.wpcf7-acceptance input[type="checkbox"]{
  /* 入力要素自体をカスタム（疑似要素なしでも見える） */
  -webkit-appearance:none;
  appearance:none;
  width:22px;
  height:22px;
  border:1.5px solid var(--c-line);
  border-radius:4px;
  display:inline-block;
  vertical-align:middle;
  margin:0 10px 0 0;
  position:relative;
  background:#fff; cursor:pointer;
  transition:border-color .2s, background .2s;
}

/* ======= 余白・注記 ======= */
.p-contactForm__privacyNote{
  max-width:780px; margin:14px auto 0; color:var(--c-muted); font-size:12px; text-align:left;
}
.p-contactForm__privacyNote a{ color:var(--c-blue-dark); text-decoration:underline; }

/* ======= レスポンシブ微調整 ======= */
@media(min-width:992px){
  .p-contactPage__title{ font-size:32px; }
  .p-contactTel__num{ font-size:34px; }
}

/* ====== ヒーロー（既存ロジックは保持。見た目のみ最小追加） ====== */
.contact-page .p-contactPage__fv{ position:relative; padding:60px 16px 80px; color:#fff; }
.contact-page .p-contactPage__fv .p-contactPage__fvInner{ position:relative; max-width:1100px; margin:0 auto; text-align:center; }
.contact-page .p-contactPage__fv .p-contactPage__title{ font-size:28px; font-weight:700; letter-spacing:.04em; margin:0 0 10px; }
.contact-page .p-contactPage__fv .p-contactPage__lead{ font-size:14px; opacity:.95; }
.contact-page .p-contactPage__fv .p-contactPage__fvBg{ position:absolute; inset:0; z-index:-1; }
.contact-page .p-contactPage__fv picture,
.contact-page .p-contactPage__fv img{ width:100%; height:100%; object-fit:cover; display:block; }
.contact-page .p-contactPage__fv::before{ content:""; position:absolute; inset:0; background:rgba(9, 24, 53, 0.55);}

.contact-page .l-container{ max-width:1100px; margin:0 auto; padding:40px 16px 120px; background:transparent; }

/* ====== ここからフォーム専用の最小オーバーライド（スコープ済み） ====== */
.contact-page .cf7-styled .wpcf7 form{ margin:0; }

/* ラベル＆バッジ */
.contact-page .cf7-styled .wpcf7 .cf7-label{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; font-size:14px; color:#222;
}
.contact-page .cf7-styled .wpcf7 .badge{
  display:inline-block; font-size:11px; line-height:1;
  padding:4px 6px; border-radius:3px; margin-left:6px;
}
.contact-page .cf7-styled .wpcf7 .badge.req{ background:#ffefef; color:#d04545; border:1px solid #f2b3b3; }
.contact-page .cf7-styled .wpcf7 .badge.opt{ background:#eef6ff; color:#4673d6; border:1px solid #b7ccff; }

/* 入力共通 */
.contact-page .cf7-styled .wpcf7 :is(input[type="text"],input[type="email"],input[type="tel"],select,textarea){
  width:100%;
  box-sizing:border-box;
  border-radius:6px;
  background:#eeeeee;
  color:#111;
  font-size:14px;
  padding:12px 14px;
}
.contact-page .cf7-styled .wpcf7 textarea{ min-height:160px; resize:vertical; }
.contact-page .cf7-styled .wpcf7 :is(input,select,textarea)::placeholder{ color:#9aa0a6; }
.contact-page .cf7-styled .wpcf7 :is(input,select,textarea):focus{
  outline:none; border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.22);
}

/* セレクト矢印 */
.contact-page .cf7-styled .wpcf7 select{
  -webkit-appearance:none; appearance:none;
  background:
    linear-gradient(45deg, transparent 50%, #9aa3b2 50%) calc(100% - 22px) 50%/6px 6px no-repeat,
    linear-gradient(135deg, #9aa3b2 50%, transparent 50%) calc(100% - 16px) 50%/6px 6px no-repeat,
    #fff;
  padding-right:42px;
}

/* 行間隔 */
.contact-page .cf7-styled .wpcf7 .cf7-row + .cf7-row{ margin-top:22px; }

/* 同意（ネイティブ表示／消えない） */
.contact-page .cf7-styled .wpcf7 .cf7-row--accept .wpcf7-acceptance input[type="checkbox"]{
  position:static !important; opacity:1 !important;
  -webkit-appearance:none; appearance:none;
  width:22px; height:22px; margin:0 10px 0 0;
  border:1.5px solid #cbd5e1; border-radius:4px; background:#fff; cursor:pointer;
  transition:border-color .2s, background .2s;
  vertical-align:middle;
}
.contact-page .cf7-styled .wpcf7 .cf7-row--accept .wpcf7-acceptance input[type="checkbox"]:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(255, 210, 29, 0.15);
  border-color:#FFAC19;
}
.contact-page .cf7-styled .wpcf7 .cf7-row--accept .wpcf7-acceptance input[type="checkbox"]:checked{
  background:#ffac19;
  border-color:#ffac19;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 14 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5.5 5 9l8-8' stroke='%23fff' stroke-width='2.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:14px 14px;
}
.contact-page .cf7-styled .wpcf7 .cf7-accept__label{ font-size:14px; color:#1f2937; }
.contact-page .cf7-styled .wpcf7 .cf7-accept__label a{ color:#1e3a8a; text-decoration:underline; }

/* 送信ボタン（中央・幅抑制・角丸控えめ） */
/* .contact-page .cf7-styled .wpcf7 .cf7-actions{
  margin-top: 30px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.contact-page .cf7-styled .wpcf7 input[type="submit"],
.contact-page .cf7-styled .wpcf7 .cf7-submit{
  display:inline-block !important;
  width:100% !important; max-width:360px !important; height:48px !important;
  padding:0 20px !important; border:none !important; border-radius:6px !important;
  background:#1fbf61 !important; color:#fff !important;
  font-weight:700 !important; font-size:15px !important;
  cursor:pointer; transition:filter .15s, transform .02s;
}
.contact-page .cf7-styled .wpcf7 input[type="submit"]:hover{ filter:brightness(1.05); }
.contact-page .cf7-styled .wpcf7 input[type="submit"]:active{ transform:translateY(1px); } */
/* ===== 送信ボタン（CF7） ===== */
.contact-page .cf7-styled .wpcf7 .cf7-actions{
  margin-top:30px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.contact-page .cf7-styled .wpcf7 .cf7-submit{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:360px;
  height:48px;
  border:none;
  border-radius:6px;
  color:#fff;
  font-weight:700;
  font-size:15px;
  cursor:pointer;
  background-image:linear-gradient(90deg,#f89c17,#ffbe4a); /* オレンジ系グラデ */
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  transition:transform .12s ease, box-shadow .2s ease, filter .2s ease;
}

.contact-page .cf7-styled .wpcf7 .cf7-submit:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  filter:saturate(1.03);
}
.contact-page .cf7-styled .wpcf7 .cf7-submit:hover::after{ right:8px; }

.contact-page .cf7-styled .wpcf7 .cf7-submit:focus-visible{
  outline:3px solid rgba(255,190,74,.45);
  outline-offset:2px;
}

.contact-page .cf7-styled .wpcf7 form.submitting .cf7-submit,
.contact-page .cf7-styled .wpcf7 .cf7-submit[disabled]{
  opacity:.65;
  cursor:not-allowed;
  box-shadow:none;
}

/* フォーム内リンク色 */
.contact-page .cf7-styled .wpcf7 a{
  color:#3b82f6;
  font-weight: 900;
  text-decoration:underline;
  text-underline-offset:2px;
}
.contact-page .cf7-styled .wpcf7 a:hover{
  opacity: 0.7;
  transition: opacity 0.3s ease;
}