/* ==========================================================================
   corporate-site.css — コーポレートサイトの部品（v4.4 で追加。2026-10-26）
   --------------------------------------------------------------------------
   コーポレートサイト（corporate_LP）の各ページが使う、DS 本体（components /
   layout / logo / kit）にない部品。読み込み順は colors_and_type → logo →
   components → layout → kit → 本ファイル。kit の部品（kit-section 系・
   kit-service-hero 系・kit-news 系）へのサイト側の調整もここに置く。
   新しい部品を足すときは、まず components / layout / kit に似た部品が
   ないかを確かめ、ないときだけ本ファイルに足す。
   ========================================================================== */

/* ---- 共通部品（v4.4.1：似た部品をまとめた） ----
   card + 修飾子：--fill（高さを揃える）／--stack（縦積み・間隔 sp-3）／--spacious（ゆったり）
   文字：card-eyebrow → card-title / card-label（--strong・--sm）→ card-desc（--sm） */
.card--fill { height:100% }
.card--stack { display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-6) }
.card--stack > .card-desc { flex:1 }
.card--spacious { height:100%;padding:var(--sp-10) var(--sp-6) }
.card-title { font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--text-display-sm-lh);margin-bottom:var(--sp-3) }
.card-label--sm { font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);line-height:1.4;margin-bottom:0 }
.card-desc--sm { font-size:var(--text-body-sm) }
@media (max-width:640px) {
.card--spacious { padding:var(--sp-8) var(--sp-5) }
.card--stack { padding:var(--sp-5) }
}
:root { --background:oklch(1.0000 0 0);--foreground:oklch(0.2468 0.0146 261.67);--card:oklch(1.0000 0 0);--card-foreground:oklch(0.2468 0.0146 261.67);--popover:oklch(1.0000 0 0);--popover-foreground:oklch(0.2468 0.0146 261.67);--primary:oklch(0.3487 0.1068 255.78);--primary-foreground:oklch(1.0000 0 0);--primary-hover:oklch(0.3950 0.1145 255.78);--primary-active:oklch(0.3050 0.0980 255.78);--primary-subtle:oklch(0.9700 0.0150 255.78);--primary-soft:rgb(10 57 112 / 0.06);--secondary:oklch(1.0000 0 0);--secondary-foreground:oklch(0.2468 0.0146 261.67);--muted:oklch(0.9700 0.0030 264.51);--muted-foreground:oklch(0.5031 0.0201 267.61);--accent:oklch(0.9650 0.0070 255.78);--accent-foreground:oklch(0.2468 0.0146 261.67);--destructive:oklch(0.5113 0.1821 26.56);--destructive-foreground:oklch(1.0000 0 0);--border:oklch(0.9212 0.0047 258.41);--input:oklch(0.8408 0.0095 258.38);--ring:oklch(0.3487 0.1068 255.78);--border-strong:oklch(0.8408 0.0095 258.38);--foreground-subtle:oklch(0.6491 0.0160 264.46);--accent-pressed:oklch(0.9364 0.0047 258.42);--success:oklch(0.5119 0.1280 149.28);--success-foreground:oklch(1.0000 0 0);--success-muted:oklch(0.9717 0.0107 159.29);--success-border:oklch(0.8679 0.0403 156.86);--warning:oklch(0.5078 0.1080 73.30);--warning-foreground:oklch(1.0000 0 0);--warning-muted:oklch(0.9768 0.0207 88.74);--warning-border:oklch(0.8702 0.0696 90.02);--destructive-muted:oklch(0.9741 0.0096 16.87);--destructive-border:oklch(0.8382 0.0483 18.08);--deal-sale:oklch(0.5153 0.1881 260.90);--deal-sale-foreground:oklch(1.0000 0 0);--deal-sale-muted:oklch(0.9660 0.0133 262.39);--deal-sale-border:oklch(0.8557 0.0515 259.40);--deal-purchase:oklch(0.6045 0.1762 43.85);--deal-purchase-foreground:oklch(1.0000 0 0);--deal-purchase-muted:oklch(0.9747 0.0153 67.56);--deal-purchase-border:oklch(0.8603 0.0781 67.72);--deal-rental:oklch(0.5656 0.0963 187.48);--deal-rental-foreground:oklch(1.0000 0 0);--deal-rental-muted:oklch(0.9763 0.0119 184.49);--deal-rental-border:oklch(0.8725 0.0673 186.68);--radius:0px;--radius-sm:calc(var(--radius) * 0.6);--radius-md:calc(var(--radius) * 0.8);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) * 1.4);--radius-2xl:calc(var(--radius) * 1.8);--radius-3xl:calc(var(--radius) * 2.2);--radius-4xl:calc(var(--radius) * 2.6);--radius-full:9999px;--font-sans:'Inter', 'Noto Sans JP', sans-serif;--font-mono:'Inter', 'Noto Sans JP', sans-serif;--fs-hero:clamp(34px,6.5vw,64px);--fs-hero-lh:1.1;--fs-hero-mid:clamp(32px,5vw,52px);--fs-hero-mid-lh:1.12;--fs-display:clamp(26px,3.4vw,38px);--fs-display-lh:1.15;--fs-section:clamp(24px,2.6vw,30px);--fs-section-lh:1.2;--fs-heading:clamp(20px,2.0vw,24px);--fs-heading-lh:1.3;--fs-subheading:clamp(16px,1.4vw,18px);--fs-subheading-lh:1.4;--fs-lead:clamp(15px,1.2vw,17px);--fs-lead-lh:1.6;--fs-body:clamp(14px,1.0vw,15px);--fs-body-lh:1.65;--fs-stat:clamp(26px,2.8vw,34px);--fs-stat-lh:1.1;--text-caption:var(--fs-body);--text-caption-lh:var(--fs-body-lh);--text-body-sm:var(--fs-body);--text-body-sm-lh:var(--fs-body-lh);--text-body-md:var(--fs-body);--text-body-md-lh:var(--fs-body-lh);--text-body-lg:var(--fs-lead);--text-body-lg-lh:var(--fs-lead-lh);--text-display-sm:var(--fs-subheading);--text-display-sm-lh:var(--fs-subheading-lh);--text-display-md:var(--fs-heading);--text-display-md-lh:var(--fs-heading-lh);--text-display-lg:var(--fs-display);--text-display-lg-lh:var(--fs-display-lh);--text-display-xl:var(--fs-display);--text-display-xl-lh:var(--fs-display-lh);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-0.02em;--tracking-normal:0.01em;--tracking-wide:0.04em;--spacing:4px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-9:36px;--sp-10:40px;--sp-12:48px;--sp-14:56px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--control-h-sm:44px;--control-h-md:44px;--control-h-lg:44px;--control-h-xl:44px;--control-px-sm:12px;--control-px-md:16px;--control-px-lg:20px;--control-px-xl:28px;--height-topnav:64px;--container-content:1080px;--container-narrow:720px;--container-wide:1280px;--shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.08),0 2px 4px -2px rgb(0 0 0 / 0.06);--shadow-lg:0 10px 20px -4px rgb(0 0 0 / 0.10),0 6px 8px -6px rgb(0 0 0 / 0.06);--shadow-xl:0 24px 48px -12px rgb(0 0 0 / 0.18);--duration-fast:120ms;--duration-base:180ms;--duration-slow:280ms;--easing:cubic-bezier(.2,0,0,1);--ring-focus:0 0 0 3px rgb(10 57 112 / 0.20);--page-padding-x:clamp(20px,5vw,64px);--section-padding-y:clamp(64px,9vw,120px) }
*,*::before,*::after { box-sizing:border-box }
html,body { margin:0;padding:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-body-md);line-height:var(--text-body-md-lh);overflow-x:hidden;letter-spacing:var(--tracking-normal);font-feature-settings:'cv11','ss01','palt';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale }
a { color:inherit;text-decoration:none }
button { font-family:inherit;cursor:pointer;border:none;background:none }
img { max-width:100%;display:block }
p { font-size:var(--text-body-md);line-height:var(--text-body-md-lh) }
.card { background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5) }
[data-goto].card--fill,[data-goto].card,[data-goto].card--stack,[data-goto].interview-card,[data-goto].job-card,[data-goto].related-card { position:relative;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing),transform var(--duration-base) var(--easing),background var(--duration-fast) var(--easing) }
[data-goto].card--fill::after,[data-goto].card::after,[data-goto].card--stack::after,[data-goto].interview-card::after,[data-goto].related-card::after { content:'';position:absolute;top:var(--sp-4);right:var(--sp-4);width:20px;height:20px;background-color:var(--muted-foreground);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='7' y1='17' x2='17' y2='7'/><polyline points='7 7 17 7 17 17'/></svg>");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:16px 16px;mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='7' y1='17' x2='17' y2='7'/><polyline points='7 7 17 7 17 17'/></svg>");mask-repeat:no-repeat;mask-position:center;mask-size:16px 16px;pointer-events:none;transition:background-color var(--duration-base) var(--easing),transform var(--duration-base) var(--easing) }
[data-goto].card--fill:hover::after,[data-goto].card:hover::after,[data-goto].card--stack:hover::after,[data-goto].interview-card:hover::after,[data-goto].related-card:hover::after { background-color:var(--primary);transform:translate(2px,-2px) }
[data-goto].card--fill::after { top:auto;bottom:var(--sp-4) }
[data-goto].card--fill:hover::after { transform:translate(2px,2px) }
[data-goto].card--fill:active,[data-goto].card:active,[data-goto].card--stack:active,[data-goto].interview-card:active,[data-goto].job-card:active,[data-goto].related-card:active { background:var(--muted);transform:scale(0.995) }
.kit-section-inner { max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x) }
.kit-section { padding:var(--section-padding-y) 0 }
.kit-section--muted { background:transparent }
.kit-section--muted>.kit-section-inner { background:var(--muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--section-padding-y) var(--page-padding-x) }
.kit-section.kit-section--muted { padding-top:0;padding-bottom:0 }
.kit-section-eyebrow { font-size:var(--text-body-sm);letter-spacing:var(--tracking-wide);color:var(--primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-3) }
.kit-section-title { font-size:var(--text-display-md);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-4);line-height:var(--text-display-md-lh) }
.kit-section-title--lg { font-size:var(--fs-section);line-height:var(--fs-section-lh) }
.kit-section-lede { font-size:var(--text-body-lg);color:var(--muted-foreground);max-width:720px;margin-bottom:var(--sp-10);line-height:var(--text-body-lg-lh) }
.logo { font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);cursor:pointer;color:var(--primary) }
.hero { position:relative;background:var(--card);padding:var(--sp-20) 0 var(--sp-16) }
.hero::after { content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(100% - var(--page-padding-x) * 2,var(--container-content));height:1px;background:var(--border) }
.hero-inner { max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x) }
.hero-title { font-size:var(--text-display-xl);font-weight:var(--font-weight-bold);line-height:var(--text-display-xl-lh);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-6) }
.hero-lead { font-size:var(--text-body-lg);color:var(--muted-foreground);line-height:var(--text-body-lg-lh);max-width:680px;margin:0 0 var(--sp-6) }
.hero-cta-row { display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap }
.product-card-img { background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;color:var(--foreground-subtle);font-size:var(--text-caption);margin-bottom:var(--sp-4);overflow:hidden }
.product-card-img img { width:100%;height:100%;object-fit:cover;display:block }
.kit-service-hero { position:relative;background:var(--card);padding:var(--sp-20) var(--page-padding-x) }
.kit-service-hero>* { max-width:var(--container-content);margin-left:auto;margin-right:auto }
.kit-service-hero-eyebrow { font-size:var(--text-caption);letter-spacing:var(--tracking-wide);color:var(--primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-3) }
.kit-service-hero-title { font-size:var(--text-display-lg);font-weight:var(--font-weight-bold);line-height:var(--text-display-lg-lh);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-5) }
.kit-service-hero-lede { font-size:var(--text-body-lg);color:var(--muted-foreground);max-width:720px;margin:0;line-height:var(--text-body-lg-lh) }
.row-2 { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5) }
.row-3 { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5) }
.row-4 { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5) }
.flow-diagram { display:flex;justify-content:center;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-6) 0 var(--sp-8) }
.flow-box { flex:0 1 180px;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-3);background:var(--card);font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);text-align:center }
.flow-arrow { font-size:var(--text-body-lg);color:var(--foreground-subtle);font-weight:var(--font-weight-bold) }
.card--fill.is-dimmed { opacity:0.35 }
.card--fill.is-matched { border-color:var(--primary);border-width:1.5px }
.card--fill.is-matched .prod-tag.is-match { background:var(--primary);color:var(--primary-foreground);border-color:var(--primary) }
.stat { border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-8) var(--sp-4);text-align:center;background:var(--card) }
.stat-num { font-size:var(--text-display-lg);font-weight:var(--font-weight-bold);color:var(--primary);line-height:1.1;margin-bottom:var(--sp-2);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums }
.stat-label { font-size:var(--text-body-sm);color:var(--muted-foreground) }



.kit-service-hero-split { max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x);display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-16);align-items:center }


.img-ph { background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--foreground-subtle);font-size:var(--text-body-sm) }
.kit-section--centered .kit-section-eyebrow,.kit-section--centered .kit-section-title,.kit-section--centered .kit-section-lede { text-align:left }
.kit-section--centered .kit-section-lede { margin-left:auto;margin-right:auto }
.overview-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12);align-items:center }
.overview-meta { margin-top:var(--sp-5);border-top:1px solid var(--border);padding-top:var(--sp-3) }
.overview-meta-row { display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);font-size:var(--text-body-md) }
.overview-meta-row span:first-child { width:auto;font-size:var(--text-caption);color:var(--muted-foreground);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase }
.overview-meta-row span:last-child { width:100%;color:var(--foreground);line-height:1.6 }
.feature-card-img { height:auto;aspect-ratio:16 / 10;width:100% }
.feature-card-body h4 { font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-2) }
.feature-card-body p { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin:0 }
.scope-card { border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-10);background:var(--card) }
.scope-card.is-can { border-left:4px solid var(--primary) }
.scope-card.is-cannot { border-left:4px solid var(--border-strong);background:var(--muted) }
.scope-card.is-neutral { border-left:4px solid var(--primary);background:var(--card) }
.scope-card h4 { font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border) }
.scope-card ul { list-style:none;padding:0;margin:0 }
.scope-card li { padding:var(--sp-2) 0 var(--sp-2) var(--sp-5);position:relative;font-size:var(--text-body-md);color:var(--foreground);line-height:var(--text-body-md-lh) }
.scope-card.is-can li::before,.scope-card.is-neutral li::before { content:"✓";position:absolute;left:0;color:var(--primary);font-weight:var(--font-weight-bold) }
.scope-card.is-cannot li::before { content:"—";position:absolute;left:0;color:var(--foreground-subtle) }
.num-badge { display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--primary);width:36px;height:36px;font-weight:var(--font-weight-bold);font-size:var(--text-body-lg);color:var(--primary);margin-bottom:var(--sp-4);border-radius:var(--radius-md);font-variant-numeric:tabular-nums }
.dark-cta { background:transparent;padding:var(--sp-12) var(--page-padding-x) }
.dark-cta-inner { max-width:var(--container-content);margin:0 auto;background:var(--primary);color:var(--primary-foreground);padding:var(--sp-20) var(--sp-8);border-radius:var(--radius-lg) }
.dark-cta-eyebrow { font-size:var(--text-caption);color:rgb(255 255 255 / 0.80);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3);font-weight:var(--font-weight-semibold) }
.dark-cta h3 { font-size:var(--text-display-md);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-4);line-height:var(--text-display-md-lh);letter-spacing:var(--tracking-tight);color:var(--primary-foreground) }
.dark-cta p { font-size:var(--text-body-lg);color:rgb(255 255 255 / 0.80);margin:0 0 6px }
.dark-cta .meta { font-size:var(--text-body-md);color:rgb(255 255 255 / 0.65);margin-bottom:var(--sp-8) }
.dark-cta .button { background:transparent;color:var(--primary-foreground);border-color:rgb(255 255 255 / 0.80) }
.dark-cta .button:hover { background:var(--primary-hover);border-color:var(--primary-foreground) }
.dark-cta .button--primary { background:var(--primary-foreground);color:var(--primary);border-color:var(--primary-foreground) }
.dark-cta .button--primary:hover { background:var(--muted);color:var(--primary) }
body.is-top-page .hero { background:var(--primary);color:var(--primary-foreground) }
body.is-top-page .kit-service-hero-eyebrow { color:rgb(255 255 255 / 0.85) }
body.is-top-page .hero-title { color:var(--primary-foreground) }
body.is-top-page .hero-lead { color:rgb(255 255 255 / 0.85) }
body.is-top-page .hero::after { display:none }
body.is-top-page .hero-stats { background:var(--primary) }
body.is-top-page .hero-stat-num,body.is-top-page .hero-stat-num .unit { color:var(--primary-foreground) }
body.is-top-page .hero .button--primary { background:var(--primary-foreground);color:var(--primary);border-color:var(--primary-foreground) }
body.is-top-page .hero .button--primary:hover { background:var(--muted);border-color:var(--muted) }
body.is-top-page .hero .button--outline { background:transparent;color:var(--primary-foreground);border-color:rgb(255 255 255 / 0.60) }
body.is-top-page .hero .button--outline:hover { background:rgb(255 255 255 / 0.10);border-color:var(--primary-foreground) }
.related-card { border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-10) var(--sp-5) var(--sp-5);background:var(--card);font-size:var(--text-body-md);cursor:pointer;transition:border-color var(--duration-base) var(--easing),transform var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing);display:flex;flex-direction:column;gap:var(--sp-2);min-height:96px }
.related-card:hover { border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-sm) }
.related-card-name { font-weight:var(--font-weight-bold);font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);color:var(--foreground) }
.related-card-summary { font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.6;margin:0 }
.related-card--all { background:var(--muted);border-style:dashed;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left }
.related-card--all .related-card-name { color:var(--primary) }
.related-card--all .related-card-summary { color:var(--primary);font-weight:var(--font-weight-semibold) }


.info-table { width:100%;border-collapse:collapse;border-top:1px solid var(--border) }
.info-table th,.info-table td { border-bottom:1px solid var(--border);padding:var(--sp-3) var(--sp-4);font-size:var(--text-body-md);text-align:left;vertical-align:top }
.info-table th { background:var(--muted);color:var(--muted-foreground);width:200px;font-weight:var(--font-weight-semibold) }
.info-table td { color:var(--foreground) }
.access-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12) }
.access-map { height:280px }
.access-info dt { font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:0.05em;margin-top:var(--sp-3);font-weight:var(--font-weight-semibold) }
.access-info dt:first-of-type { margin-top:0 }
.access-info dd { font-size:var(--text-body-md);color:var(--foreground);margin:4px 0 0;line-height:var(--text-body-md-lh) }
.timeline { margin:0 }
.timeline-item { display:grid;grid-template-columns:160px 1fr;gap:var(--sp-8);padding:var(--sp-5) 0;border-bottom:1px solid var(--border);align-items:start }
.timeline-year { font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--primary);letter-spacing:0.05em;font-variant-numeric:tabular-nums }


.culture-img { height:300px }
.culture-list { font-size:var(--text-body-md);color:var(--foreground);line-height:2.2;padding-left:var(--sp-5) }
.card--fill h4 { font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-2) }
.card--fill p { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin:0 }
.job-card { border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);background:var(--card);display:grid;grid-template-columns:1fr;gap:var(--sp-6);align-items:center;margin-bottom:var(--sp-3) }


.process-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2);margin:var(--sp-6) 0 }
.process-step { border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-3);background:var(--card);text-align:center;position:relative }
.process-step>.card-eyebrow { font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:0.1em;display:block;margin-bottom:var(--sp-2);font-weight:var(--font-weight-semibold) }
.process-step>.card-label { font-weight:var(--font-weight-bold);font-size:var(--fs-lead);color:var(--foreground);line-height:1.5 }
.news-list { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg) }
.kit-news-item { display:grid;grid-template-columns:130px 1fr auto;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);align-items:center;font-size:var(--text-body-md);cursor:pointer;transition:background var(--duration-fast) ease }
.kit-news-item:last-child { border-bottom:none }
.kit-news-item:hover { background:var(--accent) }
.kit-news-date { color:var(--muted-foreground);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:0.05em }
.kit-news-title { color:var(--foreground);font-weight:var(--font-weight-regular) }
.news-arrow { color:var(--foreground-subtle);font-size:var(--text-body-lg) }
.chat-dock-collapse { margin-left:auto;border:none;background:transparent;color:var(--muted-foreground);cursor:pointer;font-size:var(--text-body-md);padding:4px 8px;border-radius:var(--radius-sm);display:none;line-height:1 }
.chat-dock-collapse:hover { color:var(--foreground);background:var(--accent) }
.chat-dock.is-expanded .chat-dock-collapse { display:inline-block }
.chat-dock-body { display:none;padding:var(--sp-4);background:var(--muted);max-height:320px;overflow-y:auto }
.chat-dock.is-expanded .chat-dock-body { display:block }
.chat-dock.is-sales-mode .chat-dock-collapse { color:rgb(255 255 255 / 0.80) }
@media (max-width:768px) {
.chat-dock-collapse { color:rgb(255 255 255 / 0.85) }
}
@media (max-width:900px) {
.hero-lead { font-size:var(--text-body-md) }
.hero { padding:var(--sp-12) 0 var(--sp-10) }
.hero .button--xl { --_h:var(--control-h-lg);--_px:var(--control-px-lg);--_fs:var(--text-body-md);border-radius:var(--radius-md) }

.kit-service-hero-split { grid-template-columns:1fr;gap:var(--sp-6) }

.kit-service-hero { padding:var(--sp-12) var(--page-padding-x) }
.kit-service-hero-lede { font-size:var(--text-body-md) }
.kit-section-lede { font-size:var(--text-body-md) }
.row-3,.row-4,.row-5 { grid-template-columns:repeat(2,1fr) }
.kit-section { padding:var(--sp-10) 0 }
.kit-section--muted>.kit-section-inner { padding:var(--sp-10) var(--page-padding-x) }
.hero-stats { padding:0 }
.dark-cta { padding:var(--sp-8) var(--page-padding-x) }
.dark-cta-inner { padding:var(--sp-10) var(--sp-6) }
.dark-cta p { font-size:var(--text-body-md) }
.cv-card { padding:var(--sp-6) }
.row-2>*,.row-3>*,.row-4>*,.row-5>*,.card--stack>*,.overview-grid>*,.philosophy-grid>*,.ceo-grid>*,.access-grid>*,.timeline-item>*,.kit-news-item>*,.kit-service-hero-split>*,.hero-stats>*{ min-width:0 }
.feature-card-img { aspect-ratio:16 / 10 }
.overview-grid { grid-template-columns:1fr;gap:var(--sp-8) }
.access-grid { grid-template-columns:1fr;gap:var(--sp-6) }
.timeline-item { grid-template-columns:1fr;gap:var(--sp-2) }

.kit-news-item { grid-template-columns:1fr auto;grid-template-areas:"date date" "title arrow";column-gap:var(--sp-3);row-gap:var(--sp-2);padding:var(--sp-4);align-items:center }
.kit-news-item .kit-news-date { grid-area:date;font-size:var(--text-body-sm) }
.kit-news-item .kit-news-title { grid-area:title;font-size:var(--text-body-lg);line-height:1.5;font-weight:var(--font-weight-medium) }
.kit-news-item .news-arrow { grid-area:arrow }
.industry-tabs { margin:var(--sp-3) 0 var(--sp-6) }
.industry-tab { flex-shrink:0;padding:0 var(--sp-3);height:44px;font-size:var(--text-body-sm) }
}
@media (max-width:640px) {
.row-2,.row-3,.row-4,.row-5 { grid-template-columns:1fr }
.hero-cta-row { flex-direction:column;align-items:stretch;gap:var(--sp-2) }
.hero-cta-row .button { width:100% }
.dark-cta .flex-row { flex-direction:column;align-items:stretch;gap:var(--sp-2) }
.dark-cta .flex-row .button { width:100% }
.kit-section>.kit-section-inner>.button,.kit-section>.kit-section-inner>.flex-row>.button,.business-block>.button { width:100% }
.hero { padding:var(--sp-10) 0 var(--sp-8) }
.hero-lead { font-size:var(--text-body-md);margin-bottom:var(--sp-5) }
body.is-top-page .hero-cta-row { display:none }
body.is-top-page .hero { padding:var(--sp-8) 0 var(--sp-6) }


.kit-service-hero-split { gap:var(--sp-5) }
.kit-service-hero { padding:var(--sp-10) var(--page-padding-x) }
.kit-section-lede { text-align:left }
.dark-cta p { text-align:left }
.kit-section-title { margin-bottom:var(--sp-3) }
.kit-section-lede { font-size:var(--text-body-md);margin-bottom:var(--sp-6) }
.kit-section-eyebrow { margin-bottom:var(--sp-2) }
.kit-service-hero-title,.stub-title{ padding:var(--sp-10) 0 var(--sp-8) }
.dark-cta { padding:var(--sp-6) var(--page-padding-x) }
.dark-cta-inner { padding:var(--sp-8) var(--sp-4) }
.kit-section { padding:var(--sp-8) 0 }
.kit-section--muted>.kit-section-inner { padding:var(--sp-8) var(--page-padding-x) }
.hero-stats-inner,.dark-cta-inner { margin-left:0;margin-right:0 }
.cv-page { padding:var(--sp-6) 0 var(--sp-10) }
.cv-card { padding:var(--sp-5) var(--sp-4) }
.cv-radio-item { padding:var(--sp-3) var(--sp-4) }
.cv-field { margin-bottom:var(--sp-5) }
.cv-consent { margin:var(--sp-6) 0 var(--sp-4) }
.cv-consent label { padding:var(--sp-4) }
.cv-page .cv-meta-row { display:none }
.cv-page .cv-header { margin-bottom:var(--sp-6);text-align:left }
.cv-page .cv-lead { line-height:1.7;text-align:left }
:root { --page-padding-x:24px }
.button:not(.nav-cta):not(.nav-cta--mobile):not(.chat-dock-send):not(.chat-suggest-chip):not(.chip):not(.industry-tab):not(.news-filter-btn):not(.job-filter-btn):not(.pg-btn):not(.tab):not(.btn-icon) { width:100% }
.flex-row { flex-wrap:wrap }
.hero-cta-row,.dark-cta .flex-row,.product-hero-cta-row,.business-block+.flex-row { flex-direction:column;align-items:stretch }
}
@media (max-width:480px) {
.kit-section { padding:var(--sp-6) 0 }
.kit-section--muted>.kit-section-inner { padding:var(--sp-6) var(--page-padding-x) }
.hero { padding:var(--sp-8) 0 var(--sp-6) }
.dark-cta { padding:var(--sp-4) var(--page-padding-x) }
.dark-cta-inner { padding:var(--sp-6) var(--sp-4) }
.cv-card { padding:var(--sp-4) var(--sp-3) }
.cv-field { margin-bottom:var(--sp-4) }
.cv-page { padding:var(--sp-5) 0 var(--sp-8) }
.legal-page { padding:var(--sp-6) 0 var(--sp-8) }
.news-detail-page { padding:var(--sp-6) 0 var(--sp-8) }
.kit-service-hero { padding:var(--sp-10) var(--page-padding-x) }


}
.page-screen { display:none }
.page-screen.is-active { display:block }
.text-center { text-align:left }
.card.text-center { text-align:center }
.nowrap { white-space:nowrap }
.mt-6 { margin-top:var(--sp-6) }
.mt-8 { margin-top:var(--sp-8) }
.mb-5 { margin-bottom:var(--sp-5) }
.flex-row { display:flex;gap:var(--sp-3);flex-wrap:wrap }
.flex-center { justify-content:flex-start }
.card-label { font-weight:600;font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);margin-bottom:var(--sp-2) }

.card-desc { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7 }
.card-desc--loose { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:2 }
.card-eyebrow { font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-2);font-weight:600 }
.text-primary-bold { color:var(--primary);font-weight:600 }
.body-sm-loose { font-size:var(--text-body-md);line-height:1.9;color:var(--muted-foreground) }
.lead-narrow { margin:0 auto var(--sp-8) }
.mt-2 { margin-top:var(--sp-2) }
.mt-4 { margin-top:var(--sp-4) }
.img-ph-dashed { background:var(--muted);border-style:dashed }
.card-desc--bordered { margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7 }
.card-desc--with-mb { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7;margin-bottom:var(--sp-4) }
.text-fg { color:var(--foreground) }
.link-underline { cursor:pointer;text-decoration:underline }
.cursor-pointer { cursor:pointer }

.h-260 { height:260px }
.h-280 { height:280px }
.legal-page { padding:var(--sp-12) 0 var(--sp-16) }
.legal-container { max-width:var(--container-narrow);margin:0 auto;padding:0 var(--page-padding-x) }
.legal-lead { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.9;margin-bottom:var(--sp-10);padding-bottom:var(--sp-6);border-bottom:1px solid var(--border) }
.legal-section { margin-bottom:var(--sp-10) }

.prose { font-size:var(--text-body-md);color:var(--foreground);line-height:1.95 }
.prose p { margin-bottom:var(--sp-4) }
.prose ol { padding-left:var(--sp-5);margin-bottom:var(--sp-4) }
.prose ol>li { margin-bottom:var(--sp-3);line-height:1.95 }
.prose ol ol { margin-top:var(--sp-2);list-style:lower-roman }
.prose ul { padding-left:var(--sp-5);margin-bottom:var(--sp-4);list-style:disc }
.prose ul>li { margin-bottom:var(--sp-2);line-height:1.95 }
.legal-meta { margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--border);font-size:var(--text-body-md);color:var(--muted-foreground) }
.legal-table { width:100%;border-collapse:collapse;margin:var(--sp-6) 0;font-size:var(--text-body-md) }
.legal-table th,.legal-table td { border:1px solid var(--border);padding:var(--sp-3) var(--sp-4);text-align:left;vertical-align:top;line-height:1.85 }
.legal-table th { background:var(--muted);font-weight:var(--font-weight-semibold);color:var(--foreground);width:35%;white-space:normal }
.legal-table td { background:var(--background);color:var(--foreground) }
body.is-cv-page .site-header .header-nav,body.is-cv-page .site-header .header-actions,body.is-cv-page .header-mobile-actions,body.is-cv-page .site-header .hamburger,body.is-cv-page .megamenu,body.is-cv-page .mobile-drawer,body.is-cv-page .chat-dock,body.is-cv-page .site-footer,body:has(#screen-contact.is-active) .site-header .header-nav,body:has(#screen-contact.is-active) .site-header .header-actions,body:has(#screen-contact.is-active) .header-mobile-actions,body:has(#screen-contact.is-active) .site-header .hamburger,body:has(#screen-contact.is-active) .megamenu,body:has(#screen-contact.is-active) .mobile-drawer,body:has(#screen-contact.is-active) .chat-dock,body:has(#screen-contact.is-active) .site-footer { display:none !important }
body.is-cv-page .site-header,body:has(#screen-contact.is-active) .site-header { background:var(--muted) !important;border-bottom:none !important;position:relative !important }
body.is-cv-page .header-inner,body:has(#screen-contact.is-active) .header-inner { justify-content:center !important;gap:0 !important }
body.is-cv-page,body:has(#screen-contact.is-active) { padding-bottom:0 !important }
.cv-page { padding:var(--sp-12) 0 var(--sp-20);background:var(--muted);min-height:calc(100vh - var(--height-topnav)) }
.cv-container { max-width:720px;margin:0 auto;padding:0 var(--page-padding-x) }
.cv-header { margin-bottom:var(--sp-10) }
.cv-lead { font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.85 }
.cv-meta-row { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--border) }
.cv-meta-item { font-size:var(--text-body-sm);color:var(--muted-foreground) }
.cv-meta-item strong { display:block;color:var(--foreground);font-weight:var(--font-weight-semibold);margin-bottom:4px;font-size:var(--text-caption);letter-spacing:var(--tracking-wide) }
.cv-card { background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-10);box-shadow:var(--shadow-md) }
@media (max-width:600px) {
.cv-card { padding:var(--sp-6) }
}
.cv-field { margin-bottom:var(--sp-6) }
.cv-label { display:block;font-size:var(--text-body-sm);font-weight:var(--font-weight-regular);color:var(--foreground);margin-bottom:var(--sp-2) }
.cv-label-required::after { content:'*';display:inline-block;margin-left:4px;color:var(--destructive);font-size:1.1em;font-weight:var(--font-weight-regular);vertical-align:middle;line-height:1 }
.cv-label-optional::after { content:none }
.cv-input,.cv-select,.cv-textarea { width:100%;height:var(--control-h-lg);padding:0 var(--control-px-md);border:1px solid var(--input);border-radius:var(--radius-md);background:var(--background);color:var(--foreground);font-size:var(--text-body-md);font-family:var(--font-sans);transition:border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing) }
.cv-input:focus,.cv-select:focus,.cv-textarea:focus { outline:none;border-color:var(--primary);box-shadow:var(--ring-focus) }
.cv-textarea { height:auto;min-height:120px;padding:var(--sp-3) var(--control-px-md);resize:vertical;line-height:1.7 }
.cv-radio-group { display:flex;flex-direction:column;gap:var(--sp-2) }
.cv-radio-item { display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--easing);font-size:var(--text-body-md);background:var(--background) }
.cv-radio-item:hover { border-color:var(--primary);background:var(--accent) }
.cv-radio-item input { flex-shrink:0;accent-color:var(--primary);margin:0 }
.cv-consent { padding:0;background:var(--muted);border-radius:var(--radius-md);margin:var(--sp-8) 0 var(--sp-5);font-size:var(--text-body-md);line-height:1.85 }
.cv-consent label { display:flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;padding:var(--sp-5) }
.cv-consent input { margin-top:4px;flex-shrink:0;accent-color:var(--primary) }
.cv-consent a,.cv-consent [data-spa-go] { color:var(--primary);text-decoration:underline }
.cv-submit { width:100%;height:var(--control-h-xl);background:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-md);font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:opacity var(--duration-base) var(--easing);font-family:var(--font-sans) }
.cv-submit:hover { opacity:0.92 }
.cv-submit:disabled { opacity:0.6;cursor:wait }
.cv-thanks { text-align:center;padding:var(--sp-12) var(--sp-4) var(--sp-8) }
.cv-thanks-icon { width:80px;height:80px;border-radius:50%;background:color-mix(in oklab,var(--primary) 12%,white);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;margin:0 auto var(--sp-7);line-height:1 }
.cv-thanks-title { font-size:var(--fs-heading);font-weight:700;letter-spacing:var(--tracking-tight);margin:0 0 var(--sp-5);color:var(--fg);line-height:var(--fs-heading-lh) }
.cv-thanks-lead { color:var(--muted-foreground);line-height:1.85;margin:0 0 var(--sp-5);max-width:540px }
.cv-trust-row { display:flex;justify-content:center;gap:var(--sp-6);margin-top:var(--sp-6);flex-wrap:wrap;font-size:var(--text-body-sm);color:var(--muted-foreground) }
.cv-trust-item { display:flex;align-items:center;gap:4px }
.cv-mini-footer { margin-top:var(--sp-10);padding-top:var(--sp-5);border-top:1px solid var(--border);text-align:center;font-size:var(--text-caption);color:var(--muted-foreground) }
.cv-mini-footer a,.cv-mini-footer [data-spa-go] { color:var(--muted-foreground);text-decoration:underline;margin:0 var(--sp-2) }
.news-detail-page { padding:var(--sp-12) 0 var(--sp-16) }
.news-detail-container { max-width:760px;margin:0 auto;padding:0 var(--page-padding-x) }
.news-breadcrumb { font-size:var(--text-caption);color:var(--muted-foreground);margin-bottom:var(--sp-6) }
.news-breadcrumb a,.news-breadcrumb span[data-goto],.news-breadcrumb [data-spa-go] { color:var(--muted-foreground);cursor:pointer }
.news-breadcrumb a:hover,.news-breadcrumb span[data-goto]:hover,.news-breadcrumb [data-spa-go]:hover { color:var(--primary) }
.news-detail-meta { display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4) }
.news-hero-image { width:100%;height:320px;background:var(--muted);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--foreground-subtle);font-size:var(--text-body-sm);margin:var(--sp-6) 0 var(--sp-10) }
.prose { font-size:var(--text-body-md);color:var(--foreground);line-height:1.95 }
.prose p { margin-bottom:var(--sp-5) }
.prose h2 { font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin:var(--sp-10) 0 var(--sp-4);padding-bottom:var(--sp-2);border-bottom:2px solid var(--primary);letter-spacing:var(--tracking-tight) }
.prose h3 { font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);margin:var(--sp-6) 0 var(--sp-3) }
.prose ul { padding-left:var(--sp-5);margin-bottom:var(--sp-5);list-style:disc }
.prose ul>li { margin-bottom:var(--sp-2);line-height:1.85 }
.prose blockquote { border-left:3px solid var(--primary);padding:var(--sp-3) var(--sp-5);margin:var(--sp-6) 0;background:var(--muted);color:var(--muted-foreground);font-size:var(--text-body-md);font-style:italic }
.news-detail-footer { margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--border) }
.news-related { margin-top:var(--sp-12);padding-top:var(--sp-10);border-top:1px solid var(--border) }
.logo-cell { min-height:64px;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted-foreground);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);letter-spacing:0.02em;text-align:center;padding:var(--sp-3) var(--sp-2);opacity:0.7 }
.dual-business { padding:var(--sp-16) 0;background:var(--muted) }
.challenge-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-8) }
.challenge-icon { width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:var(--font-weight-bold);font-family:var(--font-sans);margin-bottom:var(--sp-4) }
@media (max-width:768px) {
.challenge-grid { grid-template-columns:1fr }
}



body.is-top-page .kit-service-hero-eyebrow { font-size:var(--fs-body);letter-spacing:0.18em;font-weight:var(--font-weight-medium);text-transform:none;margin-bottom:var(--sp-5);opacity:0.7 }
body.is-top-page .hero-title { font-size:var(--fs-hero);font-weight:900;line-height:var(--fs-hero-lh);letter-spacing:-0.04em;margin-bottom:var(--sp-6);text-shadow:0 1px 2px rgb(0 0 0 / 0.08) }
body.is-top-page .hero-lead { font-size:var(--fs-lead);line-height:var(--fs-lead-lh);font-weight:var(--font-weight-regular);letter-spacing:0.01em;color:rgb(255 255 255 / 0.72);max-width:none;margin-left:0;margin-right:0 }
body.is-top-page .hero { padding:clamp(72px,10vw,140px) 0 clamp(72px,10vw,120px) }
@media (max-width:768px) {
body.is-top-page .hero { padding:72px 0 60px }
}
@media (max-width:480px) {
body.is-top-page .hero { padding:64px 0 56px }
}
@media (max-width:768px) {
.overview-meta-row { flex-direction:column;align-items:flex-start;gap:2px;padding:var(--sp-3) 0 }
.overview-meta-row span:first-child { width:auto;font-size:var(--text-caption);color:var(--muted-foreground);margin-bottom:2px }
.overview-meta-row span:last-child { width:100% }
}
.kit-section+.kit-section { padding-top:0 }
.kit-section+.kit-section.kit-section--muted,.kit-section.kit-section--muted+.kit-section { padding-top:var(--section-padding-y) }
.kit-section.kit-section--muted+.kit-section.kit-section--muted { padding-top:0 }
.hero,.kit-service-hero,.cv-header,.legal-header{ text-align:left }
.hero-inner,.kit-service-hero-inner,.kit-service-hero-split{ text-align:left }
.hero-lead,.kit-service-hero-lede,.product-hero-lead{ margin-left:max(0px,(100% - var(--container-content)) / 2);margin-right:0 }
.strengths-section .kit-section-eyebrow,.strengths-section .kit-section-title,.strengths-section .kit-section-title--lg,.strengths-section .kit-section-lede { text-align:left;margin-left:0;margin-right:0 }
.kit-section--centered .kit-section-eyebrow,.kit-section--centered .kit-section-title,.kit-section--centered .kit-section-title--lg,.kit-section--centered .kit-section-lede { text-align:left;margin-left:0;margin-right:0 }
.kit-section-title.text-center,.kit-section-title--lg.text-center,.kit-section-eyebrow.text-center,.kit-section-lede.text-center { text-align:left;margin-left:0;margin-right:0 }
.news-section .kit-section-title,.news-section .kit-section-title--lg { text-align:left }
.cv-header { text-align:left }
.cv-lead { text-align:left;margin-left:0;margin-right:0 }
@media (max-width:900px) {
.news-filter-btn,.job-filter-btn,.pg-btn,.industry-tab { height:44px;min-height:44px }
.kit-section { padding:var(--sp-16) 0 !important }
.kit-section--muted>.kit-section-inner { padding-top:var(--sp-16);padding-bottom:var(--sp-16) }
.kit-section+.kit-section { padding-top:var(--sp-8) !important }
.hero { padding:var(--sp-16) 0 var(--sp-12) !important }
.kit-service-hero { padding-top:var(--sp-16);padding-bottom:var(--sp-16) }


.kit-section-title { margin-bottom:var(--sp-5) !important }
.kit-section-lede { margin-bottom:var(--sp-10) }
.kit-section-eyebrow { margin-bottom:var(--sp-3) }
.row-2,.row-3,.row-4 { gap:var(--sp-6) }




.dark-cta { padding-top:var(--sp-12);padding-bottom:var(--sp-12) }
.dark-cta-inner { padding:var(--sp-12) var(--sp-6) }
.dark-cta h3 { margin-bottom:var(--sp-5) }
.dark-cta .meta { margin-bottom:var(--sp-8) }
.dual-business { padding:var(--sp-14) 0 }
.challenge-grid { gap:var(--sp-5);margin-top:var(--sp-10) }
.challenge-icon { margin-bottom:var(--sp-5) }
.product-card-img { margin-bottom:var(--sp-5) }
.card { padding:var(--sp-6) }
.kit-news-item { padding:var(--sp-5) }
.prose p { margin-bottom:var(--sp-6) }
.prose h2 { margin:var(--sp-12) 0 var(--sp-5) }
p { line-height:1.85 }
.related-card { padding:var(--sp-5) }
.row-4.mb-5 { margin-bottom:var(--sp-6) }
.job-card { padding:var(--sp-7);margin-bottom:var(--sp-4) }

.timeline-item { padding:var(--sp-6) 0 }
}
@media (max-width:480px) {
.kit-section { padding:var(--sp-12) 0 !important }
.kit-section--muted>.kit-section-inner { padding-top:var(--sp-12);padding-bottom:var(--sp-12) }
.hero { padding:var(--sp-12) 0 var(--sp-10) !important }
.kit-service-hero { padding-top:var(--sp-12);padding-bottom:var(--sp-12) }


.dual-business { padding:var(--sp-12) 0 }
.dark-cta-inner { padding-top:var(--sp-10);padding-bottom:var(--sp-10);padding-left:var(--sp-5);padding-right:var(--sp-5) }
.card { padding:var(--sp-5) }
:root { --page-padding-x:20px }
}
@media (max-width:768px) {
body .dual-business { padding-top:var(--sp-14);padding-bottom:var(--sp-14) }


body .hero { padding-top:var(--sp-16) !important;padding-bottom:var(--sp-12) !important }
body .dark-cta { padding-top:var(--sp-12);padding-bottom:var(--sp-12) }
body .kit-service-hero { padding-top:var(--sp-16);padding-bottom:var(--sp-16) }
}
.kit-news-item .kit-news-title { font-size:var(--text-body-md);line-height:1.55;font-weight:var(--font-weight-medium) }
.chat-dock-collapse { color:rgb(255 255 255 / 0.85) }
.chat-dock-collapse:hover { color:var(--primary-foreground);background:rgb(255 255 255 / 0.10) }
@media (max-width:900px) {
html body .kit-service-hero-split,html body .hero-inner{ display:flex; flex-direction:column; align-items:stretch; gap:var(--sp-8); }

html body .kit-service-hero-split > .img-ph,html body .kit-service-hero-split > [data-image-slot],html body .hero-inner > .img-ph,html body .hero-inner > [data-image-slot]{ width:100%; max-width:100%; margin-left:0; margin-right:0; box-sizing:border-box; align-self:stretch; }
html body main.page-screen .img-ph,html body main.page-screen [data-image-slot]:not(.tp-prod-shot) { width:100%; max-width:100%; height:auto !important; min-height:0; margin-left:0; margin-right:0; box-sizing:border-box; display:block; overflow:hidden; }
html body main.page-screen .img-ph:not([style*="aspect-ratio"]),html body main.page-screen [data-image-slot]:not(.tp-prod-shot):not([style*="aspect-ratio"]) { aspect-ratio:auto !important }
html body main.page-screen .img-ph > img,html body main.page-screen [data-image-slot]:not(.tp-prod-shot) > img,html body main.page-screen .img-ph picture img,html body main.page-screen [data-image-slot]:not(.tp-prod-shot) picture img { width:100%; height:auto; max-height:100%; object-fit:contain; display:block; margin:0 auto; }
}
.flow-diagram--with-list { align-items:stretch;flex-wrap:nowrap }
.flow-diagram--with-list .flow-arrow { display:flex;align-items:center;justify-content:center }
.flow-diagram--with-list .flow-box { flex:1 1 0;min-width:0;display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-3);text-align:center }
.flow-box-title { font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);padding-bottom:var(--sp-2);margin-bottom:var(--sp-3);border-bottom:1px solid var(--border);line-height:1.4 }
.flow-box-list { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1);font-weight:var(--font-weight-normal);font-size:12.5px;color:var(--muted-foreground) }
.flow-box-list li { font-size:var(--text-body-sm);line-height:1.5;word-break:break-word }
.flow-box-list .link-underline { color:var(--foreground) }
.flow-box-list .link-underline:hover { color:var(--primary) }
@media (max-width:640px) {
html body main.page-screen .flow-diagram { flex-direction: column; align-items: stretch; gap: var(--sp-2); width: 100%; }
html body main.page-screen .flow-diagram .flow-box { flex: 1 1 auto; width: 100%; max-width: 100%; }
html body main.page-screen .flow-diagram .flow-arrow { transform: rotate(90deg); align-self: center; }
}
@media (max-width:900px) {
html body main.page-screen .cv-container { padding-top: var(--sp-4); }
html body main.page-screen .kit-section-title { padding: 0 0 var(--sp-3); }
html body main.page-screen .cv-header { margin-bottom: var(--sp-6); }
}
html body .mm-grid-solutions--wide { grid-template-columns:repeat(4, minmax(0,1fr)); max-width:1080px; }
@media (max-width:1100px) {
html body .mm-grid-solutions--wide { grid-template-columns:repeat(3, minmax(0,1fr));max-width:900px; }
}
html body main.page-screen .card[role="link"] { cursor:pointer;transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) ease; }
html body main.page-screen .card[role="link"]:hover { border-color:var(--primary);background:var(--primary-soft); }
html body main.page-screen .card[role="link"]:active { transform:scale(0.997); }
.ds-card-arrow { display:inline-block;margin-top:var(--sp-4);color:var(--primary);font-weight:var(--font-weight-bold);font-size:var(--text-body-sm); }
.industry-grid { display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:var(--sp-5); }
@media (max-width:900px) {
.industry-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
.industry-grid { grid-template-columns:1fr; }
}
.coverage-note { color:var(--muted-foreground);font-size:var(--text-body-sm);margin-top:var(--sp-5);line-height:1.7; }
.flex-row.flex-between { justify-content:space-between; }
html body main.page-screen .kit-section-eyebrow,html body main.page-screen .kit-service-hero-eyebrow { font-family: var(--font-sans); font-size: 12px; font-weight: var(--font-weight-medium); letter-spacing: 0.18em; color: var(--muted-foreground); display: flex; align-items: center; gap: 12px; margin-bottom: var(--sp-5); }
html body main.page-screen .kit-section-eyebrow::before,html body main.page-screen .kit-service-hero-eyebrow::before { content: ""; width: 32px; height: 1.5px; background: var(--primary); flex: none; }
html body main.page-screen .kit-service-hero-eyebrow,html body main.page-screen .dark-cta-eyebrow { font-family: var(--font-sans); letter-spacing: 0.18em; font-weight: var(--font-weight-medium); font-size: 12px; }
html body main.page-screen .card-eyebrow{ font-family: var(--font-sans); letter-spacing: 0.1em; color: var(--muted-foreground); font-size: 11.5px; }
html body main.page-screen .kit-section-title,html body main.page-screen .kit-section-title--lg,html body main.page-screen .kit-service-hero-title { letter-spacing: -0.02em; }
html body main.page-screen .stat { border: none !important; border-top: 2px solid var(--primary); border-radius: 0; background: transparent; text-align: left; padding: var(--sp-5) 0 0 0; }
html body main.page-screen .stat-num { font-size: clamp(28px, 2.4vw, 38px); letter-spacing: -0.04em; white-space: nowrap; margin-bottom: var(--sp-3); }
html body main.page-screen .stat-num .stat-num-suffix { font-size:0.42em;font-weight:var(--font-weight-bold);letter-spacing:0 }
html body main.page-screen .stat-label { font-family: var(--font-sans); font-size: 11.5px; letter-spacing: 0.08em; line-height: 1.5; color: var(--muted-foreground); }
@media (max-width:560px) {
html body main.page-screen .row-4 { grid-template-columns:1fr 1fr;gap:var(--sp-6) var(--sp-8); }
}
html body main.page-screen .card { border-color: var(--border); box-shadow: none; }
html body main.page-screen .industry-grid .card-eyebrow { color:var(--foreground-subtle); }
html body main.page-screen .flex-row.flex-between { border-bottom:1px solid var(--border);padding-bottom:var(--sp-5); }
html body main.page-screen > section.kit-section--muted > .kit-section-inner > .flex-row.flex-between { max-width:min(1080px, calc(100% - var(--page-padding-x) * 2));padding-left:calc(0vw);padding-right:calc(0vw); }
@media (max-width:900px) and (min-width:481px) {
html body main.page-screen .challenge-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); }
html body main.page-screen .challenge-grid > .card--stack:nth-child(3) { grid-column:1 / 2; }
}
html body .hero::after,html body .kit-service-hero::after{ display:none }
html body .kit-section--muted > .kit-section-inner { border-top:none !important;border-bottom:none !important }

html body .info-table,html body .info-table th,html body .info-table td { font-size:var(--fs-body) }
html body .info-table tr { display:block;border-bottom:1px solid var(--border);padding:var(--sp-4) 0 }
html body .info-table tr:first-child { border-top:1px solid var(--border) }
html body .info-table th,html body .info-table td { display:block;width:auto;border-bottom:none !important;padding:0;background:transparent }
html body .info-table th { color:var(--muted-foreground);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-2);font-size:var(--fs-body);letter-spacing:var(--tracking-wide) }
html body .info-table td { color:var(--foreground);line-height:1.7 }

html body .card .card-desc--with-mb { font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7 }
html body .scope-card { padding:var(--sp-8) var(--sp-7) }
html body .card--spacious { padding:var(--sp-10) var(--sp-6) }
html body .card--spacious { padding:var(--sp-8) var(--sp-6) }
html body .card--spacious { padding:var(--sp-8) var(--sp-6) }
@media (max-width:768px) {
html body .scope-card { padding:var(--sp-6) var(--sp-5) }
html body .card--spacious { padding:var(--sp-7) var(--sp-5) }
html body .card--spacious { padding:var(--sp-6) var(--sp-5) }
html body .card--spacious { padding:var(--sp-6) var(--sp-5) }
html body .card { padding:var(--sp-5) }
html body .card--stack { padding:var(--sp-5) }
html body .card--stack { padding:var(--sp-5) }
html body .card--fill { padding:var(--sp-5) }
html body .job-card { padding:var(--sp-5) }
html body .card--fill { padding:var(--sp-5) }
html body .related-card { padding:var(--sp-4) }

}
@media (max-width:480px) {
html body .scope-card { padding:var(--sp-5) var(--sp-4) }
html body .card--spacious { padding:var(--sp-6) var(--sp-4) }
html body .card--spacious { padding:var(--sp-5) var(--sp-4) }
html body .card--spacious { padding:var(--sp-5) var(--sp-4) }
html body .card { padding:var(--sp-4) }
html body .card--stack { padding:var(--sp-4) }
html body .card--stack { padding:var(--sp-4) }
html body .card--fill { padding:var(--sp-4) }
html body .job-card { padding:var(--sp-4) }
html body .card--fill { padding:var(--sp-4) }

}
html body .integration-logo-slot.is-image-loaded { display: flex; align-items: center; justify-content: center; }
html body .integration-logo-slot > img.auto-image { width: auto; height: auto; max-width: 70%; max-height: 80%; margin: 0 auto; object-fit: contain; object-position: center; display: block; }
html body.is-cv-page .header-inner,html body:has(#screen-contact.is-active) .header-inner { display: flex !important; grid-template-columns: none !important; justify-content: center !important; align-items: center !important; gap: 0 !important; }
html body.is-cv-page .header-inner > .pr-logo,html body:has(#screen-contact.is-active) .header-inner > .pr-logo { grid-column: auto !important; justify-self: center !important; margin: 0 auto !important; }
html body .header-inner,html body .footer-inner,html body .hero-inner,html body .kit-service-hero-split,html body .dual-business-inner,html body .strengths-inner,html body .logos-inner,html body .release-notice-inner,html body .megamenu-inner,html body main.page-screen > section.kit-section > .kit-section-inner,html body main.page-screen > section.kit-section--muted > .kit-section-inner{ max-width: calc(1080px + var(--page-padding-x) * 2); width: 100% !important; margin-left: auto; margin-right: auto; padding-left: var(--page-padding-x); padding-right: var(--page-padding-x); box-sizing: border-box; }
html body main.page-screen > section.kit-service-hero { padding-left: var(--page-padding-x); padding-right: var(--page-padding-x); }
html body main.page-screen > section.kit-service-hero > * { max-width: 1080px; width: 100%; margin-left: auto; margin-right: auto; box-sizing: border-box; }
html body main.page-screen > section.hero,html body main.page-screen > section.dual-business,html body main.page-screen > section.strengths-section,html body main.page-screen > section.strengths-section-v2,html body main.page-screen > section.logos-section,html body main.page-screen > section.release-notice,html body main.page-screen > section.kit-section{ padding-left: 0; padding-right: 0; }
html body main.page-screen > section.kit-section--muted { padding-left: 0; padding-right: 0; padding-top: 0 !important; padding-bottom: 0 !important; background: transparent; }
html body main.page-screen > section.kit-section--muted > .kit-section-inner { max-width: 100%; width: 100%; background: var(--muted); border-top: 1px solid var(--border) !important; border-bottom: 1px solid var(--border) !important; padding-top: var(--section-padding-y); padding-bottom: var(--section-padding-y); padding-left: calc(0vw); padding-right: calc(0vw); margin: 0; }
html body main.page-screen > section.kit-section--muted > .kit-section-inner > * { max-width: calc(1080px + var(--page-padding-x) * 2); width: 100%; margin-left: auto; margin-right: auto; padding-left: var(--page-padding-x); padding-right: var(--page-padding-x); box-sizing: border-box; }
html body main.page-screen > section.dark-cta { padding-left: var(--page-padding-x); padding-right: var(--page-padding-x); padding-top: var(--sp-12); padding-bottom: var(--sp-12); }
html body .dark-cta-inner { max-width: 1080px; width: 100%; margin-left: auto; margin-right: auto; padding: var(--sp-20) var(--sp-12); box-sizing: border-box; }
@media (max-width:768px) {
html body .dark-cta-inner { padding-top:var(--sp-10);padding-bottom:var(--sp-10);padding-left:var(--sp-6);padding-right:var(--sp-6); }
}
html body .hero-lead,html body .kit-service-hero-lede,html body .product-hero-lead,html body .hero-title,html body .kit-service-hero-eyebrow,html body.is-top-page .hero-lead,html body.is-top-page .hero-title,html body.is-top-page .kit-service-hero-eyebrow{ max-width: 100%; margin-left: 0; margin-right: 0; }
html body .text-center,html body .flex-center,html body .kit-section-title.text-center,html body .kit-section-title--lg.text-center,html body .kit-section-eyebrow.text-center,html body .kit-section-lede.text-center,html body .hero-cta-row,html body .dark-cta .flex-row,html body .dark-cta-inner,html body .card.text-center { text-align: left; }
html body .flex-center,html body .hero-cta-row,html body .dark-cta .flex-row { justify-content: flex-start; }
html body main.page-screen .card { padding: var(--sp-6) }

html body main.page-screen .card--stack { padding: var(--sp-6) }
html body main.page-screen .card--stack { padding: var(--sp-6) }
html body main.page-screen .support-card { padding: var(--sp-6) }
html body main.page-screen .card--fill { padding: var(--sp-5) }
html body main.page-screen .job-card { padding: var(--sp-6) }
html body main.page-screen .card--fill { padding: var(--sp-5) }
html body main.page-screen .interview-body { padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-5);padding-right:var(--sp-5) }
html body main.page-screen .related-card { padding: var(--sp-4) }
html body main.page-screen .package-product-card { padding-top:var(--sp-4);padding-bottom:var(--sp-4);padding-left:var(--sp-4);padding-right:var(--sp-4) }
html body main.page-screen .card--spacious { padding: var(--sp-8) var(--sp-6) }
html body main.page-screen .scope-card { padding: var(--sp-8) var(--sp-7) }
html body main.page-screen .card--spacious { padding: var(--sp-10) var(--sp-6) }
html body main.page-screen .card--spacious,html body main.page-screen .card--spacious .card-desc{ text-align: left; }
html body main.page-screen .card--spacious { padding: var(--sp-8) var(--sp-6) }
html body main.page-screen .solution-block { padding: var(--sp-8) var(--sp-7) }
html body main.page-screen .package-section { padding: var(--sp-10) var(--sp-7) }
html body main.page-screen .dual-business-card { padding: var(--sp-7) var(--sp-6) }
html body main.page-screen .stat { padding: var(--sp-8) var(--sp-4) }
html body main.page-screen .cv-card { padding: var(--sp-10) }
@media (max-width:768px) {
html body main.page-screen .card,html body main.page-screen .card--stack,html body main.page-screen .support-card,html body main.page-screen .card--fill,html body main.page-screen .job-card,html body main.page-screen .interview-body{ padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-5);padding-right:var(--sp-5) }
html body main.page-screen .related-card,html body main.page-screen .package-product-card { padding-top:var(--sp-4);padding-bottom:var(--sp-4);padding-left:var(--sp-4);padding-right:var(--sp-4) }
html body main.page-screen .card--spacious,html body main.page-screen .scope-card,html body main.page-screen .solution-block,html body main.page-screen .dual-business-card { padding-top:var(--sp-6);padding-bottom:var(--sp-6);padding-left:var(--sp-5);padding-right:var(--sp-5) }
html body main.page-screen .card--spacious,html body main.page-screen .package-section { padding-top:var(--sp-7);padding-bottom:var(--sp-7);padding-left:var(--sp-5);padding-right:var(--sp-5) }
html body main.page-screen .cv-card { padding-top:var(--sp-6);padding-bottom:var(--sp-6);padding-left:var(--sp-6);padding-right:var(--sp-6) }
}
@media (max-width:480px) {
html body main.page-screen .card,html body main.page-screen .card--stack,html body main.page-screen .support-card,html body main.page-screen .card--fill,html body main.page-screen .job-card,html body main.page-screen .interview-body{ padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-4);padding-right:var(--sp-4) }
html body main.page-screen .related-card,html body main.page-screen .package-product-card { padding-top:var(--sp-4);padding-bottom:var(--sp-4);padding-left:var(--sp-3);padding-right:var(--sp-3) }
html body main.page-screen .card--spacious,html body main.page-screen .scope-card,html body main.page-screen .solution-block,html body main.page-screen .dual-business-card,html body main.page-screen .package-section { padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-4);padding-right:var(--sp-4) }
html body main.page-screen .cv-card { padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-4);padding-right:var(--sp-4) }
}
#screen-company .kit-service-hero-title { font-size:var(--fs-hero-mid);line-height:var(--fs-hero-mid-lh) }
html body main.page-screen #screen-company section.kit-service-hero .kit-service-hero-eyebrow { margin-bottom: var(--sp-3); }
html body main.page-screen #screen-company section.kit-service-hero .kit-service-hero-title { margin-top: 0; margin-bottom: var(--sp-4); }
html body main.page-screen #screen-company section.kit-service-hero .kit-service-hero-lede { margin-top: 0; }

@media (max-width:900px) {
.process-grid { grid-template-columns:repeat(5,1fr);gap:var(--sp-2) }
}
@media (max-width:768px) {
.process-grid { grid-template-columns:repeat(3,1fr);gap:var(--sp-3) }
}
@media (max-width:480px) {
.process-grid { grid-template-columns:1fr;gap:var(--sp-2) }
.process-step { display:flex;align-items:center;gap:var(--sp-3);text-align:left;padding:var(--sp-4) }
.process-step>.card-eyebrow { margin-bottom:0;flex-shrink:0;min-width:80px }
.process-step>.card-label { flex:1 }
}
[data-page-host] > main { display: block; }
.spa-loading { opacity: 0.4; transition: opacity .15s; }
[data-spa-go] { cursor: pointer; }
[data-spa-go]:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
[data-spa-disabled] { cursor: default; opacity: 0.55; }
.pr-logo-img { height: 28px; width: auto; display: block; }
.pr-logo--lg .pr-logo-img { height: 32px; }
@media (max-width: 640px) {
.pr-logo-img { height: 24px; }
.pr-logo--lg .pr-logo-img { height: 26px; }
}
.logo-cell.logo-cell--has-image { opacity: 1; padding: var(--sp-3) var(--sp-4); background: var(--background); min-height: 88px; }
.logo-cell-img { max-width: 90%; height: 44px; width: auto; object-fit: contain; display: block; mix-blend-mode: multiply; }
@media (max-width: 768px) {
.logo-cell.logo-cell--has-image { min-height: 76px; }
.logo-cell-img { height: 38px; }
}
@media (max-width: 480px) {
.logo-cell.logo-cell--has-image { min-height: 64px; }
.logo-cell-img { height: 32px; }
}
.job-card { padding-left: 0; padding-right: 0; background: transparent; border: 0; box-shadow: none; }
.job-card > div { padding: var(--sp-7) 0; border-bottom: 1px solid var(--border); }
.job-card:last-of-type > div { border-bottom: 0; }
[data-image-src] { aspect-ratio: 16 / 10; }
[data-image-src].is-image-loaded { background: transparent; padding: 0; border: 0; outline: 0; box-shadow: none; }
[data-image-src].is-image-loaded > .image-slot-fallback { display: none; }
.auto-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border: 0; }
.logo-cell[data-image-src] { aspect-ratio: auto; }
.logo-cell[data-image-src].is-image-loaded .auto-image { max-width: 80%; max-height: 40px; margin: 0 auto; object-fit: contain; }
.free-band { background:transparent;padding:var(--sp-12) var(--page-padding-x) }
.free-band-inner { max-width:1080px;margin:0 auto;background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-lg);padding:var(--sp-12) var(--sp-10);display:grid;grid-template-columns:1.25fr .75fr;gap:var(--sp-10);align-items:center }

.free-band h3 { font-size:var(--text-display-md);font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--primary-foreground);margin:0 0 var(--sp-4) }
.free-band p { color:rgb(255 255 255 / 0.82);line-height:1.85;margin:0 }
.free-band-list { list-style:none;margin:var(--sp-6) 0 0;padding:0;display:grid;gap:var(--sp-3) }
.free-band-list li { position:relative;padding-left:26px;color:rgb(255 255 255 / 0.9);line-height:1.6;font-size:var(--text-body-md) }
.free-band-list li::before { content:'✓';position:absolute;left:0;top:0;color:var(--primary-foreground);font-weight:700 }
@media (max-width:860px) {
.free-band-inner { grid-template-columns:1fr;gap:var(--sp-8);padding:var(--sp-10) var(--sp-6) }
}
.mm-login-sso { max-width:440px }
.mm-login-note { color:var(--muted-foreground);font-size:var(--text-body-sm);line-height:1.7;margin:var(--sp-2) 0 var(--sp-5) }
.mm-login-layout { display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:var(--sp-9);align-items:start;max-width:1040px }
.mm-login-groups { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);margin-top:var(--sp-3) }
.mm-login-group-title { font-family:var(--font-sans);font-size:10px;letter-spacing:.14em;color:var(--muted-foreground);font-weight:600;margin-bottom:var(--sp-3) }
.mm-login-list { display:grid;gap:2px;align-content:start }
.mm-login-for { display:block;font-size:var(--text-caption);color:var(--foreground-subtle);line-height:1.4;margin-top:2px }
.mm-login-name { display:block;min-width:0 }
.mm-login-product { display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:60px;font-size:var(--text-body-sm);color:var(--foreground);padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);cursor:pointer;transition:border-color var(--duration-fast) ease,background var(--duration-fast) ease,color var(--duration-fast) ease }
.mm-login-product::after { content:"→";font-size:var(--text-caption);color:var(--foreground-subtle);white-space:nowrap }
.mm-login-product:hover { border-color:var(--primary);background:var(--primary-soft);color:var(--primary) }
.mm-login-product:hover::after { color:var(--primary) }
@media (max-width:900px) {
.mm-login-layout { grid-template-columns:1fr;gap:var(--sp-6) }
.mm-login-groups { grid-template-columns:1fr;gap:var(--sp-5) }
}
.mobile-drawer-note { display:block;color:var(--muted-foreground);font-size:var(--text-body-sm);line-height:1.6;margin-bottom:var(--sp-2) }
.signup-form-grid .cv-field { margin-bottom:0 }
.signup-form-grid .cv-label { white-space:nowrap }
.cv-consent label { cursor:pointer }
.cv-consent [data-spa-go] { color:var(--primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer }
#signupLinkModal[data-step="detect"] .signup-step--detect { display:contents }
@media (max-width:560px) {
.signup-form-grid .cv-label { white-space:normal }
}
.signup-form-grid .cv-field .cv-help { margin-top:6px }
.signup-addr-parsed.is-filled { display:flex;color:var(--muted-foreground) }
.tp-hero { position:relative;overflow:hidden }
.tp-hero .hero-inner { position:relative;z-index:2 }
.tp-hero-deco { position:absolute;inset:0;z-index:1;pointer-events:none; background-image:radial-gradient(rgb(255 255 255 / 0.10) 1px,transparent 1.4px); background-size:30px 30px; -webkit-mask-image:linear-gradient(105deg,transparent 28%,rgb(0 0 0) 92%); mask-image:linear-gradient(105deg,transparent 28%,rgb(0 0 0) 92%); opacity:.7 }
.tp-hero-title { font-size:var(--fs-hero);line-height:var(--fs-hero-lh);font-weight:var(--font-weight-black,900);letter-spacing:var(--tracking-tight);color:var(--primary-foreground);margin:0 0 var(--sp-6);max-width:16ch }
.tp-hero-lead { font-size:var(--fs-lead);line-height:var(--fs-lead-lh);color:rgb(255 255 255 / 0.85);max-width:54ch;margin:0 0 var(--sp-8) }
.tp-hero-metrics { display:flex;flex-wrap:wrap;gap:var(--sp-10);margin-top:var(--sp-14);padding-top:var(--sp-8);border-top:1px solid rgb(255 255 255 / 0.18) }
.tp-hero-metric { display:flex;flex-direction:column;gap:6px }
.tp-hero-metric-num { font-size:var(--fs-stat);line-height:1;font-weight:var(--font-weight-bold);color:var(--primary-foreground);letter-spacing:var(--tracking-tight) }
.tp-hero-metric-num .u { font-size:.46em;font-weight:var(--font-weight-semibold);margin-left:3px;color:rgb(255 255 255 / 0.8) }
.tp-hero-metric-label { font-size:var(--text-body-sm);color:rgb(255 255 255 / 0.68) }
@media (max-width:560px) {
.tp-hero-metrics { gap:var(--sp-6) var(--sp-8);margin-top:var(--sp-10) }
}
.tp-pillars { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-12) }
.tp-pillar { display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);padding:var(--sp-8);position:relative;overflow:hidden;box-shadow:var(--shadow-sm) }
.tp-pillar::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary) }



.tp-pillar-foot { margin-top:auto;padding-top:var(--sp-5);border-top:1px solid var(--border) }
.tp-pillar-stats { display:flex;flex-wrap:wrap;gap:var(--sp-5) var(--sp-6) }
.tp-pillar-stat { display:flex;flex-direction:column;gap:3px }
.tp-pillar-stat-num { font-size:var(--fs-subheading);font-weight:var(--font-weight-bold);color:var(--primary);letter-spacing:var(--tracking-tight) }
.tp-pillar-stat-label { font-size:var(--text-caption);color:var(--muted-foreground) }

@media (max-width:900px) {
.tp-pillars { grid-template-columns:1fr;gap:var(--sp-4) }
}
.tp-products { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-10) }
.tp-prod { display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);overflow:hidden;cursor:pointer;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:border-color var(--duration-base) var(--easing),transform var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing) }
.tp-prod:hover { border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-md) }
.tp-prod:active { transform:scale(.997) }
.tp-prod-shot { flex:none;margin:var(--sp-4);aspect-ratio:16/10;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--foreground-subtle);font-size:var(--text-caption) }
.tp-prod-shot img { width:100%;height:100%;object-fit:cover;display:block }
.tp-prod-body { display:flex;flex-direction:column;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-4);flex:1 }

.tp-prod-link { margin-top:auto;padding-top:var(--sp-4);color:var(--primary);font-weight:var(--font-weight-bold);font-size:var(--text-body-sm) }
@media (max-width:1080px) {
.tp-products { grid-template-columns:repeat(2,1fr) }
}
@media (max-width:560px) {
.tp-products { grid-template-columns:1fr }
}
.tp-ni-grid { display:grid;grid-template-columns:1.12fr .88fr;gap:var(--sp-5) }
.tp-ni-news { display:flex }
.tp-ni-news .news-list { flex:1;align-self:stretch }
@media (max-width:860px) {
.tp-ni-grid { grid-template-columns:1fr }
}
.metric-band { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-9) var(--sp-10) }
@media(max-width:760px) {
.metric-band { grid-template-columns:1fr 1fr;gap:var(--sp-7) var(--sp-6) }
}
.metric { border-top:2px solid var(--primary);padding-top:var(--sp-4) }
.metric-num { font-size:clamp(26px,3.2vw,38px);font-weight:800;letter-spacing:-.04em;line-height:1.02;font-variant-numeric:tabular-nums;color:var(--foreground) }
.metric-num .u { font-size:.4em;font-weight:700;letter-spacing:0;margin-left:.12em;color:var(--muted-foreground) }
.metric-label { font-family:var(--font-sans);font-size:11.5px;letter-spacing:.08em;line-height:1.55;color:var(--muted-foreground);margin-top:var(--sp-3) }
.cap-rows { display:flex;flex-direction:column;gap:var(--sp-12) }
.cap-row { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-10);align-items:center }
.cap-row:nth-child(even) .cap-figure { order:2 }
@media(max-width:840px) {
.cap-row { grid-template-columns:1fr;gap:var(--sp-6) }
.cap-row:nth-child(even) .cap-figure { order:0 }
}



.cap-points { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2) }
.cap-points li { position:relative;padding-left:var(--sp-6);font-size:var(--text-body-sm);line-height:1.65 }
.cap-points li::before { content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--primary);border-radius:2px }
.cap-figure { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-7);min-height:248px;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-5) }
.diag-flow { display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;justify-content:center }
.diag-stack { display:flex;flex-direction:column;gap:8px }
.diag-chip { font-family:var(--font-sans);font-size:12px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 12px;white-space:nowrap;color:var(--foreground);text-align:center }
.diag-chip--muted { color:var(--muted-foreground) }
.diag-arrow { color:var(--primary);font-size:22px;font-weight:700;flex:none;line-height:1 }
.diag-target { background:var(--primary);color:var(--primary-foreground);border:1px solid var(--primary);border-radius:var(--radius-md);padding:12px 16px;font-weight:700;font-size:13px;white-space:nowrap;box-shadow:var(--shadow-sm);text-align:center }
.diag-barset { display:flex;flex-direction:column;gap:10px;width:100% }
.diag-bar-row { display:flex;align-items:center;gap:var(--sp-3) }
.diag-bar-lab { font-family:var(--font-sans);font-size:11px;color:var(--muted-foreground);width:88px;flex:none;text-align:right }
.diag-bar-track { flex:1;height:12px;background:var(--muted);border-radius:var(--radius-full);overflow:hidden }
.diag-bar { display:block;height:100%;background:var(--primary);border-radius:var(--radius-full) }
.diag-bar--ghost { background:var(--border-strong) }
.diag-cap { font-family:var(--font-sans);font-size:11px;letter-spacing:.06em;color:var(--muted-foreground);text-align:center }
.diag-cell.on { background:var(--primary) }
.diag-layers { display:flex;flex-direction:column;gap:6px;width:100% }
.diag-layer { display:flex;align-items:center;gap:10px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:9px 12px;font-size:12px }
.diag-layer .lk { width:8px;height:8px;border-radius:2px;background:var(--primary);flex:none }
.diag-layer .lt { font-weight:600 }
.diag-layer .lv { margin-left:auto;font-family:var(--font-sans);font-size:11px;color:var(--muted-foreground) }
.access-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-5) }
.card--stack .link-underline { margin-top:auto;padding-top:var(--sp-2);font-weight:600 }
.access-ico { width:38px;height:38px;border-radius:var(--radius-md);background:var(--primary-soft);display:flex;align-items:center;justify-content:center;flex:none }
.access-ico::before { content:"";width:20px;height:20px;background:var(--primary);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center }
.ai-saas::before { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='9'/><rect x='14' y='3' width='7' height='5'/><rect x='14' y='12' width='7' height='9'/><rect x='3' y='16' width='7' height='5'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='9'/><rect x='14' y='3' width='7' height='5'/><rect x='14' y='12' width='7' height='9'/><rect x='3' y='16' width='7' height='5'/></svg>") }
.ai-api::before { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='16 18 22 12 16 6'/><polyline points='8 6 2 12 8 18'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='16 18 22 12 16 6'/><polyline points='8 6 2 12 8 18'/></svg>") }
.ai-market::before { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9l1-5h16l1 5'/><path d='M4 9v11h16V9'/><path d='M9 20v-6h6v6'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9l1-5h16l1 5'/><path d='M4 9v11h16V9'/><path d='M9 20v-6h6v6'/></svg>") }
.ai-bulk::before { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 8v13H3V8'/><rect x='1' y='3' width='22' height='5'/><line x1='10' y1='12' x2='14' y2='12'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 8v13H3V8'/><rect x='1' y='3' width='22' height='5'/><line x1='10' y1='12' x2='14' y2='12'/></svg>") }
.ai-mcp::before { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2' width='20' height='8' rx='2'/><rect x='2' y='14' width='20' height='8' rx='2'/><line x1='6' y1='6' x2='6.01' y2='6'/><line x1='6' y1='18' x2='6.01' y2='18'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2' width='20' height='8' rx='2'/><rect x='2' y='14' width='20' height='8' rx='2'/><line x1='6' y1='6' x2='6.01' y2='6'/><line x1='6' y1='18' x2='6.01' y2='18'/></svg>") }
.ds-table td.num,.ds-table th.num { text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-sans);white-space:nowrap }
.kpi-card { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2) }
.kpi-label { font-family:var(--font-sans);font-size:11px;letter-spacing:.04em;color:var(--muted-foreground);line-height:1.5;min-height:2.4em }
.kpi-value { font-size:clamp(28px,3.4vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;color:var(--foreground) }
.kpi-value .u { font-size:.4em;font-weight:700;color:var(--muted-foreground);margin-left:.16em;letter-spacing:0 }
.legend-item .dot { width:10px;height:10px;border-radius:3px;flex:none }
.ctabs { position:relative }
.data-source-note { font-family:var(--font-sans);font-size:11px;color:var(--muted-foreground);letter-spacing:.03em;margin-top:var(--sp-5);line-height:1.7 }
.insight-disclaimer { font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7;margin-top:var(--sp-4) }
html body main.page-screen.insights-page > section.kit-service-hero > *,html body main.page-screen.insights-page > section.kit-section > .kit-section-inner,html body main.page-screen.insights-page > section.kit-section--muted > .kit-section-inner > * { max-width: calc(1240px + var(--page-padding-x) * 2); }
html body main.page-screen.insights-page > section.kit-service-hero > * { max-width: 1240px; }
.ins-row-info .kit-section-lede { margin-top:var(--sp-3) }
.ins-row-info .data-source-note { margin-top:var(--sp-5) }
@keyframes livePulse {
0%{transform:scale(.55);opacity:.55}70%{transform:scale(2);opacity:0}100%{opacity:0}
}
.insights-page .kpi-card { border-color:var(--border-strong,var(--border)) }
.mup-spread-num .u { font-size:.42em;font-weight:700;color:var(--muted-foreground);margin-left:.1em;letter-spacing:0 }
.chip-group { display:flex;flex-wrap:wrap;gap:6px }
.lib-meta { display:flex;flex-wrap:wrap;gap:4px var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);font-family:var(--font-sans);font-size:11px;color:var(--muted-foreground);letter-spacing:.02em }
.lib-meta b { color:var(--foreground);font-weight:700 }

.qa-num .u { font-size:.42em;font-weight:700;letter-spacing:0;margin-left:.12em;color:var(--muted-foreground) }
.chat-dock.is-expanded .chat-dock-prompt { background:var(--card);border-bottom:1px solid var(--border);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);gap:var(--sp-2) }
.chat-dock.is-expanded .chat-dock-prompt::before { background:var(--success);box-shadow:none;width:7px;height:7px;border-radius:var(--radius-full) }
.chat-dock.is-expanded .chat-dock-prompt-label { color:var(--foreground);font-size:var(--cd-ui);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.chat-dock.is-expanded .chat-dock-prompt-sub { display:none }
.chat-dock.is-expanded.has-history .cd-clear { display:inline-flex }
.chat-dock.is-expanded .chat-dock-collapse { margin-left:0;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted-foreground);font-size:var(--cd-micro);padding:0 }
.chat-dock.is-expanded .chat-dock-collapse:hover { background:var(--muted);border-color:var(--border-strong);color:var(--foreground) }
.chat-dock-body { padding:var(--sp-5);background:var(--card) }
@media (min-width:769px) {
.chat-dock.is-expanded { max-width:400px }
.chat-dock.is-expanded .chat-dock-body { max-height:min(420px, calc(100vh - 220px)) }
.chat-dock:not(.is-expanded) .chat-dock-prompt { display:grid;grid-template-columns:auto 1fr;column-gap:var(--sp-2);align-items:center }
.chat-dock:not(.is-expanded) .chat-dock-prompt::before { grid-row:1 / 3 }
.chat-dock:not(.is-expanded) .chat-dock-prompt-label { grid-column:2;white-space:nowrap }
.chat-dock:not(.is-expanded) .chat-dock-prompt-sub { grid-column:2;white-space:nowrap }
}
.cd-turn + .cd-turn { margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--border) }
.cd-q { padding:0 }
.cd-q-label { font-size:var(--cd-micro);font-weight:var(--font-weight-medium);color:var(--foreground-subtle);letter-spacing:0.08em;margin-bottom:3px }
.cd-q-text { font-size:var(--text-body-md);font-weight:var(--font-weight-medium);color:var(--foreground);line-height:1.7;white-space:pre-wrap;word-break:break-word }
.cd-answer { margin-top:var(--sp-4);background:var(--muted);border:0;border-radius:6px;overflow:visible;padding:var(--sp-4) }
.cd-answer-head { padding:0;border-bottom:0;margin-bottom:var(--sp-2) }
.cd-answer-head .pr-logo { cursor:default }
.cd-answer-body { padding:0;font-size:var(--text-body-md);line-height:1.9;color:var(--foreground);font-weight:var(--font-weight-regular) }
.cd-answer-body p { margin:0 0 10px }
.cd-answer-body p:last-child { margin-bottom:0 }
.cd-answer-body ul { list-style:none;margin:10px 0;padding:0 }
.cd-answer-body li { position:relative;padding:2px 0 2px 14px }
.cd-answer-body li::before { content:"";position:absolute;left:0;top:0.9em;width:4px;height:4px;border-radius:var(--radius-full);background:var(--border-strong) }
.cd-answer-body b { font-weight:var(--font-weight-semibold);color:var(--foreground) }
.cd-typing { display:inline-flex;align-items:center;gap:4px }
.cd-typing span { width:5px;height:5px;border-radius:var(--radius-full);background:var(--foreground-subtle);animation:cd-typing 1.1s ease-in-out infinite }
.cd-typing span:nth-child(2) { animation-delay:.15s }
.cd-typing span:nth-child(3) { animation-delay:.3s }
@keyframes cd-typing {
0%,60%,100%{opacity:.25}30%{opacity:1}
}
@media (prefers-reduced-motion:reduce) {
.cd-typing span { animation:none;opacity:.5 }
}
.cd-answer-foot { padding:var(--sp-4) 0 0;margin-top:var(--sp-3);border-top:1px solid var(--border);background:transparent;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2) }
.cd-actions-prompt { font-size:var(--cd-ui);color:var(--muted-foreground);font-weight:var(--font-weight-regular);line-height:1.65 }
.cd-actions-row { display:flex;flex-wrap:wrap;gap:var(--sp-2);width:100% }
.cd-actions-row>.cd-btn { flex:1 1 140px;min-width:0 }
.cd-resolved { display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--success-muted);border:1px solid var(--success-border);border-radius:6px }
.cd-resolved-check { width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--success);color:var(--success-foreground);font-size:11px;line-height:1 }
.cd-resolved-title { font-size:var(--cd-ui);font-weight:var(--font-weight-semibold);color:var(--success) }
.cd-resolved-desc { font-size:var(--cd-ui);color:var(--muted-foreground);line-height:1.65;margin-top:2px }
.cd-btn { min-height:40px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:6px;font-family:var(--font-sans);font-size:var(--cd-ui);font-weight:var(--font-weight-medium);color:var(--foreground);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing) }
.cd-btn:hover { background:var(--primary-soft);border-color:var(--primary) }
.cd-btn:active { transform:translateY(1px) }
.cd-btn--primary { background:var(--primary);border-color:var(--primary);color:var(--primary-foreground) }
.cd-btn--primary:hover { background:var(--primary-hover);border-color:var(--primary-hover) }
.cd-form { margin:var(--sp-4) 0 0;padding:var(--sp-4);background:var(--card);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;gap:10px }
.cd-form-head { display:flex;align-items:center;gap:var(--sp-2) }
.cd-form-title { flex:1;display:flex;align-items:center;gap:8px;font-size:var(--cd-ui);font-weight:var(--font-weight-semibold);color:var(--foreground) }
.cd-tag { display:inline-flex;align-items:center;height:20px;padding:0 8px;background:var(--primary-subtle);border:0;border-radius:var(--radius-full);font-size:var(--cd-micro);font-weight:var(--font-weight-medium);letter-spacing:0.02em;color:var(--primary) }
.cd-form-close { width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--muted-foreground);cursor:pointer;font-size:var(--cd-micro);line-height:1 }
.cd-form-close:hover { background:var(--muted);color:var(--foreground) }
.cd-form-desc { font-size:var(--cd-ui);color:var(--muted-foreground);line-height:1.65 }
.cd-field { display:flex;flex-direction:column;gap:4px }
.cd-label { font-size:var(--cd-micro);font-weight:var(--font-weight-medium);color:var(--muted-foreground);letter-spacing:0.02em }
.cd-req { color:var(--destructive);margin-left:2px }
.cd-input,.cd-select { height:44px;padding:0 12px;background:var(--card);border:1px solid var(--input);border-radius:6px;font-family:var(--font-sans);font-size:var(--cd-ui);font-weight:var(--font-weight-regular);color:var(--foreground);width:100% }
.cd-input:focus,.cd-select:focus { outline:none;border-color:var(--primary);box-shadow:var(--ring-focus) }
.cd-input.is-error { border-color:var(--destructive);background:var(--destructive-muted) }
.cd-input::placeholder { color:var(--foreground-subtle) }
.cd-form-error { font-size:var(--cd-ui);color:var(--destructive);font-weight:var(--font-weight-medium) }
.cd-form-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-top:2px }
.cd-form-actions--single { grid-template-columns:1fr }
.cd-done { padding:var(--sp-4) var(--sp-2);text-align:center }
.cd-done-title { font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:4px }
.cd-done-desc { font-size:var(--cd-ui);color:var(--muted-foreground);line-height:1.7 }
@media (max-width:768px) {
.chat-dock-body { max-height:min(52vh, calc(100vh - 200px)) }
}
body.is-top-page .chat-dock.is-expanded { max-width:none }
body.is-top-page .tp-hero-chat { width:100%;max-width:460px }
@media (min-width:1100px) {
body.is-top-page .hero-inner { display:grid;grid-template-columns:minmax(0,52%) minmax(0,46%);justify-content:space-between;column-gap:2%;align-items:center }
body.is-top-page .tp-hero-chat { align-self:start;margin-top:calc(-1 * clamp(36px, 5.5vw, 84px)) }
body.is-top-page .tp-hero-chat { max-width:none }
body.is-top-page .hero-inner .tp-hero-title { font-size:clamp(40px,5vw,72px) }
}
@media (max-width:1099px) {
body.is-top-page .tp-hero-chat { margin-top:clamp(20px,3.2vw,32px);max-width:none }
}
body.is-top-page .chat-dock .chat-dock-body { display:block;height:min(456px, calc(100vh - 300px));min-height:296px;max-height:none }
body.is-top-page .chat-dock .chat-dock-collapse { display:none }
.cd-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);text-align:center;height:100%;padding:var(--sp-5) var(--sp-3) }
.cd-empty-title { font-size:var(--text-body-md);font-weight:var(--font-weight-medium);color:var(--foreground);letter-spacing:var(--tracking-tight) }
/* 押すだけで聞ける質問（DS の button--outline button--sm を並べる） */
.cd-quick { display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-3);max-width:100% }
/* トップの相談欄の入力は 2 行分の高さにする */
body.is-top-page .chat-dock .chat-dock-input { min-height:68px }
@media (max-width:1099px) {
body.is-top-page .chat-dock .chat-dock-body { height:min(330px, calc(100svh - 320px));min-height:226px }
}
@media (max-width:768px) {
body.is-top-page .chat-dock .chat-dock-body { height:min(292px, calc(100svh - 340px));min-height:206px;padding:var(--sp-4) }
.cd-input,.cd-select { font-size:16px }
.cd-empty { gap:6px;padding:var(--sp-3) var(--sp-2) }
.cd-turn + .cd-turn { margin-top:var(--sp-5);padding-top:var(--sp-5) }
}
@media (max-width:480px) {
body.is-top-page .chat-dock .chat-dock-body { height:min(262px, calc(100svh - 360px));min-height:192px }
}
body.is-top-page .chat-dock .chat-dock-prompt::before,.chat-dock.is-expanded .chat-dock-prompt::before { animation:cd-dot-pulse 2.4s ease-out infinite }
@keyframes cd-dot-pulse {
0%{box-shadow:0 0 0 0 rgba(22,163,74,0.26)}70%{box-shadow:0 0 0 5px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}
}
@media (prefers-reduced-motion:reduce) {
body.is-top-page .chat-dock .chat-dock-prompt::before,.chat-dock.is-expanded .chat-dock-prompt::before { animation:none }
}
@media (max-width:1099px) {
body.is-top-page .tp-hero-chat .chat-dock { display:none }
}
body.is-chat-page { overflow:hidden }
body.is-chat-page .chat-dock { position:fixed;inset:0;left:0;right:0;top:0;bottom:0;z-index:2000;width:100%;max-width:none;padding:0;transform:none;pointer-events:auto;display:block;animation:cd-page-in 200ms cubic-bezier(.22,.61,.36,1) }
body.is-chat-page .chat-dock-inner { height:100%;max-height:none;display:flex;flex-direction:column;background:var(--card);border:0;border-radius:0;box-shadow:none }
body.is-chat-page .chat-dock .chat-dock-prompt { flex:0 0 auto;height:56px;padding:0 var(--sp-3);gap:var(--sp-2);background:var(--card);border-bottom:1px solid var(--border) }
body.is-chat-page .chat-dock .chat-dock-prompt::before { order:1;margin-left:2px }
body.is-chat-page .chat-dock .chat-dock-prompt-label { order:2;flex:1;min-width:0;font-size:var(--text-body-md) }
body.is-chat-page .chat-dock .chat-dock-collapse { order:3;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 -6px 0 auto;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--foreground) }
body.is-chat-page .chat-dock .chat-dock-collapse:hover { background:var(--muted);color:var(--foreground) }
body.is-chat-page .chat-dock .chat-dock-body { flex:1 1 auto;height:auto;min-height:0;max-height:none;padding:var(--sp-6) var(--sp-4);overflow-y:auto;-webkit-overflow-scrolling:touch }
/* 全画面のチャットは、あいさつ（初期メッセージ）を含むすべてのメッセージを同じ横幅（最大 520px。全角 32〜36 字で折り返す）に収め、中央に置く（2026-10-27） */
body.is-chat-page .chat-dock-body>* { max-width:520px;margin-left:auto;margin-right:auto }
body.is-chat-page .chat-dock-input-row { width:calc(100% - var(--sp-6));max-width:520px;margin:var(--sp-3) auto calc(var(--sp-3) + env(safe-area-inset-bottom, 0px)) }
body.is-chat-page .cd-empty { justify-content:center;gap:8px }
body.is-chat-page .cd-quick { margin-top:var(--sp-4) }
@keyframes cd-page-in {
from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce) {
body.is-chat-page .chat-dock { animation:none }
}
.product-groups { display:grid;gap:var(--sp-14) }
.product-group-head { display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2) var(--sp-5);padding-bottom:var(--sp-3);margin-bottom:var(--sp-7);border-bottom:1px solid var(--border) }
.product-group-title { margin:0;font-size:var(--text-display-sm);line-height:1.35;font-weight:700;letter-spacing:-.01em;color:var(--foreground) }
.product-group-desc { margin:0;font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.6 }
@media (max-width:640px) {
.product-groups { gap:var(--sp-10) }
}
.related-note { max-width:74ch;margin:var(--sp-6) 0 0;font-size:var(--text-body-sm);line-height:1.75;color:var(--muted-foreground);text-align:left }
.related-note + .related-note { margin-top:var(--sp-3) }
.feature-card--parent { background:var(--primary-subtle,color-mix(in oklch,var(--primary) 8%,white));border-color:var(--primary-border,var(--border)) }
.feature-card--parent:hover { border-color:var(--primary) }
.feature-card--parent .card-eyebrow { margin-bottom:var(--sp-1) }
.pair-list { display:flex;flex-direction:column;gap:var(--sp-5);margin-top:var(--sp-8) }
.pair-row { display:grid;grid-template-columns:1fr 44px 1fr;align-items:stretch }
.card--accent{ border-radius:var(--radius-lg);padding:var(--sp-6);background:var(--card) }

.card--accent { border:1.5px solid var(--primary) }
.pair-arrow { display:flex;align-items:center;justify-content:center;color:var(--primary);font-weight:var(--font-weight-bold);font-size:var(--text-body-lg) }

.card--accent .card-desc { color:var(--foreground) }
.card-desc .link-underline { color:var(--primary);text-decoration:underline;text-underline-offset:3px;cursor:pointer }
.pair-cta { display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin-top:var(--sp-10) }
.pair-cta-note { font-size:var(--text-body-sm);color:var(--muted-foreground) }
@media (max-width:820px) {
.pair-row { grid-template-columns:1fr;row-gap:var(--sp-1) }
.pair-arrow { min-height:36px;transform:rotate(90deg) }
}
.dark-cta .button--primary:hover { background:rgb(255 255 255 / 0.92);color:var(--primary) }
.dark-cta .button--primary:active { transform:translateY(1px) }
.product-subnav { position:fixed;top:0;left:0;right:0;z-index:600;background:var(--background);border-bottom:1px solid var(--border);box-shadow:0 1px 2px rgb(0 0 0 / 0.04);transform:translateY(-100%);visibility:hidden;transition:transform 180ms ease-out,visibility 180ms }
.product-subnav.is-visible { transform:translateY(0);visibility:visible }
.product-subnav-inner { max-width:var(--container-content,1080px);margin:0 auto;display:flex;align-items:center;gap:var(--sp-4);padding:10px var(--page-padding-x) }
.product-subnav-name { flex:1;font-weight:var(--font-weight-bold);color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.product-subnav-note { font-size:var(--text-body-sm);color:var(--muted-foreground);white-space:nowrap }
.product-subnav .button { flex-shrink:0 }
@media (max-width:560px) {
.product-subnav-note { display:none }
}
.steps { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5);margin-top:var(--sp-10) }
.step-head { display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3) }

.step-line { flex:1;height:2px;background:var(--border);border-radius:1px }

.step>.card-label { font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);line-height:1.4;margin-bottom:var(--sp-1) }
@media (max-width:640px) {
.steps { grid-template-columns:1fr;gap:var(--sp-5) }
.step { display:grid;grid-template-columns:auto 1fr;column-gap:var(--sp-3) }
.step-head { grid-column:1;grid-row:1/3;margin-bottom:0;align-items:flex-start }
.step-line { display:none }
.step>.card-label { grid-column:2;grid-row:1 }
}
.pc-start { display:none }
.pc-start-head { display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap }
.pc-start-badge { display:inline-block;font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.12em;line-height:1;padding:4px 6px;border-radius:4px;background:var(--primary-soft);color:var(--primary) }
.pc-start-title { font-size:15px;font-weight:var(--font-weight-bold);line-height:1.4;letter-spacing:-.01em }
.pc-start-desc { font-size:13px;color:var(--muted-foreground);line-height:1.6;margin:4px 0 0 }
.pc-start-desc b { font-family:var(--font-sans);font-weight:var(--font-weight-semibold);color:var(--foreground);font-size:12px;letter-spacing:0 }
.pc-start-form { margin-top:var(--sp-3) }
.pc-start-row { display:flex;flex-direction:column;gap:var(--sp-2) }
.pc-start-input { flex:1 1 auto;min-width:0;width:100%;height:46px;padding:0 12px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--background);color:var(--foreground);font-size:16px;font-family:var(--font-sans) }
.pc-start-input::placeholder { color:var(--foreground-subtle) }
.pc-start-input:focus { outline:none;border-color:var(--primary);box-shadow:var(--ring-focus) }
.pc-start-input.is-invalid { border-color:var(--destructive) }
.pc-start-input:disabled { background:var(--muted);color:var(--muted-foreground) }
.pc-start-submit { flex:0 0 auto;min-height:46px;padding-left:18px;padding-right:18px;font-size:15px;justify-content:center;white-space:nowrap }
.pc-start-error { margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--destructive) }
.pc-start-done { margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--success-border);border-radius:var(--radius-md);background:var(--success-muted) }
.pc-start-done:not([hidden]) { animation:pcStartDone .25s ease-out }
@keyframes pcStartDone {
from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}
}
.pc-start-done-head { display:flex;align-items:center;gap:var(--sp-2) }
.pc-start-done-title { font-size:var(--text-body-md);font-weight:var(--font-weight-bold);line-height:1.4;color:var(--foreground) }
.pc-start-check { width:18px;height:18px;flex:0 0 18px;border-radius:50%;background:var(--success);position:relative }
.pc-start-check::after { content:'';position:absolute;left:6px;top:3px;width:4px;height:9px;border-right:2px solid var(--primary-foreground);border-bottom:2px solid var(--primary-foreground);transform:rotate(42deg) }
.pc-start-done-desc { margin:var(--sp-2) 0 0;font-size:13px;line-height:1.7;color:var(--foreground) }
.pc-start-sent-to { font-weight:var(--font-weight-semibold);color:var(--foreground) }
.dark-cta .pc-start,.free-band .pc-start { background:rgb(255 255 255 / 0.07) }
.dark-cta .pc-start-badge,.free-band .pc-start-badge { background:rgb(255 255 255 / 0.16);color:var(--primary-foreground) }
.dark-cta .pc-start-title,.free-band .pc-start-title { color:var(--primary-foreground) }
.dark-cta .pc-start-desc,.free-band .pc-start-desc { color:rgb(255 255 255 / 0.78) }
.dark-cta .pc-start-desc b,.free-band .pc-start-desc b { color:var(--primary-foreground) }
.dark-cta .pc-start .button--primary,.free-band .pc-start .button--primary { background:var(--background);color:var(--primary);border-color:var(--primary-foreground) }
.dark-cta .pc-start-input,.free-band .pc-start-input { background:rgb(255 255 255 / 0.10);border-color:rgb(255 255 255 / 0.35);color:var(--primary-foreground) }
.dark-cta .pc-start-input::placeholder,.free-band .pc-start-input::placeholder { color:rgb(255 255 255 / 0.5) }
.dark-cta .pc-start-input:focus,.free-band .pc-start-input:focus { border-color:var(--primary-foreground);box-shadow:none }
.dark-cta .pc-start-fine,.free-band .pc-start-fine { color:rgb(255 255 255 / 0.6) }
.dark-cta .pc-start-copy,.free-band .pc-start-copy { color:var(--primary-foreground) }
.dark-cta .pc-start-error,.free-band .pc-start-error { color:var(--destructive-border) }
.dark-cta .pc-start-done-desc,.free-band .pc-start-done-desc,.dark-cta .pc-start-done p,.free-band .pc-start-done p { color:var(--foreground) }
.dark-cta .pc-start-done-title,.free-band .pc-start-done-title { color:var(--foreground) }
.dark-cta .pc-start-sent-to,.free-band .pc-start-sent-to { color:var(--foreground) }
@media (max-width:900px) {
html body .pc-start-submit { width:100%;flex:0 0 auto }
html body .pc-start-input { width:100%;flex:1 1 auto;min-width:0 }
html body[data-pc-only] .pair-cta,html body[data-pc-only] .pair-cta > .flex-row,html body[data-pc-only] .pair-cta > .flex-row > div,html body[data-pc-only] .flex-row:has(> .pc-start),html body[data-pc-only] .flex-center:has(> .pc-start) { align-self:stretch;width:100%;align-items:stretch }
html body[data-pc-only] .pc-start { display:block;box-sizing:border-box;width:100%;flex-basis:100%;max-width:none;text-align:left;padding-top:var(--sp-4);padding-right:var(--sp-4);padding-bottom:var(--sp-4);padding-left:var(--sp-4);border-width:0;border-style:none;border-radius:var(--radius-md);background-color:var(--card);box-shadow:var(--shadow-md) }
html body[data-pc-only] .dark-cta .pc-start,html body[data-pc-only] .free-band .pc-start { background-color:rgb(255 255 255 / 0.10);box-shadow:none }
html body[data-pc-only] .pc-start-done { margin-top:var(--sp-4);padding-top:var(--sp-5);padding-bottom:var(--sp-5);padding-left:var(--sp-4);padding-right:var(--sp-4) }
html body[data-pc-only] .pc-start-done-head { margin-bottom:var(--sp-3) }
html body[data-pc-only] .pc-start-done-desc { margin-top:0 }
html body main.page-screen .img-ph:not(.integration-logo-slot) { height:auto !important;min-height:0;aspect-ratio:16/10 }
html body .product-subnav:not(:has(.button)),html body[data-pc-only] .product-subnav { display:none !important }
.product-subnav-inner { gap:var(--sp-3);padding:8px clamp(16px,4vw,24px) }
.product-subnav-name { font-size:var(--text-body-sm);line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical }
.product-subnav-note { display:none }
html body .product-subnav .button { width:auto !important;flex:0 0 auto;min-height:44px;padding-left:var(--sp-4);padding-right:var(--sp-4);font-size:var(--text-body-sm);white-space:nowrap }
}
@media (max-width:560px) {
.product-subnav-name { -webkit-line-clamp:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.product-subnav .button { padding-left:var(--sp-3) !important;padding-right:var(--sp-3) !important }
}
.footer-prod-group { min-width:0 }
.footer-prod-links { column-gap:var(--sp-6) }
.footer-prod-links>.footer-link { break-inside:avoid }
.footer-prod-links--saas { column-count:3 }
@media (max-width:900px) {
.footer-prod-links--data,.footer-prod-links--saas { column-count:3 }
}
@media (max-width:600px) {
.footer-prod-links { column-gap:var(--sp-4) }
.footer-prod-links--data,.footer-prod-links--saas { column-count:2 }
}
@media (max-width:640px) {
html body main.page-screen .row-4:has(> .related-card) { grid-template-columns:1fr !important;gap:var(--sp-3) !important }
html body main.page-screen .related-card { position:relative;min-height:0;padding:var(--sp-4) var(--sp-8) var(--sp-4) var(--sp-4);gap:var(--sp-1) }
html body main.page-screen .related-card--all { display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:0;height:auto;align-self:start;text-align:left }
html body main.page-screen .related-card--all::after { background-color:var(--primary) }
html body main.page-screen .related-card-name { font-size:16px;line-height:1.45 }
html body main.page-screen .related-card-summary { line-height:1.7 }
html body main.page-screen .related-card::after { content:'' !important;position:absolute !important;top:50% !important;right:var(--sp-4) !important;width:16px !important;height:16px !important;margin-top:-8px !important;transform:none !important;background-color:var(--muted-foreground);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:16px 16px;mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>");mask-repeat:no-repeat;mask-position:center;mask-size:16px 16px;pointer-events:none }
}
@media (min-width:601px) and (max-width:900px) {
html body .pc-start-row { flex-direction:row }
html body .pc-start-input { width:auto }
html body .pc-start-submit { width:auto;padding-left:28px;padding-right:28px }
}
.std-feature-sub .card--stack { background:var(--card) }
.logic-list { margin-top:var(--sp-10);border-top:1px solid var(--border) }
.logic-row { display:grid;grid-template-columns:minmax(240px,320px) 1fr;column-gap:var(--sp-12,48px);row-gap:var(--sp-2);padding:var(--sp-7) 0;border-bottom:1px solid var(--border);align-items:start }
.logic-num { font-family:var(--font-sans);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:var(--primary);letter-spacing:0.06em;margin-bottom:var(--sp-2) }
.logic-term { margin:0;font-size:var(--text-display-sm);line-height:var(--text-display-sm-lh);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight) }
.logic-desc { margin:0;line-height:1.9;color:var(--foreground) }
@media (max-width:820px) {
.logic-row { grid-template-columns:1fr;padding:var(--sp-6) 0 }
}
.hero-entry { margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start }
.hero-entry-row { display:flex;flex-wrap:wrap;gap:var(--sp-2) }
.hero-entry-link { display:inline-flex;align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--card);font-size:var(--text-body-sm);font-weight:600;color:var(--foreground);cursor:pointer;transition:border-color 160ms ease-out,background-color 160ms ease-out,color 160ms ease-out }
.hero-entry-link:hover { border-color:var(--primary);background:var(--primary-soft);color:var(--primary) }
.hero-entry-arrow { color:var(--primary);font-weight:400 }
.entry-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5) }
.entry-grid .card--stack { transition:border-color 160ms ease-out }
.entry-grid .card--stack:hover { border-color:var(--primary) }
.entry-grid .feature-card-body { display:flex;flex-direction:column;gap:var(--sp-3) }
.entry-grid .feature-card-body>* { margin:0 }
.entry-grid .feature-card-body h4 { line-height:1.5 }
.entry-grid .feature-card-body .card-eyebrow { margin-bottom:var(--sp-1) }
.entry-grid .feature-card-body .mt-2 { margin-top:var(--sp-2) }
@media (max-width:900px) {
.entry-grid { grid-template-columns:1fr;gap:var(--sp-6) }
}
.sub-link { display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-5) var(--sp-6);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--card);cursor:pointer;transition:border-color 160ms ease-out,background-color 160ms ease-out }
.sub-link:hover { border-color:var(--primary);background:var(--primary-soft) }
.sub-link-body { display:flex;flex-direction:column;gap:var(--sp-1) }
.sub-link-cta { flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--sp-5);border-radius:var(--radius-md);background:var(--primary);color:var(--primary-foreground);font-size:var(--text-body-sm);font-weight:600;white-space:nowrap }
.sub-link:hover .sub-link-cta { background:var(--primary-hover,var(--primary)) }
@media (max-width:900px) {
.sub-link { flex-direction:column;align-items:flex-start;gap:var(--sp-4) }
.sub-link-cta { width:100%;justify-content:center }
}
.related-card-img { display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/10;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--muted);margin:0 0 var(--sp-1);font-size:12px;color:var(--muted-foreground);text-align:center }
.related-card-img>img,.related-card-img picture img { width:100%;height:100%;object-fit:cover;display:block }
@media (max-width:640px) {
html body main.page-screen .related-card .related-card-img { display:none }
}
:root { --ins-condo:oklch(0.5 0.05 280);--ins-house:oklch(0.5 0.05 100);--ins-land:oklch(0.5 0.05 50);--ins-s1:var(--primary);--ins-s2:color-mix(in oklch,var(--primary) 65%,white);--ins-s3:color-mix(in oklch,var(--primary) 40%,white);--ins-s4:color-mix(in oklch,var(--primary) 18%,white) }
.ins-hero-head { display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-16);align-items:center }
.ins-hero-head .kit-service-hero-lede { max-width:none }
.ins-hero-head .kit-service-hero-lede+.kit-service-hero-lede { margin-top:var(--sp-4) }
@media (max-width:768px) {
.ins-hero-head { grid-template-columns:1fr;gap:var(--sp-6) }
.ins-hero-img { max-width:360px }
}
.ins-form { display:grid;grid-template-columns:1fr;gap:var(--sp-8);align-items:start;margin-top:var(--sp-10);padding:var(--sp-8);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card) }
#insResult { margin-top:var(--sp-10) }
#insResult:empty { display:none }
.ins-result-head { margin-bottom:var(--sp-6) }
.ins-result-head .kit-section-title { margin-top:var(--sp-2) }
.ins-result-note { margin:var(--sp-3) 0 0;font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7 }
.lic-row { display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap }
.ins-form .field { display:flex;flex-direction:column;gap:var(--sp-3) }
.ins-form .field__label { display:flex;align-items:center;gap:var(--sp-2);margin:0 }
.ins-form .field__hint:not(:empty) { margin-top:var(--sp-1) }
#insForm .pr-choice-row { gap:var(--sp-3) }
.lic-row .lic-auth { flex:0 0 auto }
.field--biz { border:0;padding:0;margin:0;min-width:0 }
.field--biz legend { padding:0;float:left;width:100% }
.lic-sep { color:var(--muted-foreground);font-size:var(--text-body-sm);padding:0 2px }
.town-cands { margin-top:var(--sp-4) }
.town-cands.is-waiting { display:none }
.town-cands:not(.is-waiting) { animation:ins-in 220ms ease-out }
.town-cands.is-invalid { border-color:var(--destructive) }
.town-cands-empty { padding:var(--sp-3) var(--sp-4);font-size:var(--text-body-sm);color:var(--muted-foreground) }
.ins-form .field__hint:empty { display:none }
.ins-form-actions { display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-2);padding-top:var(--sp-6);border-top:1px solid var(--border);flex-wrap:wrap }
.ins-report { display:flex;flex-direction:column;gap:var(--sp-8) }
.ins-page { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-8) var(--sp-8) var(--sp-6) }
.ins-page-head { display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);border-bottom:1px solid var(--border);padding-bottom:var(--sp-4);margin-bottom:var(--sp-6) }
.ins-page-title { font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight) }
.ins-page-no { font-family:var(--font-sans);font-size:12px;color:var(--muted-foreground);letter-spacing:.06em;white-space:nowrap }
.ins-cover-label { display:inline-flex;white-space:nowrap;align-items:center;height:26px;padding:0 var(--sp-3);border:1px solid var(--primary);color:var(--primary);border-radius:var(--radius-md);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide) }
.ins-cover-h { font-size:var(--text-display-md);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--text-display-md-lh);margin:var(--sp-4) 0 var(--sp-3) }
.ins-cover-meta { display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);font-family:var(--font-sans);font-size:12px;color:var(--muted-foreground);letter-spacing:.04em }
.ins-cover-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);margin-top:var(--sp-8) }
.ins-dl { display:grid;grid-template-columns:auto 1fr;gap:0 var(--sp-5);margin:0;border-top:1px solid var(--border) }
.ins-dl dt,.ins-dl dd { padding:var(--sp-3) 0;border-bottom:1px solid var(--border);margin:0;font-size:var(--text-body-sm);line-height:1.6 }
.ins-dl dt { color:var(--muted-foreground);font-weight:var(--font-weight-medium);white-space:nowrap }
.ins-dl dd { font-weight:var(--font-weight-medium) }
.ins-toc { margin:0;padding:0;list-style:none;border-top:1px solid var(--border) }
.ins-toc li { display:flex;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);font-size:var(--text-body-sm) }
.ins-toc li span:last-child { font-family:var(--font-sans);color:var(--muted-foreground) }
.ins-kpi-head { font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);letter-spacing:var(--tracking-wide);margin-top:var(--sp-8) }
.ins-kpis { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);margin-top:var(--sp-3) }
.ins-kpis .kpi-card { gap:var(--sp-1) }
.ins-kpis .kpi-label { min-height:0;font-family:var(--font-sans);font-size:var(--text-body-sm);letter-spacing:0;color:var(--muted-foreground) }
.ins-kpis .kpi-sub { font-size:var(--text-body-sm);color:var(--muted-foreground);margin-top:var(--sp-1);font-variant-numeric:tabular-nums }
.ins-grid { display:grid;gap:var(--sp-6) }
.ins-grid--2 { grid-template-columns:1fr 1fr }
.ins-grid--ls { grid-template-columns:3fr 2fr }
.ins-fig { margin:0;min-width:0 }
.ins-fig figcaption { display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--text-body-sm) }
.ins-fig-no { font-family:var(--font-sans);color:var(--primary);font-weight:var(--font-weight-semibold);letter-spacing:.04em }
.ins-fig-title { font-weight:var(--font-weight-semibold) }
.ins-fig-sub { color:var(--muted-foreground);margin-left:auto;text-align:right }
.ins-fig .table-wrap { max-height:none;overflow-y:visible;overflow-x:auto }
.ins-table { font-size:var(--text-body-sm) }
.ins-table th,.ins-table td { white-space:nowrap;font-variant-numeric:tabular-nums }
.ins-table td.num,.ins-table th.num { text-align:right }
.ins-table tbody th { width:auto;font-weight:var(--font-weight-medium) }
.ins-table tr.is-own th,.ins-table tr.is-own td { background:var(--primary-soft);color:var(--primary);font-weight:var(--font-weight-semibold) }
.ins-table tr.is-total th,.ins-table tr.is-total td { border-top:1px solid var(--border-strong);font-weight:var(--font-weight-semibold) }
.ins-table tr.is-group th { background:var(--card);color:var(--foreground);font-weight:var(--font-weight-bold);border-top:2px solid var(--border-strong) }
.ins-table tr.is-sub th { padding-left:var(--sp-6);color:var(--muted-foreground);font-weight:var(--font-weight-regular,400) }
.ins-table td.empty { color:var(--foreground-subtle) }
.ins-type { display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px }
.ins-chart { display:block;width:100%;height:auto;font-family:var(--font-sans);font-size:12px }
.ins-chart text { fill:var(--foreground) }
.ins-chart .muted { fill:var(--muted-foreground) }
.ins-chart .grid { stroke:var(--border);stroke-width:1 }
.ins-chart .axis { stroke:var(--border-strong);stroke-width:1 }
.ins-legend { display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);font-size:var(--text-body-sm);color:var(--muted-foreground);margin-top:var(--sp-2) }
.ins-legend span { display:inline-flex;align-items:center;gap:6px }
.ins-legend i { width:10px;height:10px;border-radius:2px;display:inline-block }
.ins-foot { display:grid;grid-template-columns:3fr 2fr;gap:var(--sp-6);margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:1px solid var(--border) }
.ins-notes { margin:0;padding-left:1.4em;font-size:var(--text-body-sm);line-height:1.75;color:var(--foreground) }
.ins-notes li+li { margin-top:var(--sp-2) }
.ins-defs { background:var(--muted);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);font-size:var(--text-body-sm);line-height:1.7 }
.ins-defs-h { font-weight:var(--font-weight-semibold);color:var(--muted-foreground);font-size:12px;letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-2) }
.ins-defs dl { margin:0 }
.ins-defs dt { display:inline;font-weight:var(--font-weight-semibold) }
.ins-defs dt::after { content:"：";font-weight:400 }
.ins-defs dd { display:inline;margin:0 }
.ins-defs .def+.def { margin-top:var(--sp-1) }
.ins-defs .def { display:block }
.ins-source { margin-top:var(--sp-5);font-family:var(--font-sans);font-size:11px;color:var(--muted-foreground);letter-spacing:.03em }
.ins-alert { border:1px solid var(--warning-border,var(--border-strong));background:var(--warning-muted,var(--muted));color:var(--foreground);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);font-size:var(--text-body-sm);line-height:1.7 }
.ins-cta-row { display:flex;flex-wrap:wrap;gap:var(--sp-5);align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-7);background:var(--card) }
.ins-cta-text { flex:1 1 320px;min-width:0 }
.ins-cta-text strong { display:block;font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-2) }
.ins-cta-row p { margin:0;font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7 }
.ins-cta-btns { display:flex;gap:var(--sp-3);flex-wrap:wrap }
@media (max-width:1000px) {
.ins-grid--2,.ins-grid--ls,.ins-foot { grid-template-columns:1fr }
}
@media print {
.site-header,.site-footer,.kit-service-hero,.kit-section--muted,.dark-cta,.kit-section-eyebrow,.kit-section-title,.kit-section-lede,.ins-cta-row,.chat-dock,.product-subnav { display:none }
.kit-section { padding:0 }
.ins-page { break-inside:avoid;break-after:page;border:0;padding:0 }
.ins-report { gap:0 }
.ins-fig .table-wrap { overflow:visible }
}
@media (max-width:860px) {
.ins-cover-grid { grid-template-columns:1fr }
.ins-kpis { grid-template-columns:1fr }
.ins-page { padding:var(--sp-6) var(--sp-5) }
}
.ins-step { display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:var(--primary-foreground);font-family:var(--font-sans);font-size:11px;font-weight:600;margin-right:var(--sp-2);vertical-align:-3px }
@keyframes ins-in {
from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}
}
.town-cands-empty { display:none }
.ins-form { --height-control:36px;--radius:3px;--accent:oklch(0.9876 0.0018 248.57);--input:oklch(0.8408 0.0095 258.38);--border-strong:oklch(0.8408 0.0095 258.38);--ring-focus:0 0 0 2px rgb(29 33 40 / 0.08);--duration-fast:120ms;--easing:cubic-bezier(.2,0,0,1);--field-w-num6:120px;--field-w-code:200px;--field-w-text:320px }
.ins-form .pr-input,.ins-form .pr-select { height:var(--height-control);padding:0 var(--sp-2);border:1px solid var(--input);border-radius:var(--radius);background:var(--card);font-family:var(--font-sans);font-size:var(--text-body-md);color:var(--foreground);text-align:left;outline:none;width:var(--field-w-text);max-width:100%;transition:border-color var(--duration-fast) var(--easing),box-shadow var(--duration-fast) var(--easing) }
.ins-form .pr-input:hover:not(:disabled),.ins-form .pr-select:hover:not(:disabled) { border-color:var(--border-strong) }
.ins-form .pr-input:focus-visible,.ins-form .pr-select:focus-visible { box-shadow:var(--ring-focus);border-color:var(--foreground) }
.ins-form .pr-input[aria-invalid="true"] { border-color:var(--destructive) }
.ins-form .pr-input.is-num { font-variant-numeric:tabular-nums }
.ins-form .pr-input--num6 { width:var(--field-w-num6) }
.ins-form .pr-select { appearance:none;-webkit-appearance:none;padding-right:var(--sp-6);background-image:linear-gradient(45deg,transparent 50%,var(--muted-foreground) 50%),linear-gradient(135deg,var(--muted-foreground) 50%,transparent 50%);background-position:right calc(var(--sp-2) + 4px) center,right var(--sp-2) center;background-size:4px 4px,4px 4px;background-repeat:no-repeat }
.ins-form .pr-select--code { width:var(--field-w-code) }
.ins-form .pr-radio { position:relative;display:flex;flex:0 0 auto;max-width:100%;align-items:center;gap:var(--sp-2);height:var(--height-control);padding:0 var(--sp-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--text-body-md);line-height:var(--text-body-md-lh,1.5);color:var(--foreground);cursor:pointer;transition:background var(--duration-fast) var(--easing),border-color var(--duration-fast) var(--easing) }
.ins-form .pr-radio:hover { background:var(--accent) }
.ins-form .pr-radio:has(input:checked) { border-color:var(--border-strong) }
.ins-form .pr-radio input { position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap }
.ins-form .pr-radio__box { flex:0 0 auto;width:var(--sp-4);height:var(--sp-4);display:inline-flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--input);border-radius:50%;transition:background var(--duration-fast) var(--easing),border-color var(--duration-fast) var(--easing) }
.ins-form .pr-radio input:checked+.pr-radio__box { border-color:var(--primary) }
.ins-form .pr-radio input:checked+.pr-radio__box::after { content:"";width:var(--sp-2);height:var(--sp-2);border-radius:50%;background:var(--primary) }
.ins-form .pr-radio input:focus-visible+.pr-radio__box { box-shadow:var(--ring-focus);border-color:var(--foreground) }
.ins-form .pr-radio__label { color:inherit;font-weight:var(--font-weight-medium);white-space:nowrap }
.ins-form .pr-choice-row { display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(max-content,1fr);align-items:stretch;gap:var(--sp-2);width:max-content;max-width:100%;align-self:flex-start;justify-self:start }
.ins-form .pr-choice-row>.pr-radio { min-width:0;justify-content:flex-start }
.ins-form .pr-choice-row--wrap { grid-auto-flow:row;grid-auto-columns:unset;grid-template-columns:repeat(auto-fill,minmax(var(--pr-choice-col,140px),1fr));width:100% }
.ins-form .pr-choice-row--stack { grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:minmax(var(--field-w-text),max-content) }
.ins-form .pr-choice-row--stack>.pr-radio { width:100% }
.ins-form .pr-radio__label--wrap { white-space:normal }
.nf { max-width:calc(1080px + var(--page-padding-x) * 2);width:100%;box-sizing:border-box;margin:0 auto;padding:clamp(72px,10vw,132px) var(--page-padding-x) clamp(56px,7vw,96px) }
.nf-code { font-family:var(--font-sans);font-size:clamp(56px,9vw,104px);line-height:1;font-weight:700;letter-spacing:-.02em;color:var(--primary);margin:0 }
.nf-title { font-size:var(--fs-hero-mid);line-height:1.3;font-weight:700;letter-spacing:.005em;color:var(--foreground);margin:var(--sp-8) 0 0 }
.nf-lead { margin:var(--sp-5) 0 0;max-width:60ch;line-height:1.85;color:var(--muted-foreground) }
.nf-actions { display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-9) }
.spa-page[hidden] { display:none }
body.spa-internal>.site-header,body.spa-internal>.site-footer { display:none }
.sm-groups { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-12);margin-top:var(--sp-10) }
.sm-group--wide { grid-column:1 / -1 }
.sm-group-title { font-size:var(--fs-body);line-height:1.4;font-weight:700;letter-spacing:.01em;color:var(--foreground);margin:0 0 var(--sp-1);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-strong) }
.sm-list { list-style:none;margin:0;padding:0 }
.sm-list--cols { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-12) }
.sm-item { display:flex;align-items:flex-start;gap:var(--sp-4);min-height:44px;padding:var(--sp-4) 0;border-bottom:1px solid var(--border) }
.sm-item--sub { padding-left:var(--sp-5);box-shadow:inset 2px 0 0 -1px var(--border) }
.sm-thumb { flex:0 0 auto;width:96px;aspect-ratio:1200/630;object-fit:cover;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted) }
.sm-body { min-width:0;flex:1 1 auto }
.sm-head { display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--sp-3);row-gap:2px }
.sm-link { color:var(--primary);font-weight:600;cursor:pointer;transition:color 150ms ease-out }
.sm-link:hover { text-decoration:underline;text-underline-offset:3px }
.sm-item--sub .sm-link { font-weight:500 }
.sm-path { font-family:var(--font-sans);font-size:.8em;color:var(--muted-foreground);white-space:nowrap }
.sm-desc { margin:var(--sp-1) 0 0;font-size:.86em;line-height:1.7;color:var(--muted-foreground);text-wrap:pretty }
.sm-note { margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--border);color:var(--muted-foreground) }
.sm-note a,.sm-note a:hover { color:var(--primary) }
@media (max-width:1000px) {
.sm-groups,.sm-list--cols { grid-template-columns:1fr;gap:var(--sp-10) 0 }
}
@media (max-width:760px) {
.sm-path { display:none }
.sm-thumb { width:72px }
}
.us { max-width:calc(1080px + var(--page-padding-x) * 2);width:100%;box-sizing:border-box;margin:0 auto;padding:clamp(64px,9vw,120px) var(--page-padding-x) clamp(56px,7vw,96px) }
.us-wrap { max-width:640px }
.us-title { font-size:var(--fs-hero-mid);line-height:1.3;font-weight:700;letter-spacing:.005em;color:var(--foreground);margin:0 }
.us-lead { margin:var(--sp-5) 0 0;line-height:1.85;color:var(--muted-foreground) }
.us-form { margin-top:var(--sp-10);display:flex;flex-direction:column;gap:var(--sp-8) }
.us-form .field__label { font-size:var(--fs-body);font-weight:600 }
.us-actions { display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);padding-top:var(--sp-2) }
.us-scope { margin:var(--sp-8) 0 0;padding:var(--sp-5) var(--sp-6);background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg) }
.us-scope-title { margin:0;font-size:var(--fs-body);font-weight:700;color:var(--foreground) }
.us-scope-list { margin:var(--sp-3) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);line-height:1.7;color:var(--foreground) }
.us-scope-list li { position:relative;padding-left:var(--sp-4) }
.us-scope-list li::before { content:"";position:absolute;left:0;top:.85em;width:6px;height:1px;background:var(--border-strong) }
.us-scope-list strong { font-weight:700;color:var(--foreground) }
.us-scope-list li span { display:block;font-size:.9em;color:var(--muted-foreground) }
.us-scope-list { gap:var(--sp-3) }
.us-form { margin-top:var(--sp-4) }
.us-kept { display:none }
.us.is-kept .us-form,.us.is-kept .us-entry { display:none }
.us.is-kept .us-kept { display:block }
.us-actions .button[aria-busy="true"] { opacity:.7;cursor:progress }
.us-done { display:none }
.us.is-done .us-form,.us.is-done .us-entry { display:none }
.us.is-done .us-done { display:block }
.us-done .us-actions { margin-top:var(--sp-9) }
@media (max-width:760px) {
.us-actions { flex-direction:column;align-items:stretch }
.us-actions .button { width:100%;justify-content:center }
.us-actions .us-link { text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center }
}
@scope ([data-spa-page="site-structure-diagram.html"]) {
* { box-sizing:border-box }
:scope { margin:0;background:var(--muted);color:var(--foreground);font-family:var(--font-sans)}
a { color:var(--primary) }
a:hover { color:var(--primary-hover) }
.wrap { max-width:1440px;margin:0 auto;padding:clamp(20px,4vw,48px) clamp(16px,4vw,40px) 64px }
.head { display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;margin-bottom:20px }
.eyebrow { font-size:12px;letter-spacing:.14em;font-weight:600;color:var(--muted-foreground);margin:0 0 6px }
h1 { font-size:clamp(22px,2.4vw,30px);font-weight:700;margin:0;letter-spacing:-.01em }
.sub { margin:8px 0 0;color:var(--muted-foreground);font-size:14px;max-width:62ch;text-wrap:pretty }
.legend { display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:12px;color:var(--muted-foreground) }
.lg { display:flex;align-items:center;gap:7px }
.sw { width:22px;height:0;border-top:2px solid var(--primary) }
.sw.dash { border-top-style:dashed;border-color:var(--deal-purchase) }
.dot { width:10px;height:10px;border-radius:2px;background:var(--primary) }
.dot.util { background:var(--border-strong) }
.board { position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,6px);overflow:auto;box-shadow:var(--shadow-card,0 1px 1px rgba(0,0,0,.04)) }
.canvas { position:relative;transform-origin:0 0 }
svg.links { position:absolute;inset:0;overflow:visible;pointer-events:none }
.node { position:absolute;display:flex;flex-direction:column;justify-content:center;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md,5px);padding:0 12px;text-decoration:none;color:inherit;transition:border-color .15s ease-out,background .15s ease-out }
.node:hover { border-color:var(--primary);background:var(--primary-soft,rgba(10,57,112,.06));color:inherit }
.node .nm { font-size:13px;font-weight:600;line-height:1.25 }
.node .pt { font-family:var(--font-sans);font-size:10.5px;color:var(--muted-foreground);line-height:1.2 }
.node.lv0 { background:var(--primary);border-color:var(--primary) }
.node.lv0 .nm { color:var(--primary-foreground);font-size:14px;font-weight:700 }
.node.lv0 .pt { color:rgba(255,255,255,.72) }
.node.lv0:hover { background:var(--primary-hover) }
.node.lv1 { border-color:var(--border-strong) }
.node.util { background:var(--muted);border-style:dashed }
.node.virt { background:transparent;border-style:dashed;border-color:var(--border) }
.node.virt:hover { background:transparent;border-color:var(--border) }
.node.virt .nm { font-weight:500;color:var(--muted-foreground) }
.grouplabel { position:absolute;font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--muted-foreground) }
.notes { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:20px }
.note { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,6px);padding:16px 18px }
.note h3 { margin:0 0 6px;font-size:13px;font-weight:700 }
.note p { margin:0;font-size:12.5px;line-height:1.7;color:var(--muted-foreground) }
.bar { display:flex;gap:8px;align-items:center;margin:0 0 12px }
.btn { height:32px;padding:0 12px;font-size:12px;font-weight:600;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:var(--radius-md,5px);cursor:pointer }
.btn:hover { background:var(--primary-soft,rgba(10,57,112,.06));border-color:var(--primary);color:var(--primary) }
}
@scope ([data-spa-page="page-inventory.html"]) {
* { box-sizing:border-box }
:scope { margin:0;background:var(--muted);color:var(--foreground);font-family:var(--font-sans)}
a { color:var(--primary);text-decoration:none }
a:hover { color:var(--primary-hover);text-decoration:underline }
.wrap { max-width:1400px;margin:0 auto;padding:clamp(20px,4vw,44px) clamp(14px,3vw,32px) 64px }
.eyebrow { font-size:12px;letter-spacing:.14em;font-weight:600;color:var(--muted-foreground);margin:0 0 6px }
h1 { font-size:clamp(21px,2.2vw,28px);font-weight:700;margin:0 0 8px;letter-spacing:-.01em }
.sub { margin:0;color:var(--muted-foreground);font-size:13.5px;max-width:74ch;text-wrap:pretty }
.bar { display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 12px }
.btn { height:34px;padding:0 14px;font-size:12.5px;font-weight:600;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:var(--radius-md,5px);cursor:pointer }
.btn:hover { background:var(--primary-soft,rgba(10,57,112,.06));border-color:var(--primary);color:var(--primary) }
.btn.on { background:var(--primary);border-color:var(--primary);color:var(--primary-foreground) }
.count { font-size:12px;color:var(--muted-foreground);margin-left:auto }
.tablewrap { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,6px);overflow:auto }
table { border-collapse:collapse;width:100%;min-width:1240px }
th,td { text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:12.5px }
td.clip { max-width:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
th.title,td.title { min-width:250px }
th.parent,td.parent { min-width:130px }
th.desc,td.desc { min-width:320px }
thead th { position:sticky;top:0;background:var(--muted);font-size:11px;letter-spacing:.06em;font-weight:700;color:var(--muted-foreground);white-space:nowrap;z-index:1;border-bottom:1px solid var(--border-strong) }
tbody tr:hover { background:var(--primary-soft,rgba(10,57,112,.05)) }
td.mono,th.mono { font-family:var(--font-sans);font-size:11.5px;white-space:nowrap }
td.nm { font-weight:600;white-space:nowrap }
td.desc { color:var(--muted-foreground) }
.chip { display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;white-space:nowrap;border:1px solid var(--border) }
.c-data { color:var(--deal-rental);border-color:color-mix(in srgb,var(--deal-rental) 35%,transparent) }
.c-prod { color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,transparent) }
.c-corp { color:var(--deal-purchase);border-color:color-mix(in srgb,var(--deal-purchase) 35%,transparent) }
.c-cv { color:var(--foreground);background:var(--muted) }
.c-legal { color:var(--muted-foreground) }
.c-int { color:var(--muted-foreground);border-style:dashed }
.note { margin-top:14px;font-size:12px;color:var(--muted-foreground);line-height:1.7 }
}
@scope ([data-spa-page="component-inventory.html"]) {
* { box-sizing:border-box }
:scope { margin:0;background:var(--muted);color:var(--foreground);font-family:var(--font-sans)}
a { color:var(--primary);text-decoration:none }
a:hover { color:var(--primary-hover);text-decoration:underline }
.wrap { max-width:1460px;margin:0 auto;padding:clamp(20px,4vw,44px) clamp(14px,3vw,32px) 64px }
.eyebrow { font-size:12px;letter-spacing:.14em;font-weight:600;color:var(--muted-foreground);margin:0 0 6px;font-family:var(--font-sans)}
h1 { font-size:clamp(21px,2.2vw,28px);font-weight:700;margin:0 0 8px;letter-spacing:-.01em }
.sub { margin:0;color:var(--muted-foreground);font-size:13.5px;line-height:1.85;max-width:82ch;text-wrap:pretty }
.kpis { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin:22px 0 4px }
.kpi { background:var(--card);padding:14px 16px 13px }
.kpi b { display:block;font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums }
.kpi span { display:block;font-size:11.5px;color:var(--muted-foreground);margin-top:5px;font-weight:600 }
.kpi small { display:block;font-size:11px;color:var(--muted-foreground);margin-top:2px;line-height:1.6 }
.k-all b { color:var(--primary) }
.k-stop b { color:var(--muted-foreground) }
.bar { display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 12px }
.btn { height:34px;padding:0 14px;font-size:12.5px;font-weight:600;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:var(--radius-md,5px);cursor:pointer }
.btn:hover { background:var(--primary-soft,rgba(10,57,112,.06));border-color:var(--primary);color:var(--primary) }
.btn.on { background:var(--primary);border-color:var(--primary);color:var(--primary-foreground) }
.srch { height:34px;padding:0 11px;font-size:12.5px;border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:var(--radius-md,5px);width:200px }
.srch:focus { outline:none;border-color:var(--primary);box-shadow:var(--ring-focus,0 0 0 3px rgba(10,57,112,.2)) }
.count { font-size:12px;color:var(--muted-foreground);margin-left:auto;font-variant-numeric:tabular-nums }
.tablewrap { background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,6px);overflow:auto;max-height:calc(100vh - 48px) }
table { border-collapse:separate;border-spacing:0;width:100%;min-width:1290px }
th,td { text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12.5px;vertical-align:middle }
thead th { position:sticky;background:var(--muted);font-size:11px;font-weight:700;color:var(--muted-foreground);letter-spacing:.04em;z-index:3;border-bottom:1px solid var(--border-strong) }
thead tr.grp th { top:0;height:24px;padding:0 6px;font-family:var(--font-sans);font-size:10px;letter-spacing:.06em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border) }
thead tr.grp th.p+th.p { border-left:1px solid var(--border) }
thead tr.hd th { top:24px }
th.nm,td.nm { min-width:236px;max-width:236px;position:sticky;left:0;background:var(--card);z-index:2;border-right:1px solid var(--border) }
thead th.nm { background:var(--muted);z-index:5 }
td.nm b { display:block;font-size:13px;font-weight:600;line-height:1.45 }
td.nm code { display:block;font-family:var(--font-sans);font-size:10.5px;color:var(--muted-foreground);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
th.gr,td.gr { min-width:96px;white-space:nowrap;color:var(--muted-foreground);font-size:11.5px }
th.ct,td.ct { min-width:96px }
th.n,td.n { min-width:56px;text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-sans);font-size:11.5px;color:var(--muted-foreground) }
td.n b { color:var(--foreground);font-weight:700 }
th.p,td.p { width:24px;min-width:24px;max-width:24px;padding:0;text-align:center }
thead th.p { height:104px;vertical-align:bottom;padding:0 0 8px }
thead th.p a,thead th.p span { writing-mode:vertical-rl;display:inline-block;text-decoration:none;font-size:10.5px;font-weight:600;letter-spacing:.02em;color:var(--muted-foreground);line-height:1.1;white-space:nowrap }
thead th.p a:hover { color:var(--primary);text-decoration:underline }
tbody tr:hover td { background:var(--primary-soft,rgba(10,57,112,.05)) }
tbody tr:hover td.nm { background:color-mix(in srgb,var(--primary) 7%,var(--card)) }
td.p.tint { background:rgba(0,0,0,.022) }
tbody tr:hover td.p.tint { background:var(--primary-soft,rgba(10,57,112,.07)) }
.d { display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary) }
.e { display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--border-strong);opacity:.7 }
tr.stop td { color:var(--muted-foreground) }
tr.stop td.nm b { font-weight:500;color:var(--muted-foreground) }
tr.sec td { background:var(--muted);border-bottom:1px solid var(--border-strong);border-top:1px solid var(--border-strong);padding:7px 10px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--foreground);position:sticky;left:0 }
.chip { display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;white-space:nowrap;border:1px solid var(--border) }
.c-all { color:var(--primary-foreground);background:var(--primary);border-color:var(--primary) }
.c-multi { color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent) }
.c-one { color:var(--deal-purchase);border-color:color-mix(in srgb,var(--deal-purchase) 40%,transparent) }
.c-stop { color:var(--muted-foreground);border-style:dashed }
.js { display:inline-block;margin-left:4px;padding:1px 5px;border-radius:3px;font-size:9.5px;font-weight:700;color:var(--deal-rental);border:1px solid color-mix(in srgb,var(--deal-rental) 35%,transparent);font-family:var(--font-sans)}
.legend { display:flex;flex-wrap:wrap;gap:18px;margin:14px 0 0;font-size:11.5px;color:var(--muted-foreground);align-items:center }
.legend i { font-style:normal;display:inline-flex;align-items:center;gap:6px }
.note { margin-top:16px;font-size:12px;color:var(--muted-foreground);line-height:1.85;border-top:1px solid var(--border);padding-top:14px }
.note b { color:var(--foreground) }
.note ul { margin:6px 0 0;padding-left:1.2em }
}
@scope ([data-spa-page="component-library.html"]) {
* { box-sizing:border-box }
:scope { margin:0;background:var(--muted);color:var(--foreground);font-family:var(--font-sans);font-size:14px;line-height:1.8 }
a { color:var(--primary);text-decoration:none }
a:hover { color:var(--primary-hover);text-decoration:underline }
.layout { display:grid;grid-template-columns:236px minmax(0,1fr);gap:0;min-height:100vh }
.side { border-right:1px solid var(--border);background:var(--card);padding:20px 0 40px;position:sticky;top:0;height:100vh;overflow:auto }
.side .brand { padding:0 18px 14px;border-bottom:1px solid var(--border);margin-bottom:12px }
.side .brand b { display:block;font-size:13px;font-weight:700 }
.side .brand span { display:block;font-size:11px;color:var(--muted-foreground);font-family:var(--font-sans)}
.nav-g { padding:14px 18px 5px;font-size:10.5px;letter-spacing:.1em;font-weight:700;color:var(--muted-foreground);font-family:var(--font-sans)}
.side a { display:block;padding:5px 18px;font-size:12.5px;color:var(--foreground);border-left:2px solid transparent }
.side a:hover { background:var(--primary-soft,rgba(10,57,112,.06));color:var(--primary);text-decoration:none;border-left-color:var(--primary) }
.doc { padding:clamp(20px,3vw,40px) clamp(16px,3vw,44px) 80px;max-width:1080px }
.eyebrow { font-size:11.5px;letter-spacing:.14em;font-weight:600;color:var(--muted-foreground);margin:0 0 6px;font-family:var(--font-sans)}
h1 { font-size:clamp(22px,2.2vw,29px);font-weight:700;margin:0 0 10px;letter-spacing:-.01em }
.lead { margin:0;color:var(--muted-foreground);font-size:13.5px;max-width:76ch;text-wrap:pretty }
.qs { background:var(--card);border:1px solid var(--border);border-radius:6px;padding:20px;margin:24px 0 8px }
.qs h2 { font-size:15px;margin:0 0 4px;font-weight:700 }
.qs p { margin:0 0 14px;font-size:12.5px;color:var(--muted-foreground) }
.files { display:grid;gap:1px;background:var(--border);border:1px solid var(--border);margin:0 0 16px }
.files div { background:var(--card);padding:9px 12px;display:flex;gap:12px;align-items:baseline;font-size:12.5px }
.allvp { display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px;font-size:12px;color:var(--muted-foreground) }
.allvp button { height:27px;padding:0 11px;font-size:11.5px;font-weight:600;font-family:var(--font-sans);border:1px solid var(--border-strong);background:var(--card);color:var(--foreground);border-radius:4px;cursor:pointer }
.allvp button:hover { border-color:var(--primary);color:var(--primary) }
.allvp button.on { background:var(--primary);border-color:var(--primary);color:var(--primary-foreground) }
.files code { font-family:var(--font-sans);font-size:11.5px;color:var(--primary);min-width:230px;font-weight:600 }
.files span { color:var(--muted-foreground);font-size:12px }
.grp { font-size:12px;letter-spacing:.1em;font-weight:700;color:var(--muted-foreground);font-family:var(--font-sans);margin:44px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border-strong) }
.cmp { background:var(--card);border:1px solid var(--border);border-radius:6px;margin-bottom:22px;overflow:hidden }
.cmp-head { padding:16px 18px 14px }
.cmp-head h3 { font-size:15px;font-weight:700;margin:0 0 7px;display:flex;flex-wrap:wrap;gap:10px;align-items:baseline }
.cmp-head h3 code { font-family:var(--font-sans);font-size:11px;font-weight:400;color:var(--muted-foreground) }
.cmp-meta { display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:11.5px;color:var(--muted-foreground);margin-bottom:9px }
.cmp-meta b { color:var(--foreground);font-family:var(--font-sans);font-size:11px }
.cmp-note { margin:0;font-size:12.5px;color:var(--muted-foreground);line-height:1.85;max-width:80ch }
.chp { display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;border:1px solid var(--border) }
.c-all { color:var(--primary-foreground);background:var(--primary);border-color:var(--primary) }
.c-multi { color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent) }
.c-one { color:var(--deal-purchase);border-color:color-mix(in srgb,var(--deal-purchase) 40%,transparent) }
.frame { border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--muted) }
.frame-bar { display:flex;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--border);background:var(--card) }
.frame-bar .vp { height:25px;padding:0 10px;font-size:11px;font-weight:600;font-family:var(--font-sans);border:1px solid var(--border);background:transparent;color:var(--muted-foreground);border-radius:4px;cursor:pointer }
.frame-bar .vp:hover { border-color:var(--primary);color:var(--primary) }
.frame-bar .vp.on { background:var(--primary);border-color:var(--primary);color:var(--primary-foreground) }
.frame-bar .w { margin-left:auto;font-size:10.5px;color:var(--muted-foreground);font-family:var(--font-sans)}
.frame-inner { margin:0 auto;background:var(--background);transition:width .18s ease-out;max-width:100% }
.frame-inner.narrow { border-left:1px solid var(--border);border-right:1px solid var(--border) }
.frame iframe { display:block;width:100%;border:0;height:220px }
.code { background:var(--foreground) }
.code-bar { display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid rgba(255,255,255,.1) }
.code-bar span { font-size:10.5px;letter-spacing:.1em;color:rgba(255,255,255,.5);font-family:var(--font-sans);font-weight:700 }
.copy { height:26px;padding:0 11px;font-size:11.5px;font-weight:600;border:1px solid rgba(255,255,255,.25);background:transparent;color:var(--primary-foreground);border-radius:4px;cursor:pointer;font-family:inherit }
.copy:hover { background:rgba(255,255,255,.12) }
.copy.ok { border-color:var(--success);color:var(--success-border) }
pre { margin:0;padding:14px 14px 16px;overflow:auto;max-height:300px }
.doc pre code { font-family:var(--font-sans);font-size:11.5px;line-height:1.75;color:var(--border);background:transparent;border:0;padding:0;white-space:pre-wrap;word-break:break-all }
.doc code { font-family:var(--font-sans);font-size:11.5px;color:var(--foreground);background:var(--muted);border:1px solid var(--border);border-radius:3px;padding:1px 5px;word-break:break-all }
.files code,.cmp-head h3 code { background:transparent;border:0;padding:0 }
.filerow { display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 18px;font-size:12.5px;color:var(--muted-foreground) }
.filerow .button { height:34px;display:inline-flex;align-items:center;padding:0 14px;border:1px solid var(--primary);color:var(--primary);border-radius:5px;font-size:12.5px;font-weight:600 }
.filerow .button:hover { background:var(--primary);color:var(--primary-foreground);text-decoration:none }
.rules { background:var(--card);border:1px solid var(--border);border-radius:6px;padding:18px 20px;margin-top:34px;font-size:12.5px;color:var(--muted-foreground);line-height:1.9 }
.rules h2 { font-size:14px;color:var(--foreground);margin:0 0 8px;font-weight:700 }
.rules ul { margin:0;padding-left:1.25em }
.rules b { color:var(--foreground) }
}
@scope ([data-spa-page="component-library.html"]) { @media(max-width:820px) {
.layout { grid-template-columns:1fr }
.side { position:static;height:auto;border-right:0;border-bottom:1px solid var(--border) }
}}
@scope ([data-spa-page="image-converter.html"]) {
:scope { background:var(--background);color:var(--foreground);font-family:var(--font-sans);margin:0 }
a { color:var(--primary) }
a:hover { color:var(--primary-hover) }
.cv-wrap { max-width:1080px;margin:0 auto;padding:var(--page-padding-x) }
.cv-head { display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:28px }
.cv-head-label { font-size:13px;color:var(--muted-foreground);letter-spacing:0.06em }
.cv-lead { color:var(--muted-foreground);max-width:56em;line-height:1.9;margin:0 }
.cv-steps { background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin:24px 0 }
.cv-steps ol { margin:0;padding-left:1.4em;line-height:2;font-size:14.5px }
.cv-steps code { font-family:var(--font-sans);font-size:0.88em;background:var(--background);border:1px solid var(--border);border-radius:4px;padding:1px 6px }
.drop { border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:border-color 0.15s ease-out,background 0.15s ease-out }
.drop:hover,.drop.is-over { border-color:var(--primary);background:var(--primary-soft) }
.drop-main { font-size:16px;font-weight:600;margin:0 0 6px }
.drop-sub { font-size:13.5px;color:var(--muted-foreground);margin:0 }
table.cv { width:100%;border-collapse:collapse;margin-top:24px;font-size:14px }
table.cv th,table.cv td { text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle }
table.cv thead th { font-size:12.5px;color:var(--muted-foreground);font-weight:600;letter-spacing:0.04em;border-bottom:1px solid var(--border-strong) }
td.cv-name { font-family:var(--font-sans);font-size:12.5px;word-break:break-all }
td.cv-dest { font-family:var(--font-sans);font-size:12.5px;color:var(--muted-foreground);word-break:break-all }
td.cv-num { white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted-foreground) }
td.cv-num strong { color:var(--foreground);font-weight:600 }
.cv-badge { display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;white-space:nowrap }
.cv-badge--ok { color:var(--success);background:var(--success-muted) }
.cv-badge--warn { color:var(--warning);background:var(--warning-muted) }
.cv-badge--err { color:var(--destructive);background:var(--destructive-muted) }
.cv-thumb { width:64px;height:40px;object-fit:cover;border:1px solid var(--border);border-radius:4px;display:block;background:var(--muted) }
.cv-actions { display:flex;align-items:center;gap:16px;margin-top:24px;flex-wrap:wrap }
.cv-total { font-size:14px;color:var(--muted-foreground);font-variant-numeric:tabular-nums }
.cv-total strong { color:var(--foreground) }
button.cv-dl { height:44px;padding:0 28px;font-size:15px;font-weight:600;font-family:var(--font-sans);color:var(--primary-foreground);background:var(--primary);border:0;border-radius:var(--radius-md,4.8px);cursor:pointer;transition:background 0.15s ease-out }
button.cv-dl:hover { background:var(--primary-hover) }
button.cv-dl:active { transform:translateY(1px) }
button.cv-dl:disabled { opacity:0.45;cursor:default;transform:none }
button.cv-clear { height:44px;padding:0 20px;font-size:14.5px;font-family:var(--font-sans);color:var(--foreground);background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-md,4.8px);cursor:pointer }
button.cv-clear:hover { background:var(--primary-soft) }
.cv-foot { margin-top:24px;color:var(--muted-foreground);font-size:13px;line-height:1.9 }
#fileInput { display:none }
}
@scope ([data-spa-page="demo-mail.html"]) {
:scope { margin:0;background:var(--border);font-family:var(--font-sans);-webkit-font-smoothing:antialiased }
a { color:var(--primary) }
a:hover { color:var(--primary-hover) }
.shell { max-width:460px;margin:0 auto;padding:28px 16px 48px }
.mailmeta { background:var(--background);border:1px solid var(--border-strong);border-radius:6px;padding:14px 20px;margin-bottom:20px }
.mailmeta table { border-collapse:collapse;width:100% }
.mailmeta th { font-size:11px;font-weight:600;color:var(--muted-foreground);text-align:left;padding:3px 14px 3px 0;white-space:nowrap;vertical-align:top }
.mailmeta td { font-size:12.5px;color:var(--foreground);padding:3px 0 }
.mailmeta .subj { font-weight:700 }
}
@scope ([data-spa-page="review-signup-growth.html"]) {
:scope { margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans)}
a { color:var(--primary);text-decoration:none }
a:hover { color:var(--primary-hover);text-decoration:underline }
.wrap { max-width:960px;margin:0 auto;padding:0 var(--page-padding-x) 96px }
.masthead { border-bottom:1px solid var(--border);padding:56px 0 32px;margin-bottom:12px }
.eyebrow { font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--primary);text-transform: none }
h1 { font-size:clamp(26px,3vw,34px);font-weight:700;line-height:1.35;margin:10px 0 12px }
.meta { color:var(--muted-foreground);font-size:14px;display:flex;gap:20px;flex-wrap:wrap }
h2 { font-size:22px;font-weight:700;line-height:1.4;margin:64px 0 8px;padding-top:24px;border-top:1px solid var(--border) }
h2 .no { font-family:var(--font-sans);color:var(--primary);margin-right:10px }
h3 { font-size:16.5px;font-weight:700;margin:28px 0 8px }
p,li { font-size:15.5px;line-height:1.85 }
p.lead { color:var(--muted-foreground);margin:0 0 20px }
ul { padding-left:1.3em;margin:8px 0 }
strong { font-weight:700 }
.kekka { border:1px solid var(--border-strong);border-radius:6px;padding:24px 28px;margin:28px 0;background:var(--muted) }
.kekka ol { margin:0;padding-left:1.4em }
.kekka li { margin:10px 0;line-height:1.8 }
table { width:100%;border-collapse:collapse;font-size:14.5px;margin:16px 0 }
th { background:var(--muted);text-align:left;font-weight:600;font-size:13.5px;color:var(--muted-foreground) }
th,td { border:1px solid var(--border);padding:10px 14px;line-height:1.7;vertical-align:top }
td .b { font-weight:600 }
.chip { display:inline-block;font-size:12px;font-weight:600;line-height:1;padding:5px 10px;border-radius:4px;white-space:nowrap }
.chip--hi { color:var(--destructive);background:var(--destructive-muted);border:1px solid var(--destructive-border) }
.chip--mid { color:var(--warning);background:var(--warning-muted);border:1px solid var(--warning-border) }
.chip--lo { color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border) }
.good li { margin:6px 0 }
.flow { display:flex;gap:0;align-items:stretch;margin:24px 0;flex-wrap:wrap }
.flow-step { flex:1;min-width:180px;border:1px solid var(--border);background:var(--card);padding:16px 18px;position:relative }
.flow-step+.flow-step { border-left:none }
.flow-step .n { font-family:var(--font-sans);font-weight:700;color:var(--primary);font-size:13px;letter-spacing:.08em }
.flow-step .t { font-weight:700;font-size:14.5px;margin:6px 0 4px;line-height:1.5 }
.flow-step .d { font-size:13px;color:var(--muted-foreground);line-height:1.7 }
.flow-step .tm { display:inline-block;margin-top:8px;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--primary) }
.ia { display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 }
.ia-col .ia-head { font-size:13px;font-weight:600;color:var(--muted-foreground);margin-bottom:10px;letter-spacing:.06em }
.tree { border:1px solid var(--border);border-radius:6px;background:var(--card);padding:18px 20px }
.tnode { font-size:14px;line-height:1.6;padding:7px 10px;border:1px solid var(--border);border-radius:4px;margin:6px 0;background:var(--background) }
.tnode.root { background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);font-weight:600 }
.tnode.sub { margin-left:26px;position:relative }
.tnode.sub::before { content:"";position:absolute;left:-14px;top:50%;width:12px;height:1px;background:var(--border-strong) }
.tnode .lbl { font-weight:600 }
.tnode .an { font-size:12px;color:var(--muted-foreground);display:block }
.tnode.new { border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset }
.tnode.ghost { border-style:dashed;color:var(--muted-foreground) }
.secmap { counter-reset:sm;border:1px solid var(--border);border-radius:6px;overflow:hidden;margin:16px 0 }
.secmap>div { counter-increment:sm;display:grid;grid-template-columns:44px 220px 1fr;border-top:1px solid var(--border);font-size:14px;line-height:1.7 }
.secmap>div:first-child { border-top:none }
.secmap>div::before { content:counter(sm,decimal-leading-zero);font-family:var(--font-sans);font-weight:600;color:var(--primary);padding:12px 0 12px 16px;font-size:13px }
.secmap .sm-t { font-weight:600;padding:12px 14px 12px 0 }
.secmap .sm-d { color:var(--muted-foreground);padding:12px 16px 12px 0;font-size:13.5px }
.secmap .is-new .sm-t::after { content:"新設";font-size:11px;font-weight:600;color:var(--primary);border:1px solid var(--primary);border-radius:3px;padding:2px 6px;margin-left:8px;vertical-align:1px }
.pagecard { border:1px solid var(--border);border-radius:6px;margin:20px 0;overflow:hidden }
.pagecard-h { display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 20px;background:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap }
.pagecard-h .nm { font-weight:700;font-size:15.5px }
.pagecard-h .pt { font-family:var(--font-sans);font-size:12.5px;color:var(--muted-foreground) }
.pagecard-b { padding:6px 20px 16px }
.pagecard-b p { font-size:14.5px;margin:10px 0 }
.pagecard-b .gd::before { content:"良い";font-size:11px;font-weight:600;color:var(--success);background:var(--success-muted);border:1px solid var(--success-border);border-radius:3px;padding:2px 7px;margin-right:9px }
.pagecard-b .fx::before { content:"直す";font-size:11px;font-weight:600;color:var(--destructive);background:var(--destructive-muted);border:1px solid var(--destructive-border);border-radius:3px;padding:2px 7px;margin-right:9px }
.note { border-left:3px solid var(--border-strong);padding:2px 0 2px 16px;color:var(--muted-foreground);font-size:14px;margin:16px 0 }
.cta-copy { font-size:14px;background:var(--muted);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-weight:600 }
}
@scope ([data-spa-page="review-signup-growth.html"]) { @media(max-width:760px) {
.ia { grid-template-columns:1fr }
.secmap>div { grid-template-columns:44px 1fr }
.secmap .sm-d { grid-column:2;padding-left:0 }
}}
@scope ([data-spa-page="review-signup-growth.html"]) { @media print {
.masthead { padding-top:0 }
h2 { break-after:avoid }
}}
.u-ac-start { align-content:start; }
.u-ai-center { align-items:center; }
.u-ai-flex-end { align-items:flex-end; }
.u-ai-flex-start { align-items:flex-start; }
.u-ar-16-10 { aspect-ratio:16/10; }
.u-b-1-5px-solid-primary { border:1.5px solid var(--primary); }
.u-b-1px-solid-e3e5e8 { border:1px solid var(--border); }
.u-b-none { border:none; }
.u-background-color-f4f5f7 { background-color:var(--muted); }
.u-background-color-notice-accent-fg { background-color:var(--notice-accent-fg); }
.u-bb-1px-solid-e3e5e8 { border-bottom:1px solid var(--border); }

.u-bg-primary { background:var(--primary); }
.u-bg-primary-soft { background:var(--primary-soft); }
.u-border-radius-5px { border-radius:5px; }
.u-border-radius-6px { border-radius:6px; }
.u-border-top-1px-solid-e3e5e8 { border-top:1px solid var(--border); }
.u-c-0a3970 { color:var(--primary); }
.u-c-1d2128 { color:var(--foreground); }
.u-c-5f6470 { color:var(--muted-foreground); }
.u-c-888 { color:var(--muted-foreground); }
.u-c-f4f5f7 { color:var(--muted); }
.u-c-fff { color:var(--primary-foreground); }
.u-c-muted-foreground { color:var(--muted-foreground); }
.u-c-notice-accent-fg { color:var(--notice-accent-fg); }
.u-c-primary { color:var(--primary); }
.u-c-primary-foreground { color:var(--primary-foreground); }
.u-c-rgb-255-255-255-0-70 { color:rgb(255 255 255 / 0.70); }
.u-c-var-destructive-b82626 { color:var(--destructive); }
.u-d-block { display:block; }
.u-d-flex { display:flex; }
.u-d-grid { display:grid; }
.u-d-none { display:none; }
.u-fd-column { flex-direction:column; }
.u-ff-arial-helvetica-sans-serif { font-family:var(--font-sans); }
.u-ff-courier-new-courier-monospace { font-family:var(--font-sans); }
.u-ff-hiragino-kaku-gothic-pron-meiryo-ms-pgot { font-family:var(--font-sans); }
.u-ff-ui-monospace-consolas-monospace { font-family:var(--font-sans); }
.u-ff-var-font-mono-monospace { font-family:var(--font-sans); }
.u-flex-1 { flex:1; }
.u-fs-0 { font-size:0; }
.u-fs-0-82em { font-size:0.82em; }
.u-fs-11px { font-size:11px; }
.u-fs-12-5px { font-size:12.5px; }
.u-fs-12px { font-size:12px; }
.u-fs-13px { font-size:13px; }
.u-fs-14px { font-size:14px; }
.u-fs-15px { font-size:15px; }
.u-fs-16px { font-size:16px; }
.u-fs-1px { font-size:1px; }
.u-fs-26px { font-size:26px; }
.u-fs-fs-section { font-size:var(--fs-section); }
.u-fs-fs-subheading { font-size:var(--fs-subheading); }
.u-fs-text-body { font-size:var(--text-body); }
.u-fs-text-body-md { font-size:var(--text-body-md); }
.u-fs-text-body-sm { font-size:var(--text-body-sm); }
.u-fs-text-caption { font-size:var(--text-caption); }
.u-fs-text-display-sm { font-size:var(--text-display-sm); }
.u-fs0-0 { flex-shrink:0; }
.u-fw-bold { font-weight:bold; }
.u-fw-font-weight-bold { font-weight:var(--font-weight-bold); }
.u-fw-font-weight-normal { font-weight:var(--font-weight-normal); }
.u-fw-normal { font-weight:normal; }
.u-fwrap-wrap { flex-wrap:wrap; }
.u-gap-sp-2 { gap:var(--sp-2); }
.u-gap-sp-4 { gap:var(--sp-4); }
.u-gtc-1fr { grid-template-columns:1fr; }
.u-gtc-repeat-auto-fit-minmax-260px-1fr { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.u-gtc-repeat-auto-fit-minmax-280px-1fr { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.u-h-22px { height:22px; }
.u-h-40px { height:40px; }
.u-h-900px { height:900px; }
.u-h-auto { height:auto; }
.u-jc-center { justify-content:center; }
.u-lh-0 { line-height:0; }
.u-lh-1-4 { line-height:1.4; }
.u-lh-1-7 { line-height:1.7; }
.u-lh-1-8 { line-height:1.8; }
.u-lh-1-9 { line-height:1.9; }
.u-lh-1px { line-height:1px; }
.u-lh-22px { line-height:22px; }
.u-lh-fs-section-lh { line-height:var(--fs-section-lh); }
.u-lh-fs-subheading-lh { line-height:var(--fs-subheading-lh); }
.u-ls-0-2px { letter-spacing:-0.2px; }
.u-ls-1-5px { letter-spacing:1.5px; }
.u-ls-1px { letter-spacing:1px; }
.u-ls-tracking-tight { letter-spacing:var(--tracking-tight); }
.u-ls-tracking-wide { letter-spacing:var(--tracking-wide); }
.u-m-0 { margin:0; }
.u-m-0-0-12px { margin:0 0 12px; }
.u-m-0-0-sp-3 { margin:0 0 var(--sp-3); }
.u-m-0-auto-sp-4 { margin:0 auto var(--sp-4); }
.u-m-12px-0-0 { margin:12px 0 0; }
.u-m-4px-0-0 { margin:4px 0 0; }
.u-m-sp-10-auto-0 { margin:var(--sp-10) auto 0; }
.u-max-height-0 { max-height:0; }
.u-maxw-0 { max-width:0; }
.u-maxw-100 { max-width:100%; }
.u-maxw-640px { max-width:640px; }
.u-maxw-680px { max-width:680px; }
.u-mb-0 { margin-bottom:0; }
.u-mb-8px { margin-bottom:8px; }
.u-mb-sp-2 { margin-bottom:var(--sp-2); }
.u-mb-sp-3 { margin-bottom:var(--sp-3); }
.u-mb-sp-4 { margin-bottom:var(--sp-4); }
.u-minw-250px { min-width:250px; }
.u-minw-min-280px-100 { min-width:min(280px,100%); }
.u-ml-12px { margin-left:12px; }
.u-mso-hide-all { mso-hide:all; }
.u-mso-line-height-rule-exactly { mso-line-height-rule:exactly; }
.u-mso-padding-alt-14px-0 { mso-padding-alt:14px 0; }
.u-mt-0 { margin-top:0; }
.u-mt-16px { margin-top:16px; }
.u-mt-24px { margin-top:24px; }
.u-mt-6px { margin-top:6px; }
.u-mt-sp-10 { margin-top:var(--sp-10); }
.u-mt-sp-2 { margin-top:var(--sp-2); }
.u-mt-sp-4 { margin-top:var(--sp-4); }
.u-mt-sp-8 { margin-top:var(--sp-8); }
.u-op-0 { opacity:0; }
.u-op-35 { opacity:.35; }
.u-overflow-hidden { overflow:hidden; }
.u-p-14px-0 { padding:14px 0; }
.u-p-14px-24px-0 { padding:14px 24px 0; }
.u-p-16px-24px { padding:16px 24px; }
.u-p-16px-24px-0 { padding:16px 24px 0; }
.u-p-16px-24px-28px { padding:16px 24px 28px; }
.u-p-18px-24px-4px { padding:18px 24px 4px; }
.u-p-22px-24px-0 { padding:22px 24px 0; }
.u-p-24px-8px-0 { padding:24px 8px 0; }
.u-p-28px-12px-24px { padding:28px 12px 24px; }
.u-p-28px-24px-0 { padding:28px 24px 0; }
.u-p-30px-24px-0 { padding:30px 24px 0; }
.u-p-sp-6 { padding:var(--sp-6); }
.u-padding-left-8px { padding-left:8px; }
.u-position-relative { position:relative; }
.u-pr-choice-col-120px { --pr-choice-col:120px; }
.u-pt-3px { padding-top:3px; }
.u-pt-8px { padding-top:8px; }
.u-scroll-margin-top-80px { scroll-margin-top:80px; }
.u-ta-center { text-align:center; }
.u-ta-left { text-align:left; }
.u-td-none { text-decoration:none; }
.u-td-underline { text-decoration:underline; }
.u-tdc-rgb-255-255-255-0-4 { text-decoration-color:rgb(255 255 255 / 0.4); }
.u-tuo-4px { text-underline-offset:4px; }
.u-w-110px { width:110px; }
.u-w-12 { width:12%; }
.u-w-130px { width:130px; }
.u-w-15 { width:15%; }
.u-w-170px { width:170px; }
.u-w-20 { width:20%; }
.u-w-22px { width:22px; }
.u-w-24 { width:24%; }
.u-w-2px { width:2px; }
.u-w-36px { width:36px; }
.u-w-375px { width:375px; }
.u-w-58 { width:58%; }
.u-w-60px { width:60px; }
.u-w-70px { width:70px; }
.u-w-72 { width:72%; }
.u-w-72px { width:72px; }
.u-w-8 { width:8%; }
.u-word-break-break-all { word-break:break-all; }
.u-ws-nowrap { white-space:nowrap; }

/* ---- v4.4.2 調整：部品をまとめたときに変わった見た目を元に戻す（2026-10-26） ---- */
/* タグ：淡い紺（旧 tp-chip）と淡い灰（旧 lib-tag） */
html body .chip.chip--soft { display:block;height:auto;font-size:var(--text-caption);font-weight:var(--font-weight-semibold);line-height:inherit;padding:5px 11px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);border:1px solid transparent }
html body .chip.chip--muted { display:block;height:auto;font-size:11px;font-weight:600;line-height:1.4;padding:4px 10px;border-radius:var(--radius-full);background:var(--muted);color:var(--foreground);border:0;white-space:nowrap }
/* 小見出しは英字を大文字にしない */
/* トップの紺のヒーローの小見出し */
html body.is-top-page main.page-screen .tp-hero .kit-service-hero-eyebrow { display:block;color:rgb(255 255 255 / 0.85);border-color:rgb(255 255 255 / 0.85) }
html body.is-top-page main.page-screen .tp-hero .kit-service-hero-eyebrow::before { content:none }
/* カード見出しの小サイズ版 */
html body .card-label.card-label--sm { font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);line-height:1.4 }
/* 業態の入り口・課題と解決の対の小見出し */
html body main.page-screen .hero-entry > .card-eyebrow{ font-size:var(--text-body-sm);font-weight:var(--font-weight-bold);line-height:inherit;letter-spacing:var(--tracking-wide);color:var(--muted-foreground);margin-bottom:var(--sp-3) }
html body main.page-screen .hero-entry > .card-eyebrow { font-weight:600;margin-bottom:0 }


/* ---- v4.4.3 小見出し（eyebrow）：英字・大文字、横線なし（2026-10-26） ---- */
html body main.page-screen .kit-section-eyebrow::before, html body main.page-screen .kit-service-hero-eyebrow::before { content:none !important; display:none !important }
html body .kit-section-eyebrow, html body .kit-service-hero-eyebrow, html body .dark-cta-eyebrow, html body .card-eyebrow, html body .mm-solution-eyebrow { font-family:var(--font-en, var(--font-sans)); text-transform: none; letter-spacing:var(--tracking-wider) }
html body main.page-screen .kit-section-eyebrow, html body main.page-screen .kit-service-hero-eyebrow { display:block; font-size:var(--text-caption); font-weight:var(--font-weight-bold); color:var(--primary) }

/* ---- v4.4.4 文中の太字：本文の中で太さを変えない（2026-10-26） ---- */
html body main.page-screen p strong, html body main.page-screen p b, html body main.page-screen li strong, html body main.page-screen li b,
html body main.page-screen .card-desc strong, html body main.page-screen .card-desc b, html body main.page-screen .kit-section-lede strong,
html body main.page-screen .kit-service-hero-lede strong, html body main.page-screen .body-sm-loose strong{ font-weight:inherit }

/* ==========================================================================
   v4.4.6（2026-10-26）問い合わせフォーム：製品の複数選択・注意書き・reCAPTCHA
   ========================================================================== */
.cv-notice { margin:var(--sp-3) 0 0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);font-size:var(--text-body-sm);color:var(--foreground) }
.cv-check-group { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2) }
.cv-check-item { display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--easing);font-size:var(--text-body-md);background:var(--background) }
.cv-check-item:hover { border-color:var(--primary);background:var(--accent) }
.cv-check-item input { flex-shrink:0;accent-color:var(--primary);margin:0 }
/* reCAPTCHA の枠は、個人情報の同意欄（cv-consent）と同じ見た目（灰色の地・枠なし・余白 sp-5・本文の文字）にそろえる */
.cv-recaptcha { display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%;padding:var(--sp-5);margin:0 0 var(--sp-5);border:0;border-radius:var(--radius-md);background:var(--muted);font-size:var(--text-body-md);line-height:1.85 }
.cv-recaptcha-check { display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--text-body-md);color:var(--foreground);cursor:pointer }
.cv-recaptcha-check input { margin-top:4px;flex-shrink:0;accent-color:var(--primary) }
.cv-recaptcha-brand { display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:var(--text-caption);color:var(--muted-foreground) }
.cv-recaptcha-logo { font-weight:var(--font-weight-bold) }

/* ==========================================================================
   v4.4.7（2026-10-26）似た部品の統合。番号バッジは num-badge、小見出しは card-eyebrow、
   カード見出しは card-title／card-label、説明は card-desc、課題と解決策は card／card--accent、
   下層ページのヒーローは kit-service-hero（画像付きは kit-service-hero-split）、タグの並びは chip-group、本文は prose。
   ========================================================================== */
.card-label { font-weight:var(--font-weight-bold) }
.step-head .num-badge { width:32px;height:32px;flex:0 0 32px;margin-bottom:0;background:var(--card);font-size:var(--text-body-sm) }
.step--goal .num-badge { background:var(--primary);color:var(--primary-foreground) }
html body main.page-screen .card.card--accent { border-color:var(--primary);border-width:1.5px }
.card--accent .card-desc { color:var(--foreground) }
.chip-group { display:flex;flex-wrap:wrap;gap:6px }
.kit-service-hero-split { display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-16);align-items:center }
@media (max-width:900px) { .kit-service-hero-split { grid-template-columns:1fr;gap:var(--sp-6) } }
/* 下層ページのヒーローは下の罫線を付けない（製品・SaaS 一覧に合わせ、会社概要・お知らせなども同じにする） */
html body main.page-screen > section.kit-service-hero { border-bottom:0 }
/* 左右の余白はヒーローの枠（section）が持つ。内側（-inner / -split）にも付くと二重になり、見出しだけ右へずれるため 0 にする */
html body main.page-screen > section.kit-service-hero > .kit-service-hero-inner { padding-left:0;padding-right:0 }

/* ==========================================================================
   v4.4.9（2026-10-26）文字の段階の統一。
   太さは 400（本文）・600（ラベル／リンク／ボタン）・700（見出し／数値）の 3 つ。900 はトップのヒーロー見出しだけ。
   大きさは トークンの段階（hero-mid 52 → display 38 → section 30 → heading 24 → subheading 18 → lead 17 → body 14.4）と、注記・タグの 12px。
   ========================================================================== */
:root { --fs-caption:12px }
/* ページ見出し・大きな数値は display（38）・700 */
html body main.page-screen .nf-title, html body main.page-screen .us-title,
html body main.page-screen .metric-num, html body main.page-screen .tp-hero-metric-num { font-size:var(--fs-display);font-weight:var(--font-weight-bold) }
html body main.page-screen .nf-code { font-size:var(--fs-hero-mid);font-weight:var(--font-weight-bold) }
html body main.page-screen .diag-arrow { font-size:var(--fs-heading) }
/* カードの見出しは subheading（18）・700 の 1 段だけ（card-label--sm の小さい版をやめる） */
html body main.page-screen .card-label.card-label--sm,
html body main.page-screen .process-step > .card-label { font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh) }
/* 無料デモ申請の札と説明も段階にそろえる（札は注記 12px・600、説明は本文） */
html body .pc-start-badge { font-size:var(--fs-caption);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm) }
html body .pc-start-desc { font-size:var(--fs-body) }
/* 番号バッジは本文の大きさ・700 */
html body main.page-screen .num-badge { font-size:var(--fs-body) }
/* リンク・一覧の見出しはラベル（本文の大きさ・600） */
html body main.page-screen .kit-news-title, html body main.page-screen .sm-link { font-weight:var(--font-weight-semibold) }
/* セクション上の小見出しは本文の大きさ・700（紺の地の上も同じ） */
html body main.page-screen .dark-cta-eyebrow { font-size:var(--fs-body);font-weight:var(--font-weight-bold) }
/* カード内の小見出し・タグ・注記は 12px（ラベルは 600、説明は 400） */
html body main.page-screen .card-eyebrow, html body main.page-screen .chip, html body main.page-screen .lt,
html body main.page-screen .diag-target { font-size:var(--fs-caption);font-weight:var(--font-weight-semibold) }
html body main.page-screen .sm-path, html body main.page-screen .metric-label, html body main.page-screen .diag-chip,
html body main.page-screen .diag-cap, html body main.page-screen .lv, html body main.page-screen .diag-bar-lab { font-size:var(--fs-caption);font-weight:var(--font-weight-regular) }

/* 製品ページのヒーロー：説明文と CTA を離し、CTA の下の注記と業務別の入口にも間をとる */
html body main.page-screen .kit-service-hero-split .kit-service-hero-title { margin-bottom:var(--sp-5) }
html body main.page-screen .kit-service-hero-split .kit-service-hero-lede { margin-bottom:var(--sp-8) }
html body main.page-screen .kit-service-hero-split .flex-row + p { margin-top:var(--sp-4) }
html body main.page-screen .kit-service-hero-split .hero-entry { margin-top:var(--sp-10) }

/* ===== v4.4.10（2026-10-26）トップ画面のリニューアル：見出し・相談デスク・控えめな動き ===== */
/* 現れ方（reveal）。site.js が body に tp-reveal-on、見えた要素に is-in を付ける。これまで CSS が無く動いていなかった。
   動きは下から 12px・約 0.4 秒・減速（--easing）。バウンド・パララックスは使わない */
body.tp-reveal-on .reveal { opacity:0;transform:translateY(12px);transition:opacity calc(var(--duration-slow) * 1.5) var(--easing),transform calc(var(--duration-slow) * 1.5) var(--easing) }
body.tp-reveal-on .reveal.is-in { opacity:1;transform:none }
body.tp-reveal-on .reveal[data-reveal-delay="1"] { transition-delay:60ms }
body.tp-reveal-on .reveal[data-reveal-delay="2"] { transition-delay:120ms }
body.tp-reveal-on .reveal[data-reveal-delay="3"] { transition-delay:180ms }
/* ヒーローの入り：小見出し→見出し→リード→CTA→注記→指標の順に下から現れる（1 回だけ、合計 0.9 秒以内） */
@keyframes tp-rise {
from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}
}
body.tp-reveal-on.is-top-page .tp-hero-copy > * { animation:tp-rise calc(var(--duration-slow) * 2) var(--easing) both }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(2) { animation-delay:60ms }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(3) { animation-delay:120ms }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(4) { animation-delay:180ms }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(5) { animation-delay:240ms }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(6) { animation-delay:300ms }
body.tp-reveal-on.is-top-page .tp-hero-copy > :nth-child(7) { animation-delay:360ms }
body.tp-reveal-on.is-top-page .tp-hero-chat { animation:tp-rise calc(var(--duration-slow) * 2) var(--easing) 200ms both }
/* 背景のドットがごくゆっくり流れる（1 タイル 30px を 48 秒。目で追えない速さで、止まった印象だけを消す） */
@keyframes tp-drift {
from{background-position:0 0}to{background-position:30px 30px}
}
body.tp-reveal-on .tp-hero-deco { animation:tp-drift 48s linear infinite }
/* CTA と、その下の条件の注記（チップにしない。v4.4.4） */
.tp-hero-cta { display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:0 0 var(--sp-4) }
.tp-hero-note { font-size:var(--text-body-sm);line-height:1.7;color:rgb(255 255 255 / 0.68);margin:0 }
/* ヒーローの CTA（2026-10-27）：ヒーロー専用の大きなボタン（高さ 60px・左右 32px・小見出しの文字サイズ・太字。全ボタン 44px の決まりの例外はトップのヒーローだけ）に、
   右向きのシェブロン（Lucide ChevronRight、22px、文字色）を添える。動きはホバーでボタンが 2px 浮いて影が濃くなり、シェブロンが --sp-1 右へ。押下は沈む。prefers-reduced-motion では止める */
.tp-hero-cta-btn { --_h:60px;--_px:var(--sp-8);--_fs:var(--fs-subheading);gap:var(--sp-2);padding-right:calc(var(--sp-8) - var(--sp-1));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing),transform var(--duration-base) var(--easing),color var(--duration-base) var(--easing) }
.tp-hero-cta-btn:hover { transform:translateY(-2px);box-shadow:var(--shadow-xl) }
.tp-hero-cta-btn:active { transform:translateY(0);box-shadow:var(--shadow-md) }
.tp-hero-cta-chev { width:22px;height:22px;flex:none;transition:transform var(--duration-base) var(--easing) }
.tp-hero-cta-btn:hover .tp-hero-cta-chev { transform:translateX(var(--sp-1)) }
@media (max-width:900px) {
.tp-hero-cta-btn { --_h:56px }
}
@media (prefers-reduced-motion:reduce) {
.tp-hero-cta-chev,.tp-hero-cta-btn { transition:none }
.tp-hero-cta-btn:hover,.tp-hero-cta-btn:hover .tp-hero-cta-chev { transform:none }
}
/* 指標の見出し（更新中の印）。指標の罫線と余白は見出し側に移し、数字は桁をそろえる */
.tp-hero-metrics-head { display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-14);padding-top:var(--sp-8);border-top:1px solid rgb(255 255 255 / 0.18);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:rgb(255 255 255 / 0.85);letter-spacing:var(--tracking-wide) }
.tp-hero-metrics-head + .tp-hero-metrics { margin-top:var(--sp-5);padding-top:0;border-top:0 }
.tp-live-dot { width:7px;height:7px;border-radius:var(--radius-full);background:var(--chat-dock-indicator-bg);flex-shrink:0 }
body.tp-reveal-on .tp-live-dot { animation:cd-dot-pulse 2.4s ease-out infinite }
.tp-hero-metric-num { font-variant-numeric:tabular-nums }
@media (max-width:768px) {
.tp-hero-metrics-head { margin-top:var(--sp-10) }
}
/* 相談デスク：空の箱ではなく、あいさつ（入力中→本文）と「よくあるご質問」を先に見せる */
.chat-dock-prompt-meta { margin-left:auto;font-size:var(--fs-caption);color:var(--muted-foreground);white-space:nowrap }
.cd-greet { display:flex;flex-direction:column;gap:var(--sp-4) }
.cd-greet .cd-answer { margin-top:0 }
.cd-greet-quick-label { font-size:var(--fs-caption);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);margin-bottom:var(--sp-2) }
.cd-greet .cd-quick { justify-content:flex-start;margin-top:0 }
body.tp-reveal-on .cd-greet .cd-answer,body.tp-reveal-on .cd-greet-quick { animation:tp-rise calc(var(--duration-slow) * 1.5) var(--easing) both }
@media (prefers-reduced-motion:reduce) {
.tp-hero-deco,.tp-live-dot,.tp-hero-copy > *,.tp-hero-chat,.cd-greet .cd-answer,.cd-greet-quick { animation:none }
.reveal { opacity:1;transform:none;transition:none }
}

/* ===== v4.4.11（2026-10-26）セクション内の縦の余白を全ページで統一 ===== */
/* kit-section-inner の直下の子の間隔は、子のクラス（mt-6・mt-8・u-mt-sp-8 や部品の margin-top）ではなく、ここで決める。
   小見出し→見出し 20 ／ 見出し→リード 16 ／ 見出し・リード・見出し行→内容 40 ／ 内容→内容 32 ／ 同じ部品の連続（row-N・job-card） 20 ／ 内容→注記 20。
   直下の子の上下 margin は 0 にし、間隔は次の子の margin-top で持つ（部品側の margin-bottom とは折りたたまれ、大きい方が残る） */
/* 間隔の値は末尾の spacing-rule（2026-10-27）に移した */


/* ===== v4.4.13（2026-10-26）無料アカウント作成ページ（/signup）を cv-* 部品で組み直し ===== */
/* ページはお問い合わせと同じ cv-page／cv-container／cv-header／cv-card／cv-field／cv-notice／cv-consent／cv-submit／cv-thanks／cv-mini-footer。
   独自の signup-* レイアウト部品（2 列・左の利点・独自カード）は廃止した。残すのは既存アカウント検知モーダルの手順切り替えと、入力エラーの表示だけ */
#signupLinkModal .signup-step { display:none }
#signupLinkModal[data-step="detect"] .signup-step--detect { display:contents }
#signupLinkModal[data-step="sent"] .signup-step--sent { display:contents }
.cv-field-error { font-size:var(--fs-caption);color:var(--destructive);margin-top:var(--sp-1);line-height:1.6 }
.cv-input[aria-invalid="true"] { border-color:var(--destructive) }
.u-mt-sp-3 { margin-top:var(--sp-3); }

/* ===== v4.4.14（2026-10-26）フォームの選択欄を DS の select にそろえる ===== */
/* cv-select はブラウザ標準の矢印のままだった。components.css の .select と同じシェブロン（2 本の線）・右の余白・ホバー・フォーカスにする。
   cv-input／cv-textarea にも .input と同じホバー（border-strong）を付ける */
.cv-select { padding-right:calc(var(--control-px-md) + 18px);background-color:var(--background);background-image:linear-gradient(45deg,transparent 50%,var(--muted-foreground) 50%),linear-gradient(135deg,var(--muted-foreground) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 1px),calc(100% - 13px) calc(50% - 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;appearance:none;-webkit-appearance:none;cursor:pointer }
.cv-input:hover:not(:focus):not(:disabled),.cv-select:hover:not(:focus):not(:disabled),.cv-textarea:hover:not(:focus):not(:disabled) { border-color:var(--border-strong) }

/* 宅建免許番号（登録画面）：免許行政庁＋（更新回数）＋第 番号 号 を 1 行に。DS の .select と .input-affix を、フォームの入力欄と同じ高さで並べる */
.cv-license { display:grid;grid-template-columns:minmax(0,1.5fr) 112px minmax(0,1fr);gap:var(--sp-2) }
.cv-license .select, .cv-license .input-affix { height:var(--control-h-lg) }
.cv-license .input-affix > input { min-width:0;width:100% }
.cv-field .field__hint { margin:var(--sp-2) 0 0 }
@media (max-width:640px) { .cv-license { grid-template-columns:112px minmax(0,1fr) } .cv-license .select { grid-column:1 / -1 } }

/* ===== v4.4.15（2026-10-26）フォームの入力欄を DS の input と同じ状態にそろえる ===== */
/* cv-input／cv-textarea／cv-select に、components.css の .input と同じプレースホルダーの色（foreground-subtle）・行の高さ・無効時の見た目を付ける */
.cv-input,.cv-select,.cv-textarea { line-height:1.5 }
.cv-input::placeholder,.cv-textarea::placeholder { color:var(--foreground-subtle) }
.cv-input:disabled,.cv-select:disabled,.cv-textarea:disabled { background:var(--muted);color:var(--foreground-subtle);cursor:not-allowed }

/* ===== v4.4.17（2026-10-26）フォームの規則（ラベル・角丸・幅・宅建免許番号と住所の例外） ===== */
/* 1. ラベル（cv-label・field__label）は太字にしない（--font-weight-regular）。必須の印「*」と「任意」の印も同じ太さ（上の .cv-label 系と components.css の .field__label を 400 に改めた）。
   2. 入力欄（cv-input／cv-select／cv-textarea と、DS の .input／.select／.input-affix）の角丸は --radius-md（4.8px）。角丸 0 や --radius-lg（select--lg・input--lg の 6px）にしない。
   3. 入力欄の幅は欄（cv-field）の 100%。固定幅・u-maxw-*・2 列の格子（signup-form-grid）を使わない。
   4. 例外（宅建免許番号）：1 つの欄の中で、免許行政庁（select）・更新回数（input-affix）・免許番号（input-affix）を 1 行に並べる（cv-license。1.5fr／112px／1fr）。
      各部品は 100% ではなく、行全体で欄の 100%。640px 以下は免許行政庁を 1 行目に、残り 2 つを 2 行目に。
   5. 例外（住所）：入力欄は 1 本（100%）のまま。入力した住所を都道府県／市区町村／それ以降に分けた結果を、入力欄の下に注記の文字（signup-addr-parsed）で見せる。入力欄を 3 本に分けない。 */
/* 入力欄の角丸は 4.8px 固定。サイトは --radius:0px（角あり）なので --radius-md では 0 になる。入力欄だけこの値を使う */
:root { --radius-control:4.8px }
html body .cv-input, html body .cv-select, html body .cv-textarea, html body .input, html body .select, html body .input-affix,
html body .cv-license .select, html body .cv-license .input-affix { border-radius:var(--radius-control) }
.cv-field > .cv-input,.cv-field > .cv-select,.cv-field > .cv-textarea,.cv-field > .input,.cv-field > .select,.cv-field > .input-affix,.cv-field > .cv-license { width:100%;max-width:none }
.signup-addr-parsed { display:none;flex-wrap:wrap;gap:0 var(--sp-2);margin-top:var(--sp-2);font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.6 }
.signup-addr-val:empty { display:none }
.signup-addr-val + .signup-addr-val:not(:empty)::before { content:'／';margin-right:var(--sp-2);color:var(--foreground-subtle) }

/* 相談デスクのチャット入力欄もフォームの入力欄と同じ 4.8px（枠・ボタン・カードは角ありのまま） */
html body .chat-dock .chat-dock-inner .chat-dock-input-row { border-radius:var(--radius-control) }

/* チェックボックス・ラジオボタンも入力欄と同じ 4.8px。選択肢の枠・同意欄・reCAPTCHA の枠・チェックの四角（ラジオの丸はそのまま） */
html body .cv-radio-item, html body .cv-check-item, html body .cv-consent, html body .cv-recaptcha,
html body .check__box { border-radius:var(--radius-control) }

/* ボタンも入力欄と同じ 4.8px（カード・枠・帯は角ありのまま） */
html body .button, html body .cv-submit, html body .chat-dock-send, html body .cd-btn { border-radius:var(--radius-control) }

/* ===== v4.4.20（2026-10-26）同意欄（cv-consent）を DS のチェックボックス（check）で組み、箱を文の上下中央に ===== */
/* 同意欄はブラウザ標準のチェックボックス（accent-color）で、箱が文の 1 行目の上端に寄っていた。
   DS の .check／.check__box（18px・選択時は紺・フォーカスの輪）に置き換え、箱は文の上下中央（align-items:center）に置く。
   文は本文の大きさ・行の高さ 1.85 のまま。お問い合わせ・無料アカウント作成の両方の同意欄に適用する。
   組み方：<div class="cv-consent"><label class="check"><input type="checkbox"><span class="check__box" aria-hidden="true"></span><span>文</span></label></div> */
.cv-consent .check { display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5);cursor:pointer;font-size:var(--text-body-md);line-height:1.85;color:var(--foreground);position:relative }
.cv-consent .check > span:last-child { flex:1;min-width:0 }

/* 白抜きのロゴ（pr-logo--inverse）は必ず白。layout.css の全ロゴを紺にする規則（!important）が同じ強さで後から読まれるため、1 段強くして戻す */
html body .pr-logo.pr-logo--inverse .pr-logo-mark { background:var(--primary-foreground) !important;color:var(--primary) !important }
html body .pr-logo.pr-logo--inverse .pr-logo-text { color:var(--primary-foreground) !important }

/* 相談デスクの入口カード（タブレット・スマホ）とトップの PC のチャット欄は、角丸 4.8px と DS の影で浮かせる */
html body.is-top-page .chat-dock .chat-dock-inner { border-radius:var(--radius-control);box-shadow:var(--shadow-md) }

/* ===== v4.4.16（2026-10-27）Data Library の用途別の絞り込みを廃止 ===== */
/* カタログはデータセットの一覧（row-3 の card card--stack）。lib-filter／lib-toolbar／lib-cat-radios／#cap-*／lib-grid の規則は削除した */

/* ===== v4.4.22（2026-10-27）相談デスクを開いたときは全高 100% のパネルに。右上に閉じる（×） ===== */
/* body.is-chat-page はこれまでスマホだけの全画面だった。PC（1100px 以上）では右側の全高パネル（幅 480px）にし、後ろのページはそのまま使える。
   閉じるボタンはヘッダーの右端（これまでは左の「戻る」）。トップのヒーロー内の相談デスクは、質問を送るとこのパネルに切り替わる（site.js の expand） */
body.is-chat-page .chat-dock .chat-dock-prompt::before { order:0;margin-left:0 }
body.is-chat-page .chat-dock .chat-dock-prompt-label { order:1 }
body.is-chat-page .chat-dock .chat-dock-prompt-meta { order:2 }
body.is-chat-page .chat-dock .chat-dock-collapse { order:9;margin:0 0 0 auto }
@media (min-width:1100px) {
body.is-chat-page { overflow:auto }
body.is-chat-page .chat-dock { left:auto;right:0;width:min(480px, 100%) }
body.is-chat-page .chat-dock-inner { border-left:1px solid var(--border);box-shadow:var(--shadow-xl) }
body.is-chat-page .chat-dock .chat-dock-body { padding:var(--sp-5) }
}

/* ===== v4.4.23（2026-10-27）SP・タブレットの相談デスクはチャットボタンから全画面のチャットへ ===== */
/* 1099px 以下のトップの相談デスクは、入力欄を置かず DS のボタン（button--primary button--lg・紺の地では白）1 つにする。押すとチャット画面を開く（site.js の openChatPage）。
   640px 以下はボタンを全幅にする。1100px 以上はこれまでどおりヒーロー内に相談欄を置く。 */
.tp-chat-btn { display:none;gap:var(--sp-2) }
.tp-chat-btn svg { flex-shrink:0 }
@media (max-width:1099px) {
.tp-chat-btn { display:inline-flex }
}
@media (max-width:640px) {
.tp-chat-btn { width:100%;justify-content:center }
}
/* 2026-10-27：相談デスクのボタンは「FDEコンサルティングを見る」（.tp-hero-cta-btn）と同じ大きさ（高さ 60px／900px 以下 56px・左右 --sp-8・小見出しの文字サイズ・角丸 lg・アイコン 22px） */
.tp-chat-btn { --_h:60px;--_px:var(--sp-8);--_fs:var(--fs-subheading);border-radius:var(--radius-lg) }
.tp-chat-btn svg { width:22px;height:22px }
@media (max-width:900px) {
.tp-chat-btn { --_h:56px }
}
/* チャット画面（body.is-chat-page）は角なし・影なし・枠なし。1099px 以下は全幅・全高 100%、1100px 以上は右側の全高パネル（左の罫線と影だけ）。
   閉じるのはヘッダー右端の ×。トップの相談欄の角丸 4.8px・影（v4.4.20）が開いた画面に残っていたため、ここで打ち消す。入力欄の角丸 4.8px は DS の入力欄の規則どおり残す */
html body.is-chat-page .chat-dock .chat-dock-inner { border:0;border-radius:0;box-shadow:none }
@media (min-width:1100px) {
html body.is-chat-page .chat-dock .chat-dock-inner { border-left:1px solid var(--border);box-shadow:var(--shadow-xl) }
}

/* ===== v4.4.24（2026-10-27）ヒーロー CTA のシェブロンを常に動かす・FDE の説明を添える ===== */
/* シェブロンは常に右へ小さく動く（--sp-1 だけ・1.6 秒周期・減速）。ホバーでボタンが浮く動きはこれまでどおり。prefers-reduced-motion では止める。
   CTA の下に FDE（Forward Deployed Engineering：現場に入る実装支援）の説明を 1 文と相談リンクで置く。紺の地なので白系の文字（tp-hero-note と同じ） */
@keyframes tp-cta-nudge {
0%,100%{transform:translateX(0)}50%{transform:translateX(var(--sp-1))}
}
.tp-hero-cta-chev { animation:tp-cta-nudge 1.6s var(--easing) infinite }
.tp-hero-fde { max-width:46ch;margin:0;font-size:var(--text-body-sm);line-height:1.7;color:rgb(255 255 255 / 0.78) }
.tp-hero-fde .link-underline { margin-left:var(--sp-2);color:var(--primary-foreground);text-decoration:underline;text-underline-offset:2px;cursor:pointer;white-space:nowrap }
@media (prefers-reduced-motion:reduce) {
.tp-hero-cta-chev { animation:none }
}

/* ヒーローの順（2026-10-27）：キャッチ → データ → AIチャット → 罫線 → FDEコンサルティングの説明 → FDEコンサルティングへのリンク。
   FDE の段はチャットの下に罫線で区切って置き、2 列（1100px 以上）では両列にまたがる */
.tp-hero-fde-block { display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-5);margin-top:var(--sp-10);padding-top:var(--sp-8);border-top:1px solid rgb(255 255 255 / 0.18) }
.tp-hero-fde-block .tp-hero-fde { max-width:60ch;font-size:var(--text-body);color:rgb(255 255 255 / 0.85) }
.tp-hero-fde-link { margin:0;font-size:var(--text-body);font-weight:var(--font-weight-semibold) }
.tp-hero-fde-link .link-underline { color:var(--primary-foreground);text-decoration:underline;text-underline-offset:3px;cursor:pointer }
@media (min-width:1100px) {
body.is-top-page .tp-hero-fde-block { grid-column:1 / -1 }
}

/* ===== v4.4.25（2026-10-27）相談デスクのチャットボタンに常時のモーション ===== */
/* SP・タブレットのトップの「相談デスクで質問する」（tp-chat-btn）。吹き出しアイコンが 2.4 秒ごとに小さく揺れ（±8°）、ボタンの外側に白い輪がゆっくり広がって消える（相談デスクの在席表示 cd-dot-pulse と同じ考え方）。
   ヒーロー CTA と同じく、ホバーで 2px 浮いて影が濃くなる。押下は沈む。prefers-reduced-motion ではすべて止める */
@keyframes tp-chat-wiggle {
0%,70%,100%{transform:rotate(0)}78%{transform:rotate(-8deg)}86%{transform:rotate(8deg)}94%{transform:rotate(-4deg)}
}
@keyframes tp-chat-ring {
0%{box-shadow:var(--shadow-lg),0 0 0 0 rgb(255 255 255 / 0.45)}70%{box-shadow:var(--shadow-lg),0 0 0 12px rgb(255 255 255 / 0)}100%{box-shadow:var(--shadow-lg),0 0 0 0 rgb(255 255 255 / 0)}
}
.tp-chat-btn { box-shadow:var(--shadow-lg);animation:tp-chat-ring 2.4s var(--easing) infinite;transition:transform var(--duration-base) var(--easing) }
.tp-chat-btn svg { transform-origin:50% 60%;animation:tp-chat-wiggle 2.4s var(--easing) infinite }
.tp-chat-btn:hover { transform:translateY(-2px) }
.tp-chat-btn:active { transform:translateY(0) }
@media (prefers-reduced-motion:reduce) {
.tp-chat-btn,.tp-chat-btn svg { animation:none;transition:none }
.tp-chat-btn:hover { transform:none }
}

/* ヒーローの「FDEコンサルティングを見る」（2026-10-27）：相談デスクのボタンと同じ部品（tp-chat-btn：大きさ・角丸・白い輪・ホバーで浮く）。
   相談デスクのボタン（1099px 以下だけ）と違い画面幅に関わらず表示し、アイコンはシェブロンで右へ動く（tp-cta-nudge 1.6s）。prefers-reduced-motion では止める */
.tp-fde-btn { display:inline-flex }
.tp-chat-btn.tp-fde-btn .tp-hero-cta-chev { transform-origin:50% 50%;animation:tp-cta-nudge 1.6s var(--easing) infinite }
@media (prefers-reduced-motion:reduce) {
.tp-chat-btn.tp-fde-btn .tp-hero-cta-chev { animation:none }
}

/* tp-hero-btn-width（2026-10-27）：「相談デスクで質問する」と「FDEコンサルティングを見る」は幅も同じにする（文字数で幅が変わらないよう、同じ固定幅・中央寄せ）。
   相談デスクのボタンが出る 1099px 以下で幅 100%／最大 400px、640px 以下はこれまでどおり全幅。1100px 以上は FDE のボタンだけが出るので同じ 400px */
.tp-chat-btn { width:100%;max-width:400px;justify-content:center }
@media (max-width:640px) {
.tp-chat-btn { max-width:none }
}

/* tp-hero-metrics-norule（2026-10-27）：ヒーローの指標（12種類／95.8%／12TB/年）の上の罫線を外す。罫線の分の上余白（padding-top）も外し、見出しとの間は margin-top だけにする */
body.is-top-page .tp-hero-metrics { border-top:0;padding-top:0 }

/* FDE の Before／After：カードの中に、入力元のタグの並びと、同じ幅の番号付きの段（fde-steps）を縦に並べる。矢印は使わない */
.fde-flow { display:flex;flex-direction:column;gap:var(--sp-4) }
.fde-flow > .card-label, .fde-flow > .card-eyebrow { margin-bottom:0 }
.fde-steps { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2) }
.fde-steps > li { display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--background);font-size:var(--fs-body);line-height:1.5;color:var(--foreground) }
.fde-steps > li::before { content:attr(data-n);flex:0 0 24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--muted);color:var(--muted-foreground);font-size:var(--fs-caption);font-weight:var(--font-weight-bold) }
.card--accent .fde-steps > li::before { background:var(--primary);color:var(--primary-foreground) }
.fde-flow > .card-desc { margin-top:auto }

/* FDE の段：左に項目名（データ／絞り込み など。注記の大きさ・600・灰）、右に内容。左右のカードで段の高さをそろえる。
   番号・項目名・内容は段の高さの中央にそろえる（2026-10-27：上寄せで 1 行の段がずれて見えたため） */
.fde-steps > li { align-items:center }
.fde-step-key { flex:0 0 4.5em;font-size:var(--fs-caption);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);line-height:24px }
.card--accent .fde-step-key { color:var(--primary) }
.fde-steps > li > span:last-child { flex:1;min-width:0;line-height:24px }

/* ===== v4.4.26（2026-10-27）相談デスクのロゴを DS のロゴのままにする ===== */
/* 回答の頭のロゴは pr-logo--sm（印 20px・文字 本文の大きさ）のまま。チャットだけの縮小（印 14px／18px・文字 12px）は削除した */

/* フッターの住所：項目名と住所の間は余白で取る（全角空白は使わない）。住所は 1 つの要素なので、格子の幅でも途中で項目名の列へ落ちない */
.footer-brand-meta > span > strong { margin-right:var(--sp-3) }

/* 横並びの中身は縦の中央にそろえる（1 行で並ぶ印・画像・ボタンと文字がずれないように） */
.fde-steps > li { align-items:center }
.fde-steps > li::before { margin-top:0 }
html body .cv-recaptcha-check { align-items:center }
html body .cv-recaptcha-check input { margin-top:0 }
html body .sm-item { align-items:center }
html body .chat-dock .chat-dock-inner .chat-dock-input-row { align-items:center }
html body .process-step > * { margin-top:0;margin-bottom:0 }

/* tp-chat-btn-above-fde（2026-10-27）：SP・タブレットの「相談デスクで質問する」（tp-chat-btn。1099px 以下だけ表示）は、キャッチの囲み（tp-hero-copy）の中で
   データの下・FDE の段の上に置く。PC はボタンを出さないので、PC の並び（キャッチ→データ→FDE、右に相談欄）は変わらない。
   キャッチの囲みの子に付く登場の動き（tp-rise）がボタンの白い輪（tp-chat-ring）を上書きしないよう、輪を指定し直す。相談欄（tp-hero-chat）は 1099px 以下で中身が出ないので上の余白を外す */
body.is-top-page .tp-hero-copy > .tp-chat-btn { margin-top:var(--sp-8) }
body.tp-reveal-on.is-top-page .tp-hero-copy > .tp-chat-btn { animation:tp-chat-ring 2.4s var(--easing) infinite }
@media (max-width:1099px) {
body.is-top-page .tp-hero-chat { margin-top:0 }
}
@media (prefers-reduced-motion:reduce) {
body.tp-reveal-on.is-top-page .tp-hero-copy > .tp-chat-btn { animation:none }
}

/* 下層ページのヒーローに置く注記（alert）：説明文と同じ幅、文字は注記の大きさ */
.kit-service-hero .alert { max-width:720px;margin-top:var(--sp-2);font-size:var(--text-body-sm) }
.kit-service-hero .alert p { margin:0 }

/* ===== sp-gutter（2026-10-27）SP の左右の余白を 16px に ===== */
/* 640px 以下は、ページの左右の余白（--page-padding-x）を 16px にする（375px で本文の幅 343px）。PC・タブレットの値は変えない。
   紺の帯（dark-cta・free-band）は SP では画面の端まで広げ（角丸なし）、帯の中の文字を本文と同じ 16px の位置にそろえる。
   広いカード（card--spacious）の左右の余白は 16px にする（カードの中の文字は画面の端から 32px）。 */
@media (max-width:640px) {
:root { --page-padding-x:16px }
html body main.page-screen > section.dark-cta, html body main.page-screen > section.free-band { padding-left:0;padding-right:0 }
html body main.page-screen .dark-cta-inner, html body main.page-screen .free-band-inner { border-radius:0;padding-left:var(--page-padding-x);padding-right:var(--page-padding-x) }
html body main.page-screen .card--spacious { padding-left:var(--sp-4);padding-right:var(--sp-4) }
}

/* ===== header-static（2026-10-27）ヘッダーは固定しない ===== */
/* グローバルヘッダー（site-header）はスクロールで上に固定しない（PC・SP とも）。スクロールしたときに上部に出るのは、
   SaaS 製品の紹介ページの CTA バー（product-subnav：製品名＋無料アカウント作成）だけ */
/* static ではメガメニュー（position:absolute;top:100%）の基準が無くなり、画面の下に開いて見えなくなった（2026-10-27）。固定しない relative にする */
.site-header { position:relative }

/* ===== subnav-items（2026-10-27）製品ページ上部の CTA バーの注記を項目の並びに ===== */
/* product-subnav-note の中を「／」区切りの文にせず、項目（product-subnav-item）を並べる。各項目の前にチェックの印、項目の間は --sp-4。
   注記そのものの表示・非表示（狭い幅で隠す）は既存の規則のまま */
.product-subnav-note .product-subnav-item { display:inline-flex;align-items:center;gap:var(--sp-1) }
.product-subnav-note .product-subnav-item + .product-subnav-item { margin-left:var(--sp-4) }
.product-subnav-note .product-subnav-item::before { content:'✓';color:var(--primary) }

/* ===== tp-hero-title-size（2026-10-27）トップのキャッチを一段小さく ===== */
/* コメント「先ほどは大きすぎ」に対応。PC・タブレットの「不動産データで動かす。」を clamp(32px,4.1vw,56px) → clamp(28px,3.4vw,44px)、行の高さ 1.2。
   640px 以下は下の sp-type の 26px のまま（この規則は 641px 以上にだけ掛ける） */
@media (min-width:641px) {
html body .tp-hero .tp-hero-title, html body.is-top-page .hero-inner .tp-hero-title { font-size:clamp(28px,3.4vw,44px);line-height:1.2 }
}

/* ===== sp-type（2026-10-27）SP の文字サイズの段 ===== */
/* 640px 以下の文字サイズを 7 段にそろえる（全 30 ページの棚卸しで 34／32／26／24／20／18／16／15／14／13／12／10px が混在し、トップのキャッチ 34px が大きすぎ、
   ページの見出し 26px と節の見出し 24px の差がほぼ無かった）。PC・タブレットの値は変えない。
   キャッチ 26 → ページの見出し 24 → 節の見出し 20 → 小見出し 18 → カードの見出し 16（既存）→ 本文 14（既存）→ 注記・英字の小見出し 12。最小は 12px */
@media (max-width:640px) {
html body .tp-hero .tp-hero-title, html body.is-top-page .hero-inner .tp-hero-title { font-size:26px;line-height:1.35 }
html body main.page-screen .kit-service-hero-title, html body main.page-screen .nf-title, html body main.page-screen .us-title { font-size:24px;line-height:1.4 }
html body main.page-screen .kit-section-title { font-size:20px;line-height:1.45 }
html body .dark-cta h3, html body .free-band h3 { font-size:18px;line-height:1.5 }
html body main.page-screen .metric-num, html body main.page-screen .tp-hero-metric-num, html body main.page-screen .tp-hero-metric-val { font-size:22px }
html body .kit-section-eyebrow, html body .kit-service-hero-eyebrow, html body .dark-cta-eyebrow { font-size:12px }
html body .kit-service-hero-lede, html body .kit-section-lede { font-size:14px;line-height:1.8 }
html body main.page-screen span.u { font-size:12px }
}

/* ===== spacing-rule（2026-10-27）間隔の統一ルール（v4.4.11 の段を置き換え） =====
   セクションの上下 120px（スマホ 64px）・製品ページのヒーロー 80px（スマホ 64px）
   eyebrow→見出し 16px ／ 見出し→説明 16px ／ 見出しのまとまり→本文 40px（スマホ 32px）／ 本文→本文 32px（スマホ 24px）／ 同じ部品の連続 20px（スマホ 16px）／ 本文→注記 20px（スマホ 16px）
   画面幅で連続に変わる 1 つの値にし、幅ごとの段を作らない。同じ背景のセクションが続くときは、後ろのセクションの上の余白を 0 にする（間隔は前のセクションの下の余白 1 つ）。
   ページ・ヒーロー・404・配信停止の見出しも同じ値を使う。 */
:root { --space-eyebrow:16px; --space-lede:16px; --space-head:clamp(32px,2.8vw,40px); --space-block:clamp(24px,2.2vw,32px); --space-same:clamp(16px,1.4vw,20px); --space-section:clamp(64px,8.4vw,120px); --space-hero:clamp(64px,5.6vw,80px) }
html body main.page-screen > section.kit-section { padding-top:var(--space-section) !important; padding-bottom:var(--space-section) !important }
html body main.page-screen > section.kit-section:not(.kit-section--muted) + section.kit-section:not(.kit-section--muted) { padding-top:0 !important }
html body main.page-screen > section.kit-section.kit-section--muted { padding-top:0 !important; padding-bottom:0 !important }
html body main.page-screen > section.kit-section--muted > .kit-section-inner { padding-top:var(--space-section); padding-bottom:var(--space-section) }
html body main.page-screen > section.kit-service-hero { padding-top:var(--space-hero); padding-bottom:var(--space-hero) }
html body main.page-screen .kit-section-inner > * { margin-top:0;margin-bottom:0 }
html body main.page-screen .kit-section-inner > * + * { margin-top:var(--space-block) }
html body main.page-screen .kit-section-inner > .row-2 + .row-2,html body main.page-screen .kit-section-inner > .row-3 + .row-3,html body main.page-screen .kit-section-inner > .row-4 + .row-4,html body main.page-screen .kit-section-inner > .job-card + .job-card,html body main.page-screen .kit-section-inner > * + .u-c-muted-foreground { margin-top:var(--space-same) }
html body main.page-screen :is(.kit-section-eyebrow,.kit-service-hero-eyebrow,.nf-code) { margin-bottom:0 }
html body main.page-screen :is(.kit-section-eyebrow,.kit-service-hero-eyebrow,.nf-code) + * { margin-top:var(--space-eyebrow) }
html body main.page-screen :is(.kit-section-title,.kit-service-hero-title,.tp-hero-title,.nf-title,.us-title) { margin-bottom:0 !important; padding-bottom:0 }
html body main.page-screen :is(.kit-section-title,.kit-service-hero-title,.nf-title,.us-title) + *,html body main.page-screen .kit-section-inner > .flex-row.flex-between + * { margin-top:var(--space-head) }
html body main.page-screen :is(.kit-section-title,.kit-service-hero-title,.tp-hero-title,.nf-title,.us-title) + :is(.kit-section-lede,.kit-service-hero-lede,.legal-lead,.cv-lead,.tp-hero-lead,.nf-lead,.us-lead) { margin-top:var(--space-lede); margin-bottom:0 }
html body main.page-screen :is(.kit-section-lede,.kit-service-hero-lede,.legal-lead,.cv-lead,.nf-lead,.us-lead) + * { margin-top:var(--space-head) }
html body main.page-screen .prose h2 { margin-top:var(--space-head); margin-bottom:var(--space-lede) }
html body .dark-cta p { margin-bottom:var(--sp-2) }
html body .dark-cta-inner > * + .flex-row { margin-top:var(--space-block) }

/* ==========================================================================
   2026-10-28 PC専用製品の「無料で試用」申込欄（SP・タブレット）：視覚階層を 案内 → 入力とボタン → 補足 の 3 段にする。
   札をやめ、囲みは影ではなく 1px の枠線にする（影は境界がわかりにくい。2026-10-28 指摘）。最も強いのはボタン。
   ========================================================================== */
html body[data-pc-only] .pc-start { padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--card);box-shadow:none }
html body[data-pc-only] .dark-cta .pc-start, html body[data-pc-only] .free-band .pc-start { border-color:rgb(255 255 255 / 0.32);background-color:transparent;box-shadow:none }
html body .pc-start-title { display:block;margin:0 0 var(--sp-2);font-size:var(--fs-body);line-height:1.5;font-weight:var(--font-weight-semibold);letter-spacing:0;color:var(--foreground) }
html body[data-pc-only] .pc-start-form { margin-top:0;padding-top:0;border-top:0 }
html body .pc-start-desc { margin:var(--sp-2) 0 0;font-size:var(--fs-caption);line-height:1.6;color:var(--muted-foreground) }
html body .dark-cta .pc-start-title, html body .free-band .pc-start-title { color:var(--primary-foreground) }
html body .dark-cta .pc-start-desc, html body .free-band .pc-start-desc { margin-bottom:0;color:rgb(255 255 255 / 0.72) }

/* 課題と解決方法（pair-list）のカード見出しが重く見えるため、600 に下げ、説明は 400 にそろえる（文字は画像ではなくテキスト） */
html body main.page-screen .pair-row .card-label { font-weight:var(--font-weight-semibold) }
html body main.page-screen .pair-row .card-desc { font-weight:var(--font-weight-normal, 400) }

/* 2026-10-28 アカウント作成：パスワード欄を廃止（ログインはEメールのワンタイムパスワード）。Eメール欄の下に補足を出す */
html body .cv-field .cv-help { margin-top:6px;font-size:var(--fs-caption, 12px);line-height:1.6;color:var(--muted-foreground) }

/* FDE ヒーローの Before／After 図（会社紹介スライド 7 枚目を SVG で描き直したもの。テキストは最小） */
.fde-fig { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);margin-top:var(--sp-10);max-width:var(--container-content) }
.fde-fig svg { display:block;width:100%;height:auto;font-family:var(--font-sans) }
.fde-fig .f-box, .fde-fig .f-inner { fill:var(--background);stroke:var(--border) }
.fde-fig .f-tint { fill:var(--primary);fill-opacity:.07;stroke:var(--primary);stroke-opacity:.25 }
.fde-fig .f-tint-2 { fill:var(--primary);fill-opacity:.13;stroke:var(--primary);stroke-opacity:.3 }
.fde-fig .f-line { stroke:var(--muted-foreground);stroke-width:1.2;stroke-opacity:.7 }
.fde-fig .f-arrowhead { fill:var(--muted-foreground) }
.fde-fig .f-person { fill:var(--muted-foreground);fill-opacity:.75 }
.fde-fig .f-label { fill:var(--foreground);font-size:13px;font-weight:var(--font-weight-semibold) }
.fde-fig .f-label-strong { fill:var(--foreground);font-size:14px;font-weight:var(--font-weight-bold) }
.fde-fig .f-sub { fill:var(--muted-foreground);font-size:12px }
.fde-fig .f-cap { fill:var(--foreground);font-size:14px;font-weight:var(--font-weight-bold) }
.fde-fig .f-pill-before { fill:var(--muted-foreground) }
.fde-fig .f-pill-after, .fde-fig .f-ai { fill:var(--primary) }
.fde-fig .f-pill-text, .fde-fig .f-ai-text { fill:var(--primary-foreground);font-size:13px;font-weight:var(--font-weight-bold) }
@media (max-width:720px) { .fde-fig { grid-template-columns:1fr;gap:var(--sp-6);margin-top:var(--sp-8) } }
/* /FDE ヒーローの図 */

/* 2026-10-30 相談デスク「担当者に相談」：任意のご相談内容（テキストエリア）と「任意」の印 */
.cd-input.cd-textarea { height:auto;min-height:88px;padding:10px 12px;line-height:1.6;resize:vertical }
.cd-opt { margin-left:6px;font-size:var(--fs-caption, 12px);font-weight:var(--font-weight-regular);color:var(--muted-foreground) }
