/*
Theme Name: WPメンテナンスセンター v2
Theme URI: https://wp-maint.jp
Description: WPメンテナンスセンター（wp-maint.jp）専用テーマの v2 リデザイン。冷たい紙地＋旧WordPressブルー、影は使わず・余白は8pxグリッド・Webフォント不使用（system-ui のみ）。LP（front-page.php）＋ブログ（記事/アーカイブ）＋固定ページ＋認証情報の暗号化フォーム。デザインの正は docs/mockup/top-redesign-v2.html 系。
Author: altstack
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: wp-maint
*/

/* ============================================================
   デザイントークン
   ============================================================ */
:root{
  --bg:#E9EDF1;            /* 地: 冷たい青みの紙 */
  --bg-2:#E0E6EB;          /* 沈めた帯 */
  --surface:#FFFFFF;       /* 明るい白カード */
  --surface-2:#F4F7F9;     /* 微パネル */
  --panel:#0E2230;         /* 計器ダーク */
  --ink:#11212C;           /* 墨 */
  --ink-2:#46535E;         /* 副次 */
  --ink-inv:#EAF2F7;
  --ink-inv-2:#9FB6C4;
  --wp:#21759B;            /* 主: 旧WordPressブルー */
  --wp-deep:#15536F;       /* ヒーロー色面・濃ブルー */
  --wp-bright:#3AA0CC;
  --sky:#A9D9F2;
  --amber:#B26B16;
  --amber-bg:#F6ECDB;
  --ok:#34A777;
  --line:#D3DCE2;
  --line-soft:#E5EBEF;
  --radius:14px;
  --radius-sm:9px;
  --maxw:1120px;
  --gridw:1080px;
  --readw:760px;
  --sans:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic","Meiryo",sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  interpolate-size:allow-keywords;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);
  font-size:18px;line-height:1.85;letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--wp)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.tnum{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.02em;line-height:1.32}
.eyebrow{margin:0 0 12px;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--wp);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:24px;height:1px;background:currentColor;opacity:.7}
.section-head .eyebrow,.is-center .eyebrow{justify-content:center}
.section-head .eyebrow::after,.is-center .eyebrow::after{content:"";width:24px;height:1px;background:currentColor;opacity:.7}
.lead{margin:12px 0 0;color:var(--ink-2);font-size:17.5px;max-width:var(--readw)}
.section-head .lead,.is-center .lead{margin-left:auto;margin-right:auto}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;justify-content:center;font-weight:700;letter-spacing:0;text-decoration:none;cursor:pointer;border:0;border-radius:999px;padding:16px 24px;font-size:16.5px;font-family:inherit;transition:transform .15s ease,background .15s ease}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--wp),var(--wp-deep))}
.btn-primary:hover{transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{background:var(--surface);color:var(--wp);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--wp)}
.btn-block{display:flex;width:100%}
.btn-arrow{width:.82em;height:.82em;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}
.btn-primary:hover .btn-arrow{transform:translateX(3px)}
:focus-visible{outline:3px solid var(--wp-bright);outline-offset:3px;border-radius:4px}

/* ============================================================
   ヘッダー / フッター / モバイル固定CTA
   ============================================================ */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s,background .2s}
.site-header.is-scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent)}
.hdr{display:flex;align-items:center;gap:16px;height:64px;max-width:none;padding:8px 24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:-.01em;white-space:nowrap}
.brand .mark{width:40px;height:40px;border-radius:9px;flex:0 0 auto;overflow:hidden}
.brand .mark img{width:100%;height:100%;object-fit:cover;display:block}
.brand b{font-size:28px;color:var(--wp-deep)}
.hdr-nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.hdr-nav a:not(.btn){color:var(--ink-2);text-decoration:none;font-size:14.5px;font-weight:600}
.hdr-nav a:not(.btn):hover{color:var(--wp)}
.hdr .btn{padding:10px 18px;font-size:14.5px}
.hdr-links{display:flex;gap:24px}
.drawer-toggle{display:none}
.site-drawer-backdrop{position:fixed;inset:0;z-index:80;background:rgba(14,34,48,.46);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}
.site-drawer-backdrop.is-open{opacity:1;visibility:visible}
.site-drawer{position:fixed;top:0;right:0;bottom:0;z-index:90;width:min(88vw,360px);padding:18px 18px 96px;overflow:auto;background:var(--surface);border-left:1px solid var(--line);transform:translateX(100%);visibility:hidden;transition:transform .22s ease,visibility .22s ease}
.site-drawer.is-open{transform:translateX(0);visibility:visible}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px;margin:-18px -18px 18px;padding:0 16px;border-bottom:1px solid var(--line)}
.drawer-title{font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.16em;color:var(--wp);text-transform:uppercase}
.drawer-close{width:56px;height:56px;display:grid;place-items:center;padding:0;color:#fff;background:var(--wp-deep);border:0;border-radius:3px;cursor:pointer;transition:background .15s ease}
.drawer-close:hover{background:var(--wp)}
.drawer-close svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.drawer-cta{width:100%;margin:18px 0}
.drawer-nav{display:grid;gap:18px}
.drawer-group{display:grid;gap:0}
.drawer-label{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--ink-2);text-transform:uppercase;margin:0 0 6px}
.drawer-group a{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:10px 0;border-top:1px solid var(--line-soft);color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.45;text-decoration:none}
.drawer-group a::after{content:"›";color:var(--wp);font-family:var(--mono);font-weight:700}
.drawer-group a.drawer-subcat{padding-left:16px;font-size:14.5px;font-weight:600;color:var(--ink-2)}
body.drawer-open{overflow:hidden}
@media (max-width:860px){.hdr{height:64px;padding:4px 16px}.hdr .brand{min-width:0;flex:1}.hdr .brand span:last-child{min-width:0}.hdr-nav{display:none}.brand b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:19px}.brand .mark{width:32px;height:32px}.drawer-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;width:56px;height:56px;padding:0;color:#fff;background:var(--wp-deep);border:0;border-radius:3px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;line-height:1;text-transform:uppercase;cursor:pointer;transition:background .15s ease}.drawer-toggle:hover{background:var(--wp)}.drawer-toggle[aria-expanded="true"]{background:var(--wp)}.drawer-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}}

.site-footer{background:var(--bg-2);border-top:1px solid var(--line);padding:32px 0;color:var(--ink-2);font-size:13px;margin-top:64px}
.foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.foot .brand{color:var(--ink)}
.foot .brand b{font-size:17px}
.foot .mark{width:30px;height:30px;border-radius:8px;overflow:hidden;flex:0 0 auto}
.foot .mark img{width:100%;height:100%;object-fit:cover;display:block}
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
.foot a{color:var(--ink-2);text-decoration:none}
.foot a:hover{color:var(--wp)}

.mobile-cta{display:none}
.site-page-top{position:fixed;right:24px;bottom:24px;z-index:45;width:46px;height:46px;display:grid;place-items:center;color:#fff;background:var(--wp-deep);border:1px solid color-mix(in srgb,var(--wp-bright) 34%,var(--wp-deep));border-radius:3px;text-decoration:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,visibility .18s ease,transform .18s ease,background .18s ease}
.site-page-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.site-page-top:hover{background:var(--wp);transform:translateY(-1px)}
.site-page-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:860px){
  .mobile-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 14px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
  .site-page-top{right:14px;bottom:92px;width:44px;height:44px}
  body.has-mobile-cta{padding-bottom:78px}
}

/* ============================================================
   ヒーロー（色面 + 右に写真〔凹クロップ〕 + 淡色カード）
   ============================================================ */
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--wp-deep);padding:56px 0 48px}
.hero .wrap{position:relative;z-index:1}
.hero-photo{position:absolute;top:0;right:0;bottom:0;width:50%;z-index:0}
.hero-photo picture{display:block;width:100%;height:100%}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo::before{content:"";position:absolute;z-index:1;top:50%;left:0;width:44%;height:128%;transform:translate(-52%,-50%);background:var(--wp-deep);border-radius:50%;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero-copy h1{font-size:clamp(2.05rem,1.3rem + 3.1vw,3.2rem);color:#fff}
.hero-copy h1 .accent{color:var(--sky);white-space:nowrap}
.hero .sub{margin:16px 0 0;color:rgba(255,255,255,.88);font-size:clamp(1rem,.95rem + .3vw,1.12rem);max-width:32em}
.hero-cta{margin:24px 0 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.hero-cta .note{font-size:13.5px;color:rgba(255,255,255,.78);font-family:var(--mono);letter-spacing:.04em}
.hero .btn-primary{background:#fff;color:var(--wp-deep)}
.hero .btn-primary:hover{background:#E3F0F7}
.factbar{margin:32px 0 0;display:flex;gap:12px;flex-wrap:wrap}
.factbar span{background:rgba(10,32,44,.42);border:1px solid rgba(255,255,255,.25);border-radius:11px;padding:10px 15px;font-family:var(--mono);font-size:13px;color:#EAF4F9;display:inline-flex;align-items:baseline;gap:6px}
.factbar b{color:var(--sky);font-weight:700}

/* 整備記録カード（淡色・写真の上にごく薄く透過）＋カルーセル */
.rec-carousel{position:relative}
.rec-slides{display:grid;touch-action:pan-y}
.rec-slide{grid-area:1 / 1;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.rec-slide.is-active{opacity:1;visibility:visible}
.record{max-width:500px;margin:0 auto;background:rgba(251,252,253,.93);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.record-head{display:flex;align-items:center;gap:8px;padding:24px 24px 16px;border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;color:var(--ink-2);text-transform:uppercase}
.dot,.led{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(52,167,119,.18),0 0 10px rgba(52,167,119,.7);flex:0 0 auto}
@media (prefers-reduced-motion:no-preference){.led,.dot{animation:led 2.6s ease-in-out infinite}}
@keyframes led{0%,100%{box-shadow:0 0 0 3px rgba(52,167,119,.16),0 0 7px rgba(52,167,119,.5)}50%{box-shadow:0 0 0 3px rgba(52,167,119,.28),0 0 14px rgba(52,167,119,.9)}}
.record-head .status{color:var(--ok);font-weight:700}
.record-head .no{margin-left:auto;color:var(--ink-2);text-decoration:none}
.record-head a.no:hover{text-decoration:underline}
.record-body{padding:16px 24px}
.rrow{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:4px 0;align-items:start}
.rrow .k{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--wp);padding-top:3px;text-transform:uppercase}
.rrow .v{font-size:15.5px;line-height:1.6;color:var(--ink)}
.record-foot{padding:16px 24px 24px;border-top:1.5px dashed var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.record-foot .label{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--ink-2)}
.record-foot .amt{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.record-foot .amt small{font-size:11.5px;font-weight:500;color:var(--ink-2);margin-left:4px}
.rec-controls{margin:16px 2px 0;display:flex;align-items:center;gap:14px}
.rec-dots{display:flex;gap:6px}
.rec-dot{width:24px;height:24px;border:0;background:transparent;padding:0;display:grid;place-items:center;cursor:pointer}
.rec-dot::before{content:"";width:11px;height:11px;border-radius:50%;border:1px solid rgba(255,255,255,.8);transition:background .2s}
.rec-dot.is-active::before{background:#fff}
.rec-dot:hover::before{background:rgba(255,255,255,.5)}
.rec-arrows{margin-left:auto;display:flex;gap:10px}
.rec-arrow{width:36px;height:36px;border:0;background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;padding:0;transition:color .2s,transform .15s}
.rec-arrow:hover{color:var(--sky)}
.rec-arrow:active{transform:scale(.9)}
.rec-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:880px){.hero{padding:48px 0 40px}.hero-grid{grid-template-columns:1fr;gap:32px}.hero-photo{display:none}.rec-carousel{max-width:520px}}

/* ============================================================
   セクション共通（LP）
   ============================================================ */
.section{padding:80px 0;position:relative}
.section + .section{border-top:1px solid var(--line-soft)}
.section-head{margin:0 auto 40px;max-width:var(--readw);text-align:center}
.section-head h2{font-size:clamp(1.55rem,1.15rem + 1.7vw,2.15rem)}
.note-small{display:block;margin-top:8px;font-family:var(--mono);font-size:12.5px;color:var(--ink-2);letter-spacing:.02em}
[id]{scroll-margin-top:80px}

/* お悩み */
.section-worries{background:linear-gradient(var(--bg-2),var(--bg))}
.worries{list-style:none;margin:0 auto;padding:0;max-width:980px;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.worries li{position:relative;padding:16px 0 16px 36px;border-top:1px solid var(--line);font-size:17px;color:var(--ink)}
.worries li::before{content:"";position:absolute;left:4px;top:24px;width:14px;height:8px;border-left:2px solid var(--wp);border-bottom:2px solid var(--wp);transform:rotate(-45deg)}
@media (max-width:720px){.worries{grid-template-columns:1fr}}

/* 症状カード */
.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:16px}
.case{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:8px;transition:transform .18s ease,border-color .18s}
.case:hover{transform:translateY(-3px);border-color:#bcc9d2}
.case-ico{position:absolute;left:-16px;bottom:-20px;width:120px;height:120px;color:var(--wp);opacity:.06;pointer-events:none}
.case-ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.case .sym{position:relative;font-weight:800;font-size:17px;letter-spacing:-.01em;line-height:1.5}
.case .fix{position:relative;color:var(--ink-2);font-size:16px;line-height:1.7;margin-top:2px}
.case .tk{position:relative;margin-top:auto;align-self:flex-end;font-family:var(--mono);font-size:14px;font-weight:600;color:var(--wp-deep);background:color-mix(in srgb,var(--wp) 10%,white);border:1px solid color-mix(in srgb,var(--wp) 22%,white);border-radius:999px;padding:4px 12px;font-variant-numeric:tabular-nums;letter-spacing:.02em}

/* 選ばれる理由 */
.section-why{background:linear-gradient(var(--bg-2),var(--bg))}
.reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:16px}
.reason{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.reason-bg{position:absolute;right:-14px;top:-14px;color:var(--wp);opacity:.06;pointer-events:none;width:118px;height:118px}
.reason-bg svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4}
.reason h3{font-size:17.5px;letter-spacing:-.01em;line-height:1.5;position:relative}
.reason h3::before{content:"";display:block;width:32px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--wp),var(--wp-deep));margin:0 0 16px}
.reason p{margin:12px 0 0;color:var(--ink-2);font-size:16px;line-height:1.78;position:relative}

/* 料金 */
.price-head h2 .mono{font-family:var(--mono);font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.minfee{margin:0 0 24px;background:var(--panel);color:var(--ink-inv);border-radius:var(--radius);padding:24px;position:relative;overflow:hidden}
.minfee::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 90% -20%,rgba(58,160,204,.16),transparent 60%);pointer-events:none}
.minfee > span{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--wp-bright);position:relative}
.minfee > span::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--wp-bright)}
.minfee ul{margin:16px 0;padding:0;list-style:none;display:grid;gap:8px;position:relative}
.minfee li{padding-left:24px;position:relative;font-size:16.5px;color:#dce7ee;line-height:1.7}
.minfee li::before{content:"";position:absolute;left:0;top:.7em;width:9px;height:9px;border:1.5px solid var(--wp-bright);border-radius:50%}
.minfee b{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
.stubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(216px,1fr));gap:16px}
.stub{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 0;display:flex;flex-direction:column}
.stub .mai{font-size:21px;font-weight:800;letter-spacing:-.01em;line-height:1.35}
.stub .yen{margin-top:4px;font-size:16px;font-weight:700;color:var(--wp-deep);font-variant-numeric:tabular-nums}
.stub .desc{color:var(--ink-2);font-size:15px;line-height:1.7;margin:12px 0 0}
.stub-foot{margin-top:auto;padding:16px 0;border-top:1.5px dashed var(--line)}
.stub-foot .pin{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.stub.tokkyu{border-color:color-mix(in srgb,var(--amber) 40%,var(--line));background:linear-gradient(180deg,var(--amber-bg),var(--surface))}
.stub.tokkyu .yen{color:var(--amber)}
.stub.tokkyu .stub-foot{border-top-color:color-mix(in srgb,var(--amber) 45%,var(--line))}
.stub.tokkyu .pin{color:var(--amber)}
.stub.stub-quote .mai{font-size:15px;line-height:1.5}
.unit-note{margin:24px 0 0;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:28px 32px;font-size:15.5px;color:var(--ink-2);line-height:1.8}
.unit-note b{color:var(--ink)}
.rules{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px}
.rules li{padding-left:18px;position:relative;font-size:14px;color:var(--ink-2);line-height:1.2;min-width:0}
.rules li::before{content:"■";position:absolute;left:0;top:0;color:var(--wp);font-size:.8em;line-height:inherit}

/* ご依頼の流れ */
.section-flow{background:linear-gradient(var(--bg-2),var(--bg))}
.flow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.track{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.track > h3{font-size:18px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}
.track > h3 .badge{font-family:var(--mono);font-weight:800;font-size:13px;width:26px;height:26px;display:grid;place-items:center;color:#fff;background:var(--wp)}
.track .tag{display:inline-block;margin:12px 0 0;font-family:var(--mono);font-size:12.5px;color:var(--ink-2);letter-spacing:.02em}
.track .why{margin:16px 0 0;font-size:15.5px;color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px;line-height:1.7}
.steps{counter-reset:s;list-style:none;margin:16px 0 0;padding:0;display:grid;gap:0}
.steps li{position:relative;padding:0 0 16px 44px;font-size:16px;line-height:1.7}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--surface);border:2px solid var(--wp);color:var(--wp);font-family:var(--mono);font-weight:700;font-size:13px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.steps li::after{content:"";position:absolute;left:15px;top:31px;bottom:0;width:2px;background:var(--wp)}
.steps li:last-child::after{display:none}
.steps li .sub{display:block;color:var(--ink-2);font-size:14px;margin-top:2px}
.track .result{margin:6px 0 0;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--wp-deep);font-variant-numeric:tabular-nums}
.bnote{margin:24px 0 0;background:var(--panel);color:var(--ink-inv);border-radius:var(--radius);padding:24px;position:relative;overflow:hidden}
.bnote::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 8% -20%,rgba(58,160,204,.14),transparent 60%);pointer-events:none}
.bnote > b{font-size:17px;display:block;position:relative}
.bnote-lead{margin:10px 0 0;color:#cfdce4;font-size:16px;line-height:1.8;position:relative}
.bnote ul{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:8px;position:relative}
.bnote li{padding-left:20px;position:relative;font-size:15px;color:#c4d3dc;line-height:1.7}
.bnote li::before{content:"";position:absolute;left:0;top:.66em;width:7px;height:7px;border-radius:2px;background:var(--wp-bright)}
.bnote li b{color:#fff;font-variant-numeric:tabular-nums}
@media (max-width:760px){.flow{grid-template-columns:1fr}}

/* FAQ（センター・Q.・開閉トランジション＝interpolate-size + ::details-content） */
.faq{display:grid;gap:8px;max-width:880px;margin:0 auto}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:16px 48px;position:relative;font-weight:700;font-size:17px;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";position:absolute;left:18px;top:16px;font-family:var(--mono);font-weight:800;color:var(--wp)}
.faq summary::after{content:"";position:absolute;right:20px;top:50%;width:12px;height:12px;margin-top:-6px;border-right:2px solid var(--wp);border-bottom:2px solid var(--wp);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .ans{padding:0 20px 18px 48px;color:var(--ink-2);font-size:16px;line-height:1.85;overflow:hidden;min-height:0}
.faq details::details-content{height:0;overflow:clip;transition:height .3s ease,content-visibility .3s allow-discrete}
.faq details[open]::details-content{height:auto}

/* 最終CTA */
.cta-final{background:radial-gradient(900px 500px at 80% 10%,rgba(58,160,204,.2),transparent 65%),linear-gradient(160deg,#0E2230,#15384C);color:var(--ink-inv);text-align:center;padding:80px 0;border:0}
.cta-final h2{font-size:clamp(1.6rem,1.2rem + 1.7vw,2.2rem);color:#fff}
.cta-final p{margin:16px auto 0;max-width:34em;color:#cfdce4;font-size:17px}
.cta-final .btn{margin-top:32px;padding:18px 32px;font-size:17px}
.cta-final .btn-primary{background:linear-gradient(135deg,#fff,#e7f1f6);color:var(--wp-deep)}
.cta-final .cta-note{margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-inv-2)}

/* お知らせ・ブログ（LP末尾） */
.news-list{list-style:none;margin:0 auto;padding:0;max-width:var(--readw);border-top:1px solid var(--line-soft)}
.news-list li{display:flex;gap:18px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--line-soft)}
.news-list time{font-family:var(--mono);font-size:14px;color:var(--ink-2);white-space:nowrap}
.news-title-line{
	display:flex;
	align-items:center;
	gap:10px;
	min-width:0;
}
.news-title{
	color:var(--ink);
	text-decoration:none;
}
.news-title:hover{
	color:var(--wp);
	text-decoration:underline;
}
.news-cat{
	display:inline-flex;
	align-items:center;
	flex:none;
	border-radius:3px;
	padding:2px 8px;
	color:#fff;
	font-size:11.5px;
	font-weight:700;
	line-height:1.5;
	text-decoration:none;
}
.news-cat:hover{
	text-decoration:none;
}
.news-cat--default{
	background:var(--wp);
}
.news-cat--notice{
	background:var(--amber);
}
.news-cat--case{
	background:#227C59;
}
.news-cat--trouble{
	background:#1B7997;
}
.news-cat--guide{
	background:#6B5AA6;
}
.news-more{max-width:var(--readw);margin:12px auto 0;text-align:right;font-size:16px}
@media (max-width:560px){
	.news-list li{
		flex-direction:column;
		gap:6px;
		align-items:flex-start;
	}
	.news-title-line{
		flex-wrap:wrap;
		gap:6px 8px;
	}
}

/* ============================================================
   下層ページ：見出し帯 / 2カラム / 単カラム / パンくず
   ============================================================ */
.page-hero{background:linear-gradient(var(--bg-2),var(--bg));border-bottom:1px solid var(--line-soft);padding:40px 0 36px}
.page-hero.is-center{text-align:center}
.page-hero h1{font-size:clamp(1.7rem,1.25rem + 1.9vw,2.4rem)}
.page-hero .meta{margin:12px 0 0;font-family:var(--mono);font-size:13px;color:var(--ink-2);letter-spacing:.04em}

.crumbs{font-family:var(--mono);font-size:12.5px;color:var(--ink-2);letter-spacing:.02em;margin:0 0 16px;line-height:1.7}
.crumbs a{color:var(--ink-2);text-decoration:none}
.crumbs a:hover{color:var(--wp)}
.crumbs span[aria-hidden]{margin:0 8px;color:var(--line)}
.crumbs [aria-current]{color:var(--ink)}

.post-grid{max-width:var(--gridw);margin:0 auto;padding:48px 24px 0;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}
.post-main{min-width:0}
.site-main{max-width:var(--readw);margin:0 auto;padding:48px 24px 0}
@media (max-width:900px){.post-grid{grid-template-columns:1fr;gap:0}}

.post-head{margin:0 0 24px}
.post-head .entry-title{margin:0;font-size:clamp(1.6rem,1.2rem + 1.7vw,2.2rem);line-height:1.4}
.post-meta{margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px 16px;font-family:var(--mono);font-size:13px;color:var(--ink-2)}
.post-cats a{color:var(--wp);text-decoration:none}
.post-cats a:hover{text-decoration:underline}

.post-thumb{margin:0 0 32px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.post-thumb img{width:100%;height:auto;display:block}
.post-thumb--default img{aspect-ratio:1200/630;object-fit:cover}

/* ============================================================
   本文タイポグラフィ（entry-content）
   ============================================================ */
.entry-title{font-size:clamp(1.6rem,1.2rem + 1.7vw,2.2rem);margin:0 0 18px;line-height:1.4}
.entry-content{font-size:18px;line-height:1.95}
.entry-content > *:first-child{margin-top:0}
.entry-content p{margin:0 0 1.4em}
.entry-content h2{font-size:1.45rem;line-height:1.5;margin:2.4em 0 1em;padding:6px 0 6px 18px;border-left:4px solid var(--wp);letter-spacing:-.01em}
.entry-content h2:first-child{margin-top:0}
.entry-content h3{font-size:1.2rem;line-height:1.5;margin:2em 0 .7em;padding:2px 0 2px 14px;border-left:3px solid color-mix(in srgb,var(--wp) 60%,var(--line))}
.entry-content h4{font-size:1.05rem;margin:1.8em 0 .6em}
.entry-content ul,.entry-content ol{margin:0 0 1.5em;padding-left:1.5em}
.entry-content li{margin:.4em 0}
.entry-content ul li::marker{color:var(--wp)}
.entry-content a{text-underline-offset:2px}
.entry-content strong{font-weight:800}
.entry-content blockquote{margin:1.6em 0;padding:16px 20px;background:var(--surface-2);border:1px solid var(--line-soft);border-left:3px solid var(--wp);border-radius:var(--radius-sm);color:var(--ink-2)}
.entry-content blockquote p:last-child{margin-bottom:0}
.entry-content code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:6px;padding:.1em .4em}
.entry-content pre{margin:1.6em 0;padding:18px 20px;background:var(--panel);color:#dfeaf1;border-radius:var(--radius-sm);overflow:auto;line-height:1.7}
.entry-content pre code{background:none;border:0;padding:0;font-size:.92em;color:inherit}
.entry-content figure{margin:1.8em 0;text-align:center}
.entry-content figure img{width:100%;height:auto;border:1px solid var(--line)}
.entry-content figcaption{margin-top:8px;font-size:14px;color:var(--ink-2);text-align:center}
.entry-content table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:16px}
.entry-content th,.entry-content td{border:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top}
.entry-content th{background:var(--surface-2);white-space:nowrap;font-weight:700}
.entry-content img{max-width:100%;height:auto}
.entry-content a.wm-photo{display:inline-block;cursor:zoom-in}
.entry-content a.wm-photo img{display:block}
.entry-content .legend{margin:32px 0;padding:20px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.entry-content .legend li{font-size:16px;line-height:1.6;margin:0}
.entry-content .att,.entry-content .form-notice,.note-box{margin:1.8em 0;padding:16px 20px;background:var(--amber-bg);border:1px solid var(--amber);border-radius:var(--radius-sm);font-size:16px;color:#6b4410}

.page-links{margin:26px 0 0;font-size:16px;color:var(--ink-2)}
.page-links a{margin:0 4px}

/* 記事フッタ：免責・執筆者・CTA・前後 */
.post-disclaimer{margin:40px 0 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.8;color:var(--ink-2)}
.post-work-record{margin:32px 0 0}
.post-work-record .record{background:var(--surface)}
.post-author{display:flex;gap:16px;align-items:flex-start;margin:40px 0 0;padding:20px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.post-author-avatar{flex:none;width:72px;height:72px;border-radius:12px;object-fit:cover;border:1px solid var(--line-soft);background:#fff}
.post-author-eyebrow{margin:0 0 4px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--ink-2);text-transform:uppercase}
.post-author-name{margin:0 0 8px;font-weight:800;font-size:17px}
.post-author-bio{margin:0;font-size:15.5px;line-height:1.8;color:var(--ink-2)}
.post-cta{position:relative;overflow:hidden;margin:32px 0 0;padding:32px;text-align:center;background:var(--panel);color:var(--ink-inv);border-radius:var(--radius)}
.post-cta::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 88% -20%,rgba(58,160,204,.18),transparent 60%);pointer-events:none}
.post-cta > *{position:relative}
.post-cta h2{font-size:1.3rem;color:#fff}
.post-cta p{margin:12px auto 0;max-width:46em;color:#cfdce4;font-size:16px;text-align:left}
.post-cta .btn{margin-top:24px}
.post-cta-note{display:block;margin-top:14px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-inv-2)}
.post-nav{display:flex;gap:16px;margin:32px 0 0}
.post-nav-item{flex:1 1 0;min-width:0}
.post-nav a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:border-color .18s}
.post-nav a:hover{border-color:var(--wp)}
.post-nav-next a{align-items:flex-end;text-align:right}
.pn-label{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.pn-title{font-size:15px;line-height:1.5;font-weight:700}
.post-nav a:hover .pn-title{color:var(--wp)}
@media (max-width:560px){.post-nav{flex-direction:column}.post-nav-next a{align-items:flex-start;text-align:left}}

/* ============================================================
   アーカイブ（記事一覧カード）
   ============================================================ */
.archive-head{margin:0 0 26px}
.archive-title{font-size:clamp(1.5rem,1.15rem + 1.5vw,2rem)}
.archive-desc{color:var(--ink-2);font-size:16px;margin:8px 0 0}
.post-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.post-list-item{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .18s,transform .18s ease}
.post-list-item:hover{border-color:var(--wp);transform:translateY(-2px)}
.post-list-item:not(:has(.pli-thumb)){grid-template-columns:1fr}
.pli-thumb{display:block;align-self:stretch}
.pli-thumb img{width:100%;height:100%;min-height:128px;object-fit:cover;display:block}
.pli-body{min-width:0;padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.pli-meta{font-family:var(--mono);font-size:12.5px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 14px}
.pli-meta .post-cats a{color:var(--wp);text-decoration:none}
.pli-title{font-size:1.2rem;line-height:1.45;margin:2px 0 0}
.pli-title a{color:var(--ink);text-decoration:none}
.pli-title a:hover{color:var(--wp)}
.pli-excerpt{font-size:15.5px;line-height:1.8;color:var(--ink-2);margin:2px 0 0}
@media (max-width:560px){.post-list-item{grid-template-columns:1fr}.pli-thumb img{aspect-ratio:1200/630;min-height:0}}

.pagination{margin:32px 0 0}
.pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--wp);text-decoration:none;font-family:var(--mono);font-size:15px}
.page-numbers.current{background:var(--wp);color:#fff;border-color:var(--wp)}
a.page-numbers:hover{border-color:var(--wp)}

/* ============================================================
   サイドバー
   ============================================================ */
.post-sidebar{position:sticky;top:84px;align-self:start;display:grid;gap:20px}
.widget{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.widget-title{font-size:14px;font-family:var(--mono);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--wp);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.widget-title::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--wp);flex:0 0 auto}
.widget ul{list-style:none;margin:0;padding:0}
.widget-list li{padding:9px 0;border-top:1px solid var(--line-soft);font-size:15.5px}
.widget-list li:first-child{border-top:0}
.widget-list a{color:var(--ink);text-decoration:none}
.widget-list a:hover{color:var(--wp)}
.widget-recent li{display:flex;flex-direction:column;gap:3px;padding:11px 0;border-top:1px solid var(--line-soft)}
.widget-recent li:first-child{border-top:0}
.widget-recent a{color:var(--ink);text-decoration:none;line-height:1.55;font-size:15.5px}
.widget-recent a:hover{color:var(--wp)}
.widget-recent time{font-family:var(--mono);font-size:12.5px;color:var(--ink-2)}
.widget-empty{color:var(--ink-2);font-size:15px;margin:0}

/* ============================================================
   目次（TOC）：PCはサイドバーに sticky、モバイルは本文冒頭に折りたたみ
   ============================================================ */
@media (prefers-reduced-motion:no-preference){html:has(.toc-list){scroll-behavior:smooth}}
.entry-content h2,.entry-content h3{scroll-margin-top:90px}
.toc-list{list-style:none;margin:0;padding:0;counter-reset:toc}
.toc-list li{margin:0}
.toc-list > li{counter-increment:toc}
.toc-sub{list-style:none;margin:0;padding:0 0 0 16px;counter-reset:tocsub}
.toc-sub > li{counter-increment:tocsub}
.toc-link{display:block;padding:5px 0;font-size:14.5px;line-height:1.5;color:var(--ink);text-decoration:none}
.toc-list > li > .toc-link::before{content:counter(toc) ". ";color:var(--wp);font-weight:700}
.toc-sub > li > .toc-link::before{content:counter(toc) "." counter(tocsub) " ";color:var(--ink-2)}
.toc-link:hover{color:var(--wp)}
.toc-link.is-active{color:var(--wp);font-weight:700}
.toc-inbody{margin:0 0 28px;padding:12px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
.toc-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;cursor:pointer;color:var(--wp)}
.toc-inbody[open] .toc-summary{margin-bottom:8px}
.toc-toggle{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--ink-2)}
.toc-toggle::after{content:"［索引を表示］"}
.toc-inbody[open] .toc-toggle::after{content:"［索引を非表示］"}
@media (max-width:900px){.post-sidebar{position:static;margin-top:48px;border-top:1px solid var(--line);padding-top:32px}}

/* ============================================================
   Snow Monkey Forms（/contact/）の体裁を v2 に合わせる
   ============================================================ */
.smf-form{--_form-control-border-color:var(--line);--_form-control-border-color-hover:#9fb0b9;--_form-control-border-color-focus:var(--wp);--_global--border-radius:var(--radius-sm);--_color-white:var(--surface);--_color-text:var(--ink)}
.smf-form .smf-item{margin:0 0 22px}
.smf-form .smf-item__label__text{font-weight:700;font-size:16.5px}
.smf-form .smf-item__description{color:var(--ink-2);font-size:14px;line-height:1.7}
.smf-form .smf-text-control,.smf-form .smf-text-control__control{width:100%}
.smf-form .smf-text-control__control,.smf-form .smf-textarea-control__control{font-family:var(--sans);font-size:16.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}
.smf-form .smf-text-control__control:focus,.smf-form .smf-textarea-control__control:focus{outline:none;border-color:var(--wp);box-shadow:0 0 0 3px rgba(33,117,155,.15)}
.smf-form .smf-radio-buttons-control__control{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}
.smf-form .smf-radio-buttons-control__control .smf-label{margin:0}
.smf-form .smf-label > label{margin:0;cursor:pointer}
.smf-form .smf-radio-button-control{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);transition:border-color .12s,background-color .12s}
.smf-form .smf-radio-button-control__label{font-size:16px}
.smf-form .smf-radio-button-control__control{accent-color:var(--wp);margin:0}
.smf-form .smf-label:hover .smf-radio-button-control{border-color:var(--wp)}
.smf-form .smf-label:has(input:checked) .smf-radio-button-control{border-color:var(--wp);background-color:rgba(33,117,155,.08)}
.smf-form .smf-label:has(input:focus-visible) .smf-radio-button-control{outline:2px solid var(--wp);outline-offset:2px}
.smf-form .smf-file-control__label{background:var(--surface);background-image:none;border:1px solid var(--line);color:var(--ink);font-weight:700;font-size:16px;border-radius:var(--radius-sm);padding:10px 18px}
.smf-form .smf-file-control__label:hover{border-color:var(--wp)}
.smf-action{margin-top:8px;text-align:center}
.smf-action .smf-button-control__control{font-family:var(--sans);font-weight:700;font-size:18px;line-height:1.4;background:linear-gradient(135deg,var(--wp),var(--wp-deep));background-image:linear-gradient(135deg,var(--wp),var(--wp-deep));color:#fff;border:0;border-radius:999px;padding:16px 44px;min-width:280px;cursor:pointer;transition:transform .15s,filter .15s}
.smf-action .smf-button-control__control:hover{transform:translateY(-1px);filter:brightness(1.04)}
.smf-action .smf-button-control__control[disabled]{opacity:.5;cursor:default}
.smf-action .smf-button-control__control:focus-visible{outline:3px solid var(--wp-bright);outline-offset:3px}
.smf-action .smf-button-control__control[data-action="back"]{background:var(--surface);background-image:none;color:var(--wp);border:1px solid var(--line)}
.smf-action .smf-button-control + .smf-button-control{margin-left:12px}
@media (max-width:560px){
  .smf-action .smf-button-control{display:block}
  .smf-action .smf-button-control__control{width:100%;min-width:0;padding-left:16px;padding-right:16px}
  .smf-action .smf-button-control + .smf-button-control{margin-top:12px;margin-left:0}
}

/* ============================================================
   認証情報フォーム（page-secure-submit.php）
   ============================================================ */
.sec-form{margin-top:8px}
.sec-field{margin:0 0 18px}
.sec-field label{display:block;font-weight:700;font-size:16.5px;margin-bottom:6px}
.sec-field .req{color:var(--amber);font-size:13px;font-weight:700;margin-left:6px}
.sec-field input,.sec-field textarea,.sec-field select{width:100%;font-family:var(--sans);font-size:16.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px}
.sec-field input:focus,.sec-field textarea:focus,.sec-field select:focus{outline:none;border-color:var(--wp);box-shadow:0 0 0 3px rgba(33,117,155,.15)}
.cred-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px 18px 2px;margin:0 0 14px}
.cred-block legend{font-weight:800;font-size:16px;padding:0 6px}
.cred-remove{float:right;background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-2);font-size:14px;padding:4px 12px;cursor:pointer}
.cred-remove:hover{border-color:var(--wp);color:var(--wp)}
.cred-add{display:block;background:transparent;color:var(--wp);border:1px dashed var(--wp);border-radius:var(--radius-sm);padding:11px 18px;font-weight:700;cursor:pointer;margin:0 0 22px}
.cred-add:hover{background:rgba(33,117,155,.06)}
.sec-hint{color:var(--ink-2);font-size:14px;line-height:1.7;margin:6px 0 0}
.cf-turnstile{margin:0 0 18px}
.sec-submit{font-family:var(--sans);font-weight:700;font-size:17px;background:linear-gradient(135deg,var(--wp),var(--wp-deep));color:#fff;border:0;border-radius:999px;padding:14px 30px;cursor:pointer;transition:transform .15s}
.sec-submit:hover{transform:translateY(-1px)}
.sec-msg-ok{background:#E7F2EC;border:1px solid #2C7A4B;border-radius:var(--radius-sm);padding:12px 16px}
.sec-msg-err{background:var(--amber-bg);border:1px solid var(--amber);border-radius:var(--radius-sm);padding:12px 16px;color:#6b4410}

/* ============================================================
   お問い合わせの脇カード（template-contact.php）
   ============================================================ */
.aside-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.aside-card + .aside-card{margin-top:20px}
.aside-card h2{font-size:16px;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.aside-card h2::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--wp)}
.mini-steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:0}
.mini-steps li{position:relative;padding:0 0 16px 40px;font-size:15px;line-height:1.7;color:var(--ink-2)}
.mini-steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--surface);border:2px solid var(--wp);color:var(--wp);font-family:var(--mono);font-weight:700;font-size:12px;display:grid;place-items:center}
.mini-steps li::after{content:"";position:absolute;left:13px;top:26px;bottom:0;width:2px;background:var(--wp)}
.mini-steps li:last-child{padding-bottom:0}
.mini-steps li:last-child::after{display:none}
.mini-steps b{color:var(--ink)}

/* ============================================================
   レスポンシブ（規約テーブルの縦積みなど）
   ============================================================ */
@media (max-width:560px){
  .entry-content .wp-block-table{overflow-x:visible}
  .entry-content table{table-layout:fixed;font-size:13.5px;line-height:1.6}
  .entry-content th,.entry-content td{padding:8px 7px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  .is-tokushoho .entry-content table,.is-tokushoho .entry-content tbody,.is-tokushoho .entry-content tr,.is-tokushoho .entry-content th,.is-tokushoho .entry-content td{display:block;width:100%}
  .is-tokushoho .entry-content th,.is-tokushoho .entry-content td{border:0;padding:0;background:none}
  .is-tokushoho .entry-content tr{margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid var(--line)}
  .is-tokushoho .entry-content th{font-weight:800;margin:0 0 4px}
  .post-author{flex-direction:column;gap:12px}
}

/* スクロール登場（progressive enhancement・既定は表示） */
@media (prefers-reduced-motion:no-preference){
  @supports ((animation-timeline:view()) and (animation-range:entry)){
    @keyframes reveal-up{from{opacity:0;transform:translateY(20px)}}
    .reveal{animation:reveal-up .7s both;animation-timeline:view();animation-range:entry 0% cover 30%}
  }
}
