/* ==========================================================================
   CY / KK Site Kit — Consolidated CSS (Refactor 2025)
   SAFE: Visual parity preserved / Theme dependency minimized
   Modules:
     [A] Design Tokens
     [B] Chat Bubbles (cy-balloons)
     [C] Frame List (cyfx / cylist) + Float Emphasis
     [D] LINE CTA (cy-cta-line)
     [E] Spots Table (kk-spotlist)
     [F] Intro / Summary (kk-intro / kk-summary)
     [G] Trivia FAQ (kk-faq) + Note
     [H] Bridge Block (kk-bridge) + Staff-K bubble
     [I] Essay Pro (kk-essayPro)
     [U] Utilities (Motion/Print/Fixes)
     [L1] LIVI CTA (square-safe v2)
     [L2] LIVI Banner (light / fresh)
     [CLEAN] Post list bullets removal (UL only, single posts)
   ========================================================================== */

/* [A] TOKENS --------------------------------------------------------------- */
:root{
  /* global ink/bg/muted */
  --ink:#0f172a; --muted:#64748b; --bg:#ffffff; --chip:#f6f8fb;

  /* accents */
  --a:#0ea5e9; --b:#6366f1; --c:#06C755;

  /* elevations (renamed: avoid --shadow collisions) */
  --elev-1: 0 6px 22px rgba(0,0,0,.08);
  --elev-2: 0 10px 26px rgba(2,6,23,.06);
  --elev-3: 0 18px 40px rgba(2,6,23,.08);
  --elev-4: 0 24px 60px rgba(2,6,23,.08);

  /* chat */
  --cb-maxw: 860px; --cb-gap: 14px; --radius: 18px;
  --padY: 14px; --padX: 16px;
  --left-bg:#fff; --left-fg:#0f172a;
  --right-bg:#0ea5e9; --right-fg:#fff;
  --ring: 0 0 0 3px rgba(14,165,233,.18);
  --link:#0ea5e9; --bubble-w:min(100%,720px); --avatar-size:48px;

  /* CY Frame / Lists */
  --cy-accent:#0ea5e9; --cy-accent-2:#6366f1;
  --cy-ink:#0f172a; --cy-muted:#64748b; --cy-bg:#fff; --cy-chip:#f6f8fb; --cy-ring:0 0 0 3px rgba(14,165,233,.14);

  /* LINE */
  --line:#06C755;

  /* KK Intro / Summary / FAQ / Bridge */
  --kk-ink:#0f172a; --kk-muted:#64748b; --kk-accent:#0ea5e9; --kk-accent2:#6366f1; --kk-chip:#f6f8fb;
  --br-ink:#0f172a; --br-muted:#64748b; --br-bg:#fff; --br-a:#0ea5e9; --br-b:#6366f1; --br-chip:#f6f8fb;

  /* Essay Pro */
  --brd:#e5e7eb;
}

/* [B] CHAT BUBBLES --------------------------------------------------------- */
.cy-balloons{ margin-inline:auto; max-width:var(--cb-maxw); display:grid; gap:clamp(10px,2vw,16px); padding:clamp(6px,2vw,10px); }
.cb{ display:grid; grid-template-columns:var(--avatar-size) 1fr; grid-template-areas:"avatar bubble"; align-items:start; gap:var(--cb-gap); }
.cb .cb-avatar{ grid-area:avatar; margin:0; }
.cb .cb-avatar img{ width:var(--avatar-size); height:var(--avatar-size); border-radius:50%; object-fit:cover; display:block; }
.cb .cb-bubble{ grid-area:bubble; max-width:var(--bubble-w); border-radius:var(--radius); padding:var(--padY) var(--padX); box-shadow:var(--elev-1); position:relative; isolation:isolate; }
.cb .cb-bubble:focus-within{ outline:none; box-shadow:var(--elev-1), var(--ring); }
.cb-left .cb-bubble{ background:var(--left-bg); color:var(--left-fg); }
.cb-right{ grid-template-columns:1fr var(--avatar-size); grid-template-areas:"bubble avatar"; justify-content:end; }
.cb-right .cb-bubble{ background:var(--right-bg); color:var(--right-fg); }
.cb-left .cb-bubble::after, .cb-right .cb-bubble::after{ content:""; position:absolute; top:14px; width:0; height:0; border:8px solid transparent; }
.cb-left .cb-bubble::after{ left:-8px; border-right-color:var(--left-bg); }
.cb-right .cb-bubble::after{ right:-8px; border-left-color:var(--right-bg); }
.cb-meta{ display:flex; align-items:baseline; gap:.6rem; margin-bottom:.35rem; line-height:1.2; }
.cb-name{ font-weight:700; } .cb-time{ color:var(--muted); font-size:.9em; }
.cb-text{ margin:0; line-height:1.8; font-size:clamp(15.5px,1.1rem,17px); word-break:break-word; }
.cb-text a{ color:var(--link); text-decoration:underline; text-underline-offset:2px; }
.cb-right .cb-text a{ color:#fff; text-decoration-color:rgba(255,255,255,.7); }
@media (min-width:720px){ .cy-balloons{ --avatar-size:56px; --padY:16px; --padX:18px; } }
@media (max-width:420px){ .cy-balloons{ --avatar-size:40px; } }
.cy-balloons .cb-bubble{ padding-block-end:0 !important; }
.cy-balloons .cb-bubble > *:last-child{ margin-bottom:0 !important; }
.cy-balloons .cb-text{ margin:0 !important; }

/* [C] FRAME LIST (cyfx / cylist) ------------------------------------------ */
.cyfx{ --fx-radius:18px; --fx-pad:clamp(18px,2.6vw,26px);
  position:relative; margin:clamp(18px,3.2vw,32px) auto; padding:var(--fx-pad); border-radius:var(--fx-radius);
  background:var(--cy-bg); color:var(--cy-ink); box-shadow:var(--elev-3); max-width:920px; isolation:isolate; overflow:visible !important;
}
.cyfx::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit;
  background:linear-gradient(135deg, rgba(14,165,233,.55), rgba(99,102,241,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.cyfx::after{ content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(6px); pointer-events:none; }
.cyfx__title{ display:flex; align-items:center; gap:.7rem; margin:0 0 .9rem; font-weight:900; letter-spacing:.02em; font-size:clamp(18px,2.2vw,22px); }
.cyfx__icon{ inline-size:18px; block-size:18px; border-radius:6px; background:linear-gradient(135deg, var(--cy-accent), var(--cy-accent-2)); box-shadow:0 8px 18px rgba(14,165,233,.35); }
.cyfx__lead{ margin:.2rem 0 1.1rem; color:var(--cy-muted); line-height:1.8; }
.cyfx__sub{ margin:1.4rem 0 .6rem; font-weight:800; font-size:clamp(16px,1.9vw,20px); }
.cylist{ margin:0; padding:0; list-style:none; display:grid; gap:.65rem; }
.cylist--checks > li{ position:relative; padding:.9rem 1rem .9rem 2.9rem; border-radius:14px; background:var(--cy-chip); line-height:1.8; box-shadow:var(--elev-2); }
.cylist--checks > li::before{ content:""; position:absolute; left:.9rem; top:50%; transform:translateY(-50%); width:1.55rem; height:1.55rem; border-radius:999px; background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 8px 18px rgba(34,197,94,.35); }
.cylist--checks > li::after{
  content:""; position:absolute; left:calc(.9rem + 4px); top:calc(50% - .55rem); width:.95rem; height:.95rem; background:#fff;
  -webkit-mask: conic-gradient(from 315deg at 30% 60%, #000 90deg, transparent 0), conic-gradient(from 200deg at 60% 60%, #000 70deg, transparent 0);
}
.cylist--steps{ counter-reset:step; }
.cylist--steps > li{ counter-increment:step; display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:start; padding:.85rem 1rem; border-radius:14px; background:#fff; box-shadow:var(--elev-2); border:1px solid rgba(2,6,23,.06); }
.cylist--steps > li::before{ content:counter(step); display:grid; place-items:center; width:2.1rem; height:2.1rem; border-radius:999px; color:#fff; font-weight:800; background:linear-gradient(135deg,var(--cy-accent), var(--cy-accent-2)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.cylist--steps .ttl{ font-weight:700; line-height:1.8; }
.cyfx--slate::before{ background:linear-gradient(135deg, rgba(2,6,23,.18), rgba(2,6,23,.08)); }
.cyfx--slate .cyfx__icon{ background:linear-gradient(135deg,#334155,#64748b); box-shadow:0 8px 18px rgba(51,65,85,.25); }
.cylist > li:hover, .cylist > li:focus-within{ box-shadow:0 14px 32px rgba(2,6,23,.1), var(--cy-ring); outline:none; }
@media (min-width:880px){ .cylist--checks{ grid-template-columns:1fr 1fr; } }

/* FLOAT EMPHASIS */
.cyfx .cylist > li{ position:relative !important; z-index:0 !important; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), filter .35s cubic-bezier(.2,.8,.2,1) !important; transform:translate3d(0,0,0) !important; will-change:transform, box-shadow, filter; filter:drop-shadow(0 10px 22px rgba(2,6,23,.08)) !important; }
.cyfx .cylist > li:hover, .cyfx .cylist > li:focus-within{ transform:translate3d(0,-8px,0) !important; box-shadow:0 18px 44px rgba(2,6,23,.16), 0 0 0 6px rgba(14,165,233,.12) !important; filter:drop-shadow(0 22px 46px rgba(2,6,23,.12)) !important; z-index:3 !important; }
.cyfx .cylist--checks > li, .cyfx .cylist--steps > li{ background-image:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,0) 30%), none !important; background-blend-mode:screen, normal !important; box-shadow:0 12px 30px rgba(2,6,23,.08) !important; }
.cyfx .cylist--checks > li:hover, .cyfx .cylist--steps > li:hover, .cyfx .cylist--checks > li:focus-within, .cyfx .cylist--steps > li:focus-within{ background-image:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0) 34%), none !important; box-shadow:0 16px 36px rgba(2,6,23,.12), 0 0 0 6px rgba(14,165,233,.10) !important; }
@media (hover:none){ .cyfx .cylist > li:active{ transform:translate3d(0,-5px,0) !important; box-shadow:0 16px 36px rgba(2,6,23,.14), 0 0 0 6px rgba(14,165,233,.12) !important; } }
@media (prefers-reduced-motion:reduce){ .cyfx .cylist > li{ transition:none !important; } }

/* [D] LINE CTA ------------------------------------------------------------- */
.cy-cta-line{ max-width:940px; margin:clamp(16px,3vw,28px) auto; padding:0 6px; color:var(--ink); }
.cy-cta-line__frame{ position:relative; border-radius:18px; overflow:clip; background:color-mix(in oklab, var(--bg) 88%, #fff); box-shadow:0 20px 44px rgba(2,6,23,.08); padding:clamp(18px,2.6vw,26px); isolation:isolate; }
.cy-cta-line__frame::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.cy-cta-line__frame::after{ content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(8px); }
.cy-cta-line__title{ margin:0; font-weight:900; letter-spacing:.02em; font-size:clamp(20px,2.4vw,24px); }
.cy-cta-line__lead{ margin:.25rem 0 0; color:var(--muted); font-size:clamp(15px,1.6vw,16px); }
.cy-cta-line__bullets{ list-style:none; margin:.8rem 0 1.2rem; padding:0; display:grid; gap:.55rem; }
.cy-cta-line__bullets li{ position:relative; padding:.7rem .8rem .7rem 2.4rem; background:var(--chip); border-radius:12px; box-shadow:var(--elev-2); line-height:1.75; font-weight:600; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1); }
.cy-cta-line__bullets li::before{ content:""; position:absolute; left:.75rem; top:50%; transform:translateY(-50%); width:1.4rem; height:1.4rem; border-radius:999px; background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 8px 18px rgba(34,197,94,.35); }
.cy-cta-line__bullets li:hover{ transform:translateY(-4px); box-shadow:0 14px 32px rgba(2,6,23,.12); }
.cy-cta-line__btn{ --btn-pad:clamp(12px,1.8vw,14px) clamp(16px,2.4vw,20px);
  display:grid !important; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto; grid-template-areas:"icon label phantom" "icon sub phantom";
  align-items:center; justify-items:center; gap:.15rem .8rem; text-align:center; min-height:64px; text-decoration:none; color:#fff; font-weight:800; letter-spacing:.02em;
  background:linear-gradient(135deg, color-mix(in oklab, var(--line) 95%, #fff), color-mix(in oklab, var(--line) 80%, #000));
  border-radius:12px; padding:var(--btn-pad); box-shadow:0 18px 40px rgba(6,199,85,.28); transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s cubic-bezier(.2,.8,.2,1), filter .25s ease;
}
.cy-cta-line__btn::before{ content:none !important; }
.cy-cta-line__btn::after{ content:""; grid-area:phantom; width:28px; height:28px; }
.cy-cta-line__btn:hover, .cy-cta-line__btn:focus-visible{ transform:translateY(-3px); box-shadow:0 24px 54px rgba(6,199,85,.35); outline:none; }
.cy-cta-line__btn .icon{ grid-area:icon; width:28px; height:28px; }
.cy-cta-line__btn .label{ grid-area:label; line-height:1.2; font-size:clamp(16px,1.9vw,18px); font-weight:800; }
.cy-cta-line__btn .sub{ grid-area:sub; line-height:1.2; font-size:clamp(12px,1.4vw,13px); font-weight:700; }
.cy-cta-line__note{ margin:.6rem 0 0; color:var(--muted); font-size:.92rem; }
@media (min-width:880px){ .cy-cta-line__bullets{ grid-template-columns:1fr 1fr; } }
@media (max-width:360px){ .cy-cta-line__btn{ column-gap:.6rem; } .cy-cta-line__btn::after{ width:24px; } }

/* [E] SPOTS TABLE ---------------------------------------------------------- */
.kk-spotlist{ max-width:1080px; margin:0 auto; padding:clamp(8px,2vw,12px); }
.kk-ttl{ margin:clamp(18px,3vw,24px) 0 .6rem; font-size:clamp(18px,2.2vw,22px); font-weight:800; }
.kk-table{ width:100%; border-collapse:separate; border-spacing:0; background:#fff; color:#0f172a; border:1px solid #e5e7eb; border-radius:14px; overflow:hidden; box-shadow:0 14px 32px rgba(2,6,23,.06); margin-bottom:clamp(18px,3vw,28px); }
.kk-table thead th{ background:linear-gradient(135deg,#f1f5f9,#e2e8f0); text-align:left; padding:.9rem 1rem; font-weight:800; border-bottom:1px solid #e5e7eb; }
.kk-table tbody td{ padding:.9rem 1rem; vertical-align:top; line-height:1.75; border-bottom:1px solid #eef2f7; }
.kk-table tbody tr:last-child td{ border-bottom:none; }
@media (max-width:720px){
  .kk-table thead{ display:none; }
  .kk-table, .kk-table tbody, .kk-table tr, .kk-table td{ display:block; width:100%; }
  .kk-table tr{ border-bottom:1px solid #e5e7eb; padding:.6rem .2rem; }
  .kk-table tbody td{ display:block; padding:.55rem .9rem !important; position:relative; white-space:normal !important; word-break:break-word !important; overflow-wrap:anywhere !important; hyphens:auto; }
  .kk-table tbody td::before{ content:attr(data-label); display:block; margin:0 0 .3rem; color:#475569; font-weight:700; }
  .kk-table tbody tr td[data-label="名称"] [itemprop="name"]{ width:100%; text-align:center; background:linear-gradient(135deg,#e8f4ff,#f4f9ff); color:#0b3b54; }
  .kk-table tbody tr:nth-child(even) td[data-label="名称"] [itemprop="name"]{ background:linear-gradient(135deg,#efe9ff,#f7f3ff); color:#2c235a; }
}
.kk-table td[itemprop="name"], .kk-table td [itemprop="name"]{ word-break:break-word !important; overflow-wrap:anywhere !important; hyphens:auto; }
.kk-table td[data-label="名称"] [itemprop="name"]{ display:inline-block; font-weight:900; letter-spacing:.01em; padding:.35rem .65rem; line-height:1.2; border-radius:999px; background:color-mix(in oklab, #fff 85%, #f1f5f9); box-shadow:0 6px 14px rgba(2,6,23,.08); background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.18) 0); }
@media (hover:hover){ .kk-table td[data-label="名称"] [itemprop="name"]:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(2,6,23,.12); } }
@media (max-width:360px){ .kk-table{ font-size:15px; } }

/* [F] INTRO / SUMMARY ------------------------------------------------------ */
.kk-intro{ max-width:1080px; margin:clamp(8px,3vw,18px) auto; padding:clamp(16px,2.8vw,26px); border-radius:18px; position:relative; color:var(--kk-ink); background:color-mix(in oklab, #fff 88%, #f7fbff); box-shadow:0 18px 40px rgba(2,6,23,.06); overflow:clip; isolation:isolate; }
.kk-intro::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.kk-intro__ttl{ margin:0 0 .4rem; font-weight:900; letter-spacing:.01em; font-size:clamp(20px,2.6vw,26px); }
.kk-intro__lead{ margin:.2rem 0 .9rem; color:var(--kk-muted); line-height:1.9; }
.kk-intro__lead span{ font-weight:800; background:linear-gradient(120deg, var(--kk-accent), var(--kk-accent2)); -webkit-background-clip:text; color:transparent; }
.kk-intro__chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.kk-intro__chips li{ padding:.35rem .6rem; border-radius:999px; font-weight:700; background:var(--kk-chip); box-shadow:0 8px 18px rgba(2,6,23,.05); font-size:clamp(12px,1.6vw,13px); }
.kk-summary{ max-width:1080px; margin:clamp(18px,4vw,28px) auto; padding:clamp(18px,3vw,26px); border-radius:18px; background:#fff; color:var(--kk-ink); box-shadow:0 18px 40px rgba(2,6,23,.06); border:1px solid #e5e7eb; }
.kk-summary__ttl{ margin:0 0 .6rem; font-weight:900; letter-spacing:.01em; font-size:clamp(18px,2.2vw,22px); display:flex; align-items:center; gap:.6rem; }
.kk-summary__ttl .dot{ width:12px; height:12px; border-radius:4px; background:linear-gradient(135deg, var(--kk-accent), var(--kk-accent2)); box-shadow:0 6px 14px rgba(14,165,233,.35); }
.kk-summary__lead{ margin:.2rem 0 .8rem; line-height:1.9; }
.kk-summary__points{ list-style:none; margin:0 0 .8rem; padding:0; display:grid; gap:.5rem; }
.kk-summary__points li{ background:var(--kk-chip); border-radius:12px; padding:.65rem .8rem; line-height:1.8; box-shadow:0 8px 18px rgba(2,6,23,.05); }
.kk-summary__cta{ margin:0; color:var(--kk-muted); }
@media (max-width:720px){ .br-m{ display:inline; } }

/* [G] TRIVIA FAQ ----------------------------------------------------------- */
.kk-faq{ max-width:1000px; margin:clamp(10px,3vw,20px) auto; padding:0 clamp(8px,2vw,12px); color:var(--kk-ink); }
.kk-faq__intro{ margin:0 0 .8rem; padding:clamp(14px,2.6vw,20px); border-radius:16px; background:color-mix(in oklab, #fff 90%, #f7fbff); box-shadow:0 14px 32px rgba(2,6,23,.06); position:relative; overflow:clip; }
.kk-faq__intro::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.kk-faq__intro h2{ margin:0 0 .3rem; font-size:clamp(20px,2.6vw,26px); font-weight:900; letter-spacing:.01em; }
.kk-faq__intro p{ margin:.2rem 0 0; color:var(--muted); line-height:1.8; }
.kk-faq__intro span{ font-weight:800; background:linear-gradient(120deg,var(--kk-accent),var(--kk-accent2)); -webkit-background-clip:text; color:transparent; }
.qa{ border-radius:14px; margin:.6rem 0; background:var(--kk-bg,#fff); border:1px solid #e5e7eb; box-shadow:0 12px 28px rgba(2,6,23,.06); overflow:hidden; }
.qa summary{ list-style:none; cursor:pointer; padding:.9rem 1rem; display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:center; user-select:none; }
.qa summary::-webkit-details-marker{ display:none; }
.qa .num{ display:grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:10px; font-weight:900; color:#fff; background:linear-gradient(135deg,var(--kk-accent),var(--kk-accent2)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.qa:nth-of-type(2n) .num{ background:linear-gradient(135deg,#7c3aed,#22d3ee); }
.qa:nth-of-type(3n) .num{ background:linear-gradient(135deg,#06C755,#22c55e); }
.qa .q{ font-weight:800; letter-spacing:.01em; line-height:1.5; background-image:linear-gradient(180deg, transparent 70%, rgba(14,165,233,.12) 0); background-size:100% 100%; padding-inline:.05rem; }
.qa .a{ padding:.2rem 1rem 1rem; color:var(--kk-ink); }
.qa .a p{ margin:.6rem 0 0; line-height:1.9; }
.qa .a p em{ font-style:normal; font-weight:800; background:rgba(99,102,241,.10); padding:.05rem .25rem; border-radius:.3rem; }
.qa[open]{ border-color:color-mix(in oklab, var(--kk-accent) 40%, #e5e7eb); box-shadow:0 16px 36px rgba(2,6,23,.1); }
.qa[open] summary{ background:linear-gradient(180deg, rgba(14,165,233,.06), transparent 60%); }
@media (hover:hover){ .qa summary:hover{ background:linear-gradient(180deg, rgba(14,165,233,.08), transparent 60%); } }
.qa summary:focus-visible{ outline:3px solid rgba(14,165,233,.3); border-radius:12px; }
@media (max-width:480px){ .qa summary{ gap:.6rem; } .qa .num{ width:2rem; height:2rem; font-size:.95em; } .qa .q{ font-size:1.02rem; } }
.kk-faq__note{ margin:clamp(12px,3vw,18px) auto 0; padding:clamp(14px,2.4vw,18px); border-radius:14px; background:color-mix(in oklab, #fff 90%, #f7fbff); border:1px solid #e5e7eb; box-shadow:0 10px 24px rgba(2,6,23,.06); }
.kk-faq__note-ttl{ display:inline-flex; align-items:center; gap:.5rem; font-weight:900; letter-spacing:.01em; margin:0 0 .4rem; font-size:clamp(15px,1.6vw,16px); }
.kk-faq__note-ttl::before{ content:""; inline-size:12px; block-size:12px; border-radius:4px; background:linear-gradient(135deg, var(--kk-accent,#0ea5e9), var(--kk-accent2,#6366f1)); box-shadow:0 6px 14px rgba(14,165,233,.3); }
.kk-faq__note p{ margin:.2rem 0 .6rem; line-height:1.85; color:var(--muted); }
.kk-faq__note-list{ list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.kk-faq__note-list li{ position:relative; padding-left:1.2rem; line-height:1.8; }
.kk-faq__note-list li::before{ content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; border-radius:2px; background:color-mix(in oklab, var(--kk-accent,#0ea5e9) 70%, var(--kk-accent2,#6366f1)); }

/* [H] BRIDGE + STAFF-K ----------------------------------------------------- */
.kk-bridge{ max-width:1080px; margin:clamp(12px,3.6vw,28px) auto; padding:clamp(18px,2.8vw,26px); color:var(--br-ink); background:var(--br-bg); border-radius:18px; position:relative; isolation:isolate; box-shadow:0 18px 44px rgba(2,6,23,.08); overflow:clip; }
.kk-bridge::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-bridge::after{ content:""; position:absolute; right:-44px; top:-44px; width:150px; height:150px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(8px); }
.kk-bridge__ttl{ margin:0 0 .55rem; font-weight:900; letter-spacing:.01em; font-size:clamp(18px,2.4vw,22px); display:flex; align-items:center; gap:.6rem; }
.kk-bridge__ttl .dot{ inline-size:12px; block-size:12px; border-radius:4px; background:linear-gradient(135deg, var(--br-a), var(--br-b)); box-shadow:0 6px 14px rgba(14,165,233,.35); }
.kk-bridge__lead{ margin:.2rem 0 .9rem; line-height:1.9; color:var(--br-ink); }
.kk-bridge__lead em{ font-style:normal; font-weight:800; background:linear-gradient(120deg, var(--br-a), var(--br-b)); -webkit-background-clip:text; color:transparent; }
.kk-bridge__lead strong{ font-weight:900; }
.kk-bridge__lead b{ font-weight:900; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.16) 0); }
.kk-bridge__nav{ display:flex; flex-wrap:wrap; gap:.6rem; }
.pill{ display:inline-flex; align-items:center; gap:.45rem; padding:.55rem .9rem; border-radius:999px; text-decoration:none; font-weight:800; letter-spacing:.01em; line-height:1; background:var(--br-chip); color:#0b3b54; box-shadow:0 10px 24px rgba(2,6,23,.06); position:relative; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s cubic-bezier(.2,.8,.2,1); }
.pill::after{ content:"→"; opacity:.85; transform:translateX(0); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.pill:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); }
.pill:hover::after{ transform:translateX(2px); }
.pill--a{ background:linear-gradient(135deg,#eaf5ff,#f4f9ff); color:#0b3b54; }
.pill--b{ background:linear-gradient(135deg,#efe9ff,#f7f3ff); color:#2c235a; }
@media (max-width:540px){ .kk-bridge{ padding:clamp(16px,4vw,22px); } .kk-bridge__nav{ gap:.5rem; } .pill{ width:100%; justify-content:center; } }
.kk-bridge .kk-bridge__k{ --ink:var(--br-ink); --bg:var(--br-bg); display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:start; margin-top:.9rem; }
.kk-bridge .k-av{ margin:0; width:64px; height:64px; border-radius:50%; overflow:hidden; box-shadow:0 12px 28px rgba(2,6,23,.12); }
.kk-bridge .k-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.kk-bridge .k-balloon{ position:relative; background:var(--bg); color:var(--ink); border:1px solid #e5e7eb; border-radius:14px; padding:clamp(12px,2.2vw,16px) clamp(14px,2.6vw,20px); box-shadow:0 18px 40px rgba(2,6,23,.08); isolation:isolate; }
.kk-bridge .k-balloon::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-bridge .k-balloon::after{ content:""; position:absolute; left:36px; bottom:-10px; width:18px; height:18px; background:var(--bg); border-left:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; transform:rotate(45deg); box-shadow:10px 10px 24px rgba(2,6,23,.06); z-index:-1; }
.kk-bridge .k-meta{ display:flex; align-items:center; gap:.5rem; margin-bottom:.35rem; }
.kk-bridge .k-name{ font-weight:900; letter-spacing:.01em; }
.kk-bridge .k-tag{ font-size:.85rem; font-weight:800; color:#0b3b54; padding:.18rem .5rem; border-radius:999px; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); box-shadow:0 8px 18px rgba(2,6,23,.06); }
.kk-bridge .k-text{ margin:0; line-height:1.9; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.10) 0); padding-inline:.04rem; }
@media (max-width:560px){ .kk-bridge .kk-bridge__k{ grid-template-columns:1fr; } .kk-bridge .k-av{ width:56px; height:56px; } .kk-bridge .k-balloon::after{ left:22px; } }

/* [I] ESSAY PRO ------------------------------------------------------------ */
.kk-essayPro{ max-width:1180px; margin:clamp(18px,4vw,36px) auto; padding:clamp(18px,3.2vw,28px); color:var(--ink); background:var(--bg); border-radius:22px; position:relative; isolation:isolate; box-shadow:var(--elev-4); overflow:clip; }
.kk-essayPro::before{ content:""; position:absolute; inset:0; padding:1.5px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.5), rgba(99,102,241,.3)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-essayPro::after{ content:""; position:absolute; right:-60px; top:-60px; width:180px; height:180px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(10px); }
.ep-hero{ position:relative; padding-bottom:.6rem; }
.ep-flag{ position:absolute; left:-1.2rem; top:.1rem; width:8px; height:64px; background:linear-gradient(180deg,var(--a),var(--b)); border-radius:4px; box-shadow:0 10px 24px rgba(14,165,233,.35); }
.ep-title{ margin:0 0 .25rem; font-weight:900; letter-spacing:.01em; font-size:clamp(22px,3vw,28px); line-height:1.25; }
.ep-title em{ font-style:normal; background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; }
.ep-eyebrow{ display:inline-block; margin-bottom:.35rem; font-weight:800; font-size:.9rem; color:#0b3b54; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); padding:.25rem .6rem; border-radius:999px; box-shadow:0 8px 18px rgba(2,6,23,.06); }
.ep-sub{ margin:0; color:var(--muted); }
.ep-grid{ display:grid; gap:clamp(16px,3vw,24px); grid-template-columns:1fr; margin-top:clamp(12px,2.4vw,18px); }
@media (min-width:980px){ .ep-grid{ grid-template-columns:minmax(0, 1.6fr) minmax(280px, .8fr); } }
.ep-main{ line-height:1.9; }
.ep-section + .ep-section{ margin-top:clamp(14px,2.4vw,20px); }
.ep-drop::first-letter{ float:left; font-size:2.2em; line-height:1; margin:.04em .18em 0 0; font-weight:900; background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; }
.ep-h3{ position:relative; margin:.2rem 0 .4rem; padding-left:1rem; font-size:clamp(17px,2vw,20px); font-weight:900; }
.ep-h3::before{ content:""; position:absolute; left:0; top:.15rem; bottom:.15rem; width:6px; background:linear-gradient(180deg,var(--a),var(--b)); border-radius:4px; box-shadow:0 8px 18px rgba(14,165,233,.35); }
.badge{ display:inline-grid; place-items:center; margin-right:.45rem; width:2rem; height:2rem; border-radius:10px; color:#fff; font-weight:900; background:linear-gradient(135deg,var(--a),var(--b)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.ep-pills{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0 0; padding:0; }
.ep-pills li{ padding:.42rem .7rem; border-radius:999px; font-weight:800; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); color:#0b3b54; box-shadow:0 8px 18px rgba(2,6,23,.06); }
@media (hover:hover){ .ep-pills li:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); } }
.ep-ribbonCard{ position:relative; border:1px solid var(--brd); border-radius:16px; background:var(--chip); padding:.9rem 1rem; box-shadow:0 12px 28px rgba(2,6,23,.06); }
.rc-eyebrow{ position:absolute; left:-8px; top:-12px; padding:.25rem .6rem; font-size:.82rem; color:#fff; font-weight:800; border-radius:6px; background:linear-gradient(135deg,var(--a),var(--b)); transform:rotate(-6deg); }
.ep-steps{ list-style:none; margin:.4rem 0 0; padding:0; display:grid; gap:.55rem; counter-reset:step; }
.ep-steps li{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:center; padding:.75rem .9rem; background:#fff; border:1px solid var(--brd); border-radius:14px; box-shadow:var(--elev-2); }
.ep-steps li::before{ content:counter(step); counter-increment:step; display:grid; place-items:center; width:2rem; height:2rem; border-radius:999px; color:#fff; font-weight:900; background:linear-gradient(135deg,var(--a),var(--b)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.ep-steps .ttl{ font-weight:800; } .ep-steps small{ color:var(--muted); }
@media (hover:hover){ .ep-steps li:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); } }
.ep-quote{ margin:.6rem 0; padding:.9rem 1rem; border-left:6px solid; border-image:linear-gradient(180deg,var(--a),var(--b)) 1; background:#fff; border-radius:12px; box-shadow:var(--elev-2); }
.ep-quote p{ margin:0; font-weight:800; }
.ep-note{ margin-top:.5rem; border:1px dashed var(--brd); border-radius:12px; padding:.7rem .9rem; background:#fff; }
.ep-note ul{ margin:0; padding-left:1.1rem; line-height:1.8; }
.ep-closing{ margin-top:clamp(14px,2.4vw,20px); padding-top:.8rem; position:relative; }
.ep-closing::before{ content:""; position:absolute; left:0; right:0; top:0; height:2px; background:linear-gradient(90deg, transparent, color-mix(in oklab,var(--a) 70%, var(--b)), transparent); }
.hl{ font-weight:900; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.18) 0); padding-inline:.08rem; }
.ep-strong{ margin:.5rem 0 0; font-weight:900; letter-spacing:.01em; }
.ep-strong span{ background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; border-bottom:2px solid rgba(14,165,233,.25); }
.ep-aside{ display:grid; gap:.8rem; }
.aside-card{ border:1px solid var(--brd); border-radius:16px; background:#fff; padding:.9rem 1rem; box-shadow:0 12px 28px rgba(2,6,23,.06); }
.aside-card h4{ margin:.1rem 0 .4rem; font-size:1rem; font-weight:900; }
.aside-card ul{ margin:0; padding-left:1.1rem; line-height:1.8; }
.aside-card--ghost{ background:conic-gradient(from 210deg at 110% -10%, rgba(14,165,233,.08), transparent 35%) , #fff; }
@media (max-width:720px){ .ep-flag{ left:-.6rem; height:52px; } .ep-steps li{ grid-template-columns:auto 1fr; } }

/* [U] UTILITIES / FIXES ---------------------------------------------------- */
@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition:none !important; } }
@media print{
  .cb .cb-bubble{ box-shadow:none; border:1px solid #cbd5e1; }
  .cb .cb-bubble::after{ display:none; }
  .cyfx{ box-shadow:none; background:#fff; }
  .cyfx::before,.cyfx::after{ display:none; }
}
.br-m{ display:none; }

/* ===== kk-essay: micro-fixes (badge & steps layout) ===== */
.kk-essay .badge{ display:inline-grid !important; place-items:center !important; min-width:2.2rem; height:2.2rem; padding:0 .2rem; border-radius:10px; line-height:1 !important; white-space:nowrap; font-variant-numeric:tabular-nums lining-nums; font-feature-settings:"tnum" 1,"lnum" 1; letter-spacing:.02em; font-weight:900; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.kk-essay .badge::before, .kk-essay .badge::after{ content:none !important; }
.kk-essay .ep-h3 .badge{ vertical-align:middle; transform:translateY(-.02em); }
.kk-essay, .kk-essay .badge{
  font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
}
@media (max-width:420px){ .kk-essay .badge{ min-width:2rem; height:2rem; } }
.kk-essay .ep-steps li{ display:grid !important; grid-template-columns:auto 1fr !important; grid-auto-rows:auto; column-gap:.7rem !important; align-items:center !important; }
.kk-essay .ep-steps li::before{ grid-column:1 !important; grid-row:1 / span 2 !important; display:grid; place-items:center; width:2rem; height:2rem; line-height:1; }
.kk-essay .ep-steps li > .ttl{ grid-column:2 !important; grid-row:1 !important; display:inline-block; margin:0 !important; white-space:nowrap; }
.kk-essay .ep-steps li > small{ grid-column:2 !important; grid-row:2 !important; display:block; margin:0 !important; color:var(--muted,#64748b); line-height:1.7; }
.kk-essay .ep-steps li br{ display:none; }
@media (max-width:360px){ .kk-essay .ep-steps li > .ttl{ white-space:normal; } }

/* [L1] LIVI CTA (square-safe v2, compact merged) --------------------------- */
.livi-cta :where(h1,h2,h3,h4,p){ margin:0 }
.livi-cta img{ max-width:100%; height:auto; display:block }
.livi-cta{ --ink:#eaf2ff; --muted:#9fb3d9; --panel:rgba(12,20,38,.52); --panel-strong:rgba(12,20,38,.66); --stroke:rgba(255,255,255,.14); --ring-from:#64a7ff; --ring-to:#8b5cff; --btn-from:#7dd3fc; --btn-to:#93a8ff; --btn-ink:#071324; --radius:22px;
  position:relative; isolation:isolate; padding:44px 16px;
  background:radial-gradient(1200px 700px at 15% 10%, rgba(120,180,255,.10), transparent 60%), radial-gradient(900px 500px at 85% 20%, rgba(140,120,255,.10), transparent 60%), linear-gradient(180deg,#0a1323,#0c1527 60%,#0a1323);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; overflow:hidden;
}
.livi-cta__bg::after{ content:""; position:absolute; inset:-1px; background:radial-gradient(1200px 800px at 50% 0%, rgba(255,255,255,.06), transparent 60%), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='table' tableValues='0 0.025'/></feComponentTransfer></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>") repeat; mix-blend-mode:overlay; opacity:.45; pointer-events:none; }
.livi-cta__glow{ position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(closest-side,#6fb0ff,transparent 70%); filter:blur(64px); opacity:.22; pointer-events:none; animation:livi-float 16s ease-in-out infinite; }
.livi-cta__bg .g1{ left:-140px; top:-120px } .livi-cta__bg .g2{ right:-160px; top:0; animation-delay:2s } .livi-cta__bg .g3{ left:50%; bottom:-180px; transform:translateX(-50%); animation-delay:4s }
@keyframes livi-float{ 0%,100%{ transform:translate(0,0) } 50%{ transform:translate(0,-30px) } }
.livi-cta__card{ display:grid !important; grid-template-columns:minmax(0,540px) minmax(0,520px); gap:32px; align-items:center; justify-content:center; max-width:1180px; margin:0 auto; padding:28px; background:var(--panel); border:1px solid var(--stroke); border-radius:calc(var(--radius) + 4px); backdrop-filter:blur(12px) saturate(120%); -webkit-backdrop-filter:blur(12px) saturate(120%); color:var(--ink); box-shadow:0 22px 60px rgba(2,6,23,.42), inset 0 1px 0 rgba(255,255,255,.06); transition:transform .3s ease, background .3s ease, box-shadow .3s ease; text-decoration:none !important; }
.livi-cta__card:hover{ transform:translateY(-2px); background:var(--panel-strong) }
.livi-cta__ring{ position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; background:conic-gradient(from 0deg,var(--ring-from),var(--ring-to),var(--ring-from)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; padding:1px; animation:livi-rotate 14s linear infinite; }
@keyframes livi-rotate{ to{ transform:rotate(360deg) } }
.livi-cta__visual{ position:relative; border-radius:var(--radius); overflow:hidden; background:#0f1a2e; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 40px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.06); }
.livi-cta__visual img{ width:100%; height:100%; object-fit:contain; background:radial-gradient(60% 60% at 50% 40%, rgba(120,180,255,.12), transparent 70%); }
.livi-cta__shine{ position:absolute; inset:-40%; background:linear-gradient(120deg,transparent 45%,rgba(255,255,255,.28) 50%,transparent 55%); transform:translateX(-60%) rotate(8deg); mix-blend-mode:screen; animation:livi-shine 7s ease-in-out infinite; }
@keyframes livi-shine{ 0%{ transform:translateX(-60%) rotate(8deg) } 60%,100%{ transform:translateX(60%) rotate(8deg) } }
.livi-cta__copy{ text-align:left }
.livi-cta__title{ font-weight:900; line-height:1.35; font-size:clamp(1.25rem, 1rem + 1.4vw, 1.9rem); color:#fff; text-shadow:0 0 18px rgba(120,170,255,.28), 0 1px 0 rgba(0,0,0,.55); -webkit-text-stroke:.6px rgba(0,0,0,.35); letter-spacing:.02em; margin-bottom:.35rem; }
.livi-cta__brand{ font-weight:1000; font-size:clamp(2.2rem, 1.6rem + 3.2vw, 3.6rem); letter-spacing:.08em; margin:.2rem 0 .9rem; color:#dff1ff; background:linear-gradient(180deg,#f6fbff 0%,#bfe1ff 35%,#8fc0ff 65%,#5aa2ff 100%); -webkit-background-clip:text; background-clip:text; text-shadow:0 0 14px rgba(80,160,255,.55), 0 0 34px rgba(80,160,255,.35), 0 3px 0 rgba(10,20,40,.55); }
.livi-cta__btn{ display:inline-flex; align-items:center; gap:.6em; padding:16px 26px; border-radius:14px; background:linear-gradient(135deg,var(--btn-from),var(--btn-to)); color:var(--btn-ink); font-weight:900; letter-spacing:.08em; box-shadow:0 14px 36px rgba(90,162,255,.45), inset 0 0 0 1px rgba(255,255,255,.55), inset 0 10px 24px rgba(255,255,255,.35); position:relative; overflow:hidden; transition:transform .2s ease, filter .2s ease, box-shadow .2s ease; }
.livi-cta__btn::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 28%,transparent 72%,rgba(0,0,0,.18)); mix-blend-mode:overlay; }
.livi-cta__btn:hover{ transform:translateY(-1px); filter:saturate(112%) }
.livi-cta__arrow{ width:1.15em; height:1.15em; flex:0 0 auto; background:conic-gradient(from 90deg at 50% 50%, transparent 25%, rgba(7,19,36,.5) 0 75%, transparent 0), linear-gradient(currentColor,currentColor); -webkit-mask:radial-gradient(circle at 30% 50%, transparent 36%, #000 37%) top left/50% 100% no-repeat, radial-gradient(circle at 70% 50%, transparent 36%, #000 37%) top right/50% 100% no-repeat, linear-gradient(#000 0 0) center/52% 22% no-repeat; mask-composite:add; border-radius:4px; }
@media (max-width:980px){ .livi-cta__card{ grid-template-columns:1fr; gap:18px; padding:20px; max-width:780px } .livi-cta__copy{ text-align:center } .livi-cta__brand{ margin:.1rem 0 .75rem } }
@media (prefers-reduced-motion:reduce){ .livi-cta__ring,.livi-cta__shine,.livi-cta__glow{ animation:none } #livi-tilt{ transform:none !important } }

/* compact overrides merged */
.livi-cta__card{ padding:18px 18px !important; gap:16px !important; max-width:980px !important; }
.livi-cta__visual{ max-width:360px; margin:0 auto; }
.livi-cta__title{ font-size:clamp(1.1rem,.9rem + 1vw,1.5rem) !important; margin-bottom:.25rem !important; }
.livi-cta__brand{ font-size:clamp(2rem,1.3rem + 2.6vw,3rem) !important; margin:.05rem 0 .25rem !important; letter-spacing:.08em; }
.livi-cta__title + .livi-cta__brand{ margin-top:.1rem !important; }
.livi-cta__brand + .livi-cta__title{ margin-top:.1rem !important; }
.livi-cta__btn{ padding:12px 20px !important; font-size:clamp(.95rem,.9rem + .2vw,1.05rem) !important; border-radius:12px !important; }
@media (max-width:980px){ .livi-cta__card{ max-width:640px !important; gap:14px !important; padding:16px !important; } .livi-cta__visual{ max-width:420px; } .livi-cta__copy{ text-align:center; } }
.livi-cta__sub{ color:#fff; opacity:.92; font-weight:700; letter-spacing:.02em; font-size:clamp(1rem,.9rem+.6vw,1.2rem); margin:0 0 .2rem; text-shadow:0 1px 0 rgba(0,0,0,.5); }
.livi-cta__brand + .livi-cta__sub{ margin-top:.1rem; }

/* [L2] LIVI BANNER (light / fresh) ---------------------------------------- */
.livi-banner{ --ink:#0b1b2b; --muted:#59708f; --accent:#3178ff; --accent2:#5cc1ff; --line:#06c755;
  background:#fff; color:var(--ink); border:1px solid rgba(11,27,43,.06); border-radius:18px; box-shadow:0 10px 32px rgba(11,27,43,.06);
}
.livi-banner .livi-inner{ max-width:980px; margin:0 auto; padding:28px 18px; text-align:center; }
.livi-banner :where(h1,h2,h3,h4,p,ul,ol){ margin:0 }
.livi-banner img{ max-width:100%; height:auto; display:block }
.livi-banner .livi-eyebrow{
  display:inline-block; font-weight:900; letter-spacing:.14em; font-size:clamp(1.05rem, .9rem + 1.4vw, 1.45rem); color:#0b1b2b;
  padding:.4rem .9rem; border-radius:999px; background:linear-gradient(180deg,#fff,#f7fbff); box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 18px rgba(49,120,255,.10); position:relative;
}
.livi-banner .livi-eyebrow::after{ content:""; display:block; height:3px; margin:.55rem auto 0; width:clamp(110px, 20vw, 180px); border-radius:2px; background:linear-gradient(90deg, var(--accent), var(--accent2)); box-shadow:0 2px 10px rgba(49,120,255,.25); }
.livi-banner .livi-title{ margin-top:1rem; font-weight:900; line-height:1.35; font-size:clamp(1.3rem, 1rem + 2vw, 2rem); color:var(--ink); }
.livi-banner .livi-title em{ font-style:normal; background:linear-gradient(180deg,#2b63ff,#5cc1ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.livi-banner .livi-lead{ margin:.65rem 0 .9rem; color:var(--muted); font-weight:600; }
.livi-banner .livi-points{ list-style:none; padding:0; margin:.2rem 0 1rem; display:flex; gap:.6rem .6rem; flex-wrap:wrap; justify-content:center; }
.livi-banner .livi-points li{ display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .8rem; border-radius:999px; font-weight:700; color:#0f2540; background:linear-gradient(180deg,#f7fbff,#eef6ff); box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 16px rgba(49,120,255,.08); }
.livi-banner .livi-points li::before{ content:""; width:.55rem; height:.55rem; border-radius:50%; background:radial-gradient(circle at 30% 30%, #fff, #9fd0ff 60%, #5aa2ff 100%); box-shadow:0 0 0 2px rgba(255,255,255,.8); }
.livi-banner .livi-cta{ margin-top:.2rem; display:flex; justify-content:center }
.livi-banner .btn{ display:inline-flex; align-items:center; gap:.6em; padding:16px 24px; border-radius:14px; text-decoration:none; font-weight:900; letter-spacing:.06em; color:#04210d;
  background:linear-gradient(135deg,#07e06a,#06c755 55%, #05a845);
  box-shadow:0 14px 32px rgba(6,199,85,.28), inset 0 0 0 1px rgba(255,255,255,.65), inset 0 12px 28px rgba(255,255,255,.35);
  transition:transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.livi-banner .btn:hover{ transform:translateY(-1px); filter:saturate(110%) }
.livi-banner .btn .i{ width:1.2em; height:1.2em; fill:currentColor }
.livi-banner .btn .sub{ display:block; font-size:.78em; font-weight:800; opacity:.85; letter-spacing:.06em; margin-top:.1rem; }
.livi-banner .livi-inner > * + *{ margin-top:.75rem }
.livi-banner .livi-title + .livi-lead{ margin-top:.5rem }
@media (max-width:768px){ .livi-banner .livi-inner{ padding:22px 14px } .livi-banner .btn{ width:100%; justify-content:center } }

/* [CLEAN] SINGLE POSTS: remove bullets (UL only) --------------------------- */
/* テーマ依存を避け、WordPress標準の本文スコープに限定する */
body.single :where(.entry-content, .wp-block-post-content) ul{
  list-style:none !important; list-style-image:none !important; margin-left:0 !important; padding-left:0 !important;
}
body.single :where(.entry-content, .wp-block-post-content) ul li{
  padding-left:0 !important; background:none !important; background-image:none !important;
}
body.single :where(.entry-content, .wp-block-post-content) ul li::marker{ content:"" !important; }
body.single :where(.entry-content, .wp-block-post-content) ul li::before,
body.single :where(.entry-content, .wp-block-post-content) ul li::after{
  content:none !important; display:none !important; background:none !important; border:0 !important; box-shadow:none !important;
}
/* よくある“チェックリスト”系クラスも同時に抑止 */
body.single :where(.entry-content, .wp-block-post-content) :is(.is-style-check,.has-check-icon,.list-check,.st-list-check,.p-checkList,.c-list--check,.checklist,.check-list,.p-list,.c-list) li::before{
  content:none !important; display:none !important;
}

/* === Single記事本文だけ：ULのビュレット完全無効（テーマ干渉も殺す） === */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul){
  list-style: none !important;
  list-style-image: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li){
  /* UA/テーマが li に list-style を付け直す対策 */
  list-style-type: none !important;
  background: none !important;
  padding-left: 0 !important;
  position: relative;
}

/* ネイティブのマーカーを強制で空に */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::marker{
  content: '' !important;
}

/* テーマが ::before / ::after で丸や画像を足してくる系の完全無効化 */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::before,
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::after{
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Gutenbergの入れ子ULにも届くように追加（保険） */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(.wp-block-list ul){
  list-style: none !important;
  list-style-image: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(.wp-block-list ul li){
  list-style-type: none !important;
  padding-left: 0 !important;
  background: none !important;
}

/* “チェックリスト風”の疑似要素を出す代表的なクラスもまとめて封じる（本文内のみ） */
body.single :where(.entry-content, .wp-block-post-content, .post_content)
  :is(.is-style-check,.has-check-icon,.list-check,.st-list-check,.p-checkList,
      .c-list--check,.checklist,.check-list,.p-list,.c-list) li::before{
  content: none !important;
  display: none !important;
}

/* ===== ep-h3：テーマ由来の縦棒を完全無効（この見出しだけ） ===== */

/* 1) h3.ep-h3 に注入される border/背景 系を無効化 */
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3{
  border: 0 !important;
  border-left: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* 2) テーマが h3 に付ける ::before/::after の棒・飾りも無効化 */
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3::before,
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3::after{
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* 3) （任意）こちらの “ep-h3 本来のデザイン” を残したい場合は再定義する
      ※ 不要なら以下の 3ブロックは削除してください */
.kk-essayPro h3.ep-h3{
  position: relative;
  padding-left: 1rem !important;
}
.kk-essayPro h3.ep-h3::before{
  content: "" !important;
  position: absolute; left: 0; top: .15rem; bottom: .15rem; width: 6px;
  background: linear-gradient(180deg, var(--a,#0ea5e9), var(--b,#6366f1));
  border-radius: 4px;
  box-shadow: 0 8px 18px rgba(14,165,233,.35);
}
.kk-essayPro h3.ep-h3 .badge{
  vertical-align: middle;
}

/* 見出し（h3.ep-h3）直後が .ep-ribbonCard の並びだけに適用 */
.ep-section > h3.ep-h3 + .ep-ribbonCard{
  /* 1行分の間＝フォントサイズ基準で約1em */
  margin-top: 1em !important;
}

/* カードの下側の内側余白をなくす ＋ 最終要素の下マージンも殺す */
.ep-section > .ep-ribbonCard{
  padding-bottom: 0 !important;      /* 囲いとテキスト最終行の間をなくす */
}
.ep-section > .ep-ribbonCard > *:last-child{
  margin-bottom: 0 !important;       /* 最終要素の下マージンをゼロに */
  padding-bottom: 0 !important;      /* 念のため */
}

/* テーマが段落に下マージンを付ける場合の保険 */
.ep-section > .ep-ribbonCard p{
  margin-bottom: 0 !important;
}

/* ==========================================================================
   CY / KK Site Kit — Consolidated CSS (Refactor 2025)
   SAFE: Visual parity preserved / Theme dependency minimized
   Modules:
     [A] Design Tokens
     [B] Chat Bubbles (cy-balloons)
     [C] Frame List (cyfx / cylist) + Float Emphasis
     [D] LINE CTA (cy-cta-line)
     [E] Spots Table (kk-spotlist)
     [F] Intro / Summary (kk-intro / kk-summary)
     [G] Trivia FAQ (kk-faq) + Note
     [H] Bridge Block (kk-bridge) + Staff-K bubble
     [I] Essay Pro (kk-essayPro)
     [U] Utilities (Motion/Print/Fixes)
     [L1] LIVI CTA (square-safe v2)
     [L2] LIVI Banner (light / fresh)
     [CLEAN] Post list bullets removal (UL only, single posts)
   ========================================================================== */

/* [A] TOKENS --------------------------------------------------------------- */
:root{
  /* global ink/bg/muted */
  --ink:#0f172a; --muted:#64748b; --bg:#ffffff; --chip:#f6f8fb;

  /* accents */
  --a:#0ea5e9; --b:#6366f1; --c:#06C755;

  /* elevations (renamed: avoid --shadow collisions) */
  --elev-1: 0 6px 22px rgba(0,0,0,.08);
  --elev-2: 0 10px 26px rgba(2,6,23,.06);
  --elev-3: 0 18px 40px rgba(2,6,23,.08);
  --elev-4: 0 24px 60px rgba(2,6,23,.08);

  /* chat */
  --cb-maxw: 860px; --cb-gap: 14px; --radius: 18px;
  --padY: 14px; --padX: 16px;
  --left-bg:#fff; --left-fg:#0f172a;
  --right-bg:#0ea5e9; --right-fg:#fff;
  --ring: 0 0 0 3px rgba(14,165,233,.18);
  --link:#0ea5e9; --bubble-w:min(100%,720px); --avatar-size:48px;

  /* CY Frame / Lists */
  --cy-accent:#0ea5e9; --cy-accent-2:#6366f1;
  --cy-ink:#0f172a; --cy-muted:#64748b; --cy-bg:#fff; --cy-chip:#f6f8fb; --cy-ring:0 0 0 3px rgba(14,165,233,.14);

  /* LINE */
  --line:#06C755;

  /* KK Intro / Summary / FAQ / Bridge */
  --kk-ink:#0f172a; --kk-muted:#64748b; --kk-accent:#0ea5e9; --kk-accent2:#6366f1; --kk-chip:#f6f8fb;
  --br-ink:#0f172a; --br-muted:#64748b; --br-bg:#fff; --br-a:#0ea5e9; --br-b:#6366f1; --br-chip:#f6f8fb;

  /* Essay Pro */
  --brd:#e5e7eb;
}

/* [B] CHAT BUBBLES --------------------------------------------------------- */
.cy-balloons{ margin-inline:auto; max-width:var(--cb-maxw); display:grid; gap:clamp(10px,2vw,16px); padding:clamp(6px,2vw,10px); }
.cb{ display:grid; grid-template-columns:var(--avatar-size) 1fr; grid-template-areas:"avatar bubble"; align-items:start; gap:var(--cb-gap); }
.cb .cb-avatar{ grid-area:avatar; margin:0; }
.cb .cb-avatar img{ width:var(--avatar-size); height:var(--avatar-size); border-radius:50%; object-fit:cover; display:block; }
.cb .cb-bubble{ grid-area:bubble; max-width:var(--bubble-w); border-radius:var(--radius); padding:var(--padY) var(--padX); box-shadow:var(--elev-1); position:relative; isolation:isolate; }
.cb .cb-bubble:focus-within{ outline:none; box-shadow:var(--elev-1), var(--ring); }
.cb-left .cb-bubble{ background:var(--left-bg); color:var(--left-fg); }
.cb-right{ grid-template-columns:1fr var(--avatar-size); grid-template-areas:"bubble avatar"; justify-content:end; }
.cb-right .cb-bubble{ background:var(--right-bg); color:var(--right-fg); }
.cb-left .cb-bubble::after, .cb-right .cb-bubble::after{ content:""; position:absolute; top:14px; width:0; height:0; border:8px solid transparent; }
.cb-left .cb-bubble::after{ left:-8px; border-right-color:var(--left-bg); }
.cb-right .cb-bubble::after{ right:-8px; border-left-color:var(--right-bg); }
.cb-meta{ display:flex; align-items:baseline; gap:.6rem; margin-bottom:.35rem; line-height:1.2; }
.cb-name{ font-weight:700; } .cb-time{ color:var(--muted); font-size:.9em; }
.cb-text{ margin:0; line-height:1.8; font-size:clamp(15.5px,1.1rem,17px); word-break:break-word; }
.cb-text a{ color:var(--link); text-decoration:underline; text-underline-offset:2px; }
.cb-right .cb-text a{ color:#fff; text-decoration-color:rgba(255,255,255,.7); }
@media (min-width:720px){ .cy-balloons{ --avatar-size:56px; --padY:16px; --padX:18px; } }
@media (max-width:420px){ .cy-balloons{ --avatar-size:40px; } }
.cy-balloons .cb-bubble{ padding-block-end:0 !important; }
.cy-balloons .cb-bubble > *:last-child{ margin-bottom:0 !important; }
.cy-balloons .cb-text{ margin:0 !important; }

/* [C] FRAME LIST (cyfx / cylist) ------------------------------------------ */
.cyfx{ --fx-radius:18px; --fx-pad:clamp(18px,2.6vw,26px);
  position:relative; margin:clamp(18px,3.2vw,32px) auto; padding:var(--fx-pad); border-radius:var(--fx-radius);
  background:var(--cy-bg); color:var(--cy-ink); box-shadow:var(--elev-3); max-width:920px; isolation:isolate; overflow:visible !important;
}
.cyfx::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit;
  background:linear-gradient(135deg, rgba(14,165,233,.55), rgba(99,102,241,.35));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.cyfx::after{ content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(6px); pointer-events:none; }
.cyfx__title{ display:flex; align-items:center; gap:.7rem; margin:0 0 .9rem; font-weight:900; letter-spacing:.02em; font-size:clamp(18px,2.2vw,22px); }
.cyfx__icon{ inline-size:18px; block-size:18px; border-radius:6px; background:linear-gradient(135deg, var(--cy-accent), var(--cy-accent-2)); box-shadow:0 8px 18px rgba(14,165,233,.35); }
.cyfx__lead{ margin:.2rem 0 1.1rem; color:var(--cy-muted); line-height:1.8; }
.cyfx__sub{ margin:1.4rem 0 .6rem; font-weight:800; font-size:clamp(16px,1.9vw,20px); }
.cylist{ margin:0; padding:0; list-style:none; display:grid; gap:.65rem; }
.cylist--checks > li{ position:relative; padding:.9rem 1rem .9rem 2.9rem; border-radius:14px; background:var(--cy-chip); line-height:1.8; box-shadow:var(--elev-2); }
.cylist--checks > li::before{ content:""; position:absolute; left:.9rem; top:50%; transform:translateY(-50%); width:1.55rem; height:1.55rem; border-radius:999px; background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 8px 18px rgba(34,197,94,.35); }
.cylist--checks > li::after{
  content:""; position:absolute; left:calc(.9rem + 4px); top:calc(50% - .55rem); width:.95rem; height:.95rem; background:#fff;
  -webkit-mask: conic-gradient(from 315deg at 30% 60%, #000 90deg, transparent 0), conic-gradient(from 200deg at 60% 60%, #000 70deg, transparent 0);
}
.cylist--steps{ counter-reset:step; }
.cylist--steps > li{ counter-increment:step; display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:start; padding:.85rem 1rem; border-radius:14px; background:#fff; box-shadow:var(--elev-2); border:1px solid rgba(2,6,23,.06); }
.cylist--steps > li::before{ content:counter(step); display:grid; place-items:center; width:2.1rem; height:2.1rem; border-radius:999px; color:#fff; font-weight:800; background:linear-gradient(135deg,var(--cy-accent), var(--cy-accent-2)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.cylist--steps .ttl{ font-weight:700; line-height:1.8; }
.cyfx--slate::before{ background:linear-gradient(135deg, rgba(2,6,23,.18), rgba(2,6,23,.08)); }
.cyfx--slate .cyfx__icon{ background:linear-gradient(135deg,#334155,#64748b); box-shadow:0 8px 18px rgba(51,65,85,.25); }
.cylist > li:hover, .cylist > li:focus-within{ box-shadow:0 14px 32px rgba(2,6,23,.1), var(--cy-ring); outline:none; }
@media (min-width:880px){ .cylist--checks{ grid-template-columns:1fr 1fr; } }

/* FLOAT EMPHASIS */
.cyfx .cylist > li{ position:relative !important; z-index:0 !important; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), filter .35s cubic-bezier(.2,.8,.2,1) !important; transform:translate3d(0,0,0) !important; will-change:transform, box-shadow, filter; filter:drop-shadow(0 10px 22px rgba(2,6,23,.08)) !important; }
.cyfx .cylist > li:hover, .cyfx .cylist > li:focus-within{ transform:translate3d(0,-8px,0) !important; box-shadow:0 18px 44px rgba(2,6,23,.16), 0 0 0 6px rgba(14,165,233,.12) !important; filter:drop-shadow(0 22px 46px rgba(2,6,23,.12)) !important; z-index:3 !important; }
.cyfx .cylist--checks > li, .cyfx .cylist--steps > li{ background-image:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,0) 30%), none !important; background-blend-mode:screen, normal !important; box-shadow:0 12px 30px rgba(2,6,23,.08) !important; }
.cyfx .cylist--checks > li:hover, .cyfx .cylist--steps > li:hover, .cyfx .cylist--checks > li:focus-within, .cyfx .cylist--steps > li:focus-within{ background-image:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0) 34%), none !important; box-shadow:0 16px 36px rgba(2,6,23,.12), 0 0 0 6px rgba(14,165,233,.10) !important; }
@media (hover:none){ .cyfx .cylist > li:active{ transform:translate3d(0,-5px,0) !important; box-shadow:0 16px 36px rgba(2,6,23,.14), 0 0 0 6px rgba(14,165,233,.12) !important; } }
@media (prefers-reduced-motion:reduce){ .cyfx .cylist > li{ transition:none !important; } }

/* [D] LINE CTA ------------------------------------------------------------- */
.cy-cta-line{ max-width:940px; margin:clamp(16px,3vw,28px) auto; padding:0 6px; color:var(--ink); }
.cy-cta-line__frame{ position:relative; border-radius:18px; overflow:clip; background:color-mix(in oklab, var(--bg) 88%, #fff); box-shadow:0 20px 44px rgba(2,6,23,.08); padding:clamp(18px,2.6vw,26px); isolation:isolate; }
.cy-cta-line__frame::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.cy-cta-line__frame::after{ content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(8px); }
.cy-cta-line__title{ margin:0; font-weight:900; letter-spacing:.02em; font-size:clamp(20px,2.4vw,24px); }
.cy-cta-line__lead{ margin:.25rem 0 0; color:var(--muted); font-size:clamp(15px,1.6vw,16px); }
.cy-cta-line__bullets{ list-style:none; margin:.8rem 0 1.2rem; padding:0; display:grid; gap:.55rem; }
.cy-cta-line__bullets li{ position:relative; padding:.7rem .8rem .7rem 2.4rem; background:var(--chip); border-radius:12px; box-shadow:var(--elev-2); line-height:1.75; font-weight:600; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1); }
.cy-cta-line__bullets li::before{ content:""; position:absolute; left:.75rem; top:50%; transform:translateY(-50%); width:1.4rem; height:1.4rem; border-radius:999px; background:linear-gradient(135deg,#16a34a,#22c55e); box-shadow:0 8px 18px rgba(34,197,94,.35); }
.cy-cta-line__bullets li:hover{ transform:translateY(-4px); box-shadow:0 14px 32px rgba(2,6,23,.12); }
.cy-cta-line__btn{ --btn-pad:clamp(12px,1.8vw,14px) clamp(16px,2.4vw,20px);
  display:grid !important; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto; grid-template-areas:"icon label phantom" "icon sub phantom";
  align-items:center; justify-items:center; gap:.15rem .8rem; text-align:center; min-height:64px; text-decoration:none; color:#fff; font-weight:800; letter-spacing:.02em;
  background:linear-gradient(135deg, color-mix(in oklab, var(--line) 95%, #fff), color-mix(in oklab, var(--line) 80%, #000));
  border-radius:12px; padding:var(--btn-pad); box-shadow:0 18px 40px rgba(6,199,85,.28); transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s cubic-bezier(.2,.8,.2,1), filter .25s ease;
}
.cy-cta-line__btn::before{ content:none !important; }
.cy-cta-line__btn::after{ content:""; grid-area:phantom; width:28px; height:28px; }
.cy-cta-line__btn:hover, .cy-cta-line__btn:focus-visible{ transform:translateY(-3px); box-shadow:0 24px 54px rgba(6,199,85,.35); outline:none; }
.cy-cta-line__btn .icon{ grid-area:icon; width:28px; height:28px; }
.cy-cta-line__btn .label{ grid-area:label; line-height:1.2; font-size:clamp(16px,1.9vw,18px); font-weight:800; }
.cy-cta-line__btn .sub{ grid-area:sub; line-height:1.2; font-size:clamp(12px,1.4vw,13px); font-weight:700; }
.cy-cta-line__note{ margin:.6rem 0 0; color:var(--muted); font-size:.92rem; }
@media (min-width:880px){ .cy-cta-line__bullets{ grid-template-columns:1fr 1fr; } }
@media (max-width:360px){ .cy-cta-line__btn{ column-gap:.6rem; } .cy-cta-line__btn::after{ width:24px; } }

/* [E] SPOTS TABLE ---------------------------------------------------------- */
.kk-spotlist{ max-width:1080px; margin:0 auto; padding:clamp(8px,2vw,12px); }
.kk-ttl{ margin:clamp(18px,3vw,24px) 0 .6rem; font-size:clamp(18px,2.2vw,22px); font-weight:800; }
.kk-table{ width:100%; border-collapse:separate; border-spacing:0; background:#fff; color:#0f172a; border:1px solid #e5e7eb; border-radius:14px; overflow:hidden; box-shadow:0 14px 32px rgba(2,6,23,.06); margin-bottom:clamp(18px,3vw,28px); }
.kk-table thead th{ background:linear-gradient(135deg,#f1f5f9,#e2e8f0); text-align:left; padding:.9rem 1rem; font-weight:800; border-bottom:1px solid #e5e7eb; }
.kk-table tbody td{ padding:.9rem 1rem; vertical-align:top; line-height:1.75; border-bottom:1px solid #eef2f7; }
.kk-table tbody tr:last-child td{ border-bottom:none; }
@media (max-width:720px){
  .kk-table thead{ display:none; }
  .kk-table, .kk-table tbody, .kk-table tr, .kk-table td{ display:block; width:100%; }
  .kk-table tr{ border-bottom:1px solid #e5e7eb; padding:.6rem .2rem; }
  .kk-table tbody td{ display:block; padding:.55rem .9rem !important; position:relative; white-space:normal !important; word-break:break-word !important; overflow-wrap:anywhere !important; hyphens:auto; }
  .kk-table tbody td::before{ content:attr(data-label); display:block; margin:0 0 .3rem; color:#475569; font-weight:700; }
  .kk-table tbody tr td[data-label="名称"] [itemprop="name"]{ width:100%; text-align:center; background:linear-gradient(135deg,#e8f4ff,#f4f9ff); color:#0b3b54; }
  .kk-table tbody tr:nth-child(even) td[data-label="名称"] [itemprop="name"]{ background:linear-gradient(135deg,#efe9ff,#f7f3ff); color:#2c235a; }
}
.kk-table td[itemprop="name"], .kk-table td [itemprop="name"]{ word-break:break-word !important; overflow-wrap:anywhere !important; hyphens:auto; }
.kk-table td[data-label="名称"] [itemprop="name"]{ display:inline-block; font-weight:900; letter-spacing:.01em; padding:.35rem .65rem; line-height:1.2; border-radius:999px; background:color-mix(in oklab, #fff 85%, #f1f5f9); box-shadow:0 6px 14px rgba(2,6,23,.08); background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.18) 0); }
@media (hover:hover){ .kk-table td[data-label="名称"] [itemprop="name"]:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(2,6,23,.12); } }
@media (max-width:360px){ .kk-table{ font-size:15px; } }

/* [F] INTRO / SUMMARY ------------------------------------------------------ */
.kk-intro{ max-width:1080px; margin:clamp(8px,3vw,18px) auto; padding:clamp(16px,2.8vw,26px); border-radius:18px; position:relative; color:var(--kk-ink); background:color-mix(in oklab, #fff 88%, #f7fbff); box-shadow:0 18px 40px rgba(2,6,23,.06); overflow:clip; isolation:isolate; }
.kk-intro::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.kk-intro__ttl{ margin:0 0 .4rem; font-weight:900; letter-spacing:.01em; font-size:clamp(20px,2.6vw,26px); }
.kk-intro__lead{ margin:.2rem 0 .9rem; color:var(--kk-muted); line-height:1.9; }
.kk-intro__lead span{ font-weight:800; background:linear-gradient(120deg, var(--kk-accent), var(--kk-accent2)); -webkit-background-clip:text; color:transparent; }
.kk-intro__chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.kk-intro__chips li{ padding:.35rem .6rem; border-radius:999px; font-weight:700; background:var(--kk-chip); box-shadow:0 8px 18px rgba(2,6,23,.05); font-size:clamp(12px,1.6vw,13px); }
.kk-summary{ max-width:1080px; margin:clamp(18px,4vw,28px) auto; padding:clamp(18px,3vw,26px); border-radius:18px; background:#fff; color:var(--kk-ink); box-shadow:0 18px 40px rgba(2,6,23,.06); border:1px solid #e5e7eb; }
.kk-summary__ttl{ margin:0 0 .6rem; font-weight:900; letter-spacing:.01em; font-size:clamp(18px,2.2vw,22px); display:flex; align-items:center; gap:.6rem; }
.kk-summary__ttl .dot{ width:12px; height:12px; border-radius:4px; background:linear-gradient(135deg, var(--kk-accent), var(--kk-accent2)); box-shadow:0 6px 14px rgba(14,165,233,.35); }
.kk-summary__lead{ margin:.2rem 0 .8rem; line-height:1.9; }
.kk-summary__points{ list-style:none; margin:0 0 .8rem; padding:0; display:grid; gap:.5rem; }
.kk-summary__points li{ background:var(--kk-chip); border-radius:12px; padding:.65rem .8rem; line-height:1.8; box-shadow:0 8px 18px rgba(2,6,23,.05); }
.kk-summary__cta{ margin:0; color:var(--kk-muted); }
@media (max-width:720px){ .br-m{ display:inline; } }

/* [G] TRIVIA FAQ ----------------------------------------------------------- */
.kk-faq{ max-width:1000px; margin:clamp(10px,3vw,20px) auto; padding:0 clamp(8px,2vw,12px); color:var(--kk-ink); }
.kk-faq__intro{ margin:0 0 .8rem; padding:clamp(14px,2.6vw,20px); border-radius:16px; background:color-mix(in oklab, #fff 90%, #f7fbff); box-shadow:0 14px 32px rgba(2,6,23,.06); position:relative; overflow:clip; }
.kk-faq__intro::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.kk-faq__intro h2{ margin:0 0 .3rem; font-size:clamp(20px,2.6vw,26px); font-weight:900; letter-spacing:.01em; }
.kk-faq__intro p{ margin:.2rem 0 0; color:var(--muted); line-height:1.8; }
.kk-faq__intro span{ font-weight:800; background:linear-gradient(120deg,var(--kk-accent),var(--kk-accent2)); -webkit-background-clip:text; color:transparent; }
.qa{ border-radius:14px; margin:.6rem 0; background:var(--kk-bg,#fff); border:1px solid #e5e7eb; box-shadow:0 12px 28px rgba(2,6,23,.06); overflow:hidden; }
.qa summary{ list-style:none; cursor:pointer; padding:.9rem 1rem; display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:center; user-select:none; }
.qa summary::-webkit-details-marker{ display:none; }
.qa .num{ display:grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:10px; font-weight:900; color:#fff; background:linear-gradient(135deg,var(--kk-accent),var(--kk-accent2)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.qa:nth-of-type(2n) .num{ background:linear-gradient(135deg,#7c3aed,#22d3ee); }
.qa:nth-of-type(3n) .num{ background:linear-gradient(135deg,#06C755,#22c55e); }
.qa .q{ font-weight:800; letter-spacing:.01em; line-height:1.5; background-image:linear-gradient(180deg, transparent 70%, rgba(14,165,233,.12) 0); background-size:100% 100%; padding-inline:.05rem; }
.qa .a{ padding:.2rem 1rem 1rem; color:var(--kk-ink); }
.qa .a p{ margin:.6rem 0 0; line-height:1.9; }
.qa .a p em{ font-style:normal; font-weight:800; background:rgba(99,102,241,.10); padding:.05rem .25rem; border-radius:.3rem; }
.qa[open]{ border-color:color-mix(in oklab, var(--kk-accent) 40%, #e5e7eb); box-shadow:0 16px 36px rgba(2,6,23,.1); }
.qa[open] summary{ background:linear-gradient(180deg, rgba(14,165,233,.06), transparent 60%); }
@media (hover:hover){ .qa summary:hover{ background:linear-gradient(180deg, rgba(14,165,233,.08), transparent 60%); } }
.qa summary:focus-visible{ outline:3px solid rgba(14,165,233,.3); border-radius:12px; }
@media (max-width:480px){ .qa summary{ gap:.6rem; } .qa .num{ width:2rem; height:2rem; font-size:.95em; } .qa .q{ font-size:1.02rem; } }
.kk-faq__note{ margin:clamp(12px,3vw,18px) auto 0; padding:clamp(14px,2.4vw,18px); border-radius:14px; background:color-mix(in oklab, #fff 90%, #f7fbff); border:1px solid #e5e7eb; box-shadow:0 10px 24px rgba(2,6,23,.06); }
.kk-faq__note-ttl{ display:inline-flex; align-items:center; gap:.5rem; font-weight:900; letter-spacing:.01em; margin:0 0 .4rem; font-size:clamp(15px,1.6vw,16px); }
.kk-faq__note-ttl::before{ content:""; inline-size:12px; block-size:12px; border-radius:4px; background:linear-gradient(135deg, var(--kk-accent,#0ea5e9), var(--kk-accent2,#6366f1)); box-shadow:0 6px 14px rgba(14,165,233,.3); }
.kk-faq__note p{ margin:.2rem 0 .6rem; line-height:1.85; color:var(--muted); }
.kk-faq__note-list{ list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.kk-faq__note-list li{ position:relative; padding-left:1.2rem; line-height:1.8; }
.kk-faq__note-list li::before{ content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; border-radius:2px; background:color-mix(in oklab, var(--kk-accent,#0ea5e9) 70%, var(--kk-accent2,#6366f1)); }

/* [H] BRIDGE + STAFF-K ----------------------------------------------------- */
.kk-bridge{ max-width:1080px; margin:clamp(12px,3.6vw,28px) auto; padding:clamp(18px,2.8vw,26px); color:var(--br-ink); background:var(--br-bg); border-radius:18px; position:relative; isolation:isolate; box-shadow:0 18px 44px rgba(2,6,23,.08); overflow:clip; }
.kk-bridge::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-bridge::after{ content:""; position:absolute; right:-44px; top:-44px; width:150px; height:150px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(8px); }
.kk-bridge__ttl{ margin:0 0 .55rem; font-weight:900; letter-spacing:.01em; font-size:clamp(18px,2.4vw,22px); display:flex; align-items:center; gap:.6rem; }
.kk-bridge__ttl .dot{ inline-size:12px; block-size:12px; border-radius:4px; background:linear-gradient(135deg, var(--br-a), var(--br-b)); box-shadow:0 6px 14px rgba(14,165,233,.35); }
.kk-bridge__lead{ margin:.2rem 0 .9rem; line-height:1.9; color:var(--br-ink); }
.kk-bridge__lead em{ font-style:normal; font-weight:800; background:linear-gradient(120deg, var(--br-a), var(--br-b)); -webkit-background-clip:text; color:transparent; }
.kk-bridge__lead strong{ font-weight:900; }
.kk-bridge__lead b{ font-weight:900; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.16) 0); }
.kk-bridge__nav{ display:flex; flex-wrap:wrap; gap:.6rem; }
.pill{ display:inline-flex; align-items:center; gap:.45rem; padding:.55rem .9rem; border-radius:999px; text-decoration:none; font-weight:800; letter-spacing:.01em; line-height:1; background:var(--br-chip); color:#0b3b54; box-shadow:0 10px 24px rgba(2,6,23,.06); position:relative; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s cubic-bezier(.2,.8,.2,1); }
.pill::after{ content:"→"; opacity:.85; transform:translateX(0); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.pill:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); }
.pill:hover::after{ transform:translateX(2px); }
.pill--a{ background:linear-gradient(135deg,#eaf5ff,#f4f9ff); color:#0b3b54; }
.pill--b{ background:linear-gradient(135deg,#efe9ff,#f7f3ff); color:#2c235a; }
@media (max-width:540px){ .kk-bridge{ padding:clamp(16px,4vw,22px); } .kk-bridge__nav{ gap:.5rem; } .pill{ width:100%; justify-content:center; } }
.kk-bridge .kk-bridge__k{ --ink:var(--br-ink); --bg:var(--br-bg); display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:start; margin-top:.9rem; }
.kk-bridge .k-av{ margin:0; width:64px; height:64px; border-radius:50%; overflow:hidden; box-shadow:0 12px 28px rgba(2,6,23,.12); }
.kk-bridge .k-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.kk-bridge .k-balloon{ position:relative; background:var(--bg); color:var(--ink); border:1px solid #e5e7eb; border-radius:14px; padding:clamp(12px,2.2vw,16px) clamp(14px,2.6vw,20px); box-shadow:0 18px 40px rgba(2,6,23,.08); isolation:isolate; }
.kk-bridge .k-balloon::before{ content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.45), rgba(99,102,241,.25)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-bridge .k-balloon::after{ content:""; position:absolute; left:36px; bottom:-10px; width:18px; height:18px; background:var(--bg); border-left:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; transform:rotate(45deg); box-shadow:10px 10px 24px rgba(2,6,23,.06); z-index:-1; }
.kk-bridge .k-meta{ display:flex; align-items:center; gap:.5rem; margin-bottom:.35rem; }
.kk-bridge .k-name{ font-weight:900; letter-spacing:.01em; }
.kk-bridge .k-tag{ font-size:.85rem; font-weight:800; color:#0b3b54; padding:.18rem .5rem; border-radius:999px; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); box-shadow:0 8px 18px rgba(2,6,23,.06); }
.kk-bridge .k-text{ margin:0; line-height:1.9; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.10) 0); padding-inline:.04rem; }
@media (max-width:560px){ .kk-bridge .kk-bridge__k{ grid-template-columns:1fr; } .kk-bridge .k-av{ width:56px; height:56px; } .kk-bridge .k-balloon::after{ left:22px; } }

/* [I] ESSAY PRO ------------------------------------------------------------ */
.kk-essayPro{ max-width:1180px; margin:clamp(18px,4vw,36px) auto; padding:clamp(18px,3.2vw,28px); color:var(--ink); background:var(--bg); border-radius:22px; position:relative; isolation:isolate; box-shadow:var(--elev-4); overflow:clip; }
.kk-essayPro::before{ content:""; position:absolute; inset:0; padding:1.5px; border-radius:inherit; background:linear-gradient(135deg, rgba(14,165,233,.5), rgba(99,102,241,.3)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.kk-essayPro::after{ content:""; position:absolute; right:-60px; top:-60px; width:180px; height:180px; background:radial-gradient(closest-side, rgba(14,165,233,.18), transparent 70%); filter:blur(10px); }
.ep-hero{ position:relative; padding-bottom:.6rem; }
.ep-flag{ position:absolute; left:-1.2rem; top:.1rem; width:8px; height:64px; background:linear-gradient(180deg,var(--a),var(--b)); border-radius:4px; box-shadow:0 10px 24px rgba(14,165,233,.35); }
.ep-title{ margin:0 0 .25rem; font-weight:900; letter-spacing:.01em; font-size:clamp(22px,3vw,28px); line-height:1.25; }
.ep-title em{ font-style:normal; background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; }
.ep-eyebrow{ display:inline-block; margin-bottom:.35rem; font-weight:800; font-size:.9rem; color:#0b3b54; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); padding:.25rem .6rem; border-radius:999px; box-shadow:0 8px 18px rgba(2,6,23,.06); }
.ep-sub{ margin:0; color:var(--muted); }
.ep-grid{ display:grid; gap:clamp(16px,3vw,24px); grid-template-columns:1fr; margin-top:clamp(12px,2.4vw,18px); }
@media (min-width:980px){ .ep-grid{ grid-template-columns:minmax(0, 1.6fr) minmax(280px, .8fr); } }
.ep-main{ line-height:1.9; }
.ep-section + .ep-section{ margin-top:clamp(14px,2.4vw,20px); }
.ep-drop::first-letter{ float:left; font-size:2.2em; line-height:1; margin:.04em .18em 0 0; font-weight:900; background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; }
.ep-h3{ position:relative; margin:.2rem 0 .4rem; padding-left:1rem; font-size:clamp(17px,2vw,20px); font-weight:900; }
.ep-h3::before{ content:""; position:absolute; left:0; top:.15rem; bottom:.15rem; width:6px; background:linear-gradient(180deg,var(--a),var(--b)); border-radius:4px; box-shadow:0 8px 18px rgba(14,165,233,.35); }
.badge{ display:inline-grid; place-items:center; margin-right:.45rem; width:2rem; height:2rem; border-radius:10px; color:#fff; font-weight:900; background:linear-gradient(135deg,var(--a),var(--b)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.ep-pills{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0 0; padding:0; }
.ep-pills li{ padding:.42rem .7rem; border-radius:999px; font-weight:800; background:linear-gradient(135deg,#eaf5ff,#f4f9ff); color:#0b3b54; box-shadow:0 8px 18px rgba(2,6,23,.06); }
@media (hover:hover){ .ep-pills li:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); } }
.ep-ribbonCard{ position:relative; border:1px solid var(--brd); border-radius:16px; background:var(--chip); padding:.9rem 1rem; box-shadow:0 12px 28px rgba(2,6,23,.06); }
.rc-eyebrow{ position:absolute; left:-8px; top:-12px; padding:.25rem .6rem; font-size:.82rem; color:#fff; font-weight:800; border-radius:6px; background:linear-gradient(135deg,var(--a),var(--b)); transform:rotate(-6deg); }
.ep-steps{ list-style:none; margin:.4rem 0 0; padding:0; display:grid; gap:.55rem; counter-reset:step; }
.ep-steps li{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:center; padding:.75rem .9rem; background:#fff; border:1px solid var(--brd); border-radius:14px; box-shadow:var(--elev-2); }
.ep-steps li::before{ content:counter(step); counter-increment:step; display:grid; place-items:center; width:2rem; height:2rem; border-radius:999px; color:#fff; font-weight:900; background:linear-gradient(135deg,var(--a),var(--b)); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.ep-steps .ttl{ font-weight:800; } .ep-steps small{ color:var(--muted); }
@media (hover:hover){ .ep-steps li:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(2,6,23,.12); } }
.ep-quote{ margin:.6rem 0; padding:.9rem 1rem; border-left:6px solid; border-image:linear-gradient(180deg,var(--a),var(--b)) 1; background:#fff; border-radius:12px; box-shadow:var(--elev-2); }
.ep-quote p{ margin:0; font-weight:800; }
.ep-note{ margin-top:.5rem; border:1px dashed var(--brd); border-radius:12px; padding:.7rem .9rem; background:#fff; }
.ep-note ul{ margin:0; padding-left:1.1rem; line-height:1.8; }
.ep-closing{ margin-top:clamp(14px,2.4vw,20px); padding-top:.8rem; position:relative; }
.ep-closing::before{ content:""; position:absolute; left:0; right:0; top:0; height:2px; background:linear-gradient(90deg, transparent, color-mix(in oklab,var(--a) 70%, var(--b)), transparent); }
.hl{ font-weight:900; background-image:linear-gradient(180deg, transparent 60%, rgba(14,165,233,.18) 0); padding-inline:.08rem; }
.ep-strong{ margin:.5rem 0 0; font-weight:900; letter-spacing:.01em; }
.ep-strong span{ background:linear-gradient(120deg,var(--a),var(--b)); -webkit-background-clip:text; color:transparent; border-bottom:2px solid rgba(14,165,233,.25); }
.ep-aside{ display:grid; gap:.8rem; }
.aside-card{ border:1px solid var(--brd); border-radius:16px; background:#fff; padding:.9rem 1rem; box-shadow:0 12px 28px rgba(2,6,23,.06); }
.aside-card h4{ margin:.1rem 0 .4rem; font-size:1rem; font-weight:900; }
.aside-card ul{ margin:0; padding-left:1.1rem; line-height:1.8; }
.aside-card--ghost{ background:conic-gradient(from 210deg at 110% -10%, rgba(14,165,233,.08), transparent 35%) , #fff; }
@media (max-width:720px){ .ep-flag{ left:-.6rem; height:52px; } .ep-steps li{ grid-template-columns:auto 1fr; } }

/* [U] UTILITIES / FIXES ---------------------------------------------------- */
@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition:none !important; } }
@media print{
  .cb .cb-bubble{ box-shadow:none; border:1px solid #cbd5e1; }
  .cb .cb-bubble::after{ display:none; }
  .cyfx{ box-shadow:none; background:#fff; }
  .cyfx::before,.cyfx::after{ display:none; }
}
.br-m{ display:none; }

/* ===== kk-essay: micro-fixes (badge & steps layout) ===== */
.kk-essay .badge{ display:inline-grid !important; place-items:center !important; min-width:2.2rem; height:2.2rem; padding:0 .2rem; border-radius:10px; line-height:1 !important; white-space:nowrap; font-variant-numeric:tabular-nums lining-nums; font-feature-settings:"tnum" 1,"lnum" 1; letter-spacing:.02em; font-weight:900; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); box-shadow:0 10px 22px rgba(14,165,233,.35); }
.kk-essay .badge::before, .kk-essay .badge::after{ content:none !important; }
.kk-essay .ep-h3 .badge{ vertical-align:middle; transform:translateY(-.02em); }
.kk-essay, .kk-essay .badge{
  font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
}
@media (max-width:420px){ .kk-essay .badge{ min-width:2rem; height:2rem; } }
.kk-essay .ep-steps li{ display:grid !important; grid-template-columns:auto 1fr !important; grid-auto-rows:auto; column-gap:.7rem !important; align-items:center !important; }
.kk-essay .ep-steps li::before{ grid-column:1 !important; grid-row:1 / span 2 !important; display:grid; place-items:center; width:2rem; height:2rem; line-height:1; }
.kk-essay .ep-steps li > .ttl{ grid-column:2 !important; grid-row:1 !important; display:inline-block; margin:0 !important; white-space:nowrap; }
.kk-essay .ep-steps li > small{ grid-column:2 !important; grid-row:2 !important; display:block; margin:0 !important; color:var(--muted,#64748b); line-height:1.7; }
.kk-essay .ep-steps li br{ display:none; }
@media (max-width:360px){ .kk-essay .ep-steps li > .ttl{ white-space:normal; } }

/* [L1] LIVI CTA (square-safe v2, compact merged) --------------------------- */
.livi-cta :where(h1,h2,h3,h4,p){ margin:0 }
.livi-cta img{ max-width:100%; height:auto; display:block }
.livi-cta{ --ink:#eaf2ff; --muted:#9fb3d9; --panel:rgba(12,20,38,.52); --panel-strong:rgba(12,20,38,.66); --stroke:rgba(255,255,255,.14); --ring-from:#64a7ff; --ring-to:#8b5cff; --btn-from:#7dd3fc; --btn-to:#93a8ff; --btn-ink:#071324; --radius:22px;
  position:relative; isolation:isolate; padding:44px 16px;
  background:radial-gradient(1200px 700px at 15% 10%, rgba(120,180,255,.10), transparent 60%), radial-gradient(900px 500px at 85% 20%, rgba(140,120,255,.10), transparent 60%), linear-gradient(180deg,#0a1323,#0c1527 60%,#0a1323);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; overflow:hidden;
}
.livi-cta__bg::after{ content:""; position:absolute; inset:-1px; background:radial-gradient(1200px 800px at 50% 0%, rgba(255,255,255,.06), transparent 60%), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='table' tableValues='0 0.025'/></feComponentTransfer></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>") repeat; mix-blend-mode:overlay; opacity:.45; pointer-events:none; }
.livi-cta__glow{ position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(closest-side,#6fb0ff,transparent 70%); filter:blur(64px); opacity:.22; pointer-events:none; animation:livi-float 16s ease-in-out infinite; }
.livi-cta__bg .g1{ left:-140px; top:-120px } .livi-cta__bg .g2{ right:-160px; top:0; animation-delay:2s } .livi-cta__bg .g3{ left:50%; bottom:-180px; transform:translateX(-50%); animation-delay:4s }
@keyframes livi-float{ 0%,100%{ transform:translate(0,0) } 50%{ transform:translate(0,-30px) } }
.livi-cta__card{ display:grid !important; grid-template-columns:minmax(0,540px) minmax(0,520px); gap:32px; align-items:center; justify-content:center; max-width:1180px; margin:0 auto; padding:28px; background:var(--panel); border:1px solid var(--stroke); border-radius:calc(var(--radius) + 4px); backdrop-filter:blur(12px) saturate(120%); -webkit-backdrop-filter:blur(12px) saturate(120%); color:var(--ink); box-shadow:0 22px 60px rgba(2,6,23,.42), inset 0 1px 0 rgba(255,255,255,.06); transition:transform .3s ease, background .3s ease, box-shadow .3s ease; text-decoration:none !important; }
.livi-cta__card:hover{ transform:translateY(-2px); background:var(--panel-strong) }
.livi-cta__ring{ position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; background:conic-gradient(from 0deg,var(--ring-from),var(--ring-to),var(--ring-from)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; padding:1px; animation:livi-rotate 14s linear infinite; }
@keyframes livi-rotate{ to{ transform:rotate(360deg) } }
.livi-cta__visual{ position:relative; border-radius:var(--radius); overflow:hidden; background:#0f1a2e; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 40px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.06); }
.livi-cta__visual img{ width:100%; height:100%; object-fit:contain; background:radial-gradient(60% 60% at 50% 40%, rgba(120,180,255,.12), transparent 70%); }
.livi-cta__shine{ position:absolute; inset:-40%; background:linear-gradient(120deg,transparent 45%,rgba(255,255,255,.28) 50%,transparent 55%); transform:translateX(-60%) rotate(8deg); mix-blend-mode:screen; animation:livi-shine 7s ease-in-out infinite; }
@keyframes livi-shine{ 0%{ transform:translateX(-60%) rotate(8deg) } 60%,100%{ transform:translateX(60%) rotate(8deg) } }
.livi-cta__copy{ text-align:left }
.livi-cta__title{ font-weight:900; line-height:1.35; font-size:clamp(1.25rem, 1rem + 1.4vw, 1.9rem); color:#fff; text-shadow:0 0 18px rgba(120,170,255,.28), 0 1px 0 rgba(0,0,0,.55); -webkit-text-stroke:.6px rgba(0,0,0,.35); letter-spacing:.02em; margin-bottom:.35rem; }
.livi-cta__brand{ font-weight:1000; font-size:clamp(2.2rem, 1.6rem + 3.2vw, 3.6rem); letter-spacing:.08em; margin:.2rem 0 .9rem; color:#dff1ff; background:linear-gradient(180deg,#f6fbff 0%,#bfe1ff 35%,#8fc0ff 65%,#5aa2ff 100%); -webkit-background-clip:text; background-clip:text; text-shadow:0 0 14px rgba(80,160,255,.55), 0 0 34px rgba(80,160,255,.35), 0 3px 0 rgba(10,20,40,.55); }
.livi-cta__btn{ display:inline-flex; align-items:center; gap:.6em; padding:16px 26px; border-radius:14px; background:linear-gradient(135deg,var(--btn-from),var(--btn-to)); color:var(--btn-ink); font-weight:900; letter-spacing:.08em; box-shadow:0 14px 36px rgba(90,162,255,.45), inset 0 0 0 1px rgba(255,255,255,.55), inset 0 10px 24px rgba(255,255,255,.35); position:relative; overflow:hidden; transition:transform .2s ease, filter .2s ease, box-shadow .2s ease; }
.livi-cta__btn::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 28%,transparent 72%,rgba(0,0,0,.18)); mix-blend-mode:overlay; }
.livi-cta__btn:hover{ transform:translateY(-1px); filter:saturate(112%) }
.livi-cta__arrow{ width:1.15em; height:1.15em; flex:0 0 auto; background:conic-gradient(from 90deg at 50% 50%, transparent 25%, rgba(7,19,36,.5) 0 75%, transparent 0), linear-gradient(currentColor,currentColor); -webkit-mask:radial-gradient(circle at 30% 50%, transparent 36%, #000 37%) top left/50% 100% no-repeat, radial-gradient(circle at 70% 50%, transparent 36%, #000 37%) top right/50% 100% no-repeat, linear-gradient(#000 0 0) center/52% 22% no-repeat; mask-composite:add; border-radius:4px; }
@media (max-width:980px){ .livi-cta__card{ grid-template-columns:1fr; gap:18px; padding:20px; max-width:780px } .livi-cta__copy{ text-align:center } .livi-cta__brand{ margin:.1rem 0 .75rem } }
@media (prefers-reduced-motion:reduce){ .livi-cta__ring,.livi-cta__shine,.livi-cta__glow{ animation:none } #livi-tilt{ transform:none !important } }

/* compact overrides merged */
.livi-cta__card{ padding:18px 18px !important; gap:16px !important; max-width:980px !important; }
.livi-cta__visual{ max-width:360px; margin:0 auto; }
.livi-cta__title{ font-size:clamp(1.1rem,.9rem + 1vw,1.5rem) !important; margin-bottom:.25rem !important; }
.livi-cta__brand{ font-size:clamp(2rem,1.3rem + 2.6vw,3rem) !important; margin:.05rem 0 .25rem !important; letter-spacing:.08em; }
.livi-cta__title + .livi-cta__brand{ margin-top:.1rem !important; }
.livi-cta__brand + .livi-cta__title{ margin-top:.1rem !important; }
.livi-cta__btn{ padding:12px 20px !important; font-size:clamp(.95rem,.9rem + .2vw,1.05rem) !important; border-radius:12px !important; }
@media (max-width:980px){ .livi-cta__card{ max-width:640px !important; gap:14px !important; padding:16px !important; } .livi-cta__visual{ max-width:420px; } .livi-cta__copy{ text-align:center; } }
.livi-cta__sub{ color:#fff; opacity:.92; font-weight:700; letter-spacing:.02em; font-size:clamp(1rem,.9rem+.6vw,1.2rem); margin:0 0 .2rem; text-shadow:0 1px 0 rgba(0,0,0,.5); }
.livi-cta__brand + .livi-cta__sub{ margin-top:.1rem; }

/* [L2] LIVI BANNER (light / fresh) ---------------------------------------- */
.livi-banner{ --ink:#0b1b2b; --muted:#59708f; --accent:#3178ff; --accent2:#5cc1ff; --line:#06c755;
  background:#fff; color:var(--ink); border:1px solid rgba(11,27,43,.06); border-radius:18px; box-shadow:0 10px 32px rgba(11,27,43,.06);
}
.livi-banner .livi-inner{ max-width:980px; margin:0 auto; padding:28px 18px; text-align:center; }
.livi-banner :where(h1,h2,h3,h4,p,ul,ol){ margin:0 }
.livi-banner img{ max-width:100%; height:auto; display:block }
.livi-banner .livi-eyebrow{
  display:inline-block; font-weight:900; letter-spacing:.14em; font-size:clamp(1.05rem, .9rem + 1.4vw, 1.45rem); color:#0b1b2b;
  padding:.4rem .9rem; border-radius:999px; background:linear-gradient(180deg,#fff,#f7fbff); box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 18px rgba(49,120,255,.10); position:relative;
}
.livi-banner .livi-eyebrow::after{ content:""; display:block; height:3px; margin:.55rem auto 0; width:clamp(110px, 20vw, 180px); border-radius:2px; background:linear-gradient(90deg, var(--accent), var(--accent2)); box-shadow:0 2px 10px rgba(49,120,255,.25); }
.livi-banner .livi-title{ margin-top:1rem; font-weight:900; line-height:1.35; font-size:clamp(1.3rem, 1rem + 2vw, 2rem); color:var(--ink); }
.livi-banner .livi-title em{ font-style:normal; background:linear-gradient(180deg,#2b63ff,#5cc1ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.livi-banner .livi-lead{ margin:.65rem 0 .9rem; color:var(--muted); font-weight:600; }
.livi-banner .livi-points{ list-style:none; padding:0; margin:.2rem 0 1rem; display:flex; gap:.6rem .6rem; flex-wrap:wrap; justify-content:center; }
.livi-banner .livi-points li{ display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .8rem; border-radius:999px; font-weight:700; color:#0f2540; background:linear-gradient(180deg,#f7fbff,#eef6ff); box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 16px rgba(49,120,255,.08); }
.livi-banner .livi-points li::before{ content:""; width:.55rem; height:.55rem; border-radius:50%; background:radial-gradient(circle at 30% 30%, #fff, #9fd0ff 60%, #5aa2ff 100%); box-shadow:0 0 0 2px rgba(255,255,255,.8); }
.livi-banner .livi-cta{ margin-top:.2rem; display:flex; justify-content:center }
.livi-banner .btn{ display:inline-flex; align-items:center; gap:.6em; padding:16px 24px; border-radius:14px; text-decoration:none; font-weight:900; letter-spacing:.06em; color:#04210d;
  background:linear-gradient(135deg,#07e06a,#06c755 55%, #05a845);
  box-shadow:0 14px 32px rgba(6,199,85,.28), inset 0 0 0 1px rgba(255,255,255,.65), inset 0 12px 28px rgba(255,255,255,.35);
  transition:transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.livi-banner .btn:hover{ transform:translateY(-1px); filter:saturate(110%) }
.livi-banner .btn .i{ width:1.2em; height:1.2em; fill:currentColor }
.livi-banner .btn .sub{ display:block; font-size:.78em; font-weight:800; opacity:.85; letter-spacing:.06em; margin-top:.1rem; }
.livi-banner .livi-inner > * + *{ margin-top:.75rem }
.livi-banner .livi-title + .livi-lead{ margin-top:.5rem }
@media (max-width:768px){ .livi-banner .livi-inner{ padding:22px 14px } .livi-banner .btn{ width:100%; justify-content:center } }

/* [CLEAN] SINGLE POSTS: remove bullets (UL only) --------------------------- */
/* テーマ依存を避け、WordPress標準の本文スコープに限定する */
body.single :where(.entry-content, .wp-block-post-content) ul{
  list-style:none !important; list-style-image:none !important; margin-left:0 !important; padding-left:0 !important;
}
body.single :where(.entry-content, .wp-block-post-content) ul li{
  padding-left:0 !important; background:none !important; background-image:none !important;
}
body.single :where(.entry-content, .wp-block-post-content) ul li::marker{ content:"" !important; }
body.single :where(.entry-content, .wp-block-post-content) ul li::before,
body.single :where(.entry-content, .wp-block-post-content) ul li::after{
  content:none !important; display:none !important; background:none !important; border:0 !important; box-shadow:none !important;
}
/* よくある“チェックリスト”系クラスも同時に抑止 */
body.single :where(.entry-content, .wp-block-post-content) :is(.is-style-check,.has-check-icon,.list-check,.st-list-check,.p-checkList,.c-list--check,.checklist,.check-list,.p-list,.c-list) li::before{
  content:none !important; display:none !important;
}

/* === Single記事本文だけ：ULのビュレット完全無効（テーマ干渉も殺す） === */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul){
  list-style: none !important;
  list-style-image: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li){
  /* UA/テーマが li に list-style を付け直す対策 */
  list-style-type: none !important;
  background: none !important;
  padding-left: 0 !important;
  position: relative;
}

/* ネイティブのマーカーを強制で空に */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::marker{
  content: '' !important;
}

/* テーマが ::before / ::after で丸や画像を足してくる系の完全無効化 */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::before,
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(ul li)::after{
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Gutenbergの入れ子ULにも届くように追加（保険） */
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(.wp-block-list ul){
  list-style: none !important;
  list-style-image: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
body.single :where(.entry-content, .wp-block-post-content, .post_content) :where(.wp-block-list ul li){
  list-style-type: none !important;
  padding-left: 0 !important;
  background: none !important;
}

/* “チェックリスト風”の疑似要素を出す代表的なクラスもまとめて封じる（本文内のみ） */
body.single :where(.entry-content, .wp-block-post-content, .post_content)
  :is(.is-style-check,.has-check-icon,.list-check,.st-list-check,.p-checkList,
      .c-list--check,.checklist,.check-list,.p-list,.c-list) li::before{
  content: none !important;
  display: none !important;
}

/* ===== ep-h3：テーマ由来の縦棒を完全無効（この見出しだけ） ===== */

/* 1) h3.ep-h3 に注入される border/背景 系を無効化 */
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3{
  border: 0 !important;
  border-left: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* 2) テーマが h3 に付ける ::before/::after の棒・飾りも無効化 */
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3::before,
:where(.entry-content, .post_content, .wp-block-post-content)
  h3.ep-h3::after{
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* 3) （任意）こちらの “ep-h3 本来のデザイン” を残したい場合は再定義する
      ※ 不要なら以下の 3ブロックは削除してください */
.kk-essayPro h3.ep-h3{
  position: relative;
  padding-left: 1rem !important;
}
.kk-essayPro h3.ep-h3::before{
  content: "" !important;
  position: absolute; left: 0; top: .15rem; bottom: .15rem; width: 6px;
  background: linear-gradient(180deg, var(--a,#0ea5e9), var(--b,#6366f1));
  border-radius: 4px;
  box-shadow: 0 8px 18px rgba(14,165,233,.35);
}
.kk-essayPro h3.ep-h3 .badge{
  vertical-align: middle;
}

/* 見出し（h3.ep-h3）直後が .ep-ribbonCard の並びだけに適用 */
.ep-section > h3.ep-h3 + .ep-ribbonCard{
  /* 1行分の間＝フォントサイズ基準で約1em */
  margin-top: 1em !important;
}

/* カードの下側の内側余白をなくす ＋ 最終要素の下マージンも殺す */
.ep-section > .ep-ribbonCard{
  padding-bottom: 0 !important;      /* 囲いとテキスト最終行の間をなくす */
}
.ep-section > .ep-ribbonCard > *:last-child{
  margin-bottom: 0 !important;       /* 最終要素の下マージンをゼロに */
  padding-bottom: 0 !important;      /* 念のため */
}

/* テーマが段落に下マージンを付ける場合の保険 */
.ep-section > .ep-ribbonCard p{
  margin-bottom: 0 !important;
}

/* 初回フェードインはCSSで */
#livi-cta-card{
  opacity:0; transform:translateY(8px);
  transition:opacity .5s ease, transform .5s ease;
}
#livi-cta-card.is-in{ opacity:1; transform:translateY(0) }

/* チルトの描画高速化 */
#livi-tilt{
  transform-style:preserve-3d;
  will-change: transform; /* ホバー中にだけJSでauto⇄transformに切替 */
}

/* 低速環境配慮 */
@media (prefers-reduced-motion: reduce){
  #livi-cta-card{ transition:none }
  #livi-tilt{ transform:none !important }
}

/* === 23区相場表：スマホ最適化（カード化＋ロゴ入り） === */
.kk-table.kk-table--cards { overflow: visible; border: 0; box-shadow: none; }
.kk-table.kk-table--cards thead { display: table-header-group; } /* PCでは従来通り */
@media (max-width: 720px){
  .kk-table.kk-table--cards thead { display: none; } /* SPはヘッダーを隠す */
  .kk-table.kk-table--cards,
  .kk-table.kk-table--cards tbody,
  .kk-table.kk-table--cards tr,
  .kk-table.kk-table--cards td { display: block; width: 100%; }

  .kk-table.kk-table--cards tbody { display: grid; gap: .9rem; }
  .kk-table.kk-table--cards tr{
    position: relative;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: .75rem .9rem;
    background: linear-gradient(180deg,#fff, #f9fbff 60%, #fff);
    box-shadow: 0 12px 24px rgba(2,6,23,.08);
    overflow: hidden;
  }
  /* LIVIの小さなロゴを右上に */
  .kk-table.kk-table--cards tr::after{
    content: "";
    position: absolute; right: .6rem; top: .5rem;
    width: 26px; height: 26px; opacity: .85;
    background: url("https://job-oshigoto.com/wp-content/uploads/2025/09/cfddb558-2664-4fd1-973a-08ebfb8f0274.png") center/contain no-repeat;
    filter: drop-shadow(0 8px 16px rgba(2,6,23,.18));
  }

  .kk-table.kk-table--cards td{
    position: relative;
    padding: .55rem .2rem .55rem 8.2rem; /* ラベル分の左余白 */
    border: 0 !important;
    line-height: 1.75;
  }
  .kk-table.kk-table--cards td::before{
    content: attr(data-label);
    position: absolute; left: .9rem; top: .58rem;
    font-weight: 800; color: #475569;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: linear-gradient(135deg,#eaf5ff,#f4f9ff);
    box-shadow: 0 6px 14px rgba(2,6,23,.06);
  }
  /* 1行目（区名）はカードのタイトルっぽく少し強めに */
  .kk-table.kk-table--cards td[data-label="区"]{
    padding-top: .35rem; padding-bottom: .35rem;
    font-weight: 900; letter-spacing: .01em;
    font-size: 1.05rem;
  }
  .kk-table.kk-table--cards td[data-label="区"]::before{
    background: linear-gradient(135deg,#efe9ff,#f7f3ff);
  }

  /* 数値を読みやすく（等幅寄り） */
  .kk-table.kk-table--cards td[data-label="1K/1DK相場（万円/月）"],
  .kk-table.kk-table--cards td[data-label="初期費用・モデルA（万円）"]{
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1, "lnum" 1;
  }

  /* カードの上下余白を詰める */
  .kk-spotlist .kk-ttl{ margin-top: .4rem; }
}

/* PC時は従来の見た目＋ロゴはヘッダーの位置に */
.kk-table .livi-logo{
  height: 26px; position:absolute; right:.8rem; top:.6rem;
  filter:drop-shadow(0 6px 12px rgba(2,6,23,.25));
}

/* ===== Notebook / Fancy Mobile Cards for kk-table ===== */

/* 全体のノート風ヘッダー（上のグラデバナー） */
.kk-notebook {
  --sky-from:#e7f4ff; --sky-to:#f7fbff;
  --ring:#cbe5ff;
  position:relative; isolation:isolate; border-radius:18px;
  background:linear-gradient(180deg,var(--sky-from),var(--sky-to));
  border:1px solid rgba(11,27,43,.06);
  box-shadow:0 18px 44px rgba(2,6,23,.08);
  padding:16px 14px 8px;
  margin:clamp(10px,2.6vw,18px) 0;
  overflow:hidden;
}
.kk-notebook::after{
  content:""; position:absolute; inset:-1px;
  background:
    radial-gradient(900px 500px at 85% -20%, rgba(49,120,255,.06), transparent 60%),
    radial-gradient(1000px 600px at 15% -10%, rgba(140,120,255,.06), transparent 60%);
  pointer-events:none; mix-blend-mode:overlay;
}

/* タイトル行 */
.kk-note-head{
  display:flex; align-items:center; gap:.6rem; justify-content:space-between;
  padding:6px 10px; border-radius:12px;
  background:linear-gradient(180deg,#fff, #f4f9ff);
  box-shadow:inset 0 0 0 1px rgba(11,27,43,.06), 0 8px 22px rgba(49,120,255,.10);
  font-weight:900; letter-spacing:.02em; color:#0b1b2b;
}
.kk-note-meta{ font-weight:800; color:#59708f; font-size:.92rem; }

/* ノートの罫線っぽい背景 */
.kk-note-paper{
  margin-top:10px; border-radius:14px; background:#fff;
  border:1px solid #e5e7eb; overflow:hidden;
  background-image:
    repeating-linear-gradient(180deg, rgba(99,102,241,.06) 0 1px, transparent 1px 36px);
}

/* 既存の表を “カード化” してノートの上に載せる */
.kk-table.kk-table--cards { border:0; box-shadow:none; margin:0; }
.kk-table.kk-table--cards thead th{
  background:linear-gradient(180deg,#fff,#f6f9ff);
  position:relative; padding:12px 16px; font-weight:900;
}
.kk-table .livi-logo{ height:26px; position:absolute; right:.8rem; top:.6rem;
  filter:drop-shadow(0 6px 12px rgba(2,6,23,.25)); }

/* PCは従来通りのテーブル、SPはカード化 */
@media (max-width: 840px){
  .kk-table.kk-table--cards thead{ display:none; }
  .kk-table.kk-table--cards, .kk-table.kk-table--cards tbody,
  .kk-table.kk-table--cards tr, .kk-table.kk-table--cards td{
    display:block; width:100%;
  }
  .kk-table.kk-table--cards tbody{ display:grid; gap:.9rem; padding:10px; }
  .kk-table.kk-table--cards tr{
    position:relative; border:1px solid #e5e7eb; border-radius:16px;
    padding:.9rem .9rem .8rem; background:linear-gradient(180deg,#fff,#f9fbff 60%,#fff);
    box-shadow:0 14px 28px rgba(2,6,23,.10);
    overflow:hidden;
  }
  /* 右上に小さなロゴ＆淡い煌めき */
  .kk-table.kk-table--cards tr::after{
    content:""; position:absolute; right:.7rem; top:.6rem; width:28px; height:28px; opacity:.9;
    background:url("https://job-oshigoto.com/wp-content/uploads/2025/09/cfddb558-2664-4fd1-973a-08ebfb8f0274.png") center/contain no-repeat;
    filter:drop-shadow(0 8px 16px rgba(2,6,23,.18));
  }
  .kk-table.kk-table--cards td{
    position:relative; padding:.6rem .25rem .6rem 8.7rem; border:0 !important; line-height:1.8;
    font-size:1.02rem;
  }
  /* 左にピル型ラベル */
  .kk-table.kk-table--cards td::before{
    content:attr(data-label); position:absolute; left:.9rem; top:.55rem;
    font-weight:900; color:#0f2540; letter-spacing:.01em; font-size:.92rem;
    padding:.28rem .6rem; border-radius:999px;
    background:linear-gradient(180deg,#f7fbff,#eaf4ff);
    box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 16px rgba(49,120,255,.10);
  }
  /* 区名はカードタイトル風 */
  .kk-table.kk-table--cards td[data-label="区"]{
    padding-top:.2rem; padding-bottom:.35rem; font-weight:1000; font-size:1.08rem;
  }
  .kk-table.kk-table--cards td[data-label="区"]::before{
    background:linear-gradient(180deg,#f7f3ff,#efe9ff);
  }
  /* 数値は等幅寄りで見やすく */
  .kk-table.kk-table--cards td[data-label*="相場"],
  .kk-table.kk-table--cards td[data-label*="初期費用"]{
    font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1, "lnum" 1;
  }
}

/* ふわっと入る */
@media (prefers-reduced-motion:no-preference){
  .kk-table.kk-table--cards tr{ opacity:0; transform:translateY(8px);
    animation:kk-fade .6s ease forwards; }
  .kk-table.kk-table--cards tr:nth-child(2){ animation-delay:.03s }
  .kk-table.kk-table--cards tr:nth-child(3){ animation-delay:.06s }
  @keyframes kk-fade{ to{ opacity:1; transform:translateY(0) } }
}

/* ====== LIVI 相場表：強制スコープ＆リセット（テーマ干渉ストップ） ====== */
/* 使い方：HTML側のラッパーに .livi-scope を付ける（下に手順あり） */

.livi-scope { position: relative; isolation: isolate; }

/* テーマが入れてくる ::before/::after を一旦クリア（このスコープ内のみ） */
.livi-scope *::before,
.livi-scope *::after{
  content: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* 表レイアウトの既定値を明示（念のため） */
.livi-scope table{ border-collapse: separate; border-spacing:0; }
.livi-scope th, .livi-scope td{
  background: transparent; text-shadow:none; letter-spacing:normal;
}

/* === ここから “必要な装飾だけ” を再注入（優先度を上げる） === */

/* ノート風ラッパー（前回の .kk-notebook と共存） */
.livi-scope .kk-notebook{ z-index:0; }

/* PC：従来のtheadを使う */
.livi-scope .kk-table.kk-table--cards thead{ display: table-header-group; }

/* SPはカード化（前回CSSより強いセレクタ＆!importantで確実に上書き） */
@media (max-width:840px){
  .livi-scope .kk-table.kk-table--cards thead{ display:none !important; }
  .livi-scope .kk-table.kk-table--cards,
  .livi-scope .kk-table.kk-table--cards tbody,
  .livi-scope .kk-table.kk-table--cards tr,
  .livi-scope .kk-table.kk-table--cards td{
    display:block !important; width:100% !important;
  }
  .livi-scope .kk-table.kk-table--cards tbody{ display:grid !important; gap:.9rem !important; padding:10px !important; }
  .livi-scope .kk-table.kk-table--cards tr{
    position:relative; border:1px solid #e5e7eb; border-radius:16px;
    padding:.9rem .9rem .8rem; background:linear-gradient(180deg,#fff,#f9fbff 60%,#fff);
    box-shadow:0 14px 28px rgba(2,6,23,.10); overflow:hidden;
  }
  /* 右上のLIVIロゴ（淡い影） */
  .livi-scope .kk-table.kk-table--cards tr::after{
    content:""; position:absolute; right:.7rem; top:.6rem; width:28px; height:28px; opacity:.9;
    background:url("https://job-oshigoto.com/wp-content/uploads/2025/09/cfddb558-2664-4fd1-973a-08ebfb8f0274.png") center/contain no-repeat;
    filter:drop-shadow(0 8px 16px rgba(2,6,23,.18));
  }
  .livi-scope .kk-table.kk-table--cards td{
    position:relative; padding:.6rem .25rem .6rem 8.7rem; border:0 !important; line-height:1.8;
    font-size:1.02rem; white-space:normal !important; word-break:break-word !important;
  }
  /* ← ココが今回の肝：labelピルを “再注入” */
  .livi-scope .kk-table.kk-table--cards td::before{
    content: attr(data-label) !important;
    position:absolute; left:.9rem; top:.55rem;
    font-weight:900; color:#0f2540; letter-spacing:.01em; font-size:.92rem;
    padding:.28rem .6rem; border-radius:999px;
    background:linear-gradient(180deg,#f7fbff,#eaf4ff);
    box-shadow:inset 0 0 0 1px rgba(11,27,43,.08), 0 6px 16px rgba(49,120,255,.10);
  }
  /* 区名はカードのタイトル風 */
  .livi-scope .kk-table.kk-table--cards td[data-label="区"]{
    padding-top:.2rem; padding-bottom:.35rem; font-weight:1000; font-size:1.08rem;
  }
  .livi-scope .kk-table.kk-table--cards td[data-label="区"]::before{
    background:linear-gradient(180deg,#f7f3ff,#efe9ff);
  }
  /* 数値は等幅寄りで読みやすく */
  .livi-scope .kk-table.kk-table--cards td[data-label*="相場"],
  .livi-scope .kk-table.kk-table--cards td[data-label*="初期費用"]{
    font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1, "lnum" 1;
  }
}

/* PC見出しのロゴはそのまま */
.livi-scope .kk-table .livi-logo{
  height:26px; position:absolute; right:.8rem; top:.6rem;
  filter:drop-shadow(0 6px 12px rgba(2,6,23,.25));
}