/* ============================================================
   ゆい行政書士事務所 — sample28 共通デザインシステム
   パレット：生成り #f3eee2 × 墨 #262119 × 朱 #b3322b
   見出し：Shippori Mincho ／ 本文：Zen Kaku Gothic New ／ 欧文：Space Grotesk
   ============================================================ */
:root{
  --paper:#f3eee2; --paper2:#ece4d0; --washi:#faf7ee; --card:#fbf8f0;
  --sumi:#262119; --sumi2:#1c1812;
  --body-c:#4a443a; --muted:#8a8170;
  --shu:#b3322b; --shu-deep:#8e2722; --shu-lt:#cf6b5f;
  --kin:#9a7b3c;
  --line:rgba(38,33,25,.16); --line-soft:rgba(38,33,25,.08); --line-w:rgba(243,238,226,.18);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; color:var(--body-c); font-family:'Zen Kaku Gothic New',sans-serif; font-size:16px; line-height:1.95; -webkit-font-smoothing:antialiased; background-color:var(--paper); overflow-x:hidden;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.02 0.14' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.34 0 0 0 0 0.30 0 0 0 0 0.24 0 0 0 0.035 0'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");
  background-size:280px;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
p{margin:0;}
h1,h2,h3,h4{margin:0; color:var(--sumi); font-family:'Shippori Mincho',serif; font-weight:700; line-height:1.5;}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase; text-wrap:balance;}
.mono{font-family:'Space Grotesk',monospace; letter-spacing:.05em;}
.mincho{font-family:'Shippori Mincho',serif;}
.wrap{width:min(1140px,calc(100% - 48px)); margin:0 auto;}
.eb{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--shu); font-weight:700; display:inline-flex; gap:12px; align-items:center;}
.eb::before{content:""; width:28px; height:1px; background:var(--shu);}
.mk{color:var(--shu);}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-weight:700; font-size:14px; letter-spacing:.06em; min-height:54px; padding:14px 34px; border:1.5px solid transparent; cursor:pointer; transition:transform .2s ease, background .2s ease, color .2s ease;}
.btn--shu{background:var(--shu); color:var(--paper);}
.btn--shu:hover{background:var(--shu-deep); transform:translateY(-2px);}
.btn--sumi{background:var(--sumi); color:var(--paper);}
.btn--sumi:hover{background:#3a3327; transform:translateY(-2px);}
.btn--ghost{border-color:var(--sumi); color:var(--sumi); background:transparent;}
.btn--ghost:hover{background:var(--sumi); color:var(--paper);}
.btn--ghost-w{border-color:rgba(243,238,226,.6); color:var(--paper); background:transparent;}
.btn--ghost-w:hover{background:var(--paper); color:var(--sumi);}

/* ============ ヘッダー（header-02：トップバー＋中央ロゴ＋両サイドナビ） ============ */
.hd{border-bottom:1px solid var(--line); background:var(--paper);}
.hd-top{background:var(--sumi); color:rgba(243,238,226,.85);}
.hd-top-in{max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:8px 28px; font-size:12px; letter-spacing:.05em;}
.hd-top-r{display:flex; gap:20px; align-items:center;}
.hd-top a{color:inherit; opacity:.9;}
.hd-top a:hover{opacity:1;}
.hd-tel{font-family:'Space Grotesk',monospace; color:#fff; font-weight:700; letter-spacing:.06em;}
.hd-main{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:18px 28px; gap:24px;}
.hd-nav{display:flex; gap:26px;}
.hd-nav--l{justify-content:flex-end;}
.hd-nav--r{justify-content:flex-start;}
.hd-nav a{color:var(--sumi); font-size:14px; font-weight:500; white-space:nowrap; position:relative; padding-bottom:2px;}
.hd-nav a::after{content:""; position:absolute; left:0; bottom:-2px; width:0; height:1.5px; background:var(--shu); transition:width .25s ease;}
.hd-nav a:hover::after, .hd-nav a[aria-current="page"]::after{width:100%;}
.hd-nav a:hover{color:var(--shu);}
.hd-brand{text-align:center;}
.hd-nm{font-family:'Shippori Mincho',serif; font-weight:700; font-size:24px; letter-spacing:.18em; color:var(--sumi);}
.hd-nm a{display:inline-flex; align-items:center; gap:10px;}
.hd-in{width:30px; height:30px; background:var(--shu); color:var(--paper); font-size:15px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; border-radius:4px; clip-path:polygon(3% 5%, 97% 0%, 100% 95%, 4% 100%); transform:rotate(-4deg); flex:none;}
.hd-en{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.36em; color:var(--muted); margin-top:3px;}
.hd-strip{height:4px; background:linear-gradient(90deg,var(--shu),var(--sumi));}
@media(max-width:860px){
  .hd-top-in{display:none;}
  .hd-main{grid-template-columns:1fr; justify-items:center; gap:12px; padding:16px 20px;}
  .hd-nav--l,.hd-nav--r{justify-content:center; flex-wrap:wrap; gap:14px 20px;}
}

/* ============ ページヒーロー（固定ページ用タイトル帯） ============ */
.ph{position:relative; background:var(--paper2); border-bottom:1px solid var(--line); padding:84px 0 64px; overflow:hidden;}
.ph-keisen{position:absolute; inset:0; display:flex; justify-content:center; gap:9vw; pointer-events:none;}
.ph-keisen i{width:1px; background:var(--line-soft);}
.ph-in{position:relative;}
.ph-h1{font-size:clamp(30px,4.4vw,44px); letter-spacing:.08em; margin-top:14px;}
.ph-lead{margin-top:16px; max-width:38em; color:var(--muted); font-size:14.5px;}
@media(max-width:768px){ .ph{padding:60px 0 44px;} }

/* ============ FVの次：導入（intro-01：全幅写真＋オーバーレイ） ============ */
.it{position:relative; min-height:78vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--sumi);}
.it-bg{position:absolute; inset:0;}
.it-bg img{width:100%; height:100%; object-fit:cover;}
.it-ov{position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(28,24,18,.2) 0%, rgba(28,24,18,.6) 55%, rgba(28,24,18,.88) 100%),
  linear-gradient(115deg, rgba(38,33,25,.5), rgba(179,50,43,.26) 85%);}
.it-keisen{position:absolute; inset:0; display:flex; justify-content:center; gap:10vw; pointer-events:none; opacity:.35;}
.it-keisen i{width:1px; background:var(--line-w);}
.it-ticks{position:absolute; inset:28px; pointer-events:none;}
.it-ticks i{position:absolute; width:16px; height:16px; border:2px solid var(--shu-lt);}
.it-ticks .tl{top:0; left:0; border-right:0; border-bottom:0;}
.it-ticks .tr{top:0; right:0; border-left:0; border-bottom:0;}
.it-ticks .bl{bottom:0; left:0; border-right:0; border-top:0;}
.it-ticks .br{bottom:0; right:0; border-left:0; border-top:0;}
.it-in{position:relative; z-index:2; padding:120px 7vw 10vh; max-width:1200px;}
.it-eb{color:var(--shu-lt);}
.it-eb::before{background:var(--shu-lt);}
.it-h2{color:var(--paper); font-size:clamp(30px,5.4vw,62px); line-height:1.42; text-shadow:0 2px 28px rgba(0,0,0,.45); margin-top:20px;}
.it-lead{margin-top:24px; max-width:33em; color:rgba(243,238,226,.85); font-size:15.5px;}
@media(max-width:768px){ .it{min-height:88vh;} .it-in{padding:96px 24px 9vh;} }

/* ============ 代表メッセージ（message-07：手書きの手控え帖） ============ */
.ms{padding:120px 0; position:relative; overflow:hidden;}
.ms-head{text-align:center;}
.ms-eb{justify-content:center;}
.ms-h2{font-size:clamp(24px,3.6vw,38px); margin-top:14px;}
.ms-memo{width:min(680px,calc(100% - 16px)); margin:56px auto 0; position:relative; transform:rotate(-.6deg);
  background:repeating-linear-gradient(180deg, transparent 0 35px, rgba(38,33,25,.1) 35px 36px), var(--washi);
  padding:58px 44px 46px; box-shadow:0 26px 60px -28px rgba(38,33,25,.4);}
.ms-tape{position:absolute; top:-14px; left:50%; width:150px; height:30px; transform:translateX(-50%) rotate(1.6deg); background:rgba(179,50,43,.22); box-shadow:0 2px 6px rgba(0,0,0,.08);}
.ms-photo{position:absolute; right:-16px; top:-34px; width:148px; transform:rotate(4deg); background:#fff; padding:7px 7px 26px; box-shadow:0 14px 30px -14px rgba(38,33,25,.5);}
.ms-photo img{width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center top;}
.ms-photo span{display:block; text-align:center; font-family:'Zen Kurenaido',sans-serif; font-size:11px; color:var(--muted); margin-top:5px;}
.ms-date{font-family:'Zen Kurenaido',sans-serif; font-size:15px; color:var(--muted); margin:0 0 8px;}
.ms-h3{font-family:'Zen Kurenaido',sans-serif; font-size:clamp(22px,3vw,30px); font-weight:400; margin:0 0 24px; color:var(--sumi); display:inline-block; border-bottom:3px double var(--shu); padding-bottom:4px;}
.ms-p{font-family:'Zen Kurenaido',sans-serif; font-size:clamp(16.5px,2vw,19px); line-height:36px; margin:0 0 36px; color:#3a3a52; word-break:auto-phrase;}
.ms-p--k{color:var(--sumi);}
.ms-maru{position:relative; white-space:nowrap;}
.ms-maru svg{position:absolute; left:-6%; top:-22%; width:112%; height:150%; pointer-events:none;}
.ms-maru svg ellipse{fill:none; stroke:var(--shu); stroke-width:2.4; opacity:.85;}
.ms-sign{text-align:right; font-family:'Zen Kurenaido',sans-serif; font-size:18px; margin-top:6px; color:var(--sumi);}
.ms-fusen{position:absolute; right:-14px; bottom:54px; width:152px; padding:14px 14px 18px; background:#f7e9b2; transform:rotate(3.4deg); font-family:'Zen Kurenaido',sans-serif; font-size:13.5px; line-height:1.7; color:#5a4a14; box-shadow:0 8px 18px rgba(0,0,0,.12);}
.ms-ps{text-align:center; margin-top:38px; font-size:11px; letter-spacing:.3em; color:var(--muted); font-family:'Space Grotesk',monospace;}
@media(max-width:768px){
  .ms{padding:84px 0;}
  .ms-memo{padding:64px 24px 40px;}
  .ms-photo{right:0; top:-26px; width:104px; padding:5px 5px 20px;}
  .ms-fusen{right:2px; width:124px;}
}

/* ============ 選ばれる理由（reasons-02：左sticky＋特大番号リスト） ============ */
.rs{padding:120px 0; position:relative;}
.rs-grid{display:grid; grid-template-columns:.82fr 1.18fr; gap:64px; align-items:start;}
.rs-side{position:sticky; top:90px;}
.rs-h2{font-size:clamp(30px,4vw,50px); line-height:1.34; margin:16px 0 18px;}
.rs-side p{color:var(--muted); font-size:15px; max-width:22em;}
.rs-mark{margin-top:28px; width:64px; height:4px; background:var(--shu);}
.rs-list{display:grid; gap:0; border-top:1px solid var(--sumi);}
.rs-item{display:grid; grid-template-columns:auto 1fr; gap:30px; align-items:start; padding:40px 4px; border-bottom:1px solid var(--line);}
.rs-n{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(48px,6vw,84px); line-height:.85; color:transparent; -webkit-text-stroke:1.4px var(--shu);}
.rs-item:hover .rs-n{color:rgba(179,50,43,.08);}
.rs-thumb{width:104px; height:76px; overflow:hidden; float:right; margin:0 0 10px 18px; border:1px solid var(--line);}
.rs-thumb img{width:100%; height:100%; object-fit:cover;}
.rs-h3{font-size:clamp(20px,2.3vw,26px); margin:0 0 10px;}
.rs-item p{color:var(--body-c); font-size:15px; margin:0; word-break:auto-phrase;}
@media(max-width:860px){
  .rs{padding:84px 0;}
  .rs-grid{grid-template-columns:1fr; gap:36px;}
  .rs-side{position:static;}
  .rs-item{grid-template-columns:1fr; gap:8px;}
}

/* ============ 業務のご案内（services-02：お品書き・点線リーダー） ============ */
.sv{padding:120px 0; position:relative; background:var(--paper2);}
.sv-in{width:min(880px,calc(100% - 48px)); margin:0 auto; position:relative;}
.sv-eb{display:flex; justify-content:center;}
.sv-h2{font-size:clamp(28px,4.6vw,48px); margin:14px 0 0; letter-spacing:.28em; text-align:center;}
.sv-sub{font-size:13.5px; color:var(--muted); text-align:center; margin:14px 0 0;}
.sv-rule{width:64px; height:1px; background:var(--sumi); margin:34px auto 0;}
.sv-menu{margin-top:54px; border:1px solid var(--sumi); outline:1px solid var(--sumi); outline-offset:5px; padding:clamp(28px,5vw,60px) clamp(20px,6vw,68px); background:rgba(250,247,238,.6); position:relative;}
.sv-grp{margin-bottom:46px;}
.sv-grp:last-of-type{margin-bottom:0;}
.sv-gt{display:flex; align-items:center; gap:16px; margin-bottom:14px;}
.sv-gtjp{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(17px,2.1vw,22px); letter-spacing:.22em; color:var(--sumi);}
.sv-gten{font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.26em; color:var(--shu); text-transform:uppercase;}
.sv-gt::after{content:""; flex:1; height:1px; background:var(--line);}
.sv-it{display:flex; align-items:baseline; gap:14px; padding:13px 0;}
.sv-nmw{flex:none; max-width:60%;}
.sv-nm{font-family:'Shippori Mincho',serif; font-weight:600; font-size:clamp(15px,1.9vw,19px); letter-spacing:.1em; color:var(--sumi); word-break:auto-phrase;}
.sv-ds{display:block; font-size:11.5px; color:var(--muted); letter-spacing:.04em; margin-top:2px;}
.sv-dots{flex:1; height:1em; background-image:radial-gradient(circle,rgba(38,33,25,.5) 1.2px,transparent 1.3px); background-size:9px 9px; background-position:left 62%; background-repeat:repeat-x; transform-origin:left center;}
.sv-pr{flex:none; font-family:'Space Grotesk',monospace; font-size:clamp(14px,1.8vw,18px); letter-spacing:.04em; white-space:nowrap; color:var(--sumi);}
.sv-pr small{font-size:.62em; color:var(--muted); margin-left:3px;}
.sv-yen{font-family:'Shippori Mincho',serif; font-size:.74em; margin-right:2px;}
.sv-seal{position:absolute; right:clamp(14px,4vw,44px); bottom:clamp(14px,4vw,38px); width:82px; height:82px; border:2.5px solid var(--shu); border-radius:50%; color:var(--shu); display:flex; align-items:center; justify-content:center; font-family:'Shippori Mincho',serif; font-weight:700; font-size:15px; letter-spacing:.18em; line-height:1.6; text-align:center; transform:rotate(-8deg); opacity:.85; mix-blend-mode:multiply;}
.sv-note{margin-top:24px; font-size:11.5px; color:var(--muted); text-align:center; letter-spacing:.1em;}
@media(max-width:768px){
  .sv{padding:84px 0;}
  .sv-it{flex-wrap:wrap; gap:6px 10px;}
  .sv-nmw{max-width:100%;}
  .sv-dots{min-width:40px;}
  .sv-seal{width:64px; height:64px; font-size:12px;}
}

/* ============ 実績数字（numbers-12：写真マスク特大数字・墨の帯） ============ */
.nm{padding:130px 0; position:relative; background:var(--sumi); color:#f1ead9;}
.nm-in{width:min(1120px,calc(100% - 48px)); margin:0 auto;}
.nm-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px;}
.nm-eb{color:var(--shu-lt);}
.nm-eb::before{background:var(--shu-lt);}
.nm-h2{color:#f1ead9; font-size:clamp(26px,4.2vw,46px); margin:14px 0 0;}
.nm-cap{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.24em; color:rgba(241,234,217,.5); white-space:nowrap;}
.nm-feature{text-align:center; margin-top:30px;}
.nm-big{display:inline-block; font-family:'Space Grotesk',monospace; font-weight:700; line-height:.94; letter-spacing:-.04em; font-size:clamp(110px,24vw,300px);
  background-image:linear-gradient(rgba(179,50,43,.32),rgba(179,50,43,.32)),url('src/documents.jpg');
  background-size:cover; background-position:50% 35%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-stroke:1px rgba(241,234,217,.24);}
.nm-unit{font-size:.34em; letter-spacing:0;}
.nm-sub{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(18px,2.6vw,28px); margin:10px 0 0; letter-spacing:.12em; color:#f1ead9; word-break:auto-phrase; text-wrap:balance;}
.nm-ds{font-size:13.5px; color:rgba(241,234,217,.6); max-width:34em; margin:16px auto 0;}
.nm-sides{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:76px; border-top:1px solid var(--line-w);}
.nm-side{padding:30px 18px 6px; text-align:center; border-right:1px solid var(--line-w);}
.nm-side:last-child{border-right:none;}
.nm-v{font-family:'Space Grotesk',monospace; font-weight:700; font-size:clamp(26px,3.6vw,40px); color:#f1ead9;}
.nm-v small{font-family:'Shippori Mincho',serif; font-size:.5em; color:var(--shu-lt); margin-left:3px;}
.nm-k{font-size:11.5px; color:rgba(241,234,217,.55); display:block; margin-top:4px; letter-spacing:.12em;}
.nm-note{margin-top:26px; font-size:10.5px; color:rgba(241,234,217,.45); text-align:right; letter-spacing:.1em;}
@media(max-width:768px){
  .nm{padding:90px 0;}
  .nm-head{flex-direction:column; align-items:flex-start;}
  .nm-sides{grid-template-columns:1fr;}
  .nm-side{border-right:none; border-bottom:1px solid var(--line-w); padding:22px 10px;}
  .nm-side:last-child{border-bottom:none;}
}

/* ============ お客様の声（voice-04：記事風インタビュー＋ミニ声） ============ */
.vc{padding:110px 0 120px; position:relative; background:var(--washi); overflow:hidden;}
.vc-kbar{display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--sumi); padding-bottom:14px; margin-bottom:34px;}
.vc-k{font-family:'Space Grotesk',monospace; font-size:12px; letter-spacing:.26em; text-transform:uppercase; color:var(--shu);}
.vc-pg{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.16em; color:var(--muted);}
.vc-article{display:grid; grid-template-columns:.92fr 1.08fr; gap:54px; align-items:start;}
.vc-photo{position:relative; overflow:hidden; background:var(--paper2); aspect-ratio:4/5;}
.vc-photo img{width:100%; height:100%; object-fit:cover;}
.vc-frame{position:absolute; left:-12px; top:-12px; width:86px; height:86px; border-left:3px solid var(--shu); border-top:3px solid var(--shu);}
.vc-credit{position:absolute; left:14px; bottom:12px; color:#fff; font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.1em; text-shadow:0 1px 6px rgba(0,0,0,.5);}
.vc-chip{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.08em; color:var(--shu); border:1px solid var(--shu); border-radius:99px; padding:3px 12px; display:inline-block;}
.vc-title{font-size:clamp(24px,3.4vw,40px); line-height:1.45; margin:12px 0 18px;}
.vc-meta{display:flex; gap:16px; align-items:center; font-size:13px; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:24px; flex-wrap:wrap;}
.vc-meta b{color:var(--sumi); font-family:'Shippori Mincho',serif; font-size:16px;}
.vc-body p{margin:0 0 1.3em; font-size:15.5px;}
.vc-drop{float:left; font-family:'Shippori Mincho',serif; font-weight:800; font-size:60px; line-height:.8; margin:6px 12px 0 0; color:var(--shu);}
.vc-pull{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(18px,2.2vw,23px); line-height:1.7; color:var(--sumi); border-left:4px solid var(--shu); padding:6px 0 6px 22px; margin:26px 0; word-break:auto-phrase;}
.vc-minis{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:64px;}
.vc-mini{display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; border-top:1px solid var(--sumi); padding-top:24px;}
.vc-avatar{width:64px; height:64px; border-radius:50%; overflow:hidden; flex:none;}
.vc-avatar img{width:100%; height:100%; object-fit:cover; object-position:center top;}
.vc-mini blockquote{margin:0; font-family:'Shippori Mincho',serif; font-size:15.5px; color:var(--sumi); line-height:1.85;}
.vc-who{display:block; margin-top:10px; font-size:12px; color:var(--muted);}
@media(max-width:860px){
  .vc{padding:84px 0 96px;}
  .vc-article{grid-template-columns:1fr; gap:30px;}
  .vc-photo{aspect-ratio:4/3;}
  .vc-photo img{object-position:center 30%;}
  .vc-minis{grid-template-columns:1fr; gap:22px;}
}

/* ============ 比較（vs-07：天秤が傾く） ============ */
.vsx{position:relative; padding:100px 0 0;}
.vsx-head{width:min(1100px,calc(100% - 48px)); margin:0 auto;}
.vsx-h2{font-size:clamp(26px,4.2vw,46px); margin:14px 0 0;}
.vsx-pin{position:relative; min-height:88vh; overflow:hidden; padding:6vh 0;}
.vsx-stage{width:min(1100px,calc(100% - 48px)); margin:0 auto; display:flex; align-items:center; gap:6vw; min-height:76vh;}
.vsx-copy{max-width:360px; flex:none;}
.vsx-copy > p{font-size:14px; color:var(--body-c); margin:0 0 20px;}
.vsx-legend{font-size:12.5px; line-height:2.2;}
.vsx-legend i{display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:8px; vertical-align:baseline;}
.vsx-lg{color:var(--muted);} .vsx-lg i{background:#a39c8e;}
.vsx-ld i{background:var(--shu);}
.vsx-fin{margin-top:24px; font-family:'Shippori Mincho',serif; font-size:clamp(16px,1.9vw,20px); font-weight:700; line-height:2; color:var(--sumi); word-break:auto-phrase; text-wrap:balance;}
.vsx-fin b{background:linear-gradient(transparent 62%, rgba(179,50,43,.28) 62%); font-weight:700;}
.vsx-scalewrap{flex:1; display:flex; justify-content:center;}
.vsx-scale{position:relative; width:min(560px,82vw); height:430px;}
.vsx-pillar{position:absolute; left:50%; bottom:40px; width:14px; height:230px; margin-left:-7px; background:var(--sumi);}
.vsx-pillar::before{content:""; position:absolute; left:50%; top:-12px; width:24px; height:24px; margin-left:-12px; border-radius:50%; background:var(--sumi);}
.vsx-base{position:absolute; left:50%; bottom:28px; width:170px; height:12px; margin-left:-85px; background:var(--sumi); border-radius:6px;}
.vsx-beam{position:absolute; left:50%; top:148px; width:min(480px,74vw); height:6px; margin-left:calc(min(480px,74vw)/-2); background:var(--sumi); border-radius:3px; transform-origin:center center; transform:rotate(9deg); will-change:transform;}
.vsx-pan{position:absolute; top:3px; width:150px; height:150px; transform-origin:top center; transform:rotate(-9deg); will-change:transform;}
.vsx-pan--l{left:-26px;} .vsx-pan--r{right:-26px;}
.vsx-str{position:absolute; left:50%; top:0; width:106px; height:84px; margin-left:-53px;
  background:linear-gradient(64deg,transparent calc(50% - 1px),var(--sumi) 50%,transparent calc(50% + 1px)),
             linear-gradient(-64deg,transparent calc(50% - 1px),var(--sumi) 50%,transparent calc(50% + 1px));}
.vsx-dish{position:absolute; left:50%; top:78px; width:140px; height:30px; margin-left:-70px; border-radius:0 0 70px 70px; background:var(--sumi);}
.vsx-stack{position:absolute; left:50%; top:34px; width:120px; margin-left:-60px; display:flex; flex-wrap:wrap-reverse; justify-content:center; gap:4px; align-items:flex-end; height:46px;}
.vsx-wt{width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:#fff; letter-spacing:.04em; flex:none;}
.vsx-wt--g{background:#a39c8e;}
.vsx-wt--d{background:var(--shu);}
.vsx-plabel{position:absolute; left:50%; top:118px; transform:translateX(-50%); font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.26em; color:var(--muted); white-space:nowrap;}
.vsx-hint{text-align:center; padding:0 0 5vh; font-size:10px; letter-spacing:.4em; color:var(--muted); font-family:'Space Grotesk',monospace;}
@media(max-width:768px){
  .vsx{padding:84px 0 0;}
  .vsx-stage{flex-direction:column; justify-content:center; align-items:flex-start; gap:4vh; min-height:0;}
  .vsx-pin{min-height:0; padding:5vh 0 2vh;}
  .vsx-scale{height:340px; transform:scale(.72); transform-origin:top left;}
  .vsx-copy{max-width:none;}
}

/* ============ 4つの支え（features-04：エディトリアル索引＋ホバー画像） ============ */
.ft{padding:120px 0; position:relative;}
.ft-head{display:flex; justify-content:space-between; align-items:flex-end; border-bottom:2px solid var(--sumi); padding-bottom:20px; margin-bottom:10px;}
.ft-h2{font-size:clamp(28px,4.4vw,50px); line-height:1.25; margin:14px 0 0;}
.ft-cnt{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--muted); letter-spacing:.1em;}
.ft-idx{list-style:none; margin:0; padding:0;}
.ft-row{display:grid; grid-template-columns:120px 1fr auto; gap:30px; align-items:center; padding:36px 8px; border-bottom:1px solid var(--line); cursor:default; transition:padding .3s, background .3s; position:relative;}
.ft-row:hover{padding-left:20px; background:rgba(250,247,238,.85);}
.ft-n{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(40px,5vw,68px); color:transparent; -webkit-text-stroke:1.4px var(--sumi); line-height:.9; transition:.3s;}
.ft-row:hover .ft-n{-webkit-text-stroke:1.4px var(--shu); color:rgba(179,50,43,.08);}
.ft-h3{font-size:clamp(20px,2.4vw,27px); margin:0 0 6px;}
.ft-row p{color:var(--body-c); font-size:14.5px; margin:0; max-width:36em; word-break:auto-phrase;}
.ft-go{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--shu); opacity:0; transform:translateX(-8px); transition:.3s; letter-spacing:.1em;}
.ft-row:hover .ft-go{opacity:1; transform:translateX(0);}
.ft-pv{position:fixed; top:0; left:0; width:300px; height:200px; overflow:hidden; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.9); transition:opacity .25s, transform .25s; z-index:30; box-shadow:0 30px 60px -24px rgba(38,33,25,.5);}
.ft-pv.is-show{opacity:1; transform:translate(-50%,-50%) scale(1);}
.ft-pv img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; opacity:0;}
.ft-pv img.is-on{opacity:1;}
@media(max-width:768px){
  .ft{padding:84px 0;}
  .ft-row{grid-template-columns:64px 1fr; gap:16px;}
  .ft-go{display:none;}
  .ft-pv{display:none;}
  .ft-head{flex-direction:column; align-items:flex-start; gap:8px;}
}

/* ============ ご相談の流れ（process-01：縦ステップ・ラインドロー） ============ */
.pc{padding:120px 0; position:relative; background:var(--paper2); overflow:hidden;}
.pc-in{width:min(960px,calc(100% - 48px)); margin:0 auto;}
.pc-head{margin-bottom:60px;}
.pc-h2{font-size:clamp(28px,4.4vw,48px); line-height:1.3; margin:14px 0 0;}
.pc-flow{position:relative;}
.pc-spine{position:absolute; left:39px; top:10px; bottom:60px; width:2px; background:var(--line); overflow:hidden;}
.pc-spine i{position:absolute; inset:0; background:linear-gradient(var(--shu),var(--sumi)); transform:scaleY(0); transform-origin:top; display:block;}
.pc-step{position:relative; display:grid; grid-template-columns:80px 1fr; gap:30px; padding-bottom:42px;}
.pc-node{width:80px; height:80px; border-radius:50%; background:var(--washi); border:2px solid var(--shu); display:flex; align-items:center; justify-content:center; font-family:'Shippori Mincho',serif; font-weight:800; font-size:24px; color:var(--shu); z-index:2; box-shadow:0 10px 24px -12px rgba(179,50,43,.45);}
.pc-step--last .pc-node{border-color:var(--sumi); color:var(--sumi);}
.pc-card{background:var(--washi); border:1px solid var(--line); padding:24px 28px; box-shadow:0 14px 30px -26px rgba(38,33,25,.45);}
.pc-ph{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.14em; color:var(--shu); text-transform:uppercase;}
.pc-h3{font-size:21px; margin:6px 0 8px;}
.pc-card p{color:var(--body-c); font-size:14.5px; margin:0; word-break:auto-phrase;}
@media(max-width:768px){
  .pc{padding:84px 0;}
  .pc-step{grid-template-columns:56px 1fr; gap:18px;}
  .pc-node{width:56px; height:56px; font-size:19px;}
  .pc-spine{left:27px;}
}

/* ============ 料金（pricing-01：エディトリアル特大プライス） ============ */
.pr{padding:120px 0; position:relative; overflow:hidden;}
.pr-top{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:end; border-bottom:2px solid var(--sumi); padding-bottom:30px; margin-top:10px;}
.pr-label{font-family:'Shippori Mincho',serif; font-size:clamp(20px,2.4vw,28px); font-weight:700; margin:14px 0 0; color:var(--sumi);}
.pr-label small{display:block; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:400; font-size:13px; color:var(--muted); letter-spacing:.06em; margin-top:8px;}
.pr-price{text-align:right;}
.pr-from{font-family:'Space Grotesk',monospace; font-size:13px; color:var(--shu); letter-spacing:.14em;}
.pr-v{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(58px,10vw,128px); line-height:.85; letter-spacing:-.02em; display:inline-flex; align-items:flex-start; color:var(--sumi);}
.pr-y{font-size:.32em; margin-top:.3em; margin-right:.04em; color:var(--shu);}
.pr-u{font-size:.22em; margin-top:1.7em; margin-left:.1em; color:var(--muted);}
.pr-tax{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--muted); letter-spacing:.04em; margin-top:10px;}
.pr-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; margin-top:44px;}
.pr-incl{list-style:none; margin:0; padding:0; display:grid; gap:0;}
.pr-incl li{display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:18px 4px; border-bottom:1px solid var(--line); font-size:15px;}
.pr-ck{width:22px; height:22px; border-radius:50%; background:var(--shu); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px;}
.pr-mn{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--muted);}
.pr-note{background:var(--washi); border:1px solid var(--line); padding:30px; align-self:start;}
.pr-nt{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.16em; color:var(--shu); text-transform:uppercase;}
.pr-h4{font-size:19px; margin:8px 0 10px;}
.pr-note p{color:var(--body-c); font-size:14px; margin:0 0 20px; word-break:auto-phrase;}
@media(max-width:768px){
  .pr{padding:84px 0;}
  .pr-top,.pr-grid{grid-template-columns:1fr; gap:24px;}
  .pr-price{text-align:left;}
}

/* ============ FAQ（faq-03：左sticky×番号アコーディオン） ============ */
.fq{padding:120px 0; position:relative; background:var(--washi);}
.fq-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; align-items:start;}
.fq-side{position:sticky; top:90px;}
.fq-h2{font-size:clamp(28px,3.6vw,44px); margin:14px 0 14px;}
.fq-side p{color:var(--muted); font-size:14px;}
.fq-acc{border-top:1px solid var(--line);}
.fq-item{border-bottom:1px solid var(--line);}
.fq-q{display:grid; grid-template-columns:48px 1fr 30px; align-items:center; gap:14px; padding:24px 6px; cursor:pointer; width:100%; background:none; border:none; text-align:left; font:inherit; color:inherit;}
.fq-no{font-family:'Space Grotesk',monospace; font-size:13px; color:var(--shu);}
.fq-tx{font-weight:700; font-size:16px; color:var(--sumi); line-height:1.7;}
.fq-ic{position:relative; width:18px; height:18px; justify-self:end;}
.fq-ic::before,.fq-ic::after{content:""; position:absolute; background:var(--shu); transition:.3s;}
.fq-ic::before{top:8px; left:0; width:18px; height:2px;}
.fq-ic::after{top:0; left:8px; width:2px; height:18px;}
.fq-item.is-open .fq-ic::after{transform:rotate(90deg); opacity:0;}
.fq-a{max-height:0; overflow:hidden; transition:max-height .5s ease;}
.fq-a > div{padding:0 6px 26px 62px; color:var(--body-c); font-size:14.5px; word-break:auto-phrase;}
.fq-item.is-open .fq-a{max-height:400px;}
@media(max-width:768px){
  .fq{padding:84px 0;}
  .fq-grid{grid-template-columns:1fr; gap:28px;}
  .fq-side{position:static;}
  .fq-a > div{padding-left:6px;}
}

/* ============ 事務所概要（about-04：名刺3Dフリップ） ============ */
.ab{padding:120px 0; position:relative;}
.ab-lead{max-width:34em; color:var(--muted); font-size:14.5px; margin:18px 0 0;}
.ab-h2{font-size:clamp(26px,4.2vw,46px); margin:14px 0 0;}
.ab-stage{perspective:1600px; margin:64px auto 14px; width:min(660px,100%);}
.ab-card{position:relative; width:100%; aspect-ratio:91/55; transform-style:preserve-3d; transition:transform 1.15s cubic-bezier(.65,0,.35,1); cursor:pointer;}
.ab-card.is-flipped{transform:rotateY(180deg);}
.ab-face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; border:1px solid var(--line); box-shadow:0 30px 60px -30px rgba(38,33,25,.45), 0 2px 6px rgba(38,33,25,.08);}
.ab-face--front{background:var(--washi); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;}
.ab-mark{width:48px; height:48px; background:var(--shu); color:var(--paper); clip-path:polygon(3% 5%, 97% 0%, 100% 95%, 4% 100%); transform:rotate(-5deg); display:flex; align-items:center; justify-content:center; margin-bottom:10px;}
.ab-mark span{font-family:'Shippori Mincho',serif; font-size:24px; font-weight:800;}
.ab-name{font-family:'Shippori Mincho',serif; font-size:clamp(20px,3.2vw,31px); font-weight:700; letter-spacing:.14em; color:var(--sumi);}
.ab-tag{font-size:12px; letter-spacing:.3em; color:var(--muted);}
.ab-ftxt{position:absolute; left:26px; bottom:18px; font-family:'Space Grotesk',monospace; font-size:9.5px; letter-spacing:.22em; color:var(--muted);}
.ab-no{position:absolute; right:26px; top:18px; font-family:'Space Grotesk',monospace; font-size:10px; letter-spacing:.22em; color:var(--shu);}
.ab-face--back{background:var(--sumi); color:#f1ead9; transform:rotateY(180deg); padding:clamp(20px,4.5vw,42px) clamp(24px,5.5vw,50px); display:flex; flex-direction:column; justify-content:center;}
.ab-bt{font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.3em; color:var(--shu-lt); margin-bottom:14px;}
.ab-row{display:flex; gap:18px; padding:9px 0; border-bottom:1px solid rgba(241,234,217,.16); font-size:clamp(11.5px,1.5vw,14px); margin:0;}
.ab-row:last-child{border-bottom:none;}
.ab-row dt{width:6.5em; flex:none; color:rgba(241,234,217,.55); letter-spacing:.14em;}
.ab-row dd{margin:0; letter-spacing:.04em;}
.ab-hint{text-align:center; font-size:11px; color:var(--muted); letter-spacing:.2em; margin:18px 0 0;}
.ab-spec{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); margin-top:72px;}
.ab-cell{padding:26px 22px; border-bottom:1px solid var(--line); border-right:1px solid var(--line);}
.ab-cell:nth-child(3n){border-right:none;}
.ab-k{font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.26em; color:var(--shu); display:block; margin-bottom:8px; text-transform:uppercase;}
.ab-v{font-family:'Shippori Mincho',serif; font-size:clamp(15px,1.7vw,19px); font-weight:600; color:var(--sumi); word-break:auto-phrase;}
.ab-s{font-size:11.5px; color:var(--muted); display:block; margin-top:4px;}
@media(max-width:768px){
  .ab{padding:84px 0;}
  .ab-spec{grid-template-columns:1fr 1fr;}
  .ab-cell:nth-child(3n){border-right:1px solid var(--line);}
  .ab-cell:nth-child(2n){border-right:none;}
}
@media(prefers-reduced-motion:reduce){ .ab-card{transition:none;} }

/* ============ 読みもの（blog-02：マガジン特集） ============ */
.bl{padding:120px 0; position:relative;}
.bl-head{display:flex; justify-content:space-between; align-items:flex-end; border-bottom:2px solid var(--sumi); padding-bottom:18px; margin-bottom:40px;}
.bl-h2{font-size:clamp(26px,4vw,42px); margin:8px 0 0;}
.bl-more{font-family:'Space Grotesk',monospace; font-size:12px; letter-spacing:.1em; color:var(--muted);}
.bl-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:46px;}
.bl-feat{display:block;}
.bl-ph{width:100%; height:340px; object-fit:cover;}
.bl-meta{display:flex; gap:14px; align-items:center; margin:18px 0 8px;}
.bl-no{font-family:'Space Grotesk',monospace; font-size:12px; color:var(--shu);}
.bl-cat{font-size:11px; border:1px solid var(--line); border-radius:20px; padding:3px 12px; color:var(--muted);}
.bl-h3{font-size:clamp(20px,2.4vw,28px); margin:0 0 10px; line-height:1.55;}
.bl-feat p{color:var(--muted); font-size:14px; margin:0;}
.bl-list{display:flex; flex-direction:column;}
.bl-row{display:grid; grid-template-columns:88px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); align-items:center;}
.bl-row:first-child{padding-top:0;}
.bl-row img{width:88px; height:66px; object-fit:cover;}
.bl-d{font-family:'Space Grotesk',monospace; font-size:11px; color:var(--shu);}
.bl-h4{font-size:15px; margin:4px 0 0; line-height:1.55; font-weight:700;}
@media(max-width:768px){
  .bl{padding:84px 0;}
  .bl-grid{grid-template-columns:1fr; gap:34px;}
  .bl-ph{height:230px;}
}

/* ============ お知らせ（news-01：左NEWS＋右リスト） ============ */
.nw{padding:110px 0; position:relative; background:var(--paper2);}
.nw-grid{display:grid; grid-template-columns:280px 1fr; gap:60px; align-items:start;}
.nw-side{position:sticky; top:90px;}
.nw-en{font-family:'Space Grotesk',monospace; font-weight:700; font-size:clamp(44px,6vw,72px); color:var(--sumi); line-height:1; letter-spacing:.02em;}
.nw-bar{width:64px; height:3px; background:var(--shu); margin:14px 0 16px;}
.nw-ja{color:var(--sumi); font-size:14px; font-weight:700; letter-spacing:.08em;}
.nw-list{border-top:1px solid var(--line);}
.nw-item{display:grid; grid-template-columns:180px 1fr auto; gap:28px; align-items:center; padding:24px 6px; border-bottom:1px solid var(--line); transition:.25s;}
.nw-item:hover{background:rgba(250,247,238,.9); padding-left:14px;}
.nw-thumb{width:180px; aspect-ratio:16/10; overflow:hidden; background:var(--paper);}
.nw-thumb img{width:100%; height:100%; object-fit:cover; transition:transform .4s;}
.nw-item:hover .nw-thumb img{transform:scale(1.05);}
.nw-date{font-family:'Space Grotesk',monospace; font-size:13px; color:var(--kin); letter-spacing:.06em; display:block; margin-bottom:6px;}
.nw-t{font-size:16.5px; font-weight:700; margin:0; line-height:1.65; color:var(--sumi); font-family:'Zen Kaku Gothic New',sans-serif; word-break:auto-phrase;}
.nw-arr{width:44px; height:44px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--shu); transition:.25s; flex:0 0 auto;}
.nw-item:hover .nw-arr{background:var(--shu); color:#fff; border-color:var(--shu);}
@media(max-width:860px){
  .nw{padding:84px 0;}
  .nw-grid{grid-template-columns:1fr; gap:34px;}
  .nw-side{position:static;}
  .nw-item{grid-template-columns:110px 1fr; gap:16px;}
  .nw-arr{display:none;}
}

/* ============ 最終CTA（cta-08：バナー帯） ============ */
.ct{padding:120px 0; position:relative;}
.ct-in{width:min(900px,calc(100% - 48px)); margin:0 auto;}
.ct-head{text-align:center; margin-bottom:38px;}
.ct-eb{font-family:'Space Grotesk',monospace; font-weight:700; letter-spacing:.16em; color:var(--shu-deep); font-size:clamp(22px,3.4vw,32px);}
.ct-eb small{display:block; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:700; font-size:13px; color:var(--muted); margin-top:6px; letter-spacing:.06em;}
.ct-banner{position:relative; background:linear-gradient(160deg,var(--shu),var(--shu-deep)); border:2px solid var(--sumi); padding:56px 40px 40px; text-align:center; color:#fff; overflow:hidden; box-shadow:0 30px 60px -34px rgba(142,39,34,.7);}
.ct-ribbon{position:absolute; top:0; left:50%; transform:translateX(-50%); background:var(--sumi); color:var(--paper); font-weight:700; font-size:13.5px; padding:8px 30px; letter-spacing:.1em;}
.ct-sheen{position:absolute; top:0; left:-40%; width:30%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent); transform:skewX(-18deg); pointer-events:none;}
.ct-camp{font-family:'Shippori Mincho',serif; font-weight:700; font-size:clamp(17px,2.8vw,25px); color:#fff; display:inline-flex; align-items:center; gap:16px; margin-bottom:12px;}
.ct-sl{color:var(--paper); font-size:1.3em; opacity:.85;}
.ct-price{display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;}
.ct-badge{width:80px; height:80px; border-radius:50%; background:var(--paper); color:var(--shu-deep); display:flex; align-items:center; justify-content:center; text-align:center; font-weight:800; font-size:14px; line-height:1.3; flex:none;}
.ct-big{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(52px,10vw,96px); line-height:1;}
.ct-yen{font-size:.34em;}
.ct-ex{border:1px solid rgba(255,255,255,.55); padding:8px 14px; font-size:13px; line-height:1.5;}
.ct-btn{display:inline-block; margin-top:28px; border:1.5px solid #fff; color:#fff; padding:15px 52px; font-weight:700; letter-spacing:.06em; transition:.3s;}
.ct-btn:hover{background:#fff; color:var(--shu-deep);}
.ct-note{margin-top:18px; font-size:11px; color:rgba(255,255,255,.75);}
@media(max-width:768px){ .ct{padding:84px 0;} .ct-banner{padding:54px 22px 34px;} }

/* ============ フッター（footer-03：CTA一体型＋NAP） ============ */
.fo{background:var(--sumi); color:#f1ead9;}
.fo-cta{position:relative; max-width:1200px; margin:0 auto; padding:70px 28px; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; border-bottom:1px solid var(--line-w); overflow:hidden;}
.fo-cta::after{content:""; position:absolute; inset:0; background:radial-gradient(440px 380px at calc(100% + 20px) -20px, rgba(179,50,43,.35), transparent 68%); pointer-events:none;}
.fo-h2{position:relative; color:#f1ead9; font-weight:800; font-size:clamp(24px,3.6vw,42px); line-height:1.45; margin:0;}
.fo-h2 .mkk{color:var(--shu-lt);}
.fo-btns{position:relative; display:flex; gap:14px; flex-wrap:wrap;}
.fo-btn{padding:15px 28px; font-weight:700; font-size:14.5px; white-space:nowrap; display:inline-block;}
.fo-btn--p{background:var(--shu); color:#fff;}
.fo-btn--p:hover{background:var(--shu-deep);}
.fo-btn--g{border:1.5px solid rgba(241,234,217,.5); color:#f1ead9;}
.fo-btn--g:hover{background:#f1ead9; color:var(--sumi);}
.fo-info{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding:54px 28px;}
.fo-nm{font-family:'Shippori Mincho',serif; font-weight:700; font-size:23px; display:flex; align-items:center; gap:10px;}
.fo-in{width:26px; height:26px; background:var(--shu); color:var(--paper); font-size:13px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; clip-path:polygon(3% 5%, 97% 0%, 100% 95%, 4% 100%); transform:rotate(-4deg); font-family:'Shippori Mincho',serif; flex:none;}
.fo-nap p{color:rgba(241,234,217,.6); font-size:14px; line-height:1.95; margin:14px 0 0;}
.fo-tel{font-family:'Space Grotesk',monospace; color:#fff; font-weight:700; font-size:18px; letter-spacing:.04em; margin-top:10px;}
.fo-col h4{font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--shu-lt); margin:0 0 14px; font-weight:700;}
.fo-col a{display:block; color:#f1ead9; font-size:14px; padding:6px 0; opacity:.85;}
.fo-col a:hover{opacity:1; color:var(--shu-lt);}
.fo-cp{border-top:1px solid var(--line-w);}
.fo-cp-in{max-width:1200px; margin:0 auto; padding:20px 28px; font-family:'Space Grotesk',monospace; font-size:12px; color:rgba(241,234,217,.5); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
.fo-cp-in a:hover{color:#f1ead9;}
@media(max-width:768px){
  .fo-cta{grid-template-columns:1fr; padding:56px 24px;}
  .fo-info{grid-template-columns:1fr; gap:30px; padding:44px 24px;}
}

/* ============ 固定ページ共通部品 ============ */
.sp-sec{padding:84px 0;}
.sp-sec--tint{background:var(--paper2);}
.sp-h2{font-size:clamp(24px,3.4vw,36px); margin-top:14px;}
.sp-lead{margin-top:18px; max-width:42em; font-size:15.5px;}
.sp-cols{display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:40px;}
.sp-block{border-top:2px solid var(--sumi); padding-top:22px; margin-top:36px;}
.sp-block h3{font-size:clamp(19px,2.2vw,24px); margin-bottom:10px;}
.sp-block p{font-size:15px; margin-bottom:12px;}
.sp-list{list-style:none; margin:16px 0 0; padding:0;}
.sp-list li{display:grid; grid-template-columns:auto 1fr; gap:12px; padding:12px 2px; border-bottom:1px solid var(--line); font-size:14.5px; align-items:baseline;}
.sp-list li::before{content:"—"; color:var(--shu); font-weight:700;}
.sp-tbl{width:100%; border-collapse:collapse; margin-top:24px; font-size:14.5px;}
.sp-tbl th{font-family:'Shippori Mincho',serif; color:var(--sumi); text-align:left; width:11em; padding:14px 10px; border-bottom:1px solid var(--line); vertical-align:top; font-weight:600; letter-spacing:.08em;}
.sp-tbl td{padding:14px 10px; border-bottom:1px solid var(--line); vertical-align:top;}
.sp-ctabox{margin-top:64px; background:var(--sumi); color:#f1ead9; padding:46px 40px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;}
.sp-ctabox h2{color:#f1ead9; font-size:clamp(20px,2.6vw,28px); margin:0;}
.sp-ctabox p{color:rgba(241,234,217,.65); font-size:13.5px; margin-top:8px;}
.sp-note{font-size:12px; color:var(--muted); margin-top:14px;}
@media(max-width:768px){
  .sp-sec{padding:60px 0;}
  .sp-cols{grid-template-columns:1fr; gap:24px;}
  .sp-tbl th{width:8em;}
  .sp-ctabox{grid-template-columns:1fr; padding:36px 24px;}
}

/* お問い合わせフォーム枠 */
.cf-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:48px; margin-top:40px; align-items:start;}
.cf-box{background:var(--washi); border:1px solid var(--line); padding:36px;}
.cf-box h3{font-size:20px; margin-bottom:6px;}
.cf-box > p{font-size:13.5px; color:var(--muted); margin-bottom:22px;}
.cf-field{margin-bottom:18px;}
.cf-field label{display:block; font-size:13px; font-weight:700; color:var(--sumi); margin-bottom:6px;}
.cf-field label small{color:var(--shu); font-weight:700; margin-left:6px;}
.cf-field input,.cf-field textarea,.cf-field select{width:100%; border:1px solid var(--line); background:#fff; padding:12px 14px; font:inherit; font-size:14.5px; color:var(--body-c);}
.cf-field textarea{min-height:140px; resize:vertical;}
.cf-side{display:grid; gap:24px;}
.cf-tel{border:1px solid var(--line); padding:28px; background:var(--washi);}
.cf-tel .num{font-family:'Space Grotesk',monospace; font-weight:700; font-size:26px; color:var(--sumi); margin-top:6px;}
.cf-tel p{font-size:13px; color:var(--muted); margin-top:8px;}
@media(max-width:768px){ .cf-grid{grid-template-columns:1fr; gap:24px;} }

/* プライバシー等の本文 */
.pv-art{max-width:760px;}
.pv-art h2{font-size:20px; margin:42px 0 12px; border-left:4px solid var(--shu); padding-left:14px;}
.pv-art p,.pv-art li{font-size:14.5px;}
.pv-art ul{padding-left:1.4em; margin:10px 0;}
