/* ===========================================================
   ゆーたか — 医療・士業専門のホームページ制作
   A-E型：B 上品（明朝主体＋欧文セリフ）／モーション基調：m-elegant
   配色：生成り × 墨 × 藍、差し色に朱銅を一点
   =========================================================== */
:root{
  --paper:#F6F4EF; --white:#FFFFFF;
  --ink:#16181C; --muted:#5A6068;
  --navy:#1B3A5C; --navy-d:#12283F;
  --shu:#A8452C; --line:#DCD8D0;
  --wrap:1320px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:clip;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Noto Sans JP',sans-serif; line-height:1.9;
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
img{max-width:100%;}
h1,h2,h3,.z-lead,.z-btn,summary,.qt,.c-faq .a,.c-check .tx,.c-change li,.c-works .row p,.step p,.c-svc .nm,.c-svc .ds{word-break:auto-phrase;text-wrap:pretty;}
h1,h2,h3,.z-btn,summary{text-wrap:pretty;}

.mono{font-family:'Space Grotesk','Noto Sans JP',sans-serif;letter-spacing:.06em;}
.garamond{font-family:'Space Grotesk','Noto Sans JP',sans-serif;}

/* --- accessibility --- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--shu);color:#fff;padding:10px 16px;z-index:999;}
.skip-link:focus{left:8px;top:8px;}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--shu); outline-offset:2px; border-radius:3px;
}
@media (hover:none){ .z-btn,.z-nav a,.z-hd-cta{min-height:44px;} .c-samples .thumb{min-height:44px;} }

/* --- 紙の粒子（署名質感・1枚だけ） --- */
.z-grain{position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");}

.z-wrap{width:min(var(--wrap),calc(100% - 56px));margin:0 auto;}
.z-sec{padding:118px 0;position:relative;}
.z-eyebrow{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--shu);}
.z-h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(27px,4.2vw,46px);line-height:1.38;margin:16px 0 0;letter-spacing:.02em;}
.z-h2 .mk{background:linear-gradient(transparent 62%,rgba(168,69,44,.22) 62%);}
.z-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 34px;font-weight:700;font-size:15px;
  text-decoration:none;letter-spacing:.06em;border:1.5px solid var(--navy);background:var(--navy);color:#fff;
  transition:background .3s,color .3s,transform .3s;}
.z-btn:hover{background:var(--navy-d);border-color:var(--navy-d);transform:translateY(-2px);}
.z-btn.ghost{background:transparent;color:var(--navy);}
.z-btn.ghost:hover{background:var(--navy);color:#fff;}
.z-btn.light{background:#fff;color:var(--navy);border-color:#fff;}
.z-btn.light:hover{background:var(--shu);border-color:var(--shu);color:#fff;}

/* ===================== HEADER（parts-catalog header-02 を移植） ===================== */
.z-hd{position:relative;z-index:20;background:var(--paper);border-bottom:1px solid var(--line);}
.z-hd .topbar{background:var(--ink);color:rgba(255,255,255,.86);}
.z-hd .topbar .in{max-width:var(--wrap);margin:0 auto;display:flex;justify-content:space-between;align-items:center;
  padding:9px 28px;font-size:12px;letter-spacing:.04em;}
.z-hd .topbar .right{display:flex;gap:18px;align-items:center;}
.z-hd .topbar a{color:inherit;text-decoration:none;opacity:.9;}
.z-hd .topbar a:hover{opacity:1;color:#fff;}
/* 3カラム grid の子は必ず3つ（右ナビ＋CTAは1つのflexで包む＝はみ出し対策） */
.z-hd .main{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;padding:16px 28px;gap:22px;}
.z-nav{display:flex;gap:24px;}
.z-nav.l{justify-content:flex-end;}
.z-nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;position:relative;padding:4px 0;}
.z-nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--shu);
  transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.16,1,.3,1);}
.z-nav a:hover::after{transform:scaleX(1);transform-origin:left;}
.z-hd .rightgrp{display:flex;align-items:center;justify-content:flex-start;gap:22px;}
.z-hd-cta{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;padding:11px 20px;
  background:var(--shu);color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.04em;transition:background .3s;}
.z-hd-cta:hover{background:#8E3722;}
.z-brand{text-align:center;text-decoration:none;color:var(--ink);display:block;}
.z-brand .nm{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:25px;letter-spacing:.18em;line-height:1.2;}
.z-brand .en{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.34em;color:var(--muted);margin-top:3px;}
.z-hd .strip{height:3px;background:linear-gradient(90deg,var(--navy) 0 62%,var(--shu) 62% 100%);}
@media(max-width:900px){
  .z-hd .topbar .in{display:none;}
  .z-hd .main{grid-template-columns:1fr;justify-items:center;gap:12px;padding:14px 20px;}
  .z-nav{flex-wrap:wrap;justify-content:center;gap:14px 18px;}
  .z-nav.l{justify-content:center;}
  .z-hd .rightgrp{flex-direction:column;gap:12px;}
}

/* ===================== HERO（fv-77 FocusPull を移植） ===================== */
.hero{position:relative;width:100%;min-height:clamp(560px,86vh,880px);overflow:hidden;background:var(--navy-d);}
.hero .world{position:absolute;inset:-4%;
  background:
    linear-gradient(100deg,rgba(8,18,30,.24) 0%,rgba(9,22,36,.18) 34%,rgba(12,28,45,.10) 62%,rgba(12,28,45,.04) 100%),
    url('src/fv.jpg') center/cover no-repeat;}
.j .hero .world{filter:blur(24px) saturate(.68);transform:scale(1.06);
  animation:zfocus 2.8s cubic-bezier(.3,.1,.2,1) .35s forwards;}
@keyframes zfocus{ to{ filter:blur(0) saturate(1); transform:scale(1);} }
.hero .bokeh{position:absolute;inset:0 0 0 46%;pointer-events:none;}
.hero .bokeh span{position:absolute;border-radius:50%;
  background:radial-gradient(circle at 38% 32%,rgba(255,255,255,.95),var(--c,#E4C08A) 55%,transparent 72%);}
.hero-inner{position:relative;z-index:3;max-width:var(--wrap);margin:0 auto;padding:clamp(70px,10vh,120px) 28px clamp(48px,7vh,84px);
  display:grid;grid-template-columns:46% 54%;align-items:center;min-height:clamp(560px,86vh,880px);}
.hero-copy{color:#F2EFE8;min-width:0;}
  /* 文字の下だけを暗くする。全面にかぶせると写真が見えなくなるため（2026-08-09 指摘） */
  .hero-inner::before{content:"";position:absolute;top:0;bottom:0;left:0;width:min(56%,640px);z-index:-1;
    pointer-events:none;
    background:linear-gradient(96deg,rgba(5,12,21,.62) 0%,rgba(5,12,21,.48) 40%,rgba(5,12,21,.20) 76%,rgba(5,12,21,0) 100%);}
.hero .kicker{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.4em;color:#D9B08C;margin:0 0 20px;}
.hero h1{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(26px,2.85vw,40px);line-height:1.68;
  letter-spacing:.03em;margin:0;color:#fff;text-wrap:pretty;}
.hero .z-lead{font-size:clamp(13.5px,1.35vw,16px);line-height:2.1;letter-spacing:.05em;color:rgba(242,239,232,.86);
  margin:26px 0 0;max-width:26em;}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}
.hero .rule-v{position:absolute;left:28px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.14);}
.j .hero .kicker,.j .hero h1,.j .hero .z-lead,.j .hero .acts{opacity:0;transform:translateY(18px);}
.j .hero.ready .kicker,.j .hero.ready h1,.j .hero.ready .z-lead,.j .hero.ready .acts{
  opacity:1;transform:none;transition:opacity 1.1s ease var(--d,0s),transform 1.1s cubic-bezier(.16,1,.3,1) var(--d,0s);}
.hero.ready h1{--d:.15s;} .hero.ready .z-lead{--d:.3s;} .hero.ready .acts{--d:.45s;}
/* 証明バッジ帯 */
.z-badges{background:var(--ink);color:#EDEAE3;}
.z-badges .in{max-width:var(--wrap);margin:0 auto;padding:22px 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.z-badges .b{display:flex;align-items:center;gap:14px;padding:10px 20px;border-right:1px solid rgba(255,255,255,.13);}
.z-badges .b:last-child{border-right:none;}
.z-badges .b img{width:auto;height:54px;object-fit:contain;flex:none;filter:none;opacity:1;background:#fff;border-radius:5px;padding:3px;}
.z-badges .b-ymaa img{width:auto;height:54px;filter:none;opacity:1;background:#fff;border-radius:5px;padding:3px;}
.z-badges .t{font-size:13px;font-weight:700;letter-spacing:.04em;line-height:1.5;}
.z-badges .s,.z-badges .t small{display:block;font-size:11px;color:rgba(237,234,227,.62);font-weight:400;margin-top:3px;line-height:1.6;}
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;padding-top:clamp(56px,8vh,90px);}
  .hero-inner::before{width:100%;background:linear-gradient(180deg,rgba(5,12,21,.72) 0%,rgba(5,12,21,.58) 62%,rgba(5,12,21,.30) 100%);}
  .hero .rule-v{display:none;}
  .z-badges .in{grid-template-columns:1fr 1fr;gap:2px;}
  .z-badges .b{padding:10px 12px;border-right:none;border-bottom:1px solid rgba(255,255,255,.13);}
}
@media(max-width:520px){ .z-badges .in{grid-template-columns:1fr;} }
@media (prefers-reduced-motion:reduce){
  .j .hero .world{animation:none;filter:none;transform:none;}
  .j .hero .kicker,.j .hero h1,.j .hero .z-lead,.j .hero .acts{opacity:1;transform:none;}
}

/* ===================== ② リード（sec-intro-16 静かな雑誌見開き） ===================== */
.c-lead{background:var(--paper);}
.c-lead .spread{display:grid;grid-template-columns:.72fr 1.28fr;min-height:600px;background:var(--white);
  border:1px solid var(--line);box-shadow:0 30px 70px -48px rgba(22,24,28,.4);position:relative;overflow:hidden;}
.c-lead .side{padding:40px 34px;display:flex;flex-direction:column;justify-content:flex-start;
  border-right:1px solid var(--line);}
.c-lead .side .index{margin-top:auto;}
.c-lead .issue{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.26em;color:var(--navy);text-transform:uppercase;}
.c-lead .index{display:grid;gap:16px;}
.c-lead .index div{border-top:1px solid var(--line);padding-top:11px;}
.c-lead .index b{display:block;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:13px;letter-spacing:.16em;color:var(--ink);}
.c-lead .index span{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.7;}
.c-lead .page{padding:66px clamp(28px,5.6vw,72px);position:relative;}
.c-lead h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(28px,5vw,60px);line-height:1.34;
  letter-spacing:.02em;margin:24px 0 26px;}
.c-lead .z-lead{font-family:'Noto Sans JP',sans-serif;font-size:clamp(15px,1.75vw,20px);line-height:2.15;
  max-width:30em;margin:0 0 22px;color:#2A2C31;}
.c-lead .z-lead:last-of-type{margin-bottom:0;}
.c-lead .note{position:relative;z-index:2;margin-top:44px;display:grid;grid-template-columns:96px 1fr;
  gap:22px;align-items:start;color:var(--muted);font-size:13.5px;line-height:2;max-width:46em;}
.c-lead .note .no{font-family:'Space Grotesk','Noto Sans JP',sans-serif;color:var(--navy);letter-spacing:.18em;
  border-top:2px solid var(--navy);padding-top:9px;font-size:11px;}
.c-lead .photo{margin:32px -34px 32px 0;overflow:hidden;aspect-ratio:4/5;
  clip-path:polygon(0 0,100% 6%,94% 100%,4% 94%);box-shadow:0 24px 50px -34px rgba(22,24,28,.55);}
.c-lead .photo img,.c-lead .photo picture{width:100%;height:100%;object-fit:cover;display:block;}
.c-lead .vword{position:absolute;right:24px;top:52px;writing-mode:vertical-rl;font-family:'Space Grotesk','Noto Sans JP',sans-serif;
  font-size:10px;letter-spacing:.28em;color:rgba(22,24,28,.26);}
@media(max-width:820px){
  .c-lead .spread{grid-template-columns:1fr;min-height:auto;}
  .c-lead .side{border-right:0;border-bottom:1px solid var(--line);}
  .c-lead .page{padding:40px 24px 48px;}
  .c-lead .photo{margin:24px -24px 24px 0;aspect-ratio:16/10;}
  .c-lead .note{grid-template-columns:1fr;gap:8px;max-width:100%;}
  .c-lead .vword{display:none;}
}

/* ===================== ③ セルフチェック（sec-intro-15） ===================== */
.c-check{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.c-check .inner{width:min(860px,calc(100% - 56px));margin:0 auto;}
.c-check .head{text-align:center;margin-bottom:42px;}
.c-check .head p{font-size:13.5px;color:var(--muted);max-width:32em;margin:16px auto 0;}
.c-check .sheet{background:var(--paper);border:1px solid var(--line);box-shadow:0 26px 54px -34px rgba(22,24,28,.34);
  padding:clamp(22px,4.2vw,44px);position:relative;}
.c-check .sheet::before{content:'';position:absolute;left:0;top:0;width:100%;height:5px;background:var(--navy);}
.c-check .st{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:6px;}
.c-check .st .t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(15px,2vw,19px);letter-spacing:.1em;}
.c-check .st .no{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.24em;color:var(--muted);}
.c-check .item{display:flex;align-items:flex-start;gap:15px;padding:16px 2px;border-bottom:1px dashed var(--line);}
.c-check .item:last-of-type{border-bottom:none;}
.c-check .cb{position:relative;width:25px;height:25px;border:2px solid var(--ink);border-radius:4px;flex:none;margin-top:4px;background:#fff;}
.c-check .cb svg{position:absolute;left:-4px;top:-9px;width:33px;height:33px;overflow:visible;}
.c-check .cb svg path{fill:none;stroke:var(--navy);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.c-check .tx{font-size:clamp(14px,1.8vw,16px);font-weight:500;letter-spacing:.03em;line-height:1.8;}
.c-check .tx small{display:block;font-size:11.5px;color:var(--muted);font-weight:400;margin-top:4px;line-height:1.8;}
.c-check .tally{margin-top:22px;background:var(--white);border:1px solid var(--line);padding:20px 22px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.c-check .tally .score{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(26px,3.4vw,38px);
  color:var(--navy);white-space:nowrap;}
.c-check .tally .score small{font-size:.46em;color:var(--muted);font-weight:500;}
.c-check .tally p{margin:0;font-size:13.5px;flex:1;min-width:16em;line-height:1.9;}
.c-check .tally b{font-weight:700;background:linear-gradient(transparent 62%,rgba(168,69,44,.25) 62%);}

/* ===================== ④ 提供する変化（sec-vs-01 対比パネル） ===================== */
.c-change{background:var(--paper);}
.c-change .head{text-align:center;margin-bottom:50px;}
.c-change .z-eyebrow{display:inline-flex;gap:12px;align-items:center;}
.c-change .z-eyebrow::before,.c-change .z-eyebrow::after{content:"";width:28px;height:1px;background:var(--shu);}
.c-change .vs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:24px;overflow-x:clip;padding-bottom:2px;}
.c-change .vsbadge{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);z-index:5;width:62px;height:62px;
  border-radius:50%;background:var(--ink);color:#fff;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:21px;font-weight:600;
  display:flex;align-items:center;justify-content:center;box-shadow:0 14px 30px -12px rgba(0,0,0,.5);letter-spacing:.06em;}
.c-change .panel{overflow:hidden;}
.c-change .imgph{position:relative;aspect-ratio:16/10;overflow:hidden;}
.c-change .imgph img{width:100%;height:100%;object-fit:cover;display:block;}
.c-change .tag{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;}
.c-change h3{font-family:'Noto Sans JP',sans-serif;font-size:clamp(20px,2.5vw,28px);font-weight:700;margin:8px 0 20px;}
.c-change ul{list-style:none;margin:0;padding:0;display:grid;gap:13px;}
.c-change li{font-size:14.5px;padding-left:28px;position:relative;line-height:1.85;}
.c-change .body{padding:28px 28px 34px;}
.c-change .a{background:var(--white);border:1px solid var(--line);}
.c-change .a .imgph img{filter:grayscale(1) contrast(.93);}
.c-change .a .tag{color:var(--muted);} .c-change .a li{color:var(--muted);}
.c-change .a li::before{content:"×";position:absolute;left:2px;color:#B6B2AA;font-weight:700;}
.c-change .b{background:var(--navy-d);color:#EDEFF2;}
.c-change .b .imgph::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(168,69,44,.34),transparent 70%);}
.c-change .b .tag{color:#D9B08C;} .c-change .b h3{color:#fff;}
.c-change .b li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;
  border-left:2px solid #8FC0A9;border-bottom:2px solid #8FC0A9;transform:rotate(-45deg);}
@media(max-width:820px){ .c-change .vs{grid-template-columns:1fr;gap:36px;} .c-change .vsbadge{top:calc(50% - 6px);} }

/* ===================== ⑤ 数字（sec-numbers-02 ブロークングリッド） ===================== */
.c-num{background:var(--navy-d);color:#EFEDE7;position:relative;overflow:hidden;}
.c-num::before{content:"";position:absolute;inset:0;background:url('src/section-bg-proof.jpg') center/cover no-repeat;opacity:.22;}
.c-num > *{position:relative;}
.c-num .z-eyebrow{color:#D9B08C;}
.c-num .z-h2{color:#fff;}
.c-num .z-h2 .mk{background:linear-gradient(transparent 62%,rgba(217,176,140,.32) 62%);}
.c-num .field{position:relative;margin-top:34px;min-height:600px;}
.c-num .stat{position:absolute;}
.c-num .v{font-family:'Noto Sans JP',sans-serif;font-weight:800;line-height:.84;letter-spacing:-.01em;display:flex;align-items:flex-start;color:#fff;}
.c-num .v .u{font-size:.24em;color:#D9B08C;font-weight:700;margin-top:.55em;margin-left:.12em;}
.c-num .l{font-family:'Noto Sans JP',sans-serif;font-size:12.5px;color:rgba(239,237,231,.7);letter-spacing:.06em;
  margin-top:10px;max-width:20em;line-height:1.8;}
.c-num .l::before{content:"— ";color:#D9B08C;}
.c-num .s1{left:-1%;top:0;}            .c-num .s1 .v{font-size:clamp(104px,19vw,240px);}
.c-num .s2{right:1%;top:112px;text-align:right;} .c-num .s2 .v{font-size:clamp(64px,11vw,140px);justify-content:flex-end;color:#D9B08C;}
.c-num .s2 .l::before{content:"";}
.c-num .s3{left:16%;top:342px;}        .c-num .s3 .v{font-size:clamp(70px,12vw,164px);}
.c-num .s4{right:6%;top:418px;}        .c-num .s4 .v{font-size:clamp(48px,7vw,96px);color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.85);}
.c-num .rule{position:absolute;left:0;right:0;top:308px;height:1px;background:rgba(255,255,255,.2);}
.c-num .tag{position:absolute;right:0;top:-8px;writing-mode:vertical-rl;font-family:'Space Grotesk','Noto Sans JP',sans-serif;
  font-size:10.5px;letter-spacing:.3em;color:rgba(239,237,231,.45);text-transform:uppercase;}
.c-num .foot{margin-top:34px;font-size:13.5px;color:rgba(239,237,231,.76);max-width:44em;line-height:2;}
@media(max-width:900px){
  .c-num .field{min-height:0;display:grid;gap:38px;margin-top:26px;}
  .c-num .stat{position:static!important;text-align:left!important;}
  .c-num .s2 .v{justify-content:flex-start;}
  .c-num .rule,.c-num .tag{display:none;}
  .c-num .s1 .v{font-size:88px;} .c-num .s2 .v{font-size:70px;} .c-num .s3 .v{font-size:74px;} .c-num .s4 .v{font-size:56px;}
}

/* ===================== ⑥ 比較（sec-vs-04 エディトリアル比較表） ===================== */
.c-cmp{background:var(--white);}
.c-cmp .z-wrap{width:min(980px,calc(100% - 56px));}
.c-cmp .head{margin-bottom:40px;}
.c-cmp .cmp-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;
  border-bottom:1px solid var(--line);padding-bottom:22px;}
.c-cmp .cmp-label{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--muted);text-align:right;white-space:nowrap;line-height:2.2;}
.c-cmp .cmp-label i{font-style:normal;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:34px;
  letter-spacing:0;color:var(--shu);display:block;line-height:1;}
.c-cmp .tbl{border-top:2px solid var(--ink);}
.c-cmp .row{display:grid;grid-template-columns:52px 1fr 1fr 1fr;align-items:center;
  border-bottom:1px solid var(--line);transition:background .25s;}
.c-cmp .row:hover{background:rgba(168,69,44,.045);}
.c-cmp .row.h{border-bottom:1px solid var(--ink);}
.c-cmp .cell{padding:17px 14px;font-size:14.5px;line-height:1.75;}
.c-cmp .row.h .cell{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);}
.c-cmp .no{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:12px;color:var(--shu);}
.c-cmp .item{font-weight:700;}
.c-cmp .ours{font-weight:700;color:var(--ink);}
.c-cmp .ours::before{content:"○";color:var(--navy);margin-right:8px;font-weight:700;}
.c-cmp .theirs{color:var(--muted);}
.c-cmp .theirs::before{content:"△";color:#B6B2AA;margin-right:8px;}
.c-cmp .colhead-ours{color:var(--shu)!important;font-weight:700!important;}
.c-cmp .foot{margin-top:32px;font-size:14px;color:var(--muted);max-width:44em;line-height:2;}
@media(max-width:760px){
  /* 比較表：スマホでは1項目を縦に積む（両方見せる） */
  .c-cmp .row{grid-template-columns:38px 1fr;align-items:start;padding:16px 0 14px;}
  .c-cmp .row.h{display:none;}
  .c-cmp .cell{padding:3px 6px;line-height:1.8;}
  .c-cmp .cell.no{grid-column:1;grid-row:1;}
  .c-cmp .cell.item{grid-column:2;grid-row:1;font-size:15.5px;}
  .c-cmp .cell.theirs{display:block;grid-column:2;grid-row:2;font-size:13px;}
  .c-cmp .cell.ours{grid-column:2;grid-row:3;font-size:14px;}
  .c-cmp .cell.theirs::before{content:"一般的な制作会社 ／ ";color:#A9A49B;font-weight:400;}
  .c-cmp .cell.ours::before{content:"ゆーたか ／ ";color:var(--shu);font-weight:700;}
}

/* ===================== ⑦ 実績（sec-features-04 索引＋ホバー画像） ===================== */
.c-works{background:var(--paper);}
.c-works .head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:6px;}
.c-works .cnt{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11.5px;color:var(--muted);white-space:nowrap;}
.c-works .intro{font-size:14.5px;color:var(--muted);max-width:46em;margin:26px 0 6px;line-height:2;}
.c-works .idx{list-style:none;margin:0;padding:0;}
.c-works .row{display:grid;grid-template-columns:108px 1fr auto;gap:26px;align-items:center;padding:32px 6px;
  border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:padding .3s,background .3s;}
.c-works .row:hover{padding-left:18px;background:var(--white);}
.c-works .n{font-family:'Noto Sans JP',sans-serif;font-weight:800;font-size:clamp(36px,4.6vw,64px);
  color:transparent;-webkit-text-stroke:1.3px var(--ink);line-height:.9;transition:.3s;}
.c-works .row:hover .n{-webkit-text-stroke:1.3px var(--shu);color:rgba(168,69,44,.08);}
.c-works h3{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(18px,2.2vw,25px);margin:0 0 8px;}
.c-works h3 em{font-style:normal;font-size:.62em;color:var(--muted);font-weight:400;margin-left:10px;font-family:'Noto Sans JP',sans-serif;}
.c-works .row p{color:var(--muted);font-size:14px;margin:0;max-width:38em;line-height:1.95;}
.c-works .go{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11.5px;color:var(--shu);opacity:0;
  transform:translateX(-8px);transition:.3s;letter-spacing:.1em;white-space:nowrap;}
.c-works .row:hover .go{opacity:1;transform:translateX(0);}
.c-works .other{margin-top:34px;padding:26px 28px;background:var(--white);border:1px solid var(--line);
  font-size:14px;color:#2A2C31;line-height:2.05;}
.c-works .other b{display:block;font-family:'Noto Sans JP',sans-serif;font-size:16px;margin-bottom:10px;}
.c-preview{position:fixed;top:0;left:0;width:290px;height:194px;overflow:hidden;pointer-events:none;opacity:0;
  transform:translate(-50%,-50%) scale(.92);transition:opacity .3s,transform .3s;z-index:30;
  box-shadow:0 30px 60px -24px rgba(0,0,0,.5);}
.c-preview.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
.c-preview img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .25s;}
.c-preview img.on{opacity:1;}
@media(max-width:860px){
  .c-works .head{flex-direction:column;align-items:flex-start;gap:6px;}
  .c-works .row{grid-template-columns:58px 1fr;gap:14px;padding:24px 4px;}
  .c-works .go{display:none;} .c-preview{display:none;}
}

/* ===================== ⑧ 制作見本（sec-gallery-09 コンタクトシート） ===================== */
.c-samples{background:var(--white);position:relative;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.c-samples::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(27,58,92,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(27,58,92,.06) 1px,transparent 1px);
  background-size:28px 28px;mask-image:linear-gradient(#000,transparent 76%);-webkit-mask-image:linear-gradient(#000,transparent 76%);}
.c-samples .z-wrap{position:relative;}
.c-samples .head{display:grid;grid-template-columns:.95fr 1fr;gap:48px;align-items:end;margin-bottom:38px;}
.c-samples .head p{margin:0;color:var(--muted);font-size:14px;max-width:34em;line-height:2;}
.c-samples .head p b{color:var(--shu);font-weight:700;}
.c-samples .sheet{display:grid;grid-template-columns:minmax(400px,1.08fr) .92fr;border:1px solid var(--line);
  background:var(--paper);box-shadow:0 34px 80px -58px rgba(22,24,28,.46);}
.c-samples .hero-cell{min-height:520px;padding:24px;border-right:1px solid var(--line);display:grid;grid-template-rows:1fr auto;gap:16px;}
.c-samples .stage{position:relative;overflow:hidden;background:#12283F;display:block;text-decoration:none;}
.c-samples .stage-cta{position:absolute;right:14px;bottom:14px;z-index:2;background:var(--shu);color:#fff;
  font-size:12.5px;font-weight:700;letter-spacing:.06em;padding:9px 16px;border-radius:8px;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.5);transition:background .25s,transform .25s;}
.c-samples .stage:hover .stage-cta{background:#8E3722;transform:translateY(-2px);}
.c-samples .thumb-cap{position:absolute;left:10px;bottom:10px;z-index:1;background:rgba(18,40,63,.86);color:#fff;
  font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:6px;}
.c-samples .stage img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .35s ease,transform .7s ease;}
.c-samples .stage::after{content:"SAMPLE — 制作見本";position:absolute;left:16px;top:16px;
  font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.2em;color:#fff;background:rgba(0,0,0,.42);padding:7px 10px;}
.c-samples .caption{display:flex;justify-content:space-between;gap:16px;align-items:end;}
.c-samples .caption b{font-family:'Noto Sans JP',sans-serif;font-size:21px;font-weight:700;}
.c-samples .caption span{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.18em;color:var(--navy);white-space:nowrap;}
.c-samples .contact{padding:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:11px;align-content:start;}
.c-samples .thumb{position:relative;display:block;border:1px solid var(--line);background:#fff;padding:6px;cursor:pointer;text-decoration:none;transition:border-color .25s,box-shadow .25s;}
.c-samples .thumb:hover{box-shadow:0 10px 24px -16px rgba(22,24,28,.5);}
.c-samples .thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.72);transition:filter .25s,transform .25s;}
.c-samples .thumb::before{content:attr(data-no);position:absolute;left:9px;top:7px;z-index:1;
  font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.18em;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);}
.c-samples .thumb.is-active,.c-samples .thumb:hover{border-color:var(--navy);}
.c-samples .thumb.is-active img,.c-samples .thumb:hover img{filter:grayscale(0);transform:scale(1.03);}
.c-samples .memo{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12.5px;line-height:1.95;margin:4px 0 0;}
@media(max-width:900px){
  .c-samples .head,.c-samples .sheet{grid-template-columns:1fr;gap:24px;}
  .c-samples .hero-cell{min-height:360px;border-right:0;border-bottom:1px solid var(--line);}
}
@media(max-width:620px){ .c-samples .contact{grid-template-columns:repeat(2,1fr);} .c-samples .caption{display:block;} .c-samples .caption b{display:block;margin-bottom:4px;} }

/* ===================== ⑨ サービス（sec-services-02 お品書き） ===================== */
.c-svc{background:var(--paper);}
.c-svc .inner{width:min(900px,calc(100% - 56px));margin:0 auto;position:relative;}
.c-svc .z-eyebrow{display:block;text-align:center;}
.c-svc h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(26px,4.2vw,46px);
  margin:14px 0 0;letter-spacing:.22em;text-align:center;}
.c-svc .sub{font-size:13.5px;color:var(--muted);text-align:center;margin:16px auto 0;max-width:34em;line-height:2;}
.c-svc .rule{width:58px;height:1px;background:var(--ink);margin:32px auto 0;}
.c-svc .menu{margin-top:50px;border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:5px;
  padding:clamp(26px,4.6vw,58px) clamp(20px,5.4vw,64px);background:rgba(255,255,255,.66);position:relative;}
.c-svc .grp{margin-bottom:42px;}
.c-svc .grp:last-of-type{margin-bottom:0;}
.c-svc .gt{display:flex;align-items:center;gap:15px;margin-bottom:16px;}
.c-svc .gt .jp{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(16px,2vw,21px);letter-spacing:.2em;}
.c-svc .gt .en{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:9.5px;letter-spacing:.26em;color:var(--shu);text-transform:uppercase;}
.c-svc .gt::after{content:'';flex:1;height:1px;background:var(--line);}
.c-svc .it{display:flex;align-items:baseline;gap:13px;padding:13px 0;}
.c-svc .nmw{flex:none;max-width:62%;}
.c-svc .nm{font-family:'Noto Sans JP',sans-serif;font-weight:600;font-size:clamp(15px,1.85vw,19px);letter-spacing:.1em;}
.c-svc .ds{display:block;font-size:11.5px;color:var(--muted);letter-spacing:.02em;margin-top:4px;line-height:1.8;}
.c-svc .dots{flex:1;height:1em;background-image:radial-gradient(circle,rgba(22,24,28,.5) 1.1px,transparent 1.2px);
  background-size:9px 9px;background-position:left 62%;background-repeat:repeat-x;transform-origin:left center;}
.c-svc .pr{flex:none;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:clamp(12.5px,1.5vw,15px);letter-spacing:.04em;white-space:nowrap;color:var(--navy);font-weight:700;}
.c-svc .seal{position:absolute;right:clamp(14px,3.6vw,42px);bottom:clamp(14px,3.6vw,36px);width:80px;height:80px;
  border:2.5px solid var(--shu);border-radius:50%;color:var(--shu);display:flex;align-items:center;justify-content:center;
  font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:14px;letter-spacing:.16em;line-height:1.6;text-align:center;
  transform:rotate(-8deg);opacity:.86;mix-blend-mode:multiply;}
.c-svc .note{margin-top:24px;font-size:12.5px;color:var(--muted);text-align:center;letter-spacing:.06em;line-height:2;}
.c-svc .acts{margin-top:34px;text-align:center;}
@media(max-width:680px){
  .c-svc .it{flex-wrap:wrap;gap:6px;} .c-svc .nmw{max-width:100%;} .c-svc .dots{min-width:36px;}
  .c-svc .seal{width:62px;height:62px;font-size:11px;}
}

/* ===================== ⑩ 流れ（sec-process-06 左sticky大番号・ダーク） ===================== */
.c-flow{background:var(--navy-d);color:#EAEEF6;}
.c-flow .layout{display:grid;grid-template-columns:.86fr 1.14fr;gap:48px;align-items:start;}
.c-flow .side{position:sticky;top:12vh;}
.c-flow .z-eyebrow{color:#D9B08C;}
.c-flow .side h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(22px,2.7vw,32px);margin:14px 0 22px;color:#fff;}
.c-flow .bignum{font-family:'Noto Sans JP',sans-serif;font-weight:800;font-size:clamp(110px,15vw,190px);line-height:.8;color:#D9B08C;}
.c-flow .bignum .of{font-size:.2em;color:rgba(234,238,246,.5);}
.c-flow .steps{display:flex;flex-direction:column;gap:22px;}
.c-flow .step{border:1px solid rgba(255,255,255,.16);padding:38px 34px;min-height:230px;display:flex;flex-direction:column;justify-content:center;transition:background .45s,border-color .45s;}
.c-flow .step.active{background:rgba(255,255,255,.07);border-color:#D9B08C;}
.c-flow .step .ph{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.16em;color:#D9B08C;}
.c-flow .step h3{font-family:'Noto Sans JP',sans-serif;font-size:20px;font-weight:700;margin:8px 0 8px;color:#fff;}
.c-flow .step p{color:rgba(234,238,246,.72);font-size:14px;margin:0;line-height:1.95;}
@media(max-width:820px){
  .c-flow .layout{grid-template-columns:1fr;gap:24px;}
  .c-flow .side{position:static;} .c-flow .bignum{font-size:84px;}
}

/* ===================== ⑪ FAQ（sec-faq-02 2カラム＋下線ドロー） ===================== */
.c-faq{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.c-faq .z-wrap{width:min(1120px,calc(100% - 48px));}
.c-faq .z-eyebrow{display:inline-flex;gap:12px;align-items:center;font-weight:700;}
.c-faq .z-eyebrow::before{content:"";width:28px;height:1px;background:currentColor;}
.c-faq .head{position:relative;display:inline-block;max-width:100%;}
.c-faq .head h2{font-family:'Noto Sans JP',sans-serif;font-size:clamp(28px,4.2vw,50px);font-weight:600;
  line-height:1.45;margin:18px 0 6px;}
.c-faq .uline{width:100%;height:8px;overflow:visible;display:block;}
.c-faq .uline path{fill:none;stroke:var(--shu);stroke-width:4;stroke-linecap:round;}
.c-faq .grid{display:grid;grid-template-columns:1fr 1fr;gap:38px 54px;margin-top:56px;}
.c-faq .qa{padding-top:6px;}
.c-faq .q{display:flex;gap:14px;align-items:baseline;}
.c-faq .qn{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:32px;color:var(--shu);line-height:1;flex:0 0 auto;}
.c-faq .qt{font-family:'Noto Sans JP',sans-serif;font-size:clamp(16px,1.85vw,19px);font-weight:600;margin:0;line-height:1.7;}
.c-faq .a{margin:14px 0 0 44px;font-size:14.5px;color:var(--muted);line-height:2.05;}
@media(max-width:860px){ .c-faq .grid{grid-template-columns:1fr;gap:32px;} .c-faq .a{margin-left:0;} }
@media(prefers-reduced-motion:reduce){ .c-faq .uline path{stroke-dasharray:none!important;stroke-dashoffset:0!important;} }

/* ===================== ⑫ お知らせ（sec-news-03） ===================== */
.c-news{background:var(--paper);}
.c-news .layout{display:grid;grid-template-columns:.66fr 1.34fr;gap:48px;align-items:start;}
.c-news h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(26px,3.4vw,42px);margin:12px 0 22px;}
.c-news .sidep{font-size:13.5px;color:var(--muted);line-height:2;margin:0 0 26px;max-width:24em;}
/* はじめに読む3本。最新順のリストとは別に、検討している人が読む順を示す導線 */
.c-news .firstread{margin-top:34px;padding-top:24px;border-top:1px solid var(--line);}
.c-news .firstread .ttl{display:block;font-size:11px;letter-spacing:.16em;font-weight:700;
  color:var(--shu);margin-bottom:14px;}
.c-news .firstread ol{list-style:none;counter-reset:fr;margin:0;padding:0;}
.c-news .firstread li{counter-increment:fr;position:relative;padding-left:30px;margin-bottom:16px;}
.c-news .firstread li::before{content:counter(fr);position:absolute;left:0;top:1px;
  font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:700;color:var(--yama);}
.c-news .firstread a{display:block;color:var(--ink);text-decoration:none;font-weight:700;
  font-size:14px;line-height:1.7;border-bottom:1px solid transparent;}
.c-news .firstread a:hover{border-bottom-color:var(--navy);}
.c-news .firstread small{display:block;font-size:12px;color:var(--muted);
  line-height:1.75;margin-top:3px;font-weight:400;}
@media(max-width:900px){ .c-news .firstread{margin-top:26px;} }
.c-news .seeall{display:inline-flex;align-items:center;gap:14px;color:var(--ink);font-weight:700;text-decoration:none;font-size:14px;}
.c-news .seeall .circ{width:44px;height:44px;border:1px dashed var(--navy);border-radius:50%;display:flex;
  align-items:center;justify-content:center;color:var(--navy);transition:background .3s,color .3s;}
.c-news .seeall:hover .circ{background:var(--navy);color:#fff;}
.c-news .list{display:flex;flex-direction:column;}
.c-news .row{display:grid;grid-template-columns:124px 1fr;gap:22px;padding:22px 0;border-bottom:1px dashed var(--line);
  text-decoration:none;color:inherit;align-items:center;transition:padding-left .3s;}
.c-news .row:first-child{padding-top:0;}
.c-news .row:hover{padding-left:8px;}
.c-news .row img{width:124px;height:84px;object-fit:cover;}
.c-news .meta{display:flex;gap:12px;align-items:center;margin-bottom:6px;flex-wrap:wrap;}
.c-news .d{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11.5px;color:var(--navy);}
.c-news .cat{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:3px 12px;color:var(--muted);}
.c-news .row h3{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:16px;margin:0;line-height:1.65;}
@media(max-width:820px){ .c-news .layout{grid-template-columns:1fr;gap:28px;} .c-news .row{grid-template-columns:96px 1fr;gap:16px;} .c-news .row img{width:96px;height:68px;} }

/* ===================== ⑬ 事業者情報（sec-about-02 罫線インデックス） ===================== */
.c-about{background:var(--white);}
.c-about .inner{display:grid;grid-template-columns:300px 1fr;gap:60px;}
.c-about .left{position:sticky;top:88px;align-self:start;}
.c-about h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(25px,3.8vw,40px);margin:14px 0 0;}
.c-about .ph{margin-top:32px;overflow:hidden;}
.c-about .ph img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;}
.c-about .ph-cap{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.22em;color:var(--muted);margin-top:10px;}
.c-about dl.spec{margin:0;border-top:1px solid var(--ink);}
.c-about .row{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:19px 4px;
  border-bottom:1px solid var(--line);position:relative;}
.c-about .row dt{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.2em;color:var(--muted);padding-top:5px;}
.c-about .row dd{margin:0;font-size:14.5px;line-height:1.9;}
.c-about .row dd small{display:block;color:var(--muted);font-size:12px;margin-top:3px;line-height:1.8;}
.c-about .row dd a{color:var(--navy);}
@media(max-width:820px){
  .c-about .inner{grid-template-columns:1fr;gap:34px;}
  .c-about .left{position:static;}
  .c-about .row{grid-template-columns:104px 1fr;gap:12px;}
}

/* ===================== ⑭ 最終CTA（sec-cta-09 超特大アウトライン） ===================== */
.c-cta{position:relative;padding:0;}
.c-cta .stage{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:linear-gradient(120deg,var(--navy) 0%,var(--navy-d) 100%);}
.c-cta .stage::before{content:"";position:absolute;inset:0;background:url('src/section-bg-cta.jpg') center/cover no-repeat;
  opacity:.18;mix-blend-mode:luminosity;}
.c-cta .person{position:absolute;right:0;top:0;bottom:0;width:44%;object-fit:cover;opacity:.4;mix-blend-mode:luminosity;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 42%);mask-image:linear-gradient(90deg,transparent,#000 42%);}
.c-cta .bgword{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:'Space Grotesk','Noto Sans JP',sans-serif;
  font-weight:600;font-size:clamp(64px,16vw,240px);color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.2);
  letter-spacing:.04em;white-space:nowrap;z-index:1;}
.j .c-cta .bgword{clip-path:inset(0 100% 0 0);}
.c-cta .inner{position:relative;z-index:2;text-align:center;padding:70px 24px;max-width:840px;color:#F2EFE8;}
.c-cta .z-eyebrow{color:#D9B08C;}
.c-cta h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(26px,4.4vw,50px);line-height:1.5;
  margin:18px 0 0;color:#fff;}
.c-cta p{font-size:14.5px;line-height:2.1;color:rgba(242,239,232,.86);margin:24px auto 0;max-width:36em;}
.c-cta .acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;}
.c-cta .hours{margin-top:26px;font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.1em;color:rgba(242,239,232,.65);}
@media(max-width:760px){ .c-cta .person{width:74%;opacity:.24;} .c-cta .stage{min-height:auto;} }

/* ===================== FOOTER（parts-catalog footer-03） ===================== */
.z-ft{background:var(--ink);color:#EDEAE3;}
.z-ft .info{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding:56px 28px;}
.z-ft .nap .nm{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:23px;letter-spacing:.14em;}
.z-ft .nap .en{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.32em;color:rgba(237,234,227,.55);margin-top:4px;}
.z-ft .nap p{color:rgba(237,234,227,.66);font-size:13.5px;line-height:2.05;margin:16px 0 0;}
.z-ft .nap a{color:#EDEAE3;}
.z-ft .col h4{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:#D9B08C;margin:0 0 14px;}
.z-ft .col a{display:block;color:#EDEAE3;text-decoration:none;font-size:13.5px;padding:6px 0;opacity:.82;transition:opacity .25s,color .25s;}
.z-ft .col a:hover{opacity:1;color:#D9B08C;}
.z-ft .cp{border-top:1px solid rgba(255,255,255,.12);}
.z-ft .cp .in{max-width:var(--wrap);margin:0 auto;padding:20px 28px;font-size:11.5px;color:rgba(237,234,227,.55);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:'Space Grotesk','Noto Sans JP',sans-serif;}
@media(max-width:820px){ .z-ft .info{grid-template-columns:1fr;gap:30px;padding:44px 22px;} }

/* --- モバイル基準（768px以下は1カラムに畳む） --- */
@media (max-width:768px){
  /* モバイルのヘッダーが252px（画面の31%）を占めていた。
     ブランド＋CTAを1行に、ナビは横スクロールの1行に畳む（2026-08-09 UT r2 の実測より） */
  .z-hd .main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
    gap:8px 12px;padding:10px 16px;}
  .z-hd .z-brand{order:1;flex:0 1 auto;}
  .z-hd .z-brand .en{display:none;}
  .z-hd .rightgrp{display:contents;}
  /* 44px を下回らせない。「指で操作する端末は44px以上」と決めているのに、ここが
     40px で、詳細度も記述順も強く、実測 42.4px になっていた
     （2026-08-11、コラム mobile-header-31percent の実測で発覚）。
     ※ CSSの正本はこの index.html の <style>。assets/css/_shared.css は
        tools_sync_css.py が再生成するので、あちらを直しても消える。 */
  .z-hd .z-hd-cta{padding:9px 14px;font-size:12.5px;min-height:44px;}
  .z-hd .z-nav{flex:1 0 100%;gap:18px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding:0;margin:0;}
  .z-hd .z-nav::-webkit-scrollbar{display:none;}
  .z-hd .z-nav a{white-space:nowrap;font-size:13px;}
  .z-hd .z-nav.l{order:3;} .z-hd .z-nav.r{order:4;}
  .z-hd .z-hd-cta{order:2;}
  .z-hd .z-nav a{padding:2px 0;line-height:1.5;}
  .z-hd .topbar .in{padding:6px 16px;font-size:11px;}
  .z-hd .topbar .right span{display:none;}

  .c-target .tg-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .c-capacity .cap-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .z-sec{padding:72px 0;}
  .z-wrap,.c-check .inner,.c-svc .inner{width:calc(100% - 40px);}
  .hero-inner,.c-lead .spread,.c-change .vs,.c-flow .layout,.c-news .layout,
  .c-about .inner,.c-faq .grid,.c-samples .head,.c-samples .sheet,.pg .rule-idx .r{grid-template-columns:1fr;}
  .z-badges .in{grid-template-columns:1fr;}
  .c-num .field{display:grid;gap:34px;min-height:0;}
  .c-num .stat{position:static!important;text-align:left!important;}
  .c-works .row{grid-template-columns:54px 1fr;}
  .c-works h3 em{display:block;margin-left:0;margin-top:5px;}
  .c-samples .contact{grid-template-columns:repeat(2,1fr);}
  .c-preview{display:none;}
  img{height:auto;}
}

/* --- スクロールreveal（JS有効時のみ） --- */
.j .z-rv{opacity:0;transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.j .z-rv.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .j .z-rv{opacity:1!important;transform:none!important;transition:none!important;}
}

/* ===========================================================
   やわらかく・親しみやすく
   見出し＝Zen Maru Gothic（丸ゴシック）／本文＝Noto Sans JP ／ 欧文・数字＝Space Grotesk
   角も少し丸め、線を細くして圧を下げる
   =========================================================== */
.hero h1,.z-h2,.c-lead h2,.c-svc h2,.c-news h2,.c-about h2,.c-cta h2,
.c-faq .head h2,.c-flow .side h2,.page-hero h1,.pg h2,.c-samples h2,
h3,.c-works h3,.c-change h3,.c-flow .step h3,.c-samples .caption b,
.c-svc .nm,.c-svc .gt .jp,.c-faq .qt,.pg h3,.z-ft .nap .nm,.c-check .st .t,
.c-num .v,.z-brand .nm,.c-svc .seal,.c-lead .z-lead,.c-check .tally .score,
.post-hero h1,.post-body h2,.post-body h3,.widget__ttl,.c-flow .bignum,.c-faq .qn{
  font-family:'Noto Serif JP',serif;}

.hero h1,.z-h2,.c-lead h2,.c-svc h2,.c-news h2,.c-about h2,.c-cta h2,
.c-faq .head h2,.c-flow .side h2,.page-hero h1,.pg h2,.c-samples h2,.post-hero h1{
  font-weight:700;letter-spacing:.035em;line-height:1.58;}
.hero h1{font-size:clamp(26px,2.9vw,41px);line-height:1.66;letter-spacing:.035em;}
.c-lead h2{line-height:1.46;letter-spacing:.025em;}
.c-svc h2{letter-spacing:.2em;}
h3,.c-works h3,.c-change h3,.c-flow .step h3,.c-samples .caption b,
.c-svc .nm,.c-svc .gt .jp,.c-faq .qt,.pg h3,.z-ft .nap .nm,.c-check .st .t,
.post-body h2,.post-body h3,.widget__ttl{font-weight:700;letter-spacing:.04em;line-height:1.8;}
.c-lead .z-lead{font-weight:500;font-size:clamp(15px,1.65vw,19px);line-height:2.15;letter-spacing:.04em;}
.c-num .v{font-weight:900;letter-spacing:0;}
.c-num .v .u{margin-left:.16em;letter-spacing:.03em;font-weight:700;}
.c-flow .bignum{font-weight:900;letter-spacing:.02em;}
.c-faq .qn{font-weight:700;font-size:30px;}
.z-brand .nm{font-weight:700;letter-spacing:.16em;font-size:25px;}
.c-svc .seal{font-weight:700;letter-spacing:.14em;font-size:14px;}

/* 本文の呼吸を少しゆるめる */
body{line-height:1.95;letter-spacing:.02em;}
.c-check .tx,.c-change li,.c-works .row p,.c-flow .step p,.c-faq .a,.pg p,.pg ul.dot li{
  line-height:2.05;letter-spacing:.025em;}

/* 角を少し丸める（圧を下げる） */
.z-btn,.z-hd-cta{border-radius:8px;}
.c-check .sheet,.c-change .panel,.c-flow .step,.pg .card,.c-samples .thumb,
.c-lead .spread,.c-samples .sheet,.c-news .row img,.c-about .ph,.c-works .other{border-radius:10px;}
.c-change .imgph img,.c-samples .stage{border-radius:8px;}
.c-lead .photo{border-radius:12px;clip-path:none;}
.c-num .rule,.c-cmp .tbl{border-radius:0;}
.z-badges .b img{border-radius:0;}
.c-preview{border-radius:10px;}

/* 罫線と影をやわらかく */
.c-check .sheet{box-shadow:0 20px 44px -30px rgba(22,24,28,.28);}
.c-lead .spread{box-shadow:0 24px 56px -42px rgba(22,24,28,.32);}
.c-samples .sheet{box-shadow:0 26px 64px -50px rgba(22,24,28,.34);}
.c-lead .photo{box-shadow:0 20px 44px -32px rgba(22,24,28,.42);}

.c-about .entity-def{margin:18px 0 0;font-size:15px;line-height:2.05;color:var(--ink);letter-spacing:.02em;max-width:34em;}
@media(max-width:768px){.c-about .entity-def{font-size:14.5px;}}

/* ===================== 追加：料金バンド / 料金 / 診断書の見本（2026-08-22 競合分解を受けて） ===================== */
.c-capacity .cap-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);}
.c-capacity .cp-lb{font-size:11px;letter-spacing:.16em;color:var(--shu);font-weight:700;}
.c-capacity .cp-it{font-size:14px;color:var(--muted);}
.c-capacity .cp-it b{color:var(--ink);font-weight:700;margin-right:8px;}
.c-capacity .cp-it i{font-style:normal;font-weight:700;color:var(--navy);font-size:16px;letter-spacing:.01em;}
.c-capacity .cp-more{font-size:13px;color:var(--shu);text-decoration:none;border-bottom:1px solid currentColor;}
@media(max-width:760px){.c-capacity .cap-price{gap:8px 16px;}.c-capacity .cp-it{width:100%;}}

.c-price{background:var(--white);}
.c-price .head{max-width:760px;margin:0 0 40px;}
.c-price .head h2{margin:8px 0 14px;}
.c-price .head .sub{font-size:16px;line-height:2;color:var(--muted);margin:0;}
.c-price .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.c-price .pc{position:relative;border:1px solid var(--line);background:var(--paper);padding:26px 24px 24px;}
.c-price .pc::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--navy);}
.c-price .pc-lb{display:inline-block;font-size:11px;letter-spacing:.14em;color:var(--shu);font-weight:700;}
.c-price .pc h3{margin:8px 0 4px;font-size:18px;line-height:1.5;}
.c-price .pc-ds{margin:0 0 16px;font-size:13px;color:var(--muted);line-height:1.8;min-height:3.6em;}
.c-price .pc-v{font-size:38px;font-weight:700;color:var(--navy);letter-spacing:-.01em;line-height:1.1;}
.c-price .pc-v .u{font-size:15px;font-weight:700;margin-left:3px;letter-spacing:.02em;}
.c-price .pc-nt{margin:12px 0 0;font-size:12.5px;color:var(--muted);line-height:1.85;}
.c-price .rows{margin-top:26px;border-top:1px solid var(--line);}
.c-price .pr-row{display:flex;align-items:baseline;gap:10px;padding:14px 2px;border-bottom:1px solid var(--line);}
.c-price .rl{font-size:15px;}
.c-price .rd{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-4px);}
.c-price .rv{font-size:16px;font-weight:700;color:var(--navy);white-space:nowrap;}
.c-price .pc-fine{margin:20px 0 0;font-size:12.5px;color:var(--muted);line-height:1.95;}
.c-price .pc-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}
@media(max-width:900px){.c-price .cards{grid-template-columns:1fr;}.c-price .pc-ds{min-height:0;}}
@media(max-width:640px){.c-price .pr-row{flex-wrap:wrap;gap:2px;}.c-price .rd{display:none;}.c-price .rl{width:100%;font-size:14px;}.c-price .rv{margin-left:auto;}}

.c-report{background:var(--paper);border-top:1px solid var(--line);}
.c-report .rp-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.c-report .rp-txt h2{margin:8px 0 14px;}
.c-report .rp-txt>p{font-size:16px;line-height:2;color:var(--muted);margin:0 0 18px;}
.c-report .rp-list{list-style:none;padding:0;margin:0 0 18px;}
.c-report .rp-list li{position:relative;padding-left:24px;margin:10px 0;font-size:15px;line-height:1.9;}
.c-report .rp-list li::before{content:"";position:absolute;left:2px;top:.72em;width:9px;height:9px;background:var(--shu);}
.c-report .rp-note{font-size:13px;color:var(--muted);margin:0 0 22px;}
.c-report .rp-acts{display:flex;flex-wrap:wrap;gap:14px;}
.c-report .doc{background:var(--white);border:1px solid var(--line);box-shadow:0 22px 48px rgba(18,40,63,.10);transform:rotate(-.7deg);}
.c-report .doc-h{background:var(--navy-d);color:#fff;padding:18px 22px;}
.c-report .doc-t{display:block;font-size:15px;font-weight:700;letter-spacing:.04em;}
.c-report .doc-m{display:block;font-size:12px;color:#a9bccd;margin-top:4px;}
.c-report .doc-b{padding:20px 22px 24px;}
.c-report .dl{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.c-report .dn{font-size:12px;font-weight:700;color:var(--shu);padding-top:2px;}
.c-report .dt{font-size:13.5px;line-height:1.8;}
.c-report .dm{margin-top:14px;padding:12px 14px;background:var(--paper);font-size:13px;line-height:1.85;color:var(--muted);}
@media(max-width:900px){.c-report .rp-grid{grid-template-columns:1fr;gap:32px;}.c-report .doc{transform:none;}}


/* ===================== 修正：制作見本の画像が左右に切れていた（2026-08-22） =====================
   見本の画像は全13枚とも 1536×1024（3:2）。枠が 603×744（縦長）だったため
   object-fit:cover が高さに合わせて拡大し、横を約46%切り落としていた。枠を画像の比率に合わせる。 */
.c-samples .hero-cell{grid-template-rows:auto auto;align-content:start;min-height:0;}
.c-samples .stage{aspect-ratio:3/2;}
.c-samples .thumb img{aspect-ratio:3/2;}
@media(max-width:900px){ .c-samples .hero-cell{min-height:0;} }


/* ==== 金継ぎ修理 2026-08-29 ==== */
/* ══ 金継ぎ追補スタイル（naoshi planner 自動生成・2026-08-27）══
   元の規則と同じセレクタ・同じmediaで後から上書きする。:root の変数は触らない。
   直した行: 115・手で見る行: 35 */
/* [contrast] コントラスト比3.75→基準4.5以上（既存色 #06C755・背景#12283F） */
.c-num .tag { color: #06C755; }
/* [contrast] コントラスト比1.76→基準4.5以上（既存色 #A8452C・背景#FFFFFF） */
.c-lead .vword { color: #A8452C; }
/* [font] 役割「ボタン」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.z-nav a { font-size: 15px; }
/* [font] 役割「ボタン」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-news .seeall { font-size: 15px; }
/* [font] 役割「ボタン」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-news .firstread a { font-size: 15px; }
/* [font] 役割「ボタン」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.z-ft .col a { font-size: 15px; }
/* [font] 役割「ボタン」の 13px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.z-hd-cta { font-size: 15px; }
/* [font] 役割「ボタン」の 13px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-capacity .cp-more { font-size: 15px; }
/* [font] 役割「ボタン」の 12px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ） ⚠inherited（祖先 .z-hd .topbar .in の規則を上書き＝配下全部に効く） */
.z-hd .topbar .in { font-size: 12.5px; }
/* [font] 役割「ボタン」の 11.5px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-works .go { font-size: 12.5px; }
/* [font] 役割「ボタン」の 11.5px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-news .d { font-size: 12.5px; }
/* [font] 役割「ボタン」の 11px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-samples .thumb-cap { font-size: 12.5px; }
/* [font] 役割「ボタン」の 11px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-news .firstread .ttl { font-size: 12.5px; }
/* [font] 役割「ボタン」の 10.5px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.z-brand .en { font-size: 12.5px; }
/* [font] 役割「ボタン」の 10px を近いサイズ 12.5px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-news .cat { font-size: 12.5px; }
/* [font] 役割「その他」の 36.9px を近いサイズ 38px へ寄せる（25%以内・一番使われている値へ） */
.c-num .v .u { font-size: 38px; }
/* [font] 役割「その他」の 34px を近いサイズ 38px へ寄せる（25%以内・一番使われている値へ） */
.c-cmp .cmp-label i { font-size: 38px; }
/* [font] 役割「その他」の 13.5px を近いサイズ 14px へ寄せる（25%以内・一番使われている値へ） ⚠inherited（祖先 .c-lead .note の規則を上書き＝配下全部に効く） */
.c-lead .note { font-size: 14px; }
/* [font] 役割「その他」の 13.5px を近いサイズ 14px へ寄せる（25%以内・一番使われている値へ） */
.c-report .dt { font-size: 14px; }
/* [font] 役割「その他」の 13px を近いサイズ 14px へ寄せる（25%以内・一番使われている値へ） */
.c-lead .index b { font-size: 14px; }
/* [font] 役割「その他」の 13px を近いサイズ 14px へ寄せる（25%以内・一番使われている値へ） */
.c-report .dm { font-size: 14px; }
/* [font] 役割「その他」の 11.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.z-eyebrow { font-size: 12px; }
/* [font] 役割「その他」の 11.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-works .cnt { font-size: 12px; }
/* [font] 役割「その他」の 11.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-svc .ds { font-size: 12px; }
/* [font] 役割「その他」の 11.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） ⚠inherited（祖先 .z-ft .cp .in の規則を上書き＝配下全部に効く） */
.z-ft .cp .in { font-size: 12px; }
/* [font] 役割「その他」の 11px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-capacity .cp-lb { font-size: 12px; }
/* [font] 役割「その他」の 11px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-lead .note .no { font-size: 12px; }
/* [font] 役割「その他」の 11px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-cmp .row.h .cell { font-size: 12px; }
/* [font] 役割「その他」の 11px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-price .pc-lb { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-samples .caption span { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-num .tag { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-lead .issue { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-cmp .cmp-label { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-flow .step .ph { font-size: 12px; }
/* [font] 役割「その他」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.z-ft .nap .en { font-size: 12px; }
/* [font] 役割「その他」の 10px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-check .st .no { font-size: 12px; }
/* [font] 役割「その他」の 10px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-lead .vword { font-size: 12px; }
/* [font] 役割「その他」の 9.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-svc .gt .en { font-size: 12px; }
/* [font] 役割「本文」の 16px を近いサイズ 19px へ寄せる（25%以内・一番使われている値へ） */
.c-price .head .sub { font-size: 19px; }
/* [font] 役割「本文」の 16px を近いサイズ 19px へ寄せる（25%以内・一番使われている値へ） */
.c-report .rp-txt > p { font-size: 19px; }
/* [font] 役割「本文」の 14.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-works .intro { font-size: 15px; }
/* [font] 役割「本文」の 14.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-faq .a { font-size: 15px; }
/* [font] 役割「本文」の 14.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-about .row dd { font-size: 15px; }
/* [font] 役割「本文」の 14.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-cta p { font-size: 15px; }
/* [font] 役割「本文」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-samples .head p { font-size: 15px; }
/* [font] 役割「本文」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-works .row p { font-size: 15px; }
/* [font] 役割「本文」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-cmp .foot { font-size: 15px; }
/* [font] 役割「本文」の 14px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-flow .step p { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-num .foot { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-check .head p { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-check .tally p { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-svc .sub { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-news .sidep { font-size: 15px; }
/* [font] 役割「本文」の 13.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.z-ft .nap p { font-size: 15px; }
/* [font] 役割「本文」の 13px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-price .pc-ds { font-size: 15px; }
/* [font] 役割「本文」の 12.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-samples .memo { font-size: 15px; }
/* [font] 役割「本文」の 12.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-svc .note { font-size: 15px; }
/* [font] 役割「本文」の 12.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-price .pc-nt { font-size: 15px; }
/* [font] 役割「本文」の 12.5px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-price .pc-fine { font-size: 15px; }
/* [font] 役割「本文」の 12px を近いサイズ 15px へ寄せる（25%以内・一番使われている値へ） */
.c-cta .hours { font-size: 15px; }
/* [font] 役割「本文」の 11px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.hero .kicker { font-size: 12px; }
/* [font] 役割「本文」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-about .row dt { font-size: 12px; }
/* [font] 役割「本文」の 10px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-about .ph-cap { font-size: 12px; }
/* [font] 役割「h3」の 15.5px を近いサイズ 16px へ寄せる（25%以内・一番使われている値へ） */
.c-works h3 em { font-size: 16px; }
/* [font] 役割「h3」の 10.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.z-ft .col h4 { font-size: 12px; }
/* [font] 役割「補足」の 11.5px を近いサイズ 12px へ寄せる（25%以内・一番使われている値へ・極小） */
.c-check .tx small { font-size: 12px; }
/* [radius] 角丸 2px を 6px へ（15種→3） */
.hero .bokeh span { border-radius: 6px; }
/* [radius] 角丸 4px を 6px へ（15種→3） */
.c-check .cb { border-radius: 6px; }
/* [radius] 角丸 7px を 8px へ（15種→3） */
.hero .bokeh span { border-radius: 8px; }
/* [radius] 角丸 12px を 10px へ（15種→3） */
.c-lead .photo { border-radius: 10px; }
/* [color] 似て非なる色 #2A2C31 → #16181C */
.c-works .other { color: #16181C; }
/* [color] 似て非なる色 #2A2C31 → #16181C */
.c-lead .z-lead { color: #16181C; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft { color: #DCD8D0; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft .nap .en { color: #DCD8D0; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft .nap p { color: #DCD8D0; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft .nap a { color: #DCD8D0; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft .col a { color: #DCD8D0; }
/* [color] 似て非なる色 #EDEAE3 → #DCD8D0 */
.z-ft .cp .in { color: #DCD8D0; }
/* [color] 似て非なる色 #F2EFE8 → #F6F4EF */
.hero-copy { color: #F6F4EF; }
/* [color] 似て非なる色 #F2EFE8 → #F6F4EF */
.hero .z-lead { color: #F6F4EF; }
/* [color] 似て非なる色 #F2EFE8 → #F6F4EF */
.c-cta .inner { color: #F6F4EF; }
/* [color] 似て非なる色 #EFEDE7 → #F6F4EF */
.c-num { color: #F6F4EF; }
/* [color] 似て非なる色 #EFEDE7 → #F6F4EF */
.c-num .tag { color: #F6F4EF; }
/* [color] 似て非なる色 #EFEDE7 → #F6F4EF */
.c-num .l { color: #F6F4EF; }
/* [color] 似て非なる色 #EFEDE7 → #F6F4EF */
.c-num .foot { color: #F6F4EF; }
/* [color] 似て非なる色 #EAEEF6 → #F6F4EF */
.c-flow { color: #F6F4EF; }
/* [color] 似て非なる色 #EAEEF6 → #F6F4EF */
.c-flow .bignum .of { color: #F6F4EF; }
/* [color] 似て非なる色 #EAEEF6 → #F6F4EF */
.c-flow .step p { color: #F6F4EF; }
@media (max-width: 767px) {
  /* [contrast] コントラスト比4.32→基準4.5以上（既存色 #A9BCCD・背景#12283F） ⚠mobile-only */
  .c-flow .bignum .of { color: #A9BCCD; }
}
/* ==== 金継ぎ 手仕事ぶん（yutaka-web.jp トップ・写しデモ用）v2 ====
   方針改訂 2026-08-28（本人差し戻し「文字が小さすぎ」を受けて）:
   ・統合の寄せ先は「大きい方」だけ。見出し・スコア・価格・飾りの大数字は縮めない
   ・極小文字の12px床上げ／色のトークン統一／段落分けは維持 */

/* 泣き別れの受け皿（サイズ統合で折れ目が動くため一括で文節折りに・ページ全体） */
body :is(p, li, dt, dd, h2, h3, h4, span, a, b, small) { word-break: auto-phrase; }

/* ---- 破れ: 極小文字の床（12px未満→12px。序列は保つ＝最小段のまま） ---- */
.z-eyebrow { font-size: 12px !important; letter-spacing: .28em; }
.c-samples .thumb::before {
  font-size: 12px !important;
  background: rgba(22, 24, 28, .68);
  padding: 2px 7px;
  border-radius: 4px;
}
#sampleNo, span.no, span.en, span.cp-lb, span.cat, span.d,
p.ph-cap, p.kicker, p.hours,
.c-lead .row dt, div.row > dt,
div.col > h4, span.tx > small, ol > li > small,
span.thumb-cap, span.go { font-size: 12px !important; }
#sampleLink::after { font-size: 12px !important; }
span.score small, #checkTally small { font-size: 12px !important; }
span.eyebrow, .eyebrow, span.num-tag { font-size: 12px !important; }

/* ---- 破れ: 低コントラスト ---- */
.c-price .cell::before, div.cell::before { color: #5A6068 !important; }  /* #A9A49B→--muted 比5.9 */

/* ---- 破れ(計測の盲点の解消): サムネ番号チップは実際は濃地。要素の地色を実態に合わせる ---- */
.c-samples .thumb { background: #16181C; }

/* ---- 似て非なる色: 明色文字は --paper #F6F4EF へ（暗い地の節だけ） ---- */
div.hero-copy > p, .c-cta .inner > p, p.hours { color: #F6F4EF !important; }
.hero-copy, .c-cta .inner { color: #F6F4EF !important; }

/* ---- 縦の重なり: 飾り番号を枠に収める（大きさは変えない） ---- */
.bignum { line-height: 1 !important; }
#flowNum { line-height: 1 !important; display: inline-block; }

/* ---- 文字段の統合（上へ寄せる分だけ） ---- */
/* h3: 15.5emは16へ・18は20へ（上へ）。25のworksカード見出しはそのまま */
div > h3 > em, h3 em { font-size: 16px !important; }
div.pc > h3 { font-size: 20px !important; }

/* 本文: 下の中間サイズを基準の15へ引き上げ（12.5〜14.5→15）。19の.z-leadはそのまま */
div.hero-copy > p { font-size: 15px !important; }
div.cap-grid > div > p { font-size: 15px !important; }
p.foot { font-size: 15px !important; }
div > p > span { font-size: 15px !important; }
ul.rp-list > li { font-size: 15px !important; }
div.tg-grid > div > p { font-size: 15px !important; }
p.sub { font-size: 15px !important; }
p.memo, .c-samples .memo { font-size: 15px !important; }
a.row > div > p, .c-works .row p { font-size: 15px !important; }
div.index > div > b { font-size: 15px !important; }
#checkTally p { font-size: 15px !important; }
p.note { font-size: 15px !important; }
p.entity-def { font-size: 15px !important; }
p.qt { font-size: 19px !important; }
p.z-lead, .z-lead { font-size: 19px !important; }

/* 釦: 13〜14の中間を15へ引き上げ。ロゴ25・実績の大数字はそのまま */
nav.z-nav > a { font-size: 15px !important; }
a.z-hd-cta { font-size: 15px !important; }
div.col > a { font-size: 15px !important; }
a.seeall { font-size: 15px !important; }

/* その他: 小ラベルは12の床・中間は15へ引き上げ。スコア・価格・カウンタ・透かし・見本タイトルは触らない */
div.in > span { font-size: 12px !important; }
div.l { font-size: 12px !important; }
div.cap-grid > div > div { font-size: 12px !important; }
div.right > span { font-size: 12px !important; }
div.note > span { font-size: 15px !important; }
span.cp-it > b { font-size: 15px !important; }
span.cp-it > i { font-size: 15px !important; }
div.cell { font-size: 15px !important; }
div.other, div.other > b { font-size: 15px !important; }
span.tx { font-size: 15px !important; }

/* ---- 角丸: 6pxのチップを8pxへ → 8/10/999の3種 ---- */
span.thumb-cap { border-radius: 8px !important; }
span.cb { border-radius: 8px !important; }

/* ---- 診断カードの番号は字幅で説明の左端が揺れる → 固定幅で列を揃える ---- */
.c-report .dn { width: 2em; flex: none; }


/* ── 料金シミュレーター（2026-09-12 追加）───────────────────────── */
.c-sim{background:var(--paper);border-top:1px solid var(--line)}
.sim-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:26px}
@media(max-width:860px){.sim-grid{grid-template-columns:1fr}}
.sim-q{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:14px}
.sim-q > b{display:block;font-size:14px;letter-spacing:.04em;color:var(--navy);margin-bottom:8px}
.sim-q label{display:block;padding:8px 6px;cursor:pointer;border-radius:6px;font-size:15px;line-height:1.7}
.sim-q label:hover{background:var(--paper)}
.sim-q input{margin-right:9px;accent-color:var(--navy)}
.sim-q .nt{display:block;margin:2px 0 0 27px;font-size:12.5px;color:var(--muted);line-height:1.65}
.sim-out{background:var(--white);border:2px solid var(--navy);border-radius:10px;padding:22px 22px 24px;position:sticky;top:92px}
@media(max-width:860px){.sim-out{position:static}}
.sim-out .cap{font-size:13px;color:var(--muted)}
.sim-out .amt{font-size:30px;font-weight:800;color:var(--navy);letter-spacing:-.01em;line-height:1.35;margin:4px 0 6px}
.sim-out .amt .u{font-size:16px;font-weight:700;margin-left:2px}
.sim-tb{width:100%;border-collapse:collapse;margin:12px 0 6px;font-size:14px}
.sim-tb th,.sim-tb td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;line-height:1.65}
.sim-tb th{background:var(--paper);font-weight:700;font-size:13px}
.sim-tb td.r{text-align:right;white-space:nowrap}
.sim-warn{font-size:13px;line-height:1.75;background:#FBF3EF;border:1px solid #E3C4B7;border-radius:8px;padding:10px 12px;margin-top:12px;color:#6E3524}
.sim-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.sim-cta .z-btn{padding:13px 22px;font-size:14px}
.sim-fine{font-size:12.5px;color:var(--muted);line-height:1.8;margin-top:14px}
.sim-copied{font-size:13px;color:var(--navy);font-weight:700;margin-top:8px;min-height:1.4em}

/* ── 質問ボット（2026-09-13 追加）────────────────────────────── */
.fb-btn{position:fixed;right:18px;bottom:18px;z-index:80;border:0;cursor:pointer;font-family:inherit;
  background:var(--navy);color:#fff;border-radius:999px;padding:14px 20px;font-weight:700;font-size:14px;
  box-shadow:0 10px 26px rgba(22,24,28,.26);display:inline-flex;align-items:center;gap:8px}
.fb-btn:hover{background:var(--navy-d)}
.fb-panel{position:fixed;right:18px;bottom:78px;z-index:81;width:min(360px,calc(100vw - 36px));
  max-height:min(560px,calc(100vh - 120px));background:var(--white);border:1px solid var(--line);
  border-radius:14px;box-shadow:0 18px 44px rgba(22,24,28,.22);display:none;flex-direction:column;overflow:hidden}
.fb-panel.on{display:flex}
.fb-hd{background:var(--navy);color:#fff;padding:12px 14px;font-size:13.5px;line-height:1.6;
  display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fb-hd b{display:block;font-size:14.5px}
.fb-x{background:none;border:0;color:#fff;font-size:19px;cursor:pointer;line-height:1;padding:0 2px;font-family:inherit}
.fb-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--paper)}
.fb-m{max-width:88%;padding:10px 13px;border-radius:12px;font-size:13.5px;line-height:1.85;white-space:pre-wrap}
.fb-m.bot{background:var(--white);border:1px solid var(--line);align-self:flex-start}
.fb-m.me{background:var(--navy);color:#fff;align-self:flex-end}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 10px;background:var(--paper);border-top:1px solid var(--line)}
.fb-chip{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:12.5px;
  cursor:pointer;color:var(--navy);font-family:inherit}
.fb-chip:hover{background:#EEF2F5}
.fb-in{display:flex;gap:8px;border-top:1px solid var(--line);padding:10px 12px;background:var(--white)}
.fb-in input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit}
.fb-in button{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:9px 15px;font-weight:700;
  cursor:pointer;font-size:13.5px;font-family:inherit}
.fb-note{font-size:11.5px;color:var(--muted);padding:0 14px 10px;line-height:1.6;background:var(--white);margin:0}
@media(max-width:520px){.fb-btn{right:12px;bottom:12px;padding:12px 17px}.fb-panel{right:12px;bottom:68px}}

/* ===========================================================
   固定ページ用：page-hero（marquee）＋ blog-shared.css 用トークン別名
   =========================================================== */
:root{
  --ai:#1B3A5C; --ai2:#12283F;
  --yama:#C08A5E; --yama2:#D9B08C;
  --kami:#F6F4EF; --kami2:#FFFDF9;
  --body:#2A2C31;
}
.page-hero{position:relative;overflow:hidden;background:var(--ai2);color:#F2EFE8;padding:98px 0 78px;}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(18,40,63,.94),rgba(27,58,92,.82));}
.page-hero .wrap{width:min(var(--wrap),calc(100% - 56px));margin:0 auto;}
.page-hero .eyebrow{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:#D9B08C;}
.page-hero h1{font-weight:700;font-size:clamp(27px,4.4vw,46px);line-height:1.5;
  letter-spacing:.04em;margin:16px 0 0;color:#fff;}
.page-hero .sub{font-size:14.5px;line-height:2.05;color:rgba(242,239,232,.84);margin:20px 0 0;max-width:40em;}
.page-hero .crumb{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.18em;color:rgba(242,239,232,.6);margin:28px 0 0;}
.page-hero .crumb a{color:rgba(242,239,232,.86);text-decoration:none;}
.page-hero .crumb a:hover{color:#fff;}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--ai) 0 62%,var(--shu) 62% 100%);z-index:4;}
@media(max-width:768px){ .page-hero{padding:66px 0 54px;} }

/* 固定ページ本文の共通ブロック */
.pg{padding:96px 0;}
.pg .wrap{width:min(var(--wrap),calc(100% - 56px));margin:0 auto;}
.pg-narrow .wrap{width:min(920px,calc(100% - 56px));}
.pg h2{font-weight:700;font-size:clamp(23px,3.2vw,36px);line-height:1.45;margin:0 0 22px;}
.pg h3{font-weight:700;font-size:clamp(17px,2.2vw,23px);line-height:1.6;margin:44px 0 14px;}
.pg p{font-size:15px;line-height:2.05;color:var(--body);margin:0 0 1.6em;}
.pg ul.dot{list-style:none;margin:0 0 1.8em;padding:0;display:grid;gap:11px;}
.pg ul.dot li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.95;}
.pg ul.dot li::before{content:"";position:absolute;left:2px;top:.82em;width:6px;height:1px;background:var(--shu);}
.pg .card{background:var(--white);border:1px solid var(--line);padding:clamp(24px,3.6vw,40px);}
.pg .card + .card{margin-top:22px;}
.pg .num-tag{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.2em;color:var(--shu);display:block;margin-bottom:8px;}
.pg .rule-idx{border-top:1px solid var(--ink);margin:0;}
.pg .rule-idx .r{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:18px 4px;border-bottom:1px solid var(--line);}
.pg .rule-idx dt{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10.5px;letter-spacing:.2em;color:var(--muted);padding-top:5px;}
.pg .rule-idx dd{margin:0;font-size:14.5px;line-height:1.95;}
.pg .rule-idx dd small{display:block;color:var(--muted);font-size:12px;margin-top:3px;}
.pg .acts{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}
@media(max-width:768px){ .pg{padding:64px 0;} .pg .rule-idx .r{grid-template-columns:1fr;gap:6px;} .z-profile-grid{grid-template-columns:1fr!important;gap:26px!important;} }
/* blog-shared.css — ブログ（個別/一覧）・サイドバー・page-hero(marquee) の共通CSS断片。
   STEP 7 で各サイトの assets/css/_shared.css の末尾に追記して使う。
   前提トークン: --ai --ai2 --shu --yama --yama2 --kami --kami2 --ink --body --muted --line。
   ベースの .page-hero{...} は _shared.css に既にある前提（ここは marquee 追加と post/sidebar/archive）。 */

/* ============ 固定ページ見出しヘッダー：右→左ギャラリー＋カラーオーバーレイ ============ */
.page-hero .wrap{ position:relative; z-index:3; }
.page-hero::before{ z-index:2; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; display:flex; align-items:center; }
.page-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(105deg, rgba(20,59,107,.90) 0%, rgba(31,95,166,.78) 50%, rgba(20,59,107,.90) 100%); }
.page-hero__mq{ display:flex; width:max-content; height:100%; will-change:transform; animation:page-hero-mq 64s linear infinite; }
.page-hero__mq img{ height:100%; width:auto; aspect-ratio:4/3; object-fit:cover; display:block; flex:0 0 auto; }
@keyframes page-hero-mq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .page-hero__mq{ animation:none; } }

/* ============ 投稿（single）ページ ============ */
.post-hero{ position:relative; overflow:hidden; color:#F1F4EF; padding:104px 0 70px; }
.post-hero__bg{ position:absolute; inset:0; z-index:0; }
.post-hero__bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.post-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(20,59,107,.74) 0%, rgba(15,40,80,.92) 100%); }
.post-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg,var(--shu),var(--yama)); z-index:2; }
.post-hero .wrap{ position:relative; z-index:1; max-width:860px; }
.post-hero__meta{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.post-hero__date{ font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:13px; letter-spacing:.06em; color:rgba(241,244,239,.82); }
.post-hero__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色（WPでis-*が付かない時用）。is-*が上書き */
.post-hero h1{ font-weight:800; font-size:clamp(25px,3.8vw,40px); line-height:1.55; letter-spacing:.04em; margin:0; color:#F6F8F4; }
.post-hero .crumb{ font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:10.5px; letter-spacing:.18em; color:rgba(241,244,239,.6); margin:24px 0 0; }
.post-hero .crumb a{ color:rgba(241,244,239,.82); text-decoration:none; }

/* 投稿レイアウト：本文 + サイドバー */
.post-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 312px; gap:52px; max-width:1140px; margin:0 auto; padding:56px 24px 96px; align-items:start; }
.post-main{ min-width:0; }
/* 固定ページ末尾の「関連する記事」。2026-08-04追加。
   一覧ページ（blog.html）の .p-newsgrid は縦1列だが、関連は3本並べたいので
   ここだけ横並びにする。抜粋を出さないぶんカードが低く、CTAの手前でも重くならない。 */
.p-news--related{ max-width:var(--wrap); }
.p-news--related .p-newsgrid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
/* .p-card の既定は「画像320px＋本文」の横型なので、3列に入れると本文が
   overflow:hidden で切れて見えなくなる。関連ブロックだけ縦積みにする。 */
.p-news--related .p-card{ grid-template-columns:1fr; }
.p-news--related .p-card__ph img{ min-height:0; aspect-ratio:1200/630; }
.p-news--related .p-card__bd{ padding:20px 22px 22px; gap:8px; }
.p-news--related .p-card__ttl{ font-size:15.5px; line-height:1.75; }
.p-news--related .p-card__date{ font-size:12px; }
.p-news__all{ margin:30px 0 0; font-size:14px; font-weight:700; }
.p-news__all a{ color:var(--shu); text-decoration:none; }
.p-news__all a:hover{ text-decoration:underline; }
@media (max-width:900px){
  .p-news--related .p-newsgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
}
@media (max-width:600px){
  .p-news--related .p-newsgrid{ grid-template-columns:1fr; }
}
.post-figure{ margin:0 0 36px; }
.post-fig img{ width:100%; border-radius:14px; box-shadow:0 24px 50px -28px rgba(20,30,46,.5); display:block; }
.post-body p{ font-size:15.5px; line-height:2.05; color:var(--body); margin:0 0 1.7em; }
.post-body h2{ font-size:clamp(19px,2.6vw,26px); font-weight:700; color:var(--ink); line-height:1.6; margin:2.4em 0 .9em; padding-left:16px; border-left:4px solid var(--yama); }
.post-body h3{ font-size:clamp(16px,2vw,20px); font-weight:700; color:var(--ink); margin:2em 0 .7em; }
.post-body a{ color:var(--shu); font-weight:700; }
.post-body .post-lead{ font-size:16.5px; color:var(--ink); line-height:2; margin-bottom:1.9em; }
/* 記事本文のリスト・表・引用・太字。
   2026-08-04追加：ここに指定が無く、Markdownのリストがブラウザ既定のまま
   本文（15.5px／行間2.05）から浮いていた。h2 の朱銅の縦罫と同じ語彙でそろえる。 */
.post-body ul,.post-body ol{ margin:0 0 1.7em; padding-left:0; list-style:none; }
.post-body ol{ counter-reset:pb; }
.post-body li{ font-size:15.5px; line-height:2.05; color:var(--body); position:relative; padding-left:1.5em; margin:0 0 .5em; }
.post-body li:last-child{ margin-bottom:0; }
.post-body ul>li::before{
  content:""; position:absolute; left:.35em; top:.92em;
  width:6px; height:6px; background:var(--yama); border-radius:50%;
}
.post-body ol>li{ padding-left:1.9em; }
.post-body ol>li::before{
  counter-increment:pb; content:counter(pb) "."; position:absolute; left:0; top:0;
  font-family:'Space Grotesk','Noto Sans JP',sans-serif; font-weight:700; color:var(--yama);
  font-size:14px; line-height:2.25;
}
.post-body li>ul,.post-body li>ol{ margin:.5em 0 0; }
.post-body strong{ font-weight:700; color:var(--ink); }
.post-body blockquote{
  margin:0 0 1.7em; padding:2px 0 2px 20px; border-left:3px solid var(--line); background:none;
}
.post-body blockquote p{ margin:0; color:var(--muted); font-size:15px; }
.post-body code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.9em;
  background:var(--kami); border:1px solid var(--line); border-radius:4px; padding:.08em .35em;
}
/* 表は幅が足りないとき、ページごと横スクロールさせずに表の中だけで動かす */
.post-body .post-table{ margin:0 0 1.7em; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.post-body .post-table table{ border-collapse:collapse; width:100%; min-width:min(520px,100%); font-size:14px; background:#fff; }
.post-body .post-table th,.post-body .post-table td{
  border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; line-height:1.85;
}
.post-body .post-table th{ background:var(--kami); font-weight:700; color:var(--ink); white-space:nowrap; }
.post-body .post-table td{ color:var(--body); }
@media (max-width:768px){
  .post-body li{ font-size:15px; }
  .post-body .post-table table{ font-size:13px; }
}
.post-foot{ margin:44px 0 0; }
.post-foot__bar{ border-top:1px solid var(--line); padding-top:28px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.post-foot__back{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-weight:700; font-size:14px; color:var(--ink); }
.post-foot__back:hover{ color:var(--shu); }
.post-foot__cta{ display:inline-block; background:var(--ai); color:var(--kami); font-weight:700; font-size:13.5px; padding:12px 26px; border-radius:999px; text-decoration:none; transition:background .25s; }
.post-foot__cta:hover{ background:var(--shu); }

/* ============ サイドバー・ウィジェット ============ */
.post-side{ position:sticky; top:88px; display:flex; flex-direction:column; gap:26px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 22px 24px; }
.widget__ttl{ font-size:16px; font-weight:700; color:var(--ink); margin:0 0 16px; padding-left:12px; border-left:4px solid var(--yama); letter-spacing:.04em; }
.w-search{ display:flex; gap:8px; }
.w-search input{ flex:1; min-width:0; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font-size:13.5px; font-family:inherit; background:var(--kami2); }
.w-search button{ border:none; background:var(--ai); color:#fff; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
.w-recent{ display:flex; flex-direction:column; gap:14px; }
.w-recent a{ display:grid; grid-template-columns:70px 1fr; gap:12px; align-items:center; text-decoration:none; color:inherit; }
.w-recent img{ width:70px; height:48px; object-fit:cover; border-radius:7px; display:block; }
.w-recent div{ min-width:0; }
.w-recent b{ font-family:'Noto Serif JP',serif; font-weight:700; font-size:13px; line-height:1.5; color:var(--ink); display:block; }
.w-recent span{ font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:10.5px; color:var(--muted); letter-spacing:.06em; }
.w-recent a:hover b{ color:var(--shu); }
.w-list{ list-style:none; margin:0; padding:0; }
.w-list li{ border-bottom:1px dashed var(--line); }
.w-list li:last-child{ border-bottom:none; }
.w-list a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 2px; text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:500; }
.w-list a:hover{ color:var(--shu); }
.w-list .n{ font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:11px; color:var(--muted); background:var(--kami2); border-radius:999px; padding:2px 9px; }
.w-cta{ background:linear-gradient(160deg,#2A6FB5,var(--ai2)); border:none; color:#F1F4EF; }
.w-cta .widget__ttl{ color:#fff; border-color:var(--yama2); }
.w-cta p{ font-size:13px; line-height:1.85; color:rgba(241,244,239,.82); margin:0 0 16px; }
.w-cta a{ display:inline-block; background:var(--yama2); color:var(--ai2); font-weight:700; font-size:13.5px; padding:12px 28px; border-radius:999px; text-decoration:none; }
.w-cta a:hover{ background:#fff; }

/* ============ ブログ/お知らせ 一覧（archive）カード ============ */
.p-news{ max-width:940px; }
.p-newsgrid{ display:grid; gap:28px; }
.p-card{ display:grid; grid-template-columns:320px 1fr; text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .25s, transform .25s; }
.p-card:hover{ box-shadow:0 24px 46px -26px rgba(34,48,74,.5); transform:translateY(-3px); }
.p-card__ph{ overflow:hidden; background:var(--ai2); }
.p-card__ph img{ width:100%; height:100%; min-height:188px; object-fit:cover; display:block; transition:transform .5s; }
.p-card:hover .p-card__ph img{ transform:scale(1.05); }
.p-card__bd{ padding:26px 30px; display:flex; flex-direction:column; gap:10px; }
.p-card__meta{ display:flex; align-items:center; gap:12px; }
.p-card__date{ font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:13px; letter-spacing:.06em; color:var(--muted); }
.p-card__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色。is-*が上書き */
.p-card__ttl{ font-family:'Noto Serif JP',serif; font-size:clamp(18px,2.3vw,22px); font-weight:700; line-height:1.55; color:var(--ink); margin:0; }
.p-card__ex{ font-size:13.5px; line-height:1.9; color:var(--body); margin:0; }
.p-card__more{ margin-top:4px; font-family:'Space Grotesk','Noto Sans JP',monospace; font-size:11px; letter-spacing:.14em; color:var(--shu); font-weight:700; }
.p-newsnote{ font-size:12.5px; color:var(--muted); margin:30px 0 0; }

/* ============ カテゴリ色（post-hero/p-card 共通の .is-*）============ */
.post-hero__cat.is-event,.p-card__cat.is-event{ background:var(--shu); }
.post-hero__cat.is-guide,.p-card__cat.is-guide{ background:var(--ai); }
.post-hero__cat.is-trail,.p-card__cat.is-trail{ background:#5f8a5a; }
.post-hero__cat.is-map,.p-card__cat.is-map{ background:var(--yama); color:var(--ai2); }
.post-hero__cat.is-info,.p-card__cat.is-info{ background:#7c7464; }

/* ============ レスポンシブ（モバイルは1列）============ */
@media(max-width:900px){ .post-wrap{ grid-template-columns:1fr; gap:40px; padding:44px 22px 72px; } .post-side{ position:static; } }
@media(max-width:680px){
  .post-hero{ padding:84px 0 52px; }
  .p-card{ grid-template-columns:1fr; }
  .p-card__ph img{ min-height:0; aspect-ratio:1200/630; }
  .p-card__bd{ padding:22px; }
}

/* 記事内の図版（2026-08-29 追加）。![説明](URL) が figure になる */
.post-fig{
  margin:2.4em 0; padding:0;
}
.post-fig img{
  width:100%; height:auto; display:block; border:1px solid var(--line); border-radius:4px;
}
.post-fig figcaption{
  margin-top:.7em; font-size:13px; line-height:1.7; color:var(--muted);
}
