/*
Theme Name: ゆいのわ 集客サイト
Theme URI: https://yuinowa.jp
Description: 相続アプリ「ゆいのわ」の集客・SEOサイト用テーマ。トップ=front-page.php、固定ページ=page.php。セクション(.sec)＋インナー(.inner)構造で、固定ページ内でも全幅セクションを作りやすい。
Author: Logical Design
Version: 1.0.2
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: yuinowa
*/

/* ===== トークン（アプリと世界観を統一） ===== */
:root{
  --ground:#F7F3EC; --ground-deep:#EFE8DA; --indigo:#3A5A78; --indigo-deep:#2C465E;
  --grass:#7FA86F; --vermilion:#C4553D; --ink:#2B2B2B; --ink-soft:#6B6459;
  --line:#E2D9C7; --white:#fff; --indigo-tint:#F2F6FA;
  --mincho:"Shippori Mincho",serif; --gothic:"Zen Kaku Gothic New",sans-serif;
  --hand:"Klee One",cursive;
  --warm:#FBF7F1; --blush:#EADCD2; /* やわらかな暖色 */
  --inner:1080px; --inner-narrow:720px; --radius:20px;
  --shadow-soft:0 12px 34px rgba(120,90,60,.07);
}

*{box-sizing:border-box;}
body{margin:0;font-family:var(--gothic);color:var(--ink);background:var(--ground);line-height:1.9;
  -webkit-font-smoothing:antialiased;letter-spacing:.01em;font-weight:400;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--indigo);text-decoration:none;}
a:hover{opacity:.75;text-decoration:none;}
/* タイトルは細めの明朝＋字間で上品に */
h1,h2,h3{font-family:var(--mincho);line-height:1.5;font-weight:500;letter-spacing:.04em;color:var(--ink);}
h1{font-weight:500;} h2{font-weight:500;} h3{font-weight:600;}

/* ===== セクション & インナー（キモ） ===== */
.sec{width:100%;padding:64px 0;}                 /* 全幅セクション（背景色を全幅で出せる） */
.inner{max-width:var(--inner);margin-inline:auto;padding-inline:24px;}
.inner.narrow{max-width:var(--inner-narrow);}
/* 固定ページ本文中で全幅にしたいときは .sec-full を使う（親が.innerでも全幅に抜ける） */
.sec-full{width:100vw;margin-left:calc(50% - 50vw);}

.bg-ground-deep{background:var(--ground-deep);}
.bg-indigo{background:var(--indigo);color:var(--white);}
.bg-indigo .inner h2,.bg-indigo a{color:var(--white);}
.bg-tint{background:var(--indigo-tint);}

/* ===== ヘッダー ===== */
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,243,236,.92);
  backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line);}
.site-header .inner{display:flex;align-items:center;gap:20px;padding-block:12px;}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--mincho);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:.06em;}
.logo .brand-mark{width:38px;height:38px;object-fit:contain;display:block;}
.logo .brand-name{line-height:1;}
/* フッター：暗背景なので白い丸バッジにマークを載せる */
.site-footer .footer-logo{color:#fff;}
.site-footer .footer-badge{width:40px;height:40px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.site-footer .footer-badge img{width:30px;height:30px;object-fit:contain;}
.gnav{margin-left:auto;}
.gnav ul{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0;font-size:15px;font-weight:500;}
.gnav li{display:flex;align-items:center;}
.gnav a{color:var(--ink);}
/* ナビ内のCTAボタンは白文字（.gnav a の上書きを戻す） */
.gnav a.btn{color:#fff;padding:9px 18px;font-size:14px;}
.gnav a.btn:hover{color:#fff;opacity:1;}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--indigo);color:#fff;
  padding:13px 26px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.02em;
  box-shadow:0 8px 20px rgba(58,90,120,.18);transition:transform .2s ease,box-shadow .2s ease;}
.btn:hover{background:var(--indigo-deep);text-decoration:none;transform:translateY(-1px);box-shadow:0 10px 24px rgba(58,90,120,.24);}
.btn.ghost{background:transparent;color:var(--indigo);border:1.5px solid var(--line);box-shadow:none;}
.btn.ghost:hover{border-color:var(--indigo);transform:none;box-shadow:none;}
.menu-toggle{display:none;margin-left:auto;flex-direction:column;justify-content:center;align-items:center;
  gap:6px;width:44px;height:44px;background:none;border:none;padding:0;cursor:pointer;}
.menu-toggle span{display:block;width:24px;height:2px;border-radius:2px;background:var(--indigo);
  transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .22s ease;}
.menu-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ===== ヒーロー（分割・手書きSVG＋アプリ画面） ===== */
.hero{position:relative;padding:84px 0 78px;overflow:hidden;
  background:radial-gradient(880px 460px at 14% 2%, #fff, var(--ground) 62%);}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.hero-hand{width:100%;max-width:560px;height:auto;margin:0 0 20px;display:block;}
.hero-hand text{font-family:var(--hand);}
.free-line{font-family:var(--mincho);font-size:clamp(17px,2.6vw,21px);color:var(--ink);margin:0 0 14px;font-weight:500;letter-spacing:.04em;}
.free-badge{display:inline-block;background:var(--grass);color:#fff;font-family:var(--gothic);
  font-weight:700;font-size:.8em;padding:3px 13px;border-radius:999px;margin-right:8px;letter-spacing:.06em;}
.hero .free-line,.hero .lead,.hero .cta{text-align:left;justify-content:flex-start;}
.hero .lead{font-size:clamp(15px,2.2vw,17px);color:var(--ink-soft);max-width:520px;margin:0 0 30px;font-weight:400;}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;}
.hero .release-note{justify-content:flex-start;}
.release-note{margin-top:18px;font-size:14px;color:var(--ink-soft);display:flex;align-items:center;gap:9px;}
.release-note .release-dot{width:9px;height:9px;border-radius:50%;background:var(--grass);flex:0 0 auto;
  box-shadow:0 0 0 4px rgba(127,168,111,.22);}
.cta-band .release-note{justify-content:center;color:rgba(255,255,255,.85);margin-top:14px;}
.cta-band .release-note .release-dot{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.25);}
.hero-visual{display:flex;justify-content:center;}
.hero-visual .phone-frame{max-width:248px;}

/* 雰囲気バンド（生成画像＋想い） */
.band{padding:0;background:var(--ground-deep);}
.band-inner{min-height:340px;display:flex;align-items:center;padding-block:56px;
  background:linear-gradient(90deg, rgba(250,246,240,.94) 0%, rgba(250,246,240,.6) 44%, rgba(250,246,240,0) 72%),
    url("assets/img/band.png") center right/cover no-repeat;}
.band-msg{max-width:460px;}
.band-msg h2{font-size:clamp(21px,3vw,29px);line-height:1.8;margin:0 0 12px;}
.band-msg p{color:var(--ink-soft);margin:0;font-size:15px;}

@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;text-align:center;}
  .hero .free-line,.hero .lead,.hero .cta{text-align:center;justify-content:center;}
  .hero-hand{margin-inline:auto;}
  .hero-visual{margin-top:6px;}
  .band-inner{text-align:center;background:linear-gradient(180deg, rgba(250,246,240,.92), rgba(250,246,240,.72)),url("assets/img/band.png") center/cover;}
  .band-msg{max-width:none;margin-inline:auto;}
}

/* ===== 見出し ===== */
.sec{padding:104px 0;}
.sec-title{text-align:center;margin:0 0 40px;font-size:clamp(24px,3.6vw,34px);font-weight:500;
  letter-spacing:.05em;line-height:1.55;}
.sec-lead{text-align:center;color:var(--ink-soft);margin:0 auto 48px;max-width:600px;font-size:16px;line-height:1.9;}
/* 見出し直後のリード文の間隔を種別ごとに最適化（かぶり防止） */
.sec-title + .sec-lead{margin-top:-24px;}
.page-title + .sec-lead{margin-top:16px;}

/* ===== カードグリッド（やわらかく・角丸＋淡い影） ===== */
.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 28px;box-shadow:var(--shadow-soft);
  display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;}
.card .ico{grid-row:1;width:46px;height:46px;border-radius:50%;background:var(--warm);color:var(--indigo);
  display:flex;align-items:center;justify-content:center;margin:0;}
.card.grass .ico{background:#EEF3EC;color:var(--grass);}
.card h3{grid-row:1;margin:0;font-size:17px;font-weight:600;white-space:nowrap;letter-spacing:.02em;}
.card p{grid-column:1 / -1;margin:8px 0 0;color:var(--ink-soft);font-size:15px;}

/* 2軸（相続/そなえ） */
.split{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.split .card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  border-top:3px solid var(--indigo);padding:34px 32px;box-shadow:var(--shadow-soft);}
.split .card.grass{border-top-color:var(--grass);}
.split .card.grass .ico{color:var(--grass);}

/* ===== 記事一覧 ===== */
.posts{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.post-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--shadow-soft);transition:transform .2s ease;}
.post-card:hover{transform:translateY(-3px);}
.post-card .thumb{aspect-ratio:16/9;background:var(--ground-deep);overflow:hidden;}
.post-card .body{padding:18px;display:flex;flex-direction:column;gap:8px;}
.cat-tag{align-self:flex-start;font-size:12px;background:var(--indigo-tint);color:var(--indigo);
  padding:3px 10px;border-radius:999px;}
.post-card h3{font-size:17px;margin:0;font-family:var(--gothic);font-weight:700;line-height:1.5;}
.post-meta{font-size:12px;color:var(--ink-soft);}

/* ===== 記事カルーセル（slick・自前デザイン） ===== */
.post-carousel{margin:0 -10px 52px;position:relative;}
.post-carousel .slide{padding:10px;}
.post-carousel .post-card{height:100%;}
.post-carousel .slick-track{display:flex;}
.post-carousel .slick-slide{height:auto;}
.post-carousel .slick-slide > div{height:100%;}

/* 矢印：丸ボタン＋シェブロン */
.post-carousel .slick-prev,
.post-carousel .slick-next{
  width:46px;height:46px;border-radius:50%;background:var(--white);border:1px solid var(--line);
  box-shadow:var(--shadow-soft);z-index:3;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;}
.post-carousel .slick-prev{left:-12px;} .post-carousel .slick-next{right:-12px;}
.post-carousel .slick-prev:hover,
.post-carousel .slick-next:hover{background:var(--indigo);border-color:var(--indigo);transform:scale(1.06);}
.post-carousel .slick-prev:before,
.post-carousel .slick-next:before{content:"";display:block;width:11px;height:11px;
  border-top:2px solid var(--indigo);border-right:2px solid var(--indigo);opacity:1;transition:border-color .2s ease;}
.post-carousel .slick-prev:hover:before,
.post-carousel .slick-next:hover:before{border-color:#fff;}
.post-carousel .slick-prev:before{transform:rotate(-135deg);margin-left:4px;}
.post-carousel .slick-next:before{transform:rotate(45deg);margin-right:4px;}
.post-carousel .slick-disabled{opacity:.3;cursor:default;box-shadow:none;}
.post-carousel .slick-disabled:hover{background:var(--white);border-color:var(--line);transform:none;}
.post-carousel .slick-disabled:hover:before{border-color:var(--indigo);}

/* ドット：button自体をドット化（:beforeは無効化）。アクティブはピル型 */
.post-carousel .slick-dots{position:absolute;bottom:-42px;left:0;right:0;width:100%;
  display:flex!important;justify-content:center;align-items:center;gap:9px;padding:0;margin:0;line-height:0;list-style:none;}
.post-carousel .slick-dots li{position:static;width:auto;height:auto;margin:0;padding:0;}
.post-carousel .slick-dots li button{display:block;width:8px;height:8px;padding:0;border:0;border-radius:999px;
  background:var(--indigo);opacity:.22;font-size:0;line-height:0;cursor:pointer;
  transition:width .28s ease,opacity .28s ease,background .28s ease;}
.post-carousel .slick-dots li button:before{display:none!important;content:none!important;}
.post-carousel .slick-dots li button:hover{opacity:.5;}
.post-carousel .slick-dots li.slick-active button{width:26px;opacity:1;}

@media(max-width:640px){
  /* スマホでも prev=左・next=右 を表示（端で切れないよう内側に） */
  .post-carousel .slick-prev,.post-carousel .slick-next{width:40px;height:40px;
    background:rgba(255,255,255,.92);}
  .post-carousel .slick-prev{left:4px;} .post-carousel .slick-next{right:4px;}
}

/* ===== 記事一覧：カテゴリチップ ===== */
.cat-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 40px;}
.cat-chips .chip{display:inline-block;padding:8px 18px;border-radius:999px;border:1px solid var(--line);
  background:var(--white);color:var(--ink);font-size:14px;font-weight:500;transition:.2s;}
.cat-chips .chip:hover{border-color:var(--indigo);color:var(--indigo);}
.cat-chips .chip.active{background:var(--indigo);border-color:var(--indigo);color:#fff;}
/* ページネーション */
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;
  padding:0 12px;margin:0 4px;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:15px;}
.page-numbers.current{background:var(--indigo);border-color:var(--indigo);color:#fff;}
a.page-numbers:hover{border-color:var(--indigo);color:var(--indigo);}

/* ===== 似た記事（コンパクト） ===== */
.related{margin-top:56px;}
.related-title{font-size:22px;text-align:center;margin:0 0 24px;font-weight:500;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.rel-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);
  border-radius:14px;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .2s ease;}
.rel-card:hover{transform:translateY(-3px);}
.rel-thumb{aspect-ratio:16/10;background:var(--ground-deep);overflow:hidden;}
.rel-thumb img{width:100%;height:100%;object-fit:cover;}
.rel-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;}
.rel-cat{align-self:flex-start;font-size:11px;background:var(--indigo-tint);color:var(--indigo);padding:2px 9px;border-radius:999px;}
.rel-name{font-size:14px;font-weight:600;line-height:1.6;color:var(--ink);}
@media(max-width:720px){ .related-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:460px){ .related-grid{grid-template-columns:1fr;} }

/* ===== 記事内アフィリ枠 ===== */
.entry .yn-ad{position:relative;background:var(--white);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-soft);padding:26px 28px;margin:32px 0;}
.entry .yn-ad-pr{position:absolute;top:12px;right:14px;font-size:11px;color:var(--ink-soft);
  background:var(--ground-deep);border-radius:6px;padding:2px 8px;letter-spacing:.05em;}
.entry .yn-ad-label{margin:0 0 6px;font-size:13px;color:var(--grass);font-weight:700;}
.entry .yn-ad-title{margin:0 0 8px;font-size:19px;font-family:var(--mincho);font-weight:600;line-height:1.5;}
.entry .yn-ad-desc{margin:0 0 18px;color:var(--ink-soft);font-size:15px;}
.entry .yn-ad .btn{margin:0;}

/* ===== 記事本文の表・囲み（読みやすく） ===== */
/* スマホでは横スクロール（表の形を保って潰さない） */
.entry .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:22px 0;
  border-radius:14px;position:relative;}
.entry .table-wrap table{margin:0;box-shadow:none;}
@media(max-width:600px){
  .entry .table-wrap{min-width:0;border:1px solid var(--line);}
  .entry .table-wrap table{min-width:520px;border:none;}
}
.entry .yn-table,.entry table{width:100%;border-collapse:separate;border-spacing:0;margin:22px 0;
  font-size:15px;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-soft);}
.entry table th,.entry table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.entry table thead th{background:var(--indigo);color:#fff;font-family:var(--mincho);font-weight:500;letter-spacing:.03em;}
.entry table tbody tr:last-child td{border-bottom:none;}
.entry table tbody tr:nth-child(even){background:var(--warm);}
.entry table td:first-child,.entry table th:first-child{white-space:nowrap;}
/* ポイント囲み */
.entry .yn-note{background:var(--indigo-tint);border-left:4px solid var(--indigo);border-radius:10px;
  padding:18px 22px;margin:22px 0;}
.entry .yn-note.warn{background:#FBEEEA;border-left-color:var(--vermilion);}
.entry .yn-note .lbl{font-family:var(--mincho);font-weight:600;color:var(--indigo);display:block;margin-bottom:4px;}
.entry .yn-note.warn .lbl{color:var(--vermilion);}
/* 記事内のミニ導線 */
.entry .yn-cta{background:var(--warm);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin:28px 0;text-align:center;}

/* ===== 固定ページ本文 ===== */
.page-head{padding:76px 0 12px;}
.page-title{text-align:center;font-size:clamp(28px,4.6vw,44px);margin:0;letter-spacing:.05em;line-height:1.5;}
.breadcrumb{font-size:13px;color:var(--ink-soft);}
.breadcrumb a{color:var(--ink-soft);}
/* 本文はデフォルトで読みやすい幅（narrow inner）に。全幅は本文中で .sec-full を使う */
.page-body{padding:32px 0 64px;}
.page-body > .entry{max-width:var(--inner-narrow);margin-inline:auto;padding-inline:24px;}
.entry{font-size:17px;line-height:2.05;letter-spacing:.015em;}
.entry h2{font-size:clamp(22px,3vw,28px);margin:60px 0 20px;padding-bottom:12px;
  border-bottom:1px solid var(--line);letter-spacing:.03em;line-height:1.55;}
.entry h3{font-size:clamp(18px,2.2vw,21px);margin:38px 0 12px;letter-spacing:.02em;}
.entry p{margin:0 0 20px;}
.entry ul,.entry ol{margin:0 0 20px;padding-left:1.35em;}
.entry li{margin:7px 0;}
.entry strong{font-weight:700;}
.entry img{border-radius:var(--radius);margin:20px 0;}
@media(max-width:640px){
  .entry{font-size:16px;line-height:1.95;}
  .entry h2{margin:44px 0 16px;}
  .entry h3{margin:30px 0 10px;}
}

/* 記事本文 */
.single .entry{max-width:var(--inner-narrow);margin-inline:auto;padding-inline:24px;}
.single .entry h2,.single .entry h3{scroll-margin-top:90px;} /* 固定ヘッダー分のオフセット */

/* 自動目次 */
.toc{background:var(--indigo-tint);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;margin:8px 0 32px;}
.toc-title{font-family:var(--mincho);font-weight:700;font-size:17px;margin:0 0 10px;
  display:flex;align-items:center;gap:8px;}
.toc-title::before{content:"";width:18px;height:18px;
  background:var(--indigo);-webkit-mask:no-repeat center/contain;mask:no-repeat center/contain;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10' stroke='black' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10' stroke='black' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}
.toc-list{margin:0;padding-left:1.3em;counter-reset:toc;}
.toc-list > li{margin:6px 0;font-weight:500;}
.toc-sub{margin:4px 0 4px 0;padding-left:1.1em;list-style:disc;}
.toc-sub li{font-weight:400;font-size:14px;margin:3px 0;color:var(--ink-soft);}
.toc a{color:var(--ink);}
.toc a:hover{color:var(--indigo);}

/* CTA帯 */
.cta-band{text-align:center;}
.cta-band h2{margin:0 0 10px;}
.cta-band p{color:rgba(255,255,255,.85);margin:0 0 24px;}
.btn.white{background:#fff;color:var(--indigo);}

/* ===== アイコン ===== */
.icon{display:inline-block;vertical-align:middle;}
.feat{display:flex;gap:16px;align-items:flex-start;}
.feat .ic{flex:0 0 auto;width:52px;height:52px;border-radius:50%;background:var(--warm);
  color:var(--indigo);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);}
.feat.grass .ic{background:#EEF3EC;color:var(--grass);}
.feat h3{margin:2px 0 6px;font-size:19px;}
.feat p{margin:0;color:var(--ink-soft);font-size:15px;}

/* ===== 端末モック ===== */
.phone{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;}
.phone-frame{width:100%;max-width:280px;filter:drop-shadow(0 18px 40px rgba(58,46,28,.16));}
.phone-svg{width:100%;height:auto;display:block;}
.phone-cap{font-size:13px;color:var(--ink-soft);font-weight:500;}
.phones{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:start;}

/* ===== LP ===== */
.lp-hero{padding:72px 0 48px;}
.lp-hero .inner{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.lp-hero .eyebrow{display:inline-block;font-size:13px;font-weight:700;color:var(--grass);
  background:#EEF3EC;padding:5px 14px;border-radius:999px;margin-bottom:16px;}
.lp-hero h1{font-size:clamp(28px,4.4vw,44px);margin:0 0 16px;}
.lp-hero .lead{font-size:18px;color:var(--ink-soft);margin:0 0 26px;}
.lp-section{padding:60px 0;}
.ic-inline{display:inline-flex;vertical-align:-3px;color:var(--indigo);margin-right:4px;}
/* FAQ */
.faq{max-width:var(--inner-narrow);margin-inline:auto;display:grid;gap:14px;}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-soft);overflow:hidden;}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-weight:600;font-size:16px;
  display:flex;align-items:center;gap:12px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";flex:0 0 auto;width:28px;height:28px;border-radius:50%;
  background:var(--warm);color:var(--indigo);display:flex;align-items:center;justify-content:center;
  font-family:var(--mincho);font-weight:600;font-size:15px;}
.faq details[open] summary{border-bottom:1px solid var(--line);}
.faq .a{padding:18px 24px 22px 64px;color:var(--ink-soft);font-size:15px;}
/* 会社概要テーブル */
.company-table{width:100%;border-collapse:collapse;margin:8px 0;}
.company-table th,.company-table td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top;}
.company-table th{width:34%;font-family:var(--mincho);font-weight:500;color:var(--ink);white-space:nowrap;}
.company-table td{color:var(--ink-soft);}
.lp-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.lp-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:22px;
  box-shadow:var(--shadow-soft);padding:48px 52px;}
.lp-split + .lp-split{margin-top:32px;}
.lp-split .txt{padding:4px 0;}
.lp-split.rev .txt{order:2;}
.lp-steps{counter-reset:step;display:grid;gap:16px;}
.lp-step{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:20px 22px;}
.lp-step .n{flex:0 0 auto;counter-increment:step;width:34px;height:34px;border-radius:50%;
  background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;}
.lp-step .n::before{content:counter(step);}
@media(max-width:820px){
  .lp-hero .inner,.lp-split{grid-template-columns:1fr;}
  .lp-split{padding:30px 24px;gap:26px;}
  .lp-split.rev .txt{order:0;}
  .lp-split .phone-frame{max-width:230px;margin-inline:auto;}
}

/* ===== 専門家ページ ===== */
.pro-points{list-style:none;margin:0;padding:0;display:grid;gap:16px;}
.pro-points li{display:flex;align-items:flex-start;gap:12px;color:var(--ink-soft);font-size:15px;line-height:1.9;}
.pro-points li .icon{flex:0 0 auto;color:var(--grass);margin-top:3px;}
.yn-panel{background:var(--white);border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow-soft);padding:30px 32px;}

/* ===== FAQページ ===== */
.faq-group{font-size:19px;font-weight:600;margin:40px 0 16px;padding-left:14px;
  border-left:3px solid var(--indigo);}
.faq-group:first-of-type{margin-top:8px;}

/* ===== お問い合わせ（手紙風） ===== */
.letter{background:#FCF8F0;border:1px solid #E7DCC4;border-radius:8px;padding:46px 50px 34px;
  box-shadow:0 26px 64px rgba(120,90,60,.14);position:relative;}
.letter::before{content:"";position:absolute;inset:9px;border:1px solid #ECE2CD;border-radius:4px;pointer-events:none;}
.letter-top{display:flex;align-items:center;gap:11px;border-bottom:1px dashed #DDD0B5;padding-bottom:16px;margin-bottom:4px;position:relative;}
.letter-mark{width:34px;height:34px;object-fit:contain;}
.letter-to{font-family:var(--mincho);font-size:17px;letter-spacing:.08em;}
.letter-body p{color:var(--ink-soft);}
.letter-body label{display:block;font-family:var(--mincho);font-weight:500;font-size:15px;color:var(--ink);margin:22px 0 4px;letter-spacing:.03em;}
.letter input[type=text],.letter input[type=email],.letter input[type=tel],.letter textarea{
  width:100%;border:none;border-bottom:1.6px solid #D8CCB2;background:transparent;border-radius:0;
  padding:10px 2px;font-family:var(--gothic);font-size:16px;color:var(--ink);transition:border-color .2s ease;}
.letter input:focus,.letter textarea:focus{outline:none;border-bottom-color:var(--indigo);}
.letter textarea{min-height:130px;resize:vertical;line-height:1.9;}
.letter .wpcf7-submit,.letter input[type=submit],.letter button[type=submit]{
  display:inline-block;margin-top:8px;background:var(--indigo);color:#fff;border:none;
  padding:13px 30px;border-radius:999px;font-family:var(--gothic);font-weight:600;font-size:15px;cursor:pointer;
  box-shadow:0 8px 20px rgba(58,90,120,.18);transition:.2s;}
.letter .wpcf7-submit:hover,.letter input[type=submit]:hover{background:var(--indigo-deep);}
.letter .wpcf7c-btn-back,.letter .wpcf7c-conf{background:var(--surface-muted,#EFE8DA)!important;color:var(--indigo)!important;}
.letter form p{margin:0;}
.letter-foot{text-align:right;margin-top:14px;}
.letter .seal{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:50%;background:var(--vermilion);color:#fff;font-family:var(--mincho);font-size:20px;
  box-shadow:0 5px 12px rgba(196,85,61,.32);}
.wpcf7-not-valid-tip{color:var(--vermilion);font-size:13px;}
.wpcf7-response-output{border-radius:10px;margin:16px 0 0!important;font-size:14px;}

/* ===== CTAボタンの定期的な光（シャイン） ===== */
.btn:not(.ghost){position:relative;overflow:hidden;}
.btn:not(.ghost)::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-22deg);animation:btnShine 5s ease-in-out infinite;pointer-events:none;}
.btn.white::after{background:linear-gradient(120deg,transparent,rgba(58,90,120,.18),transparent);}
@keyframes btnShine{0%{left:-70%;}16%{left:130%;}100%{left:130%;}}
@media(prefers-reduced-motion:reduce){.btn:not(.ghost)::after{animation:none;display:none;}}

/* ===== フッター ===== */
.site-footer{background:var(--indigo-deep);color:#fff;padding:56px 0 28px;}
.site-footer a{color:rgba(255,255,255,.85);}
.footer-grid{display:grid;gap:28px;grid-template-columns:2fr 1fr 1fr;}
.footer-grid h4{margin:0 0 12px;font-family:var(--gothic);font-size:14px;color:rgba(255,255,255,.7);}
.footer-grid ul{list-style:none;margin:0;padding:0;font-size:14px;line-height:2;}
.copyright{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);
  font-size:13px;color:rgba(255,255,255,.6);text-align:center;}

/* ===== レスポンシブ ===== */
@media(max-width:820px){
  .menu-toggle{display:flex;}
  /* 滑らかに開閉する、洗練されたドロップダウン */
  .gnav{position:absolute;top:100%;left:0;right:0;background:var(--white);
    border-top:1px solid var(--line);box-shadow:0 18px 34px rgba(58,46,28,.10);
    max-height:0;overflow:hidden;opacity:0;visibility:hidden;
    transition:max-height .42s cubic-bezier(.22,1,.36,1),opacity .3s ease,visibility .42s;}
  .gnav.open{max-height:640px;opacity:1;visibility:visible;}
  .gnav ul{flex-direction:column;align-items:stretch;padding:4px 0 18px;gap:0;}
  .gnav li{display:block;width:100%;}
  .gnav li a{display:flex;align-items:center;justify-content:space-between;width:100%;
    padding:16px 26px;font-size:15px;font-weight:500;color:var(--ink);letter-spacing:.02em;
    border-bottom:1px solid var(--line);transition:background .2s ease,color .2s ease;}
  .gnav li a:not(.btn):hover,.gnav li a:not(.btn):active{background:var(--indigo-tint);color:var(--indigo);}
  .gnav li a:not(.btn)::after{content:"";flex:0 0 auto;width:7px;height:7px;
    border-top:1.5px solid var(--ink-soft);border-right:1.5px solid var(--ink-soft);transform:rotate(45deg);}
  .gnav li a:not(.btn):hover::after{border-color:var(--indigo);}
  .gnav li:last-child a{border-bottom:none;}
  .gnav a.btn{margin:16px 26px 0;justify-content:center;padding:14px;font-size:15px;font-weight:600;
    color:#fff;border-radius:12px;}
  .gnav a.btn::after{display:none;}
  .footer-grid{grid-template-columns:1fr;}
  .sec{padding:64px 0;}
  .sec-lead{margin:0 auto 40px;}
  .sec-title + .sec-lead{margin-top:-16px;}
  .page-title + .sec-lead{margin-top:12px;}
  .page-head{padding:52px 0 8px;}
}

/* FAQ 開閉インジケーター（右端シェブロン・開くと反転） */
.faq summary::after{content:"";margin-left:auto;flex:0 0 auto;width:9px;height:9px;border-right:2px solid var(--indigo);border-bottom:2px solid var(--indigo);transform:rotate(45deg);transition:transform .25s ease;}
.faq details[open] summary::after{transform:rotate(-135deg);}

/* PR表記（記事上部・小さく控えめ） */
.yn-pr-note{font-size:11px;color:#a49e93;margin:0 0 16px;line-height:1.5;letter-spacing:.02em;}
