
: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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Courier New',monospace;--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}h1,.h1{font-size:var(--text-display-lg);line-height:var(--text-display-lg-lh);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight)}h2,.h2{font-size:var(--text-display-md);line-height:var(--text-display-md-lh);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight)}h3,.h3{font-size:var(--text-display-sm);line-height:var(--text-display-sm-lh);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight)}p{font-size:var(--text-body-md);line-height:var(--text-body-md-lh)}.mono{font-variant-numeric:tabular-nums}.code{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fg-muted{color:var(--muted-foreground)}.fg-subtle{color:var(--foreground-subtle)}.button{--_h:var(--control-h-md);--_px:var(--control-px-md);--_fs:var(--text-body-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--_h);padding:0 var(--_px);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--_fs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-normal);background:var(--secondary);color:var(--secondary-foreground);border:1px solid var(--border);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing),transform var(--duration-fast) var(--easing),color var(--duration-base) var(--easing)}.button:hover{background:var(--muted);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.button:active{transform:translateY(1px);box-shadow:none}.button:focus-visible{outline:none;box-shadow:var(--ring-focus);border-color:var(--primary)}.button--sm{--_h:var(--control-h-sm);--_px:var(--control-px-sm);--_fs:var(--text-body-sm);border-radius:var(--radius-md)}.button--md{--_h:var(--control-h-md);--_px:var(--control-px-md);--_fs:var(--text-body-md)}.button--lg{--_h:var(--control-h-lg);--_px:var(--control-px-lg);--_fs:var(--text-body-lg);border-radius:var(--radius-lg)}.button--xl{--_h:var(--control-h-xl);--_px:var(--control-px-xl);--_fs:var(--text-body-lg);border-radius:var(--radius-lg);font-weight:var(--font-weight-bold)}.button--primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.button--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--shadow-md)}.button--primary:active{background:var(--primary-active);border-color:var(--primary-active)}.button--outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.button--outline:hover{background:var(--primary-soft);border-color:var(--primary)}.chip{display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-2);border-radius:var(--radius-md);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);background:var(--muted);color:var(--foreground);border:1px solid var(--border);white-space:nowrap}.chip--primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.chip--secondary{background:var(--muted);color:var(--muted-foreground);border-color:var(--border)}.chip--outline{background:transparent;color:var(--foreground);border-color:var(--border-strong)}.chip--destructive{background:var(--destructive-muted);color:var(--destructive);border-color:var(--destructive-border)}.chip--success{background:var(--success-muted);color:var(--success);border-color:var(--success-border)}.chip--warning{background:var(--warning-muted);color:var(--warning);border-color:var(--warning-border)}.chip--sale{background:var(--deal-sale-muted);color:var(--deal-sale);border-color:var(--deal-sale-border)}.chip--purchase{background:var(--deal-purchase-muted);color:var(--deal-purchase);border-color:var(--deal-purchase-border)}.chip--rental{background:var(--deal-rental-muted);color:var(--deal-rental);border-color:var(--deal-rental-border)}.chip--pill{border-radius:0;padding:0 var(--sp-3)}.input{height:var(--control-h-md);padding:0 var(--control-px-md);border-radius:var(--radius-md);border:1px solid var(--input);background:var(--card);font-family:var(--font-sans);font-size:var(--text-body-md);color:var(--foreground);outline:none;transition:border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing)}.input::placeholder{color:var(--foreground-subtle)}.input:hover:not(:focus):not(:disabled){border-color:var(--border-strong)}.input:focus-visible{border-color:var(--primary);box-shadow:var(--ring-focus)}.card,.ds-card{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5)}.card--elevated{box-shadow:var(--shadow-sm)}[data-goto].product-card,[data-goto].ds-card,[data-goto].feature-card,[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].product-card::after,[data-goto].ds-card::after,[data-goto].feature-card::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].product-card:hover::after,[data-goto].ds-card:hover::after,[data-goto].feature-card:hover::after,[data-goto].interview-card:hover::after,[data-goto].related-card:hover::after{background-color:var(--primary);transform:translate(2px,-2px)}[data-goto].product-card::after{top:auto;bottom:var(--sp-4)}[data-goto].product-card:hover::after{transform:translate(2px,2px)}[data-goto].product-card:active,[data-goto].ds-card:active,[data-goto].feature-card:active,[data-goto].interview-card:active,[data-goto].job-card:active,[data-goto].related-card:active{background:var(--muted);transform:scale(0.995)}.pr-logo{display:inline-flex;align-items:center;gap:10px;user-select:none;line-height:1;text-decoration:none;cursor:pointer}.pr-logo-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-foreground);font-family:var(--font-sans);font-weight:var(--font-weight-bold);line-height:1;flex-shrink:0}.pr-logo-text{font-family:var(--font-sans);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);color:var(--foreground);white-space:nowrap;line-height:1}.pr-logo--sm{gap:8px}.pr-logo--sm .pr-logo-mark{width:20px;height:20px;border-radius:var(--radius-sm);font-size:12px}.pr-logo--sm .pr-logo-text{font-size:var(--text-body-md)}.pr-logo--md{gap:10px}.pr-logo--md .pr-logo-mark{width:24px;height:24px;border-radius:var(--radius-sm);font-size:14px}.pr-logo--md .pr-logo-text{font-size:var(--text-body-lg)}.pr-logo--lg{gap:12px}.pr-logo--lg .pr-logo-mark{width:32px;height:32px;border-radius:var(--radius-md);font-size:18px}.pr-logo--lg .pr-logo-text{font-size:var(--text-display-sm)}.pr-logo--xl{gap:14px}.pr-logo--xl .pr-logo-mark{width:48px;height:48px;border-radius:var(--radius-md);font-size:26px}.pr-logo--xl .pr-logo-text{font-size:var(--text-display-md)}.pr-logo--inverse .pr-logo-mark{background:var(--primary-foreground);color:var(--primary)}.pr-logo--inverse .pr-logo-text{color:var(--primary-foreground)}.container{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.section{padding:var(--section-padding-y) 0}.section--bg{background:transparent}.section--bg>.container{background:var(--muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--section-padding-y) var(--page-padding-x)}.section.section--bg{padding-top:0;padding-bottom:0}.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)}.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)}.section-title--lg{font-size:var(--fs-section);line-height:var(--fs-section-lh)}.section-lead{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)}.site-header{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--border)}.header-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x);height:var(--height-topnav);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6)}.logo{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);cursor:pointer;color:var(--primary)}.header-nav{display:flex;align-items:center;gap:var(--sp-2)}.nav-item{font-size:var(--text-body-md);font-weight:var(--font-weight-medium);color:var(--foreground);padding:0 var(--sp-4);height:var(--control-h-md);display:inline-flex;align-items:center;gap:4px;cursor:pointer;border-radius:var(--radius-md);position:relative;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.nav-item:hover{background:var(--accent)}.nav-item.is-active{background:var(--accent);color:var(--primary)}.nav-item.is-current{color:var(--primary);font-weight:var(--font-weight-semibold);background:transparent}.nav-item.is-current:hover{background:var(--accent)}.nav-item.is-current::after{content:'';position:absolute;left:0;right:0;bottom:-13px;height:2px;background:var(--primary)}.nav-item .chev{font-size:var(--text-caption);color:var(--foreground-subtle);transition:transform var(--duration-fast) ease}.nav-item.is-active .chev{transform:rotate(180deg)}.nav-cta{font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);color:var(--primary-foreground);background:var(--primary);border:1px solid var(--primary);padding:0 var(--sp-4);height:var(--control-h-md);display:inline-flex;align-items:center;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing)}.nav-cta:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.nav-divider{width:1px;height:20px;background:var(--border);margin:0 var(--sp-2);flex-shrink:0}.nav-login{font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);background:var(--card);border:1px solid var(--border-strong);padding:0 var(--sp-4);height:var(--control-h-md);display:inline-flex;align-items:center;gap:6px;cursor:pointer;border-radius:var(--radius-md);transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease,color var(--duration-fast) ease}.nav-login::before{content:'';width:14px;height:14px;background-color:var(--foreground);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a8 8 0 0 1 16 0v1'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a8 8 0 0 1 16 0v1'/></svg>");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;flex-shrink:0}.nav-login:hover{background:var(--accent);border-color:var(--foreground-subtle)}.nav-login.is-active{background:var(--accent);border-color:var(--primary);color:var(--primary)}.nav-login .chev{font-size:var(--text-caption);color:var(--foreground-subtle);transition:transform var(--duration-fast) ease}.nav-login.is-active .chev{transform:rotate(180deg)}.megamenu{position:absolute;top:100%;left:0;right:0;background:var(--card);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);display:none;z-index:99}.megamenu.is-open{display:block}.megamenu-inner{max-width:var(--container-content);margin:0 auto;padding:var(--sp-8) var(--page-padding-x)}.mm-grid-products{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-8)}.mm-grid-solutions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-8);max-width:900px}.mm-grid-login{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-8) var(--sp-12);align-items:start;max-width:720px}.mm-cat-title{font-size:var(--text-body-md);font-weight:var(--font-weight-bold);color:var(--foreground);padding-bottom:var(--sp-2);margin-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.mm-link{display:block;font-size:var(--text-body-md);color:var(--muted-foreground);padding:6px 0;cursor:pointer;transition:color var(--duration-fast) ease}.mm-link:hover{color:var(--primary)}.mm-solution-item{display:block;padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);cursor:pointer;transition:border-color var(--duration-fast) ease,background var(--duration-fast) ease,transform var(--duration-fast) ease}.mm-solution-item:hover{border-color:var(--primary);background:var(--primary-soft)}.mm-solution-item:active{transform:scale(0.997)}.mm-solution-eyebrow{font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-2)}.mm-solution-title{font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-2);line-height:1.4}.mm-solution-desc{font-size:var(--text-caption);color:var(--muted-foreground);line-height:1.6}.mm-footer-row{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border);display:flex;gap:var(--sp-5);flex-wrap:wrap}.mm-footer-link{font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);color:var(--primary);cursor:pointer}.mm-footer-link:hover{text-decoration:underline}.site-footer{background:var(--foreground);color:var(--card);padding:var(--sp-16) 0 var(--sp-6);margin-top:var(--sp-20)}.footer-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.footer-brand-row{padding-bottom:var(--sp-10);border-bottom:1px solid rgb(255 255 255 / 0.12);margin-bottom:var(--sp-10)}.footer-brand-row .pr-logo{display:inline-flex;margin-bottom:var(--sp-3)}.footer-brand-text{font-size:var(--text-body-sm);color:var(--foreground-subtle);line-height:1.7;max-width:720px}.footer-brand-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-8);margin-top:var(--sp-4);font-size:var(--text-body-sm);color:var(--foreground-subtle)}.footer-brand-meta strong{color:var(--card);font-weight:var(--font-weight-semibold);margin-right:var(--sp-1)}.footer-section{margin-bottom:var(--sp-10)}.footer-section-title{font-size:var(--text-body-md);font-weight:var(--font-weight-bold);color:var(--card);padding-bottom:var(--sp-2);margin-bottom:var(--sp-5);border-bottom:1px solid rgb(255 255 255 / 0.12);letter-spacing:var(--tracking-wide)}.footer-products-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6)}.footer-cols-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);padding-bottom:var(--sp-6)}.footer-col-title{font-size:var(--text-body-md);font-weight:var(--font-weight-bold);color:var(--card);padding-bottom:var(--sp-2);margin-bottom:var(--sp-4);border-bottom:1px solid rgb(255 255 255 / 0.12);letter-spacing:var(--tracking-wide)}.footer-subcat{font-size:var(--text-body-sm);color:var(--card);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3);font-weight:var(--font-weight-bold);padding-left:0}.footer-link{font-size:var(--text-body-sm);color:var(--foreground-subtle);padding:4px 0;cursor:pointer;display:block;transition:color var(--duration-fast) ease;font-weight:var(--font-weight-regular)}.footer-link.footer-link--sub{padding-left:var(--sp-3);font-size:var(--text-body-sm);color:var(--foreground-subtle)}.footer-link:hover{color:var(--card)}.footer-bottom{border-top:1px solid rgb(255 255 255 / 0.12);margin-top:var(--sp-6);padding-top:var(--sp-4);font-size:var(--text-body-sm);color:var(--foreground-subtle);display:flex;justify-content:space-between;align-items:center}@media (max-width:900px){.footer-products-grid{grid-template-columns:repeat(2,1fr)}.footer-cols-secondary{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.footer-products-grid,.footer-cols-secondary{grid-template-columns:1fr}}.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-eyebrow{font-size:var(--text-caption);letter-spacing:var(--tracking-wide);color:var(--primary);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-4)}.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}.integration-visual{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-lg);aspect-ratio:16 / 7;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-8);overflow:hidden}.integration-visual img{width:100%;height:100%;object-fit:cover;display:block}.page-hero{position:relative;background:var(--card);padding:var(--sp-20) var(--page-padding-x)}.page-hero>*{max-width:var(--container-content);margin-left:auto;margin-right:auto}.page-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)}.page-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)}.page-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)}.page-hero-lead{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)}.product-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);background:var(--card);transition:opacity var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),transform var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing);cursor:pointer}.product-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.product-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--sp-2);min-height:24px}.prod-tag{font-size:var(--text-caption);padding:2px 8px;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);border-radius:var(--radius-sm)}.product-card.is-dimmed{opacity:0.35}.product-card.is-matched{border-color:var(--primary);border-width:1.5px}.product-card.is-matched .prod-tag.is-match{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.product-num{font-size:var(--text-caption);color:var(--foreground-subtle);font-weight:var(--font-weight-semibold);letter-spacing:0.05em;margin-bottom:var(--sp-1)}.product-name{font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-2);line-height:1.5}.product-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.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)}.advantage-num{font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-3);font-variant-numeric:tabular-nums}.product-hero{position:relative;background:var(--card);padding:var(--sp-20) 0}.product-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)}.product-hero-inner{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}.product-hero-name{display:block;font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);color:var(--primary);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3);line-height:1.3}.product-hero-title{font-size:var(--text-display-lg);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-5);line-height:var(--text-display-lg-lh);letter-spacing:var(--tracking-tight)}.product-hero-desc{font-size:var(--text-body-lg);color:var(--muted-foreground);line-height:var(--text-body-lg-lh);margin-bottom:var(--sp-8)}.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)}.section--centered .section-eyebrow,.section--centered .section-title,.section--centered .section-lead{text-align:left}.section--centered .section-lead{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{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);background:var(--card);display:flex;flex-direction:column;gap:var(--sp-4)}.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)}.strength-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-10) var(--sp-6);background:var(--card);height:100%}.strength-num{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}.strength-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3);line-height:var(--text-display-sm-lh);letter-spacing:var(--tracking-tight)}.strength-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin-bottom:var(--sp-3)}.strength-reason{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);padding-top:var(--sp-3);border-top:1px solid var(--border)}.strength-reason strong{color:var(--foreground);font-weight:var(--font-weight-bold)}.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12);align-items:center}.philosophy-quote{border-left:3px solid var(--primary);padding:var(--sp-3) var(--sp-6);font-size:var(--text-display-sm);line-height:1.6;margin-bottom:var(--sp-5);color:var(--foreground);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight)}.philosophy-text{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.philosophy-img{height:280px}.support-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);background:var(--card);height:100%}.support-tag{display:inline-block;border:1px solid var(--border-strong);padding:2px 8px;font-size:var(--text-caption);color:var(--muted-foreground);margin-bottom:var(--sp-2);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm)}.support-card h4{font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-2)}.support-card p{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin:0}.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 .site-header{background:var(--primary);border-bottom-color:transparent}body.is-top-page .pr-logo .pr-logo-mark{background:var(--primary-foreground);color:var(--primary)}body.is-top-page .pr-logo .pr-logo-text{color:var(--primary-foreground)}body.is-top-page .nav-item{color:var(--primary-foreground)}body.is-top-page .nav-item:hover{background:rgb(255 255 255 / 0.10)}body.is-top-page .nav-item.is-active{background:rgb(255 255 255 / 0.15);color:var(--primary-foreground)}body.is-top-page .nav-item .chev{color:rgb(255 255 255 / 0.70)}body.is-top-page .nav-item.is-current{color:var(--primary-foreground);background:transparent}body.is-top-page .nav-item.is-current:hover{background:rgb(255 255 255 / 0.10)}body.is-top-page .nav-item.is-current::after{background:var(--primary-foreground)}body.is-top-page .nav-cta{background:var(--primary-foreground);color:var(--primary);border-color:var(--primary-foreground)}body.is-top-page .nav-cta:hover{background:var(--muted);border-color:var(--muted)}body.is-top-page .nav-divider{background:rgb(255 255 255 / 0.20)}body.is-top-page .nav-login{background:transparent;color:rgb(255 255 255 / 0.85);border-color:transparent}body.is-top-page .nav-login::before{background-color:rgb(255 255 255 / 0.85)}body.is-top-page .nav-login:hover{background:rgb(255 255 255 / 0.08);color:var(--primary-foreground);border-color:transparent}body.is-top-page .hero{background:var(--primary);color:var(--primary-foreground)}body.is-top-page .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-stats-inner{background:transparent;border-bottom:none}body.is-top-page .hero-stat{border-left-color:rgb(255 255 255 / 0.20)}body.is-top-page .hero-stat-num,body.is-top-page .hero-stat-num .unit{color:var(--primary-foreground)}body.is-top-page .hero-stat-label{color:var(--primary-foreground)}body.is-top-page .hero-stat-meta{color:rgb(255 255 255 / 0.65)}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)}body.is-top-page .megamenu{border-top:1px solid rgb(255 255 255 / 0.10)}.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)}.solution-block{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);padding:var(--sp-12);margin-bottom:var(--sp-6)}.solution-num{display:inline-block;background:var(--primary);color:var(--primary-foreground);padding:5px 14px;font-size:var(--text-caption);font-weight:var(--font-weight-bold);letter-spacing:0.1em;margin-bottom:var(--sp-3);border-radius:var(--radius-sm)}.solution-eyebrow{font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:0.1em;margin-bottom:var(--sp-2);font-weight:var(--font-weight-semibold)}.solution-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-4);line-height:var(--text-display-sm-lh);letter-spacing:var(--tracking-tight)}.solution-lead{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin-bottom:var(--sp-5)}.mvv-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-12) var(--sp-6);background:var(--card);text-align:center}.mvv-label{font-size:var(--text-caption);color:var(--primary);letter-spacing:0.2em;margin-bottom:var(--sp-3);font-weight:var(--font-weight-semibold)}.mvv-statement{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3);line-height:1.5;letter-spacing:var(--tracking-tight)}.mvv-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.ceo-grid{display:grid;grid-template-columns:1fr 2fr;gap:var(--sp-12);align-items:start}.ceo-img{height:320px}.ceo-message-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-5);line-height:var(--text-display-sm-lh);letter-spacing:var(--tracking-tight)}.ceo-message-body{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin-bottom:var(--sp-3)}.ceo-message-sign{font-size:var(--text-body-md);color:var(--foreground);text-align:right;margin-top:var(--sp-5);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}.timeline-body{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.team-card{text-align:center}.team-photo{height:220px;margin-bottom:var(--sp-4)}.team-name{font-weight:var(--font-weight-bold);font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);margin-bottom:4px}.team-role{font-size:var(--text-body-sm);color:var(--primary);margin-bottom:var(--sp-2);font-weight:var(--font-weight-semibold)}.team-bio{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);text-align:left}.values-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-10) var(--sp-6);background:var(--card);height:100%}.values-num{font-size:var(--fs-body);font-weight:var(--font-weight-bold);color:var(--primary);margin-bottom:var(--sp-3);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-wide)}.values-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3);line-height:var(--text-display-sm-lh);letter-spacing:var(--tracking-tight)}.values-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.culture-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12);align-items:center}.culture-img{height:300px}.culture-list{font-size:var(--text-body-md);color:var(--foreground);line-height:2.2;padding-left:var(--sp-5)}.benefit-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);background:var(--card);height:100%}.benefit-card h4{font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin:0 0 var(--sp-2)}.benefit-card p{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin:0}.job-filter{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-6);align-items:center}.job-filter-label{font-size:var(--text-body-sm);color:var(--muted-foreground);margin-right:var(--sp-2)}.job-filter-btn{padding:0 var(--sp-3);height:var(--control-h-sm);font-size:var(--text-body-sm);border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),color var(--duration-base) var(--easing)}.job-filter-btn:hover{border-color:var(--border-strong)}.job-filter-btn.is-active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.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)}.job-title{font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:var(--font-weight-bold);margin-bottom:6px}.job-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh);margin-bottom:var(--sp-3)}.job-meta{display:flex;gap:6px;flex-wrap:wrap}.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-num{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-title{font-weight:var(--font-weight-bold);font-size:var(--fs-lead);color:var(--foreground);line-height:1.5}.interview-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);cursor:pointer;transition:border-color var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing);overflow:hidden}.interview-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.interview-img{height:200px}.interview-body{padding:var(--sp-5)}.interview-name{font-weight:var(--font-weight-bold);font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);margin-bottom:4px}.interview-role{font-size:var(--text-body-sm);color:var(--primary);margin-bottom:var(--sp-2);font-weight:var(--font-weight-semibold)}.interview-quote{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:var(--text-body-md-lh)}.news-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--sp-3);align-items:center}.news-filter-label{font-size:var(--text-body-sm);color:var(--muted-foreground);margin-right:var(--sp-2)}.news-filter-btn{padding:0 var(--sp-3);height:var(--control-h-sm);font-size:var(--text-body-sm);border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),color var(--duration-base) var(--easing)}.news-filter-btn:hover{border-color:var(--border-strong)}.news-filter-btn.is-active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.news-list{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.news-row{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}.news-row:last-child{border-bottom:none}.news-row:hover{background:var(--accent)}.news-date{color:var(--muted-foreground);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:0.05em}.news-title{color:var(--foreground);font-weight:var(--font-weight-regular)}.news-arrow{color:var(--foreground-subtle);font-size:var(--text-body-lg)}.pagination{display:flex;justify-content:center;gap:6px;margin-top:var(--sp-10)}.pg-btn{padding:0 var(--sp-3);height:var(--control-h-md);display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--card);font-size:var(--text-body-sm);color:var(--foreground);cursor:pointer;font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);transition:background var(--duration-base) var(--easing),border-color var(--duration-base) var(--easing),color var(--duration-base) var(--easing)}.pg-btn:hover{border-color:var(--border-strong)}.pg-btn.is-active{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.stub-screen .stub-inner{max-width:720px;margin:0 auto;padding:var(--sp-24) var(--page-padding-x);text-align:center}.stub-eyebrow{font-size:var(--text-caption);letter-spacing:var(--tracking-wide);color:var(--foreground-subtle);margin-bottom:var(--sp-3);font-weight:var(--font-weight-semibold)}.stub-title{font-size:var(--text-display-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-5);line-height:var(--text-display-lg-lh);letter-spacing:var(--tracking-tight)}.stub-desc{font-size:var(--text-body-lg);color:var(--muted-foreground);line-height:var(--text-body-lg-lh);margin-bottom:var(--sp-10)}.chat-dock{position:fixed;left:50%;bottom:var(--sp-5);transform:translateX(-50%);width:100%;max-width:720px;padding:0 var(--sp-4);z-index:200;pointer-events:none}.chat-dock-inner{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;pointer-events:auto;display:flex;flex-direction:column;transition:max-height var(--duration-slow) var(--easing)}.chat-dock-prompt{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--muted);border-bottom:1px solid var(--border);font-size:var(--text-caption);color:var(--muted-foreground)}.chat-dock-prompt::before{content:'';width:6px;height:6px;border-radius:var(--radius-full);background:var(--success);flex-shrink:0}.chat-dock-prompt-label{font-weight:var(--font-weight-semibold);color:var(--foreground);font-size:var(--text-caption);letter-spacing:var(--tracking-wide)}.chat-dock-prompt-sub{color:var(--muted-foreground)}.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}.cd-msg-bot{background:var(--card);border:1px solid var(--border);padding:var(--sp-3) var(--sp-4);font-size:var(--text-body-md);color:var(--foreground);margin-bottom:var(--sp-2);max-width:85%;border-radius:0 var(--radius-md) var(--radius-md) var(--radius-md);line-height:var(--text-body-md-lh)}.cd-msg-user{background:var(--primary);color:var(--primary-foreground);padding:var(--sp-3) var(--sp-4);font-size:var(--text-body-md);margin-bottom:var(--sp-2);max-width:85%;margin-left:auto;border-radius:var(--radius-md) 0 var(--radius-md) var(--radius-md);line-height:var(--text-body-md-lh)}.chat-dock-input-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);background:var(--card)}.chat-dock-input{flex:1;height:var(--control-h-lg);border:none;background:transparent;font-size:var(--text-body-md);color:var(--foreground);outline:none;font-family:var(--font-sans)}.chat-dock-input::placeholder{color:var(--foreground-subtle)}.chat-dock-send{height:var(--control-h-md);padding:0 var(--sp-4);background:var(--primary);color:var(--primary-foreground);border:1px solid var(--primary);border-radius:var(--radius-md);font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background var(--duration-base) var(--easing);flex-shrink:0}.chat-dock-send:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.chat-dock.is-sales-mode .chat-dock-prompt{background:var(--primary);color:var(--primary-foreground);border-bottom-color:var(--primary)}.chat-dock.is-sales-mode .chat-dock-prompt-label{color:var(--primary-foreground)}.chat-dock.is-sales-mode .chat-dock-prompt-sub{color:rgb(255 255 255 / 0.80)}.chat-dock.is-sales-mode .chat-dock-prompt::before{background:rgb(255 255 255 / 0.80)}.chat-dock.is-sales-mode .chat-dock-collapse{color:rgb(255 255 255 / 0.80)}@media (max-width:768px){.chat-dock{bottom:0;padding:0}.chat-dock-inner{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;border:2px solid var(--primary);border-bottom:none;box-shadow:0 -8px 24px rgba(10,57,112,0.25),0 -2px 8px rgba(10,57,112,0.15)}.chat-dock-prompt{background:var(--primary);border-bottom:none;padding:var(--sp-3) var(--sp-4)}.chat-dock-prompt::before{background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,0.25);width:8px;height:8px}.chat-dock-prompt-label{color:#fff}.chat-dock-prompt-sub{color:rgb(255 255 255 / 0.85)}.chat-dock-collapse{color:rgb(255 255 255 / 0.85)}.chat-dock-input-row{padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);background:#fff;border-top:1px solid var(--border)}.chat-dock-input{font-size:16px;color:var(--foreground);min-width:0}.chat-dock-input::placeholder{color:#9ca3af}.chat-dock-send{background:var(--primary);color:#fff;border:1px solid var(--primary);font-weight:var(--font-weight-bold);box-shadow:0 2px 8px rgba(10,57,112,0.30);padding:0 var(--sp-3);font-size:14px;flex-shrink:0;white-space:nowrap}}.header-mobile-actions{display:none;align-items:center;gap:var(--sp-3);flex-shrink:0}.nav-cta--mobile{display:none}.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;background:transparent;border:none;padding:0;cursor:pointer;gap:5px}.hamburger-bar{display:block;width:22px;height:2px;background:var(--foreground);border-radius:var(--radius-full);transition:transform var(--duration-base) var(--easing),opacity var(--duration-fast) var(--easing)}body.is-top-page .hamburger-bar{background:var(--primary-foreground)}.hamburger[aria-expanded="true"] .hamburger-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger[aria-expanded="true"] .hamburger-bar:nth-child(2){opacity:0}.hamburger[aria-expanded="true"] .hamburger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-drawer{display:none;position:fixed;top:var(--height-topnav);left:0;right:0;bottom:0;background:var(--background);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:99;padding:0 0 var(--sp-12)}.mobile-drawer.is-open{display:block}html.is-drawer-open,body.is-drawer-open{overflow:hidden}
body.is-drawer-open .chat-dock{display:none}.mobile-drawer-accordion{border-bottom:1px solid var(--border)}.mobile-drawer-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;padding:var(--sp-4) var(--page-padding-x);background:transparent;border:none;font-family:var(--font-sans);font-size:var(--fs-subheading);font-weight:var(--font-weight-semibold);color:var(--foreground);cursor:pointer;text-align:left;letter-spacing:var(--tracking-normal)}.mobile-drawer-toggle:hover{background:var(--accent)}.mobile-drawer-toggle:active{background:var(--accent)}.mobile-drawer-toggle:focus-visible{outline:none;box-shadow:var(--ring-focus)}.mobile-drawer-chev{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:16px;color:var(--foreground-subtle);transition:transform var(--duration-base) var(--easing)}.mobile-drawer-toggle[aria-expanded="true"] .mobile-drawer-chev{transform:rotate(180deg);color:var(--primary)}.mobile-drawer-toggle[aria-expanded="true"]{color:var(--primary)}.mobile-drawer-panel{display:none;padding:var(--sp-2) 0 var(--sp-5);background:var(--background)}.mobile-drawer-panel.is-open{display:block}.mobile-drawer-group{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:var(--sp-6)}.mobile-drawer-group:last-child{margin-bottom:0}.mobile-drawer-flat{border-bottom:1px solid var(--border);padding-bottom:var(--sp-3)}.mobile-drawer-flat-title{font-size:var(--fs-body);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);padding:var(--sp-2) var(--page-padding-x);margin:0;letter-spacing:0.04em;line-height:1.4}.mobile-drawer-flat .mobile-drawer-grid{padding:0}.mobile-drawer-single{border-bottom:1px solid var(--border)}.mobile-drawer-single-link{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:var(--sp-4) var(--page-padding-x);font-size:var(--fs-subheading);font-weight:var(--font-weight-semibold);color:var(--foreground);cursor:pointer;letter-spacing:var(--tracking-normal)}.mobile-drawer-single-link::after{content:"›";color:var(--foreground-subtle);font-size:22px;line-height:1;margin-left:var(--sp-2);opacity:0.4;font-weight:var(--font-weight-regular)}.mobile-drawer-single-link:hover,.mobile-drawer-single-link:active{background:var(--accent)}.mobile-drawer-subcat{font-size:var(--fs-body);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);margin:0;padding:var(--sp-2) var(--page-padding-x) var(--sp-2);border:none;letter-spacing:0.04em;line-height:1.4;background:transparent}.mobile-drawer-group .mobile-drawer-link{padding-left:var(--page-padding-x)}.mobile-drawer-grid{display:flex;flex-direction:column;gap:0}.mobile-drawer-link{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-lead);font-weight:var(--font-weight-regular);color:var(--foreground);padding:var(--sp-3) var(--page-padding-x);cursor:pointer;min-height:48px;line-height:1.45}.mobile-drawer-link::after{content:"›";color:var(--foreground-subtle);font-size:20px;line-height:1;flex-shrink:0;opacity:0.4;font-weight:var(--font-weight-regular);transition:opacity var(--duration-fast) ease}.mobile-drawer-link:hover,.mobile-drawer-link:active{background:var(--muted)}.mobile-drawer-link:hover::after,.mobile-drawer-link:active::after{opacity:0.7}@media (max-width:900px){.header-nav{display:none}.header-inner{gap:var(--sp-3)}.header-mobile-actions{display:flex}.nav-cta--mobile{display:inline-flex;align-items:center}.hamburger{display:flex}.megamenu{display:none !important}.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)}.hero-stats-inner{grid-template-columns:repeat(2,1fr);gap:var(--sp-8) var(--sp-4);padding:var(--sp-8) var(--page-padding-x)}.hero-stat{border-left:none;padding:0}.hero-stat:nth-child(2n+1){border-left:none}.hero-stat-num{font-size:var(--text-display-md)}.product-hero{padding:var(--sp-12) 0}.product-hero-inner{grid-template-columns:1fr;gap:var(--sp-6)}.product-hero-desc{font-size:var(--text-body-md);margin-bottom:var(--sp-6)}.page-hero{padding:var(--sp-12) var(--page-padding-x)}.page-hero-lead{font-size:var(--text-body-md)}.business-block{padding:var(--sp-6);margin-bottom:var(--sp-4)}.section-lead{font-size:var(--text-body-md)}.row-3,.row-4,.row-5{grid-template-columns:repeat(2,1fr)}.mm-grid-products,.mm-grid-solutions,.mm-grid-login{grid-template-columns:1fr}.section{padding:var(--sp-10) 0}.section--bg>.container{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)}.site-footer{margin-top:var(--sp-10);padding:var(--sp-10) 0 var(--sp-6)}.cv-card{padding:var(--sp-6)}.license-row>.license-type{flex:1 1 100%}.license-row>.license-count,.license-row>.license-number{flex:1 1 auto}.row-2>*,.row-3>*,.row-4>*,.row-5>*,.feature-card>*,.overview-grid>*,.philosophy-grid>*,.ceo-grid>*,.access-grid>*,.timeline-item>*,.culture-grid>*,.news-row>*,.product-hero-inner>*,.hero-stats>*{min-width:0}.feature-card-img{aspect-ratio:16 / 10}.overview-grid{grid-template-columns:1fr;gap:var(--sp-8)}.philosophy-grid{grid-template-columns:1fr;gap:var(--sp-6)}.philosophy-grid>*{min-width:0}.philosophy-img{width:100%;height:auto;aspect-ratio:16 / 9;min-height:200px}.philosophy-quote{font-size:var(--text-body-lg);padding:var(--sp-3) var(--sp-4)}.ceo-grid{grid-template-columns:1fr;gap:var(--sp-6)}.access-grid{grid-template-columns:1fr;gap:var(--sp-6)}.timeline-item{grid-template-columns:1fr;gap:var(--sp-2)}.culture-grid{grid-template-columns:1fr;gap:var(--sp-6)}.news-row{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}.news-row .news-date{grid-area:date;font-size:var(--text-body-sm)}.news-row .news-title{grid-area:title;font-size:var(--text-body-lg);line-height:1.5;font-weight:var(--font-weight-medium)}.news-row .news-arrow{grid-area:arrow}.industry-tabs{margin:var(--sp-3) 0 var(--sp-6)}.industry-tabs-buttons{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;gap:2px;padding:3px;width:100%}.industry-tabs-buttons::-webkit-scrollbar{display:none}.industry-tab{flex-shrink:0;padding:0 var(--sp-3);height:44px;font-size:var(--text-body-sm)}.footer-brand-meta{flex-direction:column;gap:var(--sp-2)}.footer-brand-meta>span{display:grid;grid-template-columns:80px 1fr;column-gap:var(--sp-3);align-items:start;line-height:1.65}.footer-brand-meta strong{margin-right:0}}@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%}.product-hero-cta-row{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.product-hero-cta-row .button{width:100%}.section>.container>.button,.section>.container>.flex-row>.button,.business-block>.button{width:100%}.hero-stats-inner{grid-template-columns:repeat(2,1fr);padding:var(--sp-6) var(--page-padding-x);gap:var(--sp-6) var(--sp-3)}.hero-stat-label{font-size:var(--text-caption)}.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)}body.is-top-page .hero-stats-inner{padding:var(--sp-6) var(--page-padding-x);gap:var(--sp-5) var(--sp-3)}.product-hero{padding:var(--sp-10) 0}.product-hero-desc{font-size:var(--text-body-md);margin-bottom:var(--sp-5);text-align:left}.product-hero-inner{gap:var(--sp-5)}.page-hero{padding:var(--sp-10) var(--page-padding-x)}.section-lead{text-align:left}.dark-cta p{text-align:left}.business-block{padding:var(--sp-5) var(--sp-4)}.section-title{margin-bottom:var(--sp-3)}.section-lead{font-size:var(--text-body-md);margin-bottom:var(--sp-6)}.section-eyebrow{margin-bottom:var(--sp-2)}.page-hero-title,.product-hero-title,.cv-title,.legal-title,.news-detail-title,.stub-title,.industry-hero{padding:var(--sp-10) 0 var(--sp-8)}.pr-logo--md{gap:8px}.pr-logo--md .pr-logo-mark{width:22px;height:22px;font-size:13px}.pr-logo--md .pr-logo-text{font-size:var(--text-body-md)}.nav-cta--mobile{height:var(--control-h-sm);padding:0 var(--sp-3);font-size:var(--text-body-sm)}.dark-cta{padding:var(--sp-6) var(--page-padding-x)}.dark-cta-inner{padding:var(--sp-8) var(--sp-4)}.section{padding:var(--sp-8) 0}.section--bg>.container{padding:var(--sp-8) var(--page-padding-x)}.hero-stats-inner,.dark-cta-inner{margin-left:0;margin-right:0}.footer-brand-meta{flex-direction:column;gap:var(--sp-2)}.site-footer{margin-top:var(--sp-8);padding:var(--sp-8) 0 var(--sp-5)}.cv-page{padding:var(--sp-6) 0 var(--sp-10)}.cv-card{padding:var(--sp-5) var(--sp-4)}.cv-info-row{grid-template-columns:1fr;gap:var(--sp-3)}.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){.section{padding:var(--sp-6) 0}.section--bg>.container{padding:var(--sp-6) var(--page-padding-x)}.hero{padding:var(--sp-8) 0 var(--sp-6)}.site-footer{margin-top:var(--sp-6);padding:var(--sp-6) 0 var(--sp-4)}.hero-stats-inner{padding:var(--sp-5) var(--page-padding-x);gap:var(--sp-5) var(--sp-3)}.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)}.page-hero{padding:var(--sp-10) var(--page-padding-x)}.product-hero{padding:var(--sp-10) 0}.industry-hero{padding:var(--sp-8) 0 var(--sp-6)}.business-block{padding:var(--sp-4)}}.release-notice{width:100%;background:#fff1f1;border-top:2px solid #d92d20;border-bottom:2px solid #d92d20;color:#b42318;padding:var(--sp-5) var(--page-padding-x)}.release-notice-inner{max-width:var(--container-content);margin:0 auto;display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.release-notice-label{display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-2);background:#d92d20;color:#fff;font-size:var(--text-caption);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm);flex-shrink:0;white-space:nowrap}.release-notice-text{margin:0;font-size:var(--text-body-md);line-height:1.7;font-weight:var(--font-weight-semibold);color:#b42318;flex:1;min-width:240px}.release-notice-text strong{color:#912018;font-weight:var(--font-weight-bold)}body.is-top-page .release-notice{background:#fff1f1;border-color:#d92d20}@media (max-width:600px){.release-notice{padding:var(--sp-4) var(--page-padding-x)}.release-notice-inner{gap:var(--sp-3)}.release-notice-text{font-size:var(--text-body-sm);min-width:0;width:100%}}.page-screen{display:none}.page-screen.is-active{display:block}.text-center{text-align:left}.ds-card.text-center{text-align:center}.nowrap{white-space:nowrap}.mt-5{margin-top:var(--sp-5)}.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-label--md{font-weight:600;font-size:var(--fs-subheading);margin-bottom:var(--sp-2);line-height:var(--fs-subheading-lh)}.card-label--lg{font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);font-weight:bold;margin-bottom:var(--sp-2)}.card-label--strong{font-size:var(--fs-subheading);font-weight:bold;margin-bottom:var(--sp-2);line-height:var(--fs-subheading-lh)}.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-desc--plain{font-size:var(--text-body-md);color:var(--muted-foreground)}.card-eyebrow{font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-2);font-weight:600}.card-clickable{cursor:pointer;padding:var(--sp-6)}.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)}.img-ph-md{height:140px;margin-bottom:var(--sp-4)}.list-loose{font-size:var(--text-body-md);line-height:2;padding-left:var(--sp-5);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)}.mb-4{margin-bottom:var(--sp-4)}.img-ph-dashed{background:var(--muted);border-style:dashed}.card-label--simple{font-weight:600;font-size:var(--fs-subheading);line-height:var(--fs-subheading-lh);margin-bottom:var(--sp-2)}.card-label--bold{font-size:var(--fs-subheading);font-weight:bold;line-height:var(--fs-subheading-lh);margin-bottom:var(--sp-2)}.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)}.sub-link-mm{padding-left:var(--sp-4);font-size:var(--text-caption);color:var(--muted-foreground)}.news-date-cell{color:var(--muted-foreground);font-size:var(--text-body-sm);min-width:90px}.text-muted{color:var(--muted-foreground)}.text-fg{color:var(--foreground)}.bg-muted{background:var(--muted)}.body-md{font-size:var(--text-body-md)}.flex-1-md{flex:1;font-size:var(--text-body-md)}.link-underline{cursor:pointer;text-decoration:underline}.cursor-pointer{cursor:pointer}.p-8{padding:var(--sp-8)}.h-260{height:260px}.h-280{height:280px}.gap-4{gap:var(--sp-4)}.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-eyebrow{font-size:var(--text-caption);font-weight:var(--font-weight-semibold);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3)}.legal-title{font-size:var(--text-display-md);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-3);letter-spacing:var(--tracking-tight);line-height:var(--text-display-md-lh)}.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)}.legal-section-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-4);letter-spacing:var(--tracking-tight)}.legal-section-body{font-size:var(--text-body-md);color:var(--foreground);line-height:1.95}.legal-section-body p{margin-bottom:var(--sp-4)}.legal-section-body ol{padding-left:var(--sp-5);margin-bottom:var(--sp-4)}.legal-section-body ol>li{margin-bottom:var(--sp-3);line-height:1.95}.legal-section-body ol ol{margin-top:var(--sp-2);list-style:lower-roman}.legal-section-body ul{padding-left:var(--sp-5);margin-bottom:var(--sp-4);list-style:disc}.legal-section-body 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:static !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-eyebrow{font-size:var(--text-caption);font-weight:var(--font-weight-semibold);color:var(--primary);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3)}.cv-title{font-size:var(--text-display-md);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-4);letter-spacing:var(--tracking-tight);line-height:var(--text-display-md-lh)}.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-semibold);color:var(--foreground);margin-bottom:var(--sp-2)}.cv-label-required::after{content:'*';display:inline-block;margin-left:4px;color:#d92d20;font-size:1.1em;font-weight:var(--font-weight-bold);vertical-align:middle;line-height:1}.cv-label-optional::after{content:'任意';display:inline-block;margin-left:var(--sp-2);padding:2px 6px;background:transparent;color:var(--foreground-subtle);border:1px solid var(--border);font-size:var(--text-caption);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);vertical-align:middle}.cv-help{font-size:var(--text-body-sm);color:var(--muted-foreground);margin-top:var(--sp-2);line-height:1.6}.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}.license-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.license-row>.license-type{flex:1 1 180px;min-width:0}.license-row>.license-count{display:flex;align-items:center;gap:2px;color:var(--foreground);font-size:var(--text-body-md);flex-shrink:0}.license-row>.license-count input{width:48px;text-align:center;padding-left:var(--sp-2);padding-right:var(--sp-2)}.license-row>.license-number{display:flex;align-items:center;gap:2px;color:var(--foreground);font-size:var(--text-body-md);flex-shrink:0}.license-row>.license-number input{width:88px;text-align:center;font-variant-numeric:tabular-nums;padding-left:var(--sp-2);padding-right:var(--sp-2)}.license-paren{font-size:var(--text-body-md);color:var(--foreground);font-weight:var(--font-weight-regular)}@media (max-width:600px){.license-row>.license-type{flex:1 1 100%}}.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-thanks-sub{color:var(--muted-foreground);font-size:var(--text-body-sm);line-height:1.75;margin:0 0 var(--sp-9);max-width:540px}.cv-thanks-actions{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap;margin-top:0}.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-detail-title{font-size:var(--text-display-md);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-6);letter-spacing:var(--tracking-tight);line-height:var(--text-display-md-lh)}.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)}.news-detail-body{font-size:var(--text-body-md);color:var(--foreground);line-height:1.95}.news-detail-body p{margin-bottom:var(--sp-5)}.news-detail-body 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)}.news-detail-body h3{font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);margin:var(--sp-6) 0 var(--sp-3)}.news-detail-body ul{padding-left:var(--sp-5);margin-bottom:var(--sp-5);list-style:disc}.news-detail-body ul>li{margin-bottom:var(--sp-2);line-height:1.85}.news-detail-body 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)}.news-related-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-5)}.news-related-row{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--sp-3);background:var(--background);transition:all var(--duration-base) var(--easing)}.news-related-row:hover{border-color:var(--primary);background:var(--accent)}.logos-section{padding:var(--sp-12) 0;background:var(--background);border-bottom:1px solid var(--border)}.logos-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.logos-title{font-size:var(--text-body-sm);color:var(--muted-foreground);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-semibold);margin-bottom:var(--sp-6)}.logos-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-5);align-items:center}.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}@media (max-width:768px){.logos-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.logos-grid{grid-template-columns:repeat(2,1fr)}}.dual-business{padding:var(--sp-16) 0;background:var(--muted)}.dual-business-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.dual-business-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);margin-top:var(--sp-8)}.dual-business-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-8);display:flex;flex-direction:column;position:relative;overflow:hidden}.dual-business-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary)}.dual-business-card--data::before{background:var(--deal-purchase)}.dual-business-label{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3)}.dual-business-eyebrow{font-size:var(--text-caption);color:var(--primary);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-2)}.dual-business-card--data .dual-business-eyebrow{color:var(--deal-purchase)}h3.dual-business-title,.dual-business-title{font-size:var(--fs-heading);font-weight:var(--font-weight-bold);line-height:var(--fs-heading-lh);margin-bottom:var(--sp-3);letter-spacing:var(--tracking-tight)}.dual-business-lead{font-size:var(--text-body-md);line-height:1.8;color:var(--muted-foreground);margin-bottom:var(--sp-6)}.dual-business-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);padding:var(--sp-5) 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);margin-bottom:var(--sp-6)}.dual-business-meta-cell{text-align:center}.dual-business-meta-num{font-family:var(--font-mono);font-size:var(--fs-stat);font-weight:var(--font-weight-bold);color:var(--primary);letter-spacing:var(--tracking-tight);line-height:var(--fs-stat-lh)}.num-unit{font-size:0.55em;font-weight:var(--font-weight-semibold);margin-left:2px;opacity:0.85;letter-spacing:0}.dual-business-card--data .dual-business-meta-num{color:var(--deal-purchase)}.dual-business-meta-label{font-size:var(--text-caption);color:var(--muted-foreground);margin-top:var(--sp-2);line-height:1.4}.dual-business-entry-title{font-size:var(--text-caption);color:var(--foreground-subtle);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3)}.dual-business-entries{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-6)}.dual-business-entry{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--accent);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);color:var(--foreground);cursor:pointer;transition:all var(--duration-base) var(--easing)}.dual-business-entry:hover{border-color:var(--primary);background:var(--card);transform:translateX(2px)}.dual-business-card--data .dual-business-entry{background:var(--deal-purchase-muted);border-color:var(--deal-purchase-border)}.dual-business-card--data .dual-business-entry:hover{border-color:var(--deal-purchase);background:var(--card)}.dual-business-card--data .dual-business-entry-arrow{color:var(--deal-purchase)}.dual-business-card--data .button--outline{color:var(--deal-purchase);border-color:var(--deal-purchase)}.dual-business-card--data .button--outline:hover{background:rgb(217 119 87 / 0.08);border-color:var(--deal-purchase);color:var(--deal-purchase)}.dual-business-entry-arrow{color:var(--foreground-subtle);font-family:var(--font-mono)}.dual-business-card .button{margin-top:auto;align-self:flex-start}@media (max-width:768px){.dual-business-grid{grid-template-columns:1fr}}.strengths-section{padding:var(--sp-16) 0;background:var(--card)}.strengths-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.strengths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);margin-top:var(--sp-8)}.strength-block{display:flex;flex-direction:column;padding:var(--sp-6) 0;border-top:2px solid var(--primary)}.strength-block-num{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--primary);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3)}.strength-headline{font-size:var(--fs-heading);font-weight:var(--font-weight-bold);line-height:var(--fs-heading-lh);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-5)}.strength-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-3)}.strength-points li{font-size:var(--text-body-md);line-height:1.7;color:var(--muted-foreground);padding-left:var(--sp-5);position:relative}.strength-points li::before{content:'';position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:0.6}.strength-points li strong{color:var(--foreground);font-weight:var(--font-weight-semibold);margin:0 1px}@media (max-width:900px){.strengths-grid{grid-template-columns:1fr;gap:var(--sp-4)}}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-8)}.challenge-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);display:flex;flex-direction:column}.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-mono);margin-bottom:var(--sp-4)}.challenge-title{font-size:var(--fs-subheading);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-2);line-height:var(--fs-subheading-lh)}.challenge-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7;flex:1}.challenge-solution{font-size:var(--text-body-sm);color:var(--primary);font-weight:var(--font-weight-semibold);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px dashed var(--border)}@media (max-width:768px){.challenge-grid{grid-template-columns:1fr}}.package-section{background:var(--muted);padding:var(--sp-12);border-radius:var(--radius-lg);margin-top:var(--sp-8)}.package-eyebrow{font-size:var(--text-caption);color:var(--primary);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-2)}.package-title{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3);letter-spacing:var(--tracking-tight)}.package-lead{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.8;margin-bottom:var(--sp-6)}.package-products{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}.package-product-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);cursor:pointer;transition:all var(--duration-base) var(--easing);display:flex;flex-direction:column;gap:var(--sp-2)}.package-product-card:hover{border-color:var(--primary);transform:translateY(-2px)}.package-product-num{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--foreground-subtle);font-weight:var(--font-weight-bold)}.package-product-name{font-size:var(--fs-subheading);font-weight:var(--font-weight-bold);line-height:var(--fs-subheading-lh)}.package-product-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.6}@media (max-width:900px){.package-products{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.package-products{grid-template-columns:1fr}}.industry-hero{background:var(--card);padding:var(--sp-16) 0 var(--sp-12);border-bottom:1px solid var(--border)}.industry-hero-inner{max-width:var(--container-content);margin:0 auto;padding:0 var(--page-padding-x)}.industry-hero-eyebrow{font-size:var(--text-caption);color:var(--primary);letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);margin-bottom:var(--sp-3)}.industry-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-4)}.industry-hero-lead{font-size:var(--text-body-lg);color:var(--muted-foreground);line-height:var(--text-body-lg-lh);max-width:720px;margin-bottom:var(--sp-6)}.industry-hero-meta{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--text-body-sm);color:var(--muted-foreground);padding-top:var(--sp-5);border-top:1px solid var(--border)}.industry-hero-meta strong{color:var(--foreground);font-weight:var(--font-weight-semibold)}body.is-top-page .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){.footer-brand-meta>span{display:block;grid-template-columns:none;line-height:1.6}.footer-brand-meta>span strong{display:block;margin-bottom:4px;margin-right:0}.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%}.industry-hero-meta{flex-direction:column;gap:var(--sp-3)}.industry-hero-meta>span{display:block;line-height:1.5}.industry-hero-meta>span strong{display:block;margin-bottom:2px;font-size:var(--text-caption);color:var(--muted-foreground);font-weight:var(--font-weight-semibold)}}.section+.section{padding-top:0}.section+.section.section--bg,.section.section--bg+.section{padding-top:var(--section-padding-y)}.section.section--bg+.section.section--bg{padding-top:0}.hero,.page-hero,.industry-hero,.product-hero,.cv-header,.legal-header{text-align:left}.hero-inner,.page-hero-inner,.industry-hero-inner,.product-hero-inner{text-align:left}.hero-lead,.page-hero-lead,.industry-hero-lead,.product-hero-lead{margin-left:max(0px,(100% - var(--container-content)) / 2);margin-right:0}.strengths-section .section-eyebrow,.strengths-section .section-title,.strengths-section .section-title--lg,.strengths-section .section-lead{text-align:left !important;margin-left:0;margin-right:0}.section--centered .section-eyebrow,.section--centered .section-title,.section--centered .section-title--lg,.section--centered .section-lead{text-align:left !important;margin-left:0 !important;margin-right:0 !important}.section-title.text-center,.section-title--lg.text-center,.section-eyebrow.text-center,.section-lead.text-center{text-align:left !important;margin-left:0 !important;margin-right:0 !important}.news-section .section-title,.news-section .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){.hamburger{width:44px;height:44px}.site-header .pr-logo[data-goto],.site-footer .pr-logo[data-goto]{padding-top:6px;padding-bottom:6px;margin-top:-6px;margin-bottom:-6px}.chat-dock-send{height:44px}.button--md{--_h:44px}.button{--_h:44px}}@media (max-width:640px){.nav-cta--mobile{height:44px;padding:0 var(--sp-3)}}@media (max-width:900px){.site-footer .footer-link{padding-top:10px;padding-bottom:10px;min-height:44px;box-sizing:border-box}.news-filter-btn,.job-filter-btn,.pg-btn,.industry-tab{height:44px;min-height:44px}}
/* スマホ：情報密度を下げてマージンを広げる */
@media (max-width:900px){
  /* セクション全体のパディングを大幅増 */
  .section{padding:var(--sp-16) 0 !important}
  .section--bg>.container{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-16) !important}
  .section+.section{padding-top:var(--sp-8) !important}
  /* ヒーロー類 */
  .hero{padding:var(--sp-16) 0 var(--sp-12) !important}
  .page-hero{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-16) !important}
  .product-hero{padding:var(--sp-16) 0 !important}
  .industry-hero{padding:var(--sp-16) 0 var(--sp-12) !important}
  /* セクション内マージン */
  .section-title{margin-bottom:var(--sp-5) !important}
  .section-lead{margin-bottom:var(--sp-10) !important}
  .section-eyebrow{margin-bottom:var(--sp-3) !important}
  /* グリッド要素間の隙間 */
  .row-2,.row-3,.row-4{gap:var(--sp-6) !important}
  /* products: heroのお約束カードをコンパクトに */
  .industry-hero .mvv-card{padding:var(--sp-5) !important}
  .industry-hero .mvv-statement{font-size:16px !important}
  .industry-hero .mvv-statement br{display:none}
  .industry-hero .row-3{gap:var(--sp-4) !important;margin-top:var(--sp-4) !important}
  /* dark-cta */
  .dark-cta{padding-top:var(--sp-12) !important;padding-bottom:var(--sp-12) !important}
  .dark-cta-inner{padding:var(--sp-12) var(--sp-6) !important}
  .dark-cta h3{margin-bottom:var(--sp-5) !important}
  .dark-cta .meta{margin-bottom:var(--sp-8) !important}
  /* dual-business（事業内容） */
  .dual-business{padding:var(--sp-14) 0 !important}
  .dual-business-grid{margin-top:var(--sp-10) !important;gap:var(--sp-8) !important}
  .dual-business-card{padding:var(--sp-8) !important}
  .dual-business-lead{margin-bottom:var(--sp-7) !important;line-height:1.85 !important}
  .dual-business-meta{padding:var(--sp-6) 0 !important;margin-bottom:var(--sp-7) !important}
  .dual-business-entries{margin-bottom:var(--sp-7) !important;gap:var(--sp-3) !important}
  .dual-business-entry{padding:var(--sp-4) var(--sp-5) !important}
  /* strengths（強み） */
  .strengths-section{padding:var(--sp-14) 0 !important}
  .strengths-grid{gap:var(--sp-8) !important;margin-top:var(--sp-10) !important}
  .strength-block{padding:var(--sp-7) 0 !important}
  .strength-headline{margin-bottom:var(--sp-6) !important;line-height:1.5 !important}
  .strength-points{gap:var(--sp-4) !important}
  .strength-points li{line-height:1.9 !important;padding-left:var(--sp-5) !important}
  .strength-points li::before{top:11px}
  /* logos */
  .logos-section{padding:var(--sp-12) 0 !important}
  .logos-grid{gap:var(--sp-6) !important}
  /* package section（業態別） */
  .package-section{padding:var(--sp-10) var(--sp-6) !important;margin-top:var(--sp-8) !important}
  .package-products{gap:var(--sp-5) !important}
  .package-product-card{padding:var(--sp-5) !important;gap:var(--sp-3) !important}
  .package-lead{margin-bottom:var(--sp-7) !important;line-height:1.85 !important}
  /* challenge card（業態別の課題） */
  .challenge-grid{gap:var(--sp-5) !important;margin-top:var(--sp-10) !important}
  .challenge-card{padding:var(--sp-7) !important}
  .challenge-icon{margin-bottom:var(--sp-5) !important}
  .challenge-desc{line-height:1.85 !important}
  .challenge-solution{margin-top:var(--sp-5) !important;padding-top:var(--sp-4) !important}
  /* product card */
  .product-card{padding:var(--sp-6) !important}
  .product-card-img{margin-bottom:var(--sp-5) !important}
  /* ds-card一般 */
  .ds-card{padding:var(--sp-6) !important}
  /* feature-card */
  .feature-card{padding:var(--sp-7) !important;gap:var(--sp-5) !important}
  /* news-list */
  .news-row{padding:var(--sp-5) !important}
  /* footer */
  .site-footer{padding:var(--sp-14) 0 var(--sp-8) !important}
  .footer-section,.footer-cols-secondary{margin-bottom:var(--sp-8) !important;gap:var(--sp-8) !important}
  /* mvv-card */
  .mvv-card{padding:var(--sp-10) var(--sp-6) !important}
  /* news-detail */
  .news-detail-body p{margin-bottom:var(--sp-6) !important}
  .news-detail-body h2{margin:var(--sp-12) 0 var(--sp-5) !important}
  /* release notice */
  .release-notice{padding-top:var(--sp-6) !important;padding-bottom:var(--sp-6) !important}
  .release-notice-text{line-height:1.85 !important}
  /* 全体的にp要素の行間を緩める */
  p{line-height:1.85}
  /* 関連製品セクション */
  .related-card{padding:var(--sp-5) !important}
  .row-4.mb-5{margin-bottom:var(--sp-6) !important}
  /* solution-block（データソリューション） */
  .solution-block{padding:var(--sp-8) !important;margin-bottom:var(--sp-7) !important}
  .solution-lead{margin-bottom:var(--sp-7) !important;line-height:1.85 !important}
  /* values-card, benefit-card, support-card */
  .values-card{padding:var(--sp-8) var(--sp-6) !important}
  .benefit-card{padding:var(--sp-6) !important}
  /* job-card */
  .job-card{padding:var(--sp-7) !important;margin-bottom:var(--sp-4) !important}
  .job-desc{line-height:1.85 !important;margin-bottom:var(--sp-4) !important}
  /* timeline */
  .timeline-item{padding:var(--sp-6) 0 !important}
}
@media (max-width:480px){
  /* さらに小さい画面では、左右パディングは保ちつつ縦の余白をしっかり */
  .section{padding:var(--sp-12) 0 !important}
  .section--bg>.container{padding-top:var(--sp-12) !important;padding-bottom:var(--sp-12) !important}
  .hero{padding:var(--sp-12) 0 var(--sp-10) !important}
  .page-hero{padding-top:var(--sp-12) !important;padding-bottom:var(--sp-12) !important}
  .product-hero{padding:var(--sp-12) 0 !important}
  .industry-hero{padding:var(--sp-12) 0 var(--sp-10) !important}
  .dual-business{padding:var(--sp-12) 0 !important}
  .strengths-section{padding:var(--sp-12) 0 !important}
  .dark-cta-inner{padding-top:var(--sp-10) !important;padding-bottom:var(--sp-10) !important;padding-left:var(--sp-5) !important;padding-right:var(--sp-5) !important}
  .package-section{padding:var(--sp-8) var(--sp-5) !important}
  .challenge-card{padding:var(--sp-6) !important}
  .ds-card{padding:var(--sp-5) !important}
  .product-card{padding:var(--sp-5) !important}
  .feature-card{padding:var(--sp-6) !important}
  .dual-business-card{padding:var(--sp-7) var(--sp-5) !important}
  .strength-block{padding:var(--sp-6) 0 !important}
  .solution-block{padding:var(--sp-7) var(--sp-5) !important}
  /* 左右ガター：DSトークンの下限に合わせる（24pxは本文幅を圧迫するため戻した） */
  :root{--page-padding-x:20px !important}
}
/* スマホ：左右ガターは末尾の正準ブロック（*-inner / .container の clamp(20px,5vw,64px)）が単独で担当する。
   ここで outer セクション側にも 24px を重ねると二重ガター（片側44px）になり本文幅が潰れるため、横方向は触らない。 */
@media (max-width:768px){
  /* カード自体にも保険として左右マージンを設定（万が一外側が効かなくても画面端から離れるように） */
  body .dual-business-card{margin-left:0;margin-right:0;max-width:100%;box-sizing:border-box}
  /* dual-business-grid のgapを縦方向のみに */
  body .dual-business-grid{gap:var(--sp-6) !important}
  /* 上下paddingは別途確保 */
  body .dual-business{padding-top:var(--sp-14) !important;padding-bottom:var(--sp-14) !important}
  body .strengths-section{padding-top:var(--sp-14) !important;padding-bottom:var(--sp-14) !important}
  body .logos-section{padding-top:var(--sp-12) !important;padding-bottom:var(--sp-12) !important}
  body .industry-hero{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-12) !important}
  body .product-hero{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-16) !important}
  body .hero{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-12) !important}
  body .release-notice{padding-top:var(--sp-6) !important;padding-bottom:var(--sp-6) !important}
  body .dark-cta{padding-top:var(--sp-12) !important;padding-bottom:var(--sp-12) !important}
  body .page-hero{padding-top:var(--sp-16) !important;padding-bottom:var(--sp-16) !important}
}
/* === Font size refinements === */
/* 日本語テキストを数値スロットに表示する場合のサイズ調整 */
.dual-business-meta-num .num-text{font-size:0.55em;font-weight:var(--font-weight-bold);letter-spacing:0;display:inline-block;line-height:1.2;vertical-align:middle}
/* 数字・ラベルの monospace を デザインシステムフォント（Inter + Noto Sans JP）に統一 */
html body .dual-business-label,
html body .dual-business-meta-num,
html body .dual-business-meta-num *,
html body .dual-business-meta-label,
html body .dual-business-entry-arrow,
html body .strength-block-num,
html body .strength-card-num{
  font-family: var(--font-sans) !important;
  font-feature-settings: "tnum" 1;
}
/* ニュースタイトルのサイズ調整 (全画面サイズで適用) */
.news-row .news-title{font-size:var(--text-body-md);line-height:1.55;font-weight:var(--font-weight-medium)}
@media (max-width:480px){.dual-business-meta-num .num-text{font-size:var(--fs-subheading)}}
/* === Chat dock: PC/SP共通の配色（枠線・影・ウェイトを軽量化） === */
.chat-dock-inner{border:1px solid var(--primary);box-shadow:0 10px 26px -12px rgba(10,57,112,0.30)}
.chat-dock-prompt{background:var(--primary);color:var(--primary-foreground);border-bottom:none;padding:var(--sp-3) var(--sp-4)}
.chat-dock-prompt::before{background:#4ade80;box-shadow:none;width:7px;height:7px}
.chat-dock-prompt-label{color:#fff;font-size:14px;font-weight:var(--font-weight-medium)}
.chat-dock-prompt-sub{color:rgb(255 255 255 / 0.78);font-size:12px;font-weight:var(--font-weight-regular)}
.chat-dock-collapse{color:rgb(255 255 255 / 0.85)}
.chat-dock-collapse:hover{color:#fff;background:rgb(255 255 255 / 0.10)}
.chat-dock-input-row{background:#fff;border-top:1px solid var(--border)}
.chat-dock-send{background:var(--primary);color:#fff;border:1px solid var(--primary);font-weight:var(--font-weight-medium);box-shadow:none}
/* sales-modeでの上書き（既存と整合） */
.chat-dock.is-sales-mode .chat-dock-prompt::before{background:rgb(255 255 255 / 0.80);box-shadow:none}
/* PC版：チャットドックを右下に寄せ、サイズを小さく */
@media (min-width:769px){
  .chat-dock{left:auto;right:var(--sp-5);bottom:var(--sp-5);transform:none;width:auto;max-width:320px;padding:0}
  .chat-dock-prompt{padding:var(--sp-2) var(--sp-3)}
  .chat-dock-input-row{padding:var(--sp-2)}
  .chat-dock-input{height:var(--control-h-md)}
}
/* ※ 旧「スマホでカード周りのマージン強制」ブロックは削除。
   outerセクション24px + inner 20px の二重ガターになり、375px幅で本文が287pxまで痩せていた。
   左右ガターは末尾の正準ブロック1か所に集約している。 */
/* ====== タブレット・スマホ：縦積み時の画像は全幅中央に ======
   product-heroなどの2カラムレイアウトはタブレット幅以下で縦積みになる。
   このとき右側にあった画像（.img-ph）が左寄せ・固定幅で表示されないよう、
   幅100%でコンテナの中央に配置する。
   ※ PC（min-width:901px）には影響しない。 */
@media (max-width:900px){
  html body .product-hero-inner,
  html body .industry-hero-inner,
  html body .hero-inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:var(--sp-8) !important;
  }
  /* industry-hero（画像なしヒーロー）は各要素の margin-bottom で間隔を制御。flex gap が加算されると余白が二重になるため 0 に */
  html body .industry-hero-inner{gap:0 !important}
  html body .product-hero-inner > .img-ph,
  html body .product-hero-inner > [data-image-slot],
  html body .industry-hero-inner > .img-ph,
  html body .industry-hero-inner > [data-image-slot],
  html body .hero-inner > .img-ph,
  html body .hero-inner > [data-image-slot]{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
    align-self:stretch !important;
  }
  /* 縦積みされる .img-ph および data-image-slot 全般。
     テキストボックスと左右のラインを揃えるため横幅は100%（親の内容幅いっぱい）とし、
     高さは画像の実比率にまかせる（固定高さ h-280 等は解除）。 */
  html body main.page-screen .img-ph,
  html body main.page-screen [data-image-slot]{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
    display:block !important;
    overflow:hidden !important;
  }
  /* 比率をインラインで宣言していないスロットのみ、固定比率を解除（宣言済みのものは実寸比率で表示領域を確保） */
  html body main.page-screen .img-ph:not([style*="aspect-ratio"]),
  html body main.page-screen [data-image-slot]:not([style*="aspect-ratio"]){aspect-ratio:auto !important}
  html body main.page-screen .img-ph > img,
  html body main.page-screen [data-image-slot] > img,
  html body main.page-screen .img-ph picture img,
  html body main.page-screen [data-image-slot] picture img{
    width:100% !important;
    height:auto !important;
    max-height:100% !important;
    object-fit:contain !important;
    display:block !important;
    margin:0 auto !important;
  }
}
/* /products の業務全体マップ：箇条書きリスト付きボックス */
.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,#1f4ed8)}

/* /products の業務全体マップ：スマホでは縦積み・全幅にして矢印は↓に回転 */
@media (max-width:640px){
  html body main.page-screen .flow-diagram{
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--sp-2) !important;
    width: 100% !important;
  }
  html body main.page-screen .flow-diagram .flow-box{
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  html body main.page-screen .flow-diagram .flow-arrow{
    transform: rotate(90deg) !important;
    align-self: center !important;
  }
}

/* /contact ページ：スマホでロゴ直下のタイトルまでの余白が大きすぎるので圧縮 */
@media (max-width:900px){
  html body main.page-screen .cv-container{ padding-top: var(--sp-4) !important; }
  html body main.page-screen .cv-title{ padding: 0 0 var(--sp-3) !important; }
  html body main.page-screen .cv-header{ margin-bottom: var(--sp-6) !important; }
}

/* page-hero--tight : リード直下にすぐ本文が続くページ用に下パディングを圧縮 */
html body main.page-screen > section.page-hero.page-hero--tight{
  padding-bottom: var(--sp-6) !important;
}
/* section--tight-top : 直前のpage-heroと隣接する場合、上パディングを圧縮して
   キャッチコピーと本文の距離を詰める */
html body main.page-screen > section.section.section--tight-top{
  padding-top: var(--sp-6) !important;
}
@media (max-width:900px){
  html body main.page-screen > section.page-hero.page-hero--tight{
    padding-bottom: var(--sp-6) !important;
  }
  html body main.page-screen > section.section.section--tight-top{
    padding-top: var(--sp-6) !important;
  }
}
/* ====== タブレット幅(641〜900px)：ハンバーガー内のログインアコーディオンを非表示 ======
   タブレット幅では右端の .nav-login（ヘッダー上のログイン）が表示されるため、
   ハンバーガー内にも同じログインがあると2つに見える。タブレット幅のみハンバーガー側を非表示にする
   （スマホ幅<641pxではヘッダー右端のログインが消えるので、ハンバーガー側のログインを残す）。 */
@media (max-width:900px) and (min-width:641px){
  html body .mobile-drawer .mobile-drawer-toggle[data-accordion="login"],
  html body .mobile-drawer .mobile-drawer-panel[data-panel="login"]{
    display:none !important;
  }
}

/* ====== タブレット幅（641〜900px）でログイン用メガメニューを開けるよう display:none を解除 ======
   ds/layout.css の @media(max-width:900px) で .megamenu{display:none !important} が効いており、
   ログインボタンを押しても is-open が付いてもメニューが見えない。タブレット幅では login の
   メガメニューだけ表示できるよう上書きする。 */
@media (max-width:900px) and (min-width:641px){
  html body .megamenu#menu-login.is-open{
    display:block !important;
  }
}
/* ログインメガメニュー：disabled とリンク有効の項目で見た目が変わってしまうため統一 */
/* disabled側に opacity:0.55 が掛かっているため、有効リンク（価格査定）だけ濃く見えてフォントが
   違って見える現象が起きる。ログインメガメニュー内では opacity も揃えて見た目を統一する */
html body .megamenu#menu-login .mm-link{
  color: var(--muted-foreground) !important;
  font-weight: var(--font-weight-regular) !important;
  font-family: inherit !important;
  opacity: 0.55 !important;
}
html body .megamenu#menu-login .mm-link:hover{
  opacity: 1 !important;
  color: var(--primary) !important;
}
/* ====== SaaS製品メガメニュー：データメニューと統一したカード4列（7製品を4+3） ====== */
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;}
}
/* ====== SaaS製品メガメニュー：バリューチェーン分割をやめ、フラットに列記 ====== */
.mm-grid-flat{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:var(--sp-3) var(--sp-10);
  max-width:760px;
}
@media (max-width:900px){ .mm-grid-flat{ grid-template-columns:1fr; } }
/* ====== クリック可能なds-card（業種カード・データカード） ====== */
html body main.page-screen .ds-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 .ds-card[role="link"]:hover{border-color:var(--primary);background:var(--primary-soft);}
html body main.page-screen .ds-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);}
/* 業種カードのグリッド（3列→2列→1列） */
.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 !important;}

/* ==================== 専門性を高めるUI調整 (v5) ==================== */
/* eyebrow: モノスペースのテクニカルラベル + 先頭ハイライン */
html body main.page-screen .section-eyebrow,
html body main.page-screen .page-hero-eyebrow,
html body main.page-screen .industry-hero-eyebrow{
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: var(--font-weight-medium) !important;
  letter-spacing: 0.18em !important;
  color: var(--muted-foreground) !important;
  display: flex !important;
  align-items: center;
  gap: 12px;
  margin-bottom: var(--sp-5) !important;
}
html body main.page-screen .section-eyebrow::before,
html body main.page-screen .page-hero-eyebrow::before,
html body main.page-screen .industry-hero-eyebrow::before{
  content: "";
  width: 32px; height: 1.5px;
  background: var(--primary);
  flex: none;
}
/* hero eyebrow: font/tracking のみ（navy上の既存色を維持） */
html body main.page-screen .hero-eyebrow,
html body main.page-screen .dark-cta-eyebrow{
  font-family: var(--font-sans) !important;
  letter-spacing: 0.18em !important;
  font-weight: var(--font-weight-medium) !important;
  font-size: 12px !important;
}
/* card内 eyebrow / 連番は sans（Inter/Noto Sans） */
html body main.page-screen .card-eyebrow,
html body main.page-screen .advantage-num{
  font-family: var(--font-sans) !important;
  letter-spacing: 0.1em !important;
  color: var(--muted-foreground) !important;
  font-size: 11.5px !important;
}
/* 見出しのトラッキングを締める */
html body main.page-screen .section-title,
html body main.page-screen .section-title--lg,
html body main.page-screen .page-hero-title,
html body main.page-screen .industry-hero-title{
  letter-spacing: -0.02em !important;
}

/* 統計バンド: ボーダーレス + 上部ハイライン + 大型数字 + モノラベル */
html body main.page-screen .stat{
  border: none !important;
  border-top: 2px solid var(--primary) !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: left !important;
  padding: var(--sp-5) 0 0 0 !important;
}
html body main.page-screen .stat-num{
  font-size: clamp(28px, 2.4vw, 38px) !important;
  letter-spacing: -0.04em !important;
  white-space: nowrap;
  margin-bottom: var(--sp-3) !important;
}
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-mono) !important;
  font-size: 11.5px !important;
  letter-spacing: 0.08em !important;
  line-height: 1.5 !important;
  color: var(--muted-foreground) !important;
}
@media (max-width:560px){
  html body main.page-screen .row-4{grid-template-columns:1fr 1fr !important;gap:var(--sp-6) var(--sp-8) !important;}
}

/* ds-card: 罫線を控えめにし、ホバーで持ち上げる */
html body main.page-screen .ds-card{
  border-color: var(--border) !important;
  box-shadow: none !important;
}
/* 業種カード番号 */
html body main.page-screen .industry-grid .card-eyebrow{color:var(--foreground-subtle) !important;}

/* インサイト/お知らせ見出し行: 下に細い罫線 */
html body main.page-screen .flex-row.flex-between{border-bottom:1px solid var(--border);padding-bottom:var(--sp-5);}

/* --- ヘッダー下線を非表示 --- */
html body .site-header{border-bottom:none !important;}
/* --- 内側ページ（白ヘッダー）でナビ文字が白×白になる不具合を修正 --- */
html body:not(.is-top-page) .site-header .header-nav .nav-item{
  color: var(--foreground) !important;
  -webkit-text-fill-color: var(--foreground) !important;
}
html body:not(.is-top-page) .site-header .header-nav .nav-item:hover{
  color: var(--primary) !important;
  -webkit-text-fill-color: var(--primary) !important;
}
html body:not(.is-top-page) .site-header .header-nav .nav-item.is-current{
  color: var(--primary) !important;
  -webkit-text-fill-color: var(--primary) !important;
}
html body:not(.is-top-page) .site-header .header-nav .nav-item .chev{
  color: var(--foreground-subtle) !important;
  -webkit-text-fill-color: var(--foreground-subtle) !important;
}
html body:not(.is-top-page) .site-header .header-actions .nav-login{
  color: var(--foreground) !important;
  -webkit-text-fill-color: var(--foreground) !important;
}
html body:not(.is-top-page) .site-header .header-actions .nav-login .chev{
  color: var(--foreground-subtle) !important;
  -webkit-text-fill-color: var(--foreground-subtle) !important;
}
/* ====== 経営課題（challenge-grid）：タブレット幅で2カラム、3つ目は下部に同じ幅で表示 ====== */
@media (max-width:900px) and (min-width:481px){
  html body main.page-screen .challenge-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:var(--sp-5) !important;
  }
  /* 3枚目は下段に配置するが、横幅は他のカードと揃える（半分幅で左寄せ） */
  html body main.page-screen .challenge-grid > .challenge-card:nth-child(3){
    grid-column:1 / 2 !important;
  }
}
/* ====== businessカード（dual-business-card）の内側パディング強化 ====== */
/* 画面幅が小さくてもカード内側の余白を確保するルールは、下の「情報密度アップ」セクションに統合 */
/* ====== businessカード内ボタンが上要素と密着しないよう最小マージンを確保 ====== */
/* margin-top:auto で下に押し下げられても、最低限の上マージンを保証 */
html body .dual-business-card > .button{margin-top:var(--sp-4) !important}
@media (min-width:769px){
  html body .dual-business-card > .button{margin-top:var(--sp-6) !important}
}
/* ====== businessカード 情報密度アップ（余白圧縮・行間整理） ====== */
/* ラベル・eyebrowの間隔を詰める */
html body .dual-business-card .dual-business-label{margin-bottom:var(--sp-2) !important}
html body .dual-business-card .dual-business-eyebrow{margin-bottom:var(--sp-1) !important}
html body .dual-business-card h3.dual-business-title,
html body .dual-business-card .dual-business-title{margin-bottom:var(--sp-2) !important;line-height:1.3 !important}
/* リード文の余白と行間を圧縮 */
html body .dual-business-card .dual-business-lead{margin-bottom:var(--sp-4) !important;line-height:1.65 !important;font-size:var(--text-body-sm) !important}
/* メタ統計の上下余白を圧縮 */
html body .dual-business-card .dual-business-meta{padding:var(--sp-4) 0 !important;margin-bottom:var(--sp-4) !important;gap:var(--sp-2) !important}
html body .dual-business-card .dual-business-meta-num{font-size:clamp(28px,3.6vw,38px) !important;line-height:1 !important}
html body .dual-business-card .dual-business-meta-label{font-size:var(--fs-body) !important;margin-top:var(--sp-1) !important;line-height:1.3 !important}
/* エントリータイトルとリストの余白を圧縮 */
html body .dual-business-card .dual-business-entry-title{margin-bottom:var(--sp-2) !important}
html body .dual-business-card .dual-business-entries{margin-bottom:var(--sp-3) !important;gap:6px !important}
html body .dual-business-card .dual-business-entry{padding:10px var(--sp-4) !important;font-size:var(--text-body-sm) !important}
/* カード本体パディングも少し詰める（ただしモバイル対応との両立を考慮） */
@media (min-width:769px){
  html body .dual-business-card{padding:var(--sp-7) var(--sp-6) !important}
}
@media (max-width:768px){
  html body .dual-business-card{padding:var(--sp-6) var(--sp-5) !important}
}
@media (max-width:480px){
  html body .dual-business-card{padding:var(--sp-5) var(--sp-4) !important}
  html body .dual-business-card .dual-business-meta-num{font-size:var(--fs-stat) !important}
  html body .dual-business-card .dual-business-entry{padding:9px var(--sp-3) !important}
}
/* ====== 背景色で視覚区切りができている箇所の重複ボーダーを削除 ====== */
/* hero/page-hero/product-heroの底のボーダーは、次セクションが背景色違いなら不要 */
html body .hero::after,
html body .page-hero::after,
html body .product-hero::after{display:none}
/* section--bg のcontainerの上下borderも、背景色で十分視覚区切りができているため削除 */
html body .section--bg > .container{border-top:none !important;border-bottom:none !important}
/* logos-sectionのbottom borderも、次が背景色違いセクションなら不要 */
html body .logos-section{border-bottom:none}
/* industry-heroの下borderも同様 */
html body .industry-hero{border-bottom:none}
/* ====== 会社情報テーブル：全画面で16px固定 ====== */
html body .info-table,
html body .info-table th,
html body .info-table td{font-size:var(--fs-body) !important}
/* ====== 会社情報テーブル：ラベルと値を上下に並べる ====== */
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 !important;border-bottom:none !important;padding:0 !important;background:transparent !important}
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) !important;letter-spacing:var(--tracking-wide)}
html body .info-table td{color:var(--foreground);line-height:1.7}
/* ====== 会社概要3カード：タイトルと説明文の階層を明確化 ====== */
html body .ds-card .card-label--bold{font-size:var(--fs-subheading) !important;font-weight:var(--font-weight-bold) !important;line-height:var(--fs-subheading-lh);color:var(--foreground);margin-bottom:var(--sp-3)}
html body .ds-card .card-desc--with-mb{font-size:var(--text-body-sm) !important;color:var(--muted-foreground);line-height:1.7}
/* ====== 全カード共通：モバイル時の最低パディングを保証 ====== */
/* PC幅 */
html body .solution-block{padding:var(--sp-8) var(--sp-7) !important}
html body .scope-card{padding:var(--sp-8) var(--sp-7) !important}
html body .mvv-card{padding:var(--sp-10) var(--sp-6) !important}
html body .values-card{padding:var(--sp-8) var(--sp-6) !important}
html body .strength-card{padding:var(--sp-8) var(--sp-6) !important}
html body .package-section{padding:var(--sp-10) var(--sp-7) !important}
/* タブレット〜モバイル(〜768px) */
@media (max-width:768px){
  html body .solution-block{padding:var(--sp-6) var(--sp-5) !important;margin-bottom:var(--sp-5) !important}
  html body .scope-card{padding:var(--sp-6) var(--sp-5) !important}
  html body .mvv-card{padding:var(--sp-7) var(--sp-5) !important}
  html body .values-card{padding:var(--sp-6) var(--sp-5) !important}
  html body .strength-card{padding:var(--sp-6) var(--sp-5) !important}
  html body .package-section{padding:var(--sp-7) var(--sp-5) !important}
  html body .ds-card{padding:var(--sp-5) !important}
  html body .feature-card{padding:var(--sp-5) !important}
  html body .challenge-card{padding:var(--sp-5) !important}
  html body .support-card{padding:var(--sp-5) !important}
  html body .benefit-card{padding:var(--sp-5) !important}
  html body .job-card{padding:var(--sp-5) !important}
  html body .product-card{padding:var(--sp-5) !important}
  html body .interview-body{padding:var(--sp-5) !important}
  html body .related-card{padding:var(--sp-4) !important}
  html body .package-product-card{padding:var(--sp-4) !important}
  /* ds-card に .p-8 が付いている場合も同サイズに統一 */
  html body .ds-card.p-8{padding:var(--sp-5) !important}
}
/* 極小モバイル(〜480px) */
@media (max-width:480px){
  html body .solution-block{padding:var(--sp-5) var(--sp-4) !important}
  html body .scope-card{padding:var(--sp-5) var(--sp-4) !important}
  html body .mvv-card{padding:var(--sp-6) var(--sp-4) !important}
  html body .values-card{padding:var(--sp-5) var(--sp-4) !important}
  html body .strength-card{padding:var(--sp-5) var(--sp-4) !important}
  html body .package-section{padding:var(--sp-5) var(--sp-4) !important}
  html body .ds-card{padding:var(--sp-4) !important}
  html body .feature-card{padding:var(--sp-4) !important}
  html body .challenge-card{padding:var(--sp-4) !important}
  html body .support-card{padding:var(--sp-4) !important}
  html body .benefit-card{padding:var(--sp-4) !important}
  html body .job-card{padding:var(--sp-4) !important}
  html body .product-card{padding:var(--sp-4) !important}
  html body .interview-body{padding:var(--sp-4) !important}
  html body .ds-card.p-8{padding:var(--sp-4) !important}
}

/* ============================================================================
   FINAL FIX
   ・背景色のあるセクションは画面幅100%まで広がる
   ・内部のコンテンツは max-width 1080px + 左右padding(clamp(20px,5vw,64px))で中央配置
   ・カードUIは上下左右に十分なpaddingを確保
   ============================================================================ */

/* --- 1. 全コンテンツラッパーを1080px+左右padding+中央寄せに統一 ---
   ※ outerはそのまま100%幅+背景色、innerが中身を1080px帯の中央に収める */

/* --- ヘッダー3カラムレイアウト：ロゴ(左) / メインナビ(中央) / 資料請求＆ログイン(右) --- */
@media (min-width: 901px){
  html body .header-inner{
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    gap: var(--sp-4) !important;
  }
  html body .header-inner > .pr-logo{
    grid-column: 1;
    justify-self: start;
  }
  html body .header-inner > .header-nav{
    grid-column: 2;
    justify-self: center;
  }
  html body .header-inner > .header-actions{
    grid-column: 3;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    flex-shrink: 0;
    white-space: nowrap;
  }
  html body .header-inner > .header-mobile-actions{
    display: none !important;
  }
}
/* 中央navの折り返し防止（狭くなった時に縦並びにならないよう） */
html body .header-nav{ flex-wrap: nowrap; white-space: nowrap; }
html body .header-actions .nav-cta,
html body .header-actions .nav-login{ white-space: nowrap; flex-shrink: 0; }

/* --- データ連携事例：タイプ①のロゴ表示スロット ---
   各サービス（Salesforce / Google / Slack）の公式ロゴを中サイズで配置するためのエリア。
   通常の事例画像（img-ph-md）と異なり、高さを抑えてロゴらしい見え方にする。 */
.integration-logo-slot{
  background: var(--muted);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  height: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--foreground-subtle);
  font-size: var(--text-body-sm);
  text-align: center;
  padding: var(--sp-3) var(--sp-4);
  margin-bottom: var(--sp-4);
  background-size: 60% auto;
  background-repeat: no-repeat;
  background-position: center;
}
.integration-logo-slot .integration-logo-name{
  font-weight: var(--font-weight-semibold);
  color: var(--muted-foreground);
}
/* テキスト版ロゴ：画像の代わりにブランド名をブランドカラーで中央配置 */
.integration-logo-slot--text .integration-logo-text{
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: -0.01em;
  line-height: 1;
  text-align: center;
}
/* ロゴ画像がロード済みの場合、左寄せにならないよう中央表示＋contain で全体を見せる。
   .auto-image のデフォルト（width:100%/height:100%/object-fit:cover）は事例写真向けで、
   ロゴだとトリミングされたり左寄りに見えるため、ロゴスロット限定で上書きする。 */
html body .integration-logo-slot.is-image-loaded{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
html body .integration-logo-slot > img.auto-image{
  width: auto !important;
  height: auto !important;
  max-width: 70% !important;
  max-height: 80% !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}

/* --- 資料請求ページのみ：ロゴを中央表示 ---
   通常ページの3カラムgridレイアウトを打ち消し、ロゴだけを中央寄せにする。
   他ページは現状のまま左寄せ。 */
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;
}

/* 中間幅(641px〜900px)：中央navだけ先に隠してハンバーガー化、資料請求/ログインは右端に残す */
@media (max-width: 900px) and (min-width: 641px){
  html body .site-header .header-nav{ display: none !important; }
  html body .site-header .header-actions{
    display: flex !important;
    align-items: center;
    gap: var(--sp-2);
    flex-shrink: 0;
    white-space: nowrap;
    margin-left: auto;
  }
  /* 中央nav非表示中は header-mobile-actions（ハンバーガー）も表示 */
  html body .site-header .header-mobile-actions{
    display: flex !important;
  }
  /* mobile-actionsの中の重複「資料請求」ボタンは、右側で既に表示されているので隠す */
  html body .site-header .header-mobile-actions .nav-cta--mobile{
    display: none !important;
  }
  /* ヘッダー全体をflex並びに戻す（3カラムgridを解除） */
  html body .header-inner{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: var(--sp-3) !important;
  }
}

/* 狭い幅(640px以下)：従来通り header-actions を隠してハンバーガーに完全移行 */
@media (max-width: 640px){
  html body .header-actions{ display: none !important; }
}

html body .header-inner,
html body .footer-inner,
html body .hero-inner,
html body .product-hero-inner,
html body .industry-hero-inner,
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.section > .container,
html body main.page-screen > section.section--bg > .container{
  max-width: calc(1080px + clamp(20px, 5vw, 64px) * 2) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(20px, 5vw, 64px) !important;
  padding-right: clamp(20px, 5vw, 64px) !important;
  box-sizing: border-box !important;
}

/* page-hero自体がコンテンツを直接持つ構造のため、外側にpaddingを与え、内部要素を1080pxで中央寄せ */
html body main.page-screen > section.page-hero{
  padding-left: clamp(20px, 5vw, 64px) !important;
  padding-right: clamp(20px, 5vw, 64px) !important;
}
html body main.page-screen > section.page-hero > *{
  max-width: 1080px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* outerセクションは画面幅100%、左右paddingゼロ(背景帯を画面端まで広げる) */
html body main.page-screen > section.hero,
html body main.page-screen > section.product-hero,
html body main.page-screen > section.industry-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.section{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* section--bg: 背景色のあるセクション。outerは画面幅100%でpadding 0、内部のcontainerが灰色背景を持ち画面幅100%で広がる */
/* 上下paddingも0にする — 縦余白は内側のcontainerが担当する。
   そうしないとタブレット幅（max-width:900px）で .section{padding:var(--sp-16) 0} が効き、
   transparentなouterに白い余白が現れる（リリース予定 と 事業内容 の間など） */
html body main.page-screen > section.section--bg{
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  background: transparent !important;
}
html body main.page-screen > section.section--bg > .container{
  /* 背景色のためにcontainerは画面幅100%まで広がる必要があり、本来のmax-width:1080px設定を解除 */
  max-width: 100% !important;
  width: 100% !important;
  background: var(--muted) !important;
  border-top: 1px solid var(--border) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-top: var(--section-padding-y) !important;
  padding-bottom: var(--section-padding-y) !important;
  /* 0vw = 0。device-preview(SP/タブレットシミュレータ)はvwを含む宣言だけを
     シミュレート用シートへ複製するため、素の0だとこのリセットが複製されず
     上のclamp(20px,5vw,64px)ガターが復活してsection--bg内が二重ガターになる */
  padding-left: calc(0vw) !important;
  padding-right: calc(0vw) !important;
  margin: 0 !important;
}
/* section--bg内部の各コンテンツは、ラッパーが用意されてないため
   独自に1080px帯+左右paddingを与える(直下の子要素に対して) */
html body main.page-screen > section.section--bg > .container > *{
  max-width: calc(1080px + clamp(20px, 5vw, 64px) * 2) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(20px, 5vw, 64px) !important;
  padding-right: clamp(20px, 5vw, 64px) !important;
  box-sizing: border-box !important;
}

/* dark-cta: 外側に左右padding確保、CTAボックス(青色)が1080px帯の中で表示される */
html body main.page-screen > section.dark-cta{
  padding-left: clamp(20px, 5vw, 64px) !important;
  padding-right: clamp(20px, 5vw, 64px) !important;
  padding-top: var(--sp-12) !important;
  padding-bottom: var(--sp-12) !important;
}
html body .dark-cta-inner{
  max-width: 1080px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: var(--sp-20) var(--sp-12) !important;
  box-sizing: border-box !important;
}
@media (max-width:768px){
  html body .dark-cta-inner{
    padding-top:var(--sp-10) !important;padding-bottom:var(--sp-10) !important;padding-left:var(--sp-6) !important;padding-right:var(--sp-6) !important;
  }
}

/* --- 2. heroのテキスト/リードに付いていた変なmargin・max-widthを打ち消し --- */
html body .hero-lead,
html body .page-hero-lead,
html body .industry-hero-lead,
html body .product-hero-lead,
html body .hero-title,
html body .hero-eyebrow,
html body.is-top-page .hero-lead,
html body.is-top-page .hero-title,
html body.is-top-page .hero-eyebrow{
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- 3. テキスト中央寄せをすべて左寄せに(ロゴと左端を揃える) --- */
html body .text-center,
html body .flex-center,
html body .section-title.text-center,
html body .section-title--lg.text-center,
html body .section-eyebrow.text-center,
html body .section-lead.text-center,
html body .hero-cta-row,
html body .dark-cta .flex-row,
html body .dark-cta-inner,
html body .ds-card.text-center{
  text-align: left !important;
}
html body .flex-center,
html body .hero-cta-row,
html body .dark-cta .flex-row{
  justify-content: flex-start !important;
}

/* --- 4. カードUIに上下左右のpaddingを保証(全画面幅・最高詳細度) --- */
html body main.page-screen .ds-card{padding: var(--sp-6) !important}
html body main.page-screen .ds-card.p-8{padding: var(--sp-8) !important}
html body main.page-screen .feature-card{padding: var(--sp-6) !important}
html body main.page-screen .challenge-card{padding: var(--sp-6) !important}
html body main.page-screen .support-card{padding: var(--sp-6) !important}
html body main.page-screen .benefit-card{padding: var(--sp-5) !important}
html body main.page-screen .job-card{padding: var(--sp-6) !important}
html body main.page-screen .product-card{padding: var(--sp-5) !important}
html body main.page-screen .interview-body{padding-top:var(--sp-5) !important;padding-bottom:var(--sp-5) !important;padding-left:var(--sp-5) !important;padding-right:var(--sp-5) !important}
html body main.page-screen .related-card{padding: var(--sp-4) !important}
html body main.page-screen .package-product-card{padding-top:var(--sp-4) !important;padding-bottom:var(--sp-4) !important;padding-left:var(--sp-4) !important;padding-right:var(--sp-4) !important}
html body main.page-screen .strength-card{padding: var(--sp-8) var(--sp-6) !important}
html body main.page-screen .scope-card{padding: var(--sp-8) var(--sp-7) !important}
html body main.page-screen .mvv-card{padding: var(--sp-10) var(--sp-6) !important}
/* MVV（ミッション・ビジョン・バリュー）カードは左寄せに統一 */
html body main.page-screen .mvv-card,
html body main.page-screen .mvv-card .mvv-label,
html body main.page-screen .mvv-card .mvv-statement,
html body main.page-screen .mvv-card .mvv-desc{
  text-align: left !important;
}
html body main.page-screen .values-card{padding: var(--sp-8) var(--sp-6) !important}
html body main.page-screen .solution-block{padding: var(--sp-8) var(--sp-7) !important}
html body main.page-screen .package-section{padding: var(--sp-10) var(--sp-7) !important}
html body main.page-screen .dual-business-card{padding: var(--sp-7) var(--sp-6) !important}
html body main.page-screen .stat{padding: var(--sp-8) var(--sp-4) !important}
/* トップページ以外ではヘッダーロゴの「PinRich」をコーポレートカラー（navy）で表示 */
html body:not(.is-top-page) .site-header .pr-logo:not(.pr-logo--inverse) .pr-logo-text{
  color: var(--primary) !important;
}
/* トップページ（navyヘッダー）ではロゴをデザインシステムのinverse（白抜き）で表示
   DS仕様: --primary背景（top-page header / hero / dark CTA / footer）上はinverse。
   ルート遷移でbodyクラスが変わるため、staticな .pr-logo--inverse ではなく
   is-top-page スコープで logo.css の inverse 規則をミラーする。 */
html body.is-top-page .site-header .pr-logo .pr-logo-mark{
  background: var(--primary-foreground) !important;
  color: var(--primary) !important;
}
html body.is-top-page .site-header .pr-logo .pr-logo-text{
  color: var(--primary-foreground) !important;
}
html body main.page-screen .cv-card{padding: var(--sp-10) !important}

@media (max-width:768px){
  html body main.page-screen .ds-card,
  html body main.page-screen .ds-card.p-8,
  html body main.page-screen .feature-card,
  html body main.page-screen .challenge-card,
  html body main.page-screen .support-card,
  html body main.page-screen .benefit-card,
  html body main.page-screen .job-card,
  html body main.page-screen .product-card,
  html body main.page-screen .interview-body{padding-top:var(--sp-5) !important;padding-bottom:var(--sp-5) !important;padding-left:var(--sp-5) !important;padding-right:var(--sp-5) !important}
  html body main.page-screen .related-card,
  html body main.page-screen .package-product-card{padding-top:var(--sp-4) !important;padding-bottom:var(--sp-4) !important;padding-left:var(--sp-4) !important;padding-right:var(--sp-4) !important}
  html body main.page-screen .strength-card,
  html body main.page-screen .scope-card,
  html body main.page-screen .values-card,
  html body main.page-screen .solution-block,
  html body main.page-screen .dual-business-card{padding-top:var(--sp-6) !important;padding-bottom:var(--sp-6) !important;padding-left:var(--sp-5) !important;padding-right:var(--sp-5) !important}
  html body main.page-screen .mvv-card,
  html body main.page-screen .package-section{padding-top:var(--sp-7) !important;padding-bottom:var(--sp-7) !important;padding-left:var(--sp-5) !important;padding-right:var(--sp-5) !important}
  html body main.page-screen .cv-card{padding-top:var(--sp-6) !important;padding-bottom:var(--sp-6) !important;padding-left:var(--sp-6) !important;padding-right:var(--sp-6) !important}
}

@media (max-width:480px){
  html body main.page-screen .ds-card,
  html body main.page-screen .ds-card.p-8,
  html body main.page-screen .feature-card,
  html body main.page-screen .challenge-card,
  html body main.page-screen .support-card,
  html body main.page-screen .benefit-card,
  html body main.page-screen .job-card,
  html body main.page-screen .product-card,
  html body main.page-screen .interview-body{padding-top:var(--sp-5) !important;padding-bottom:var(--sp-5) !important;padding-left:var(--sp-4) !important;padding-right:var(--sp-4) !important}
  html body main.page-screen .related-card,
  html body main.page-screen .package-product-card{padding-top:var(--sp-4) !important;padding-bottom:var(--sp-4) !important;padding-left:var(--sp-3) !important;padding-right:var(--sp-3) !important}
  html body main.page-screen .strength-card,
  html body main.page-screen .scope-card,
  html body main.page-screen .values-card,
  html body main.page-screen .solution-block,
  html body main.page-screen .dual-business-card,
  html body main.page-screen .mvv-card,
  html body main.page-screen .package-section{padding-top:var(--sp-5) !important;padding-bottom:var(--sp-5) !important;padding-left:var(--sp-4) !important;padding-right:var(--sp-4) !important}
  html body main.page-screen .cv-card{padding-top:var(--sp-5) !important;padding-bottom:var(--sp-5) !important;padding-left:var(--sp-4) !important;padding-right:var(--sp-4) !important}
}

/* --- 5. 子セレクタ`> *`が打ち消してしまう、内部の特殊レイアウトに必要なルールを保護 --- */
/* solution-block内のrow-2など、grid/flexはmax-widthに収まるためそのまま機能する */
/* 各カード(.ds-card等)はclassが付いているので上記のpaddingルールが適用される */
.renewal-notice-section{padding:var(--sp-12) var(--page-padding-x);background:transparent}.renewal-notice-inner{max-width:var(--container-content);margin:0 auto}.renewal-notice-card{position:relative;background:linear-gradient(135deg,oklch(0.9747 0.0153 67.56) 0%,oklch(0.98 0.012 60) 100%);border:2px solid var(--deal-purchase);border-radius:var(--radius-lg);padding:var(--sp-12) var(--sp-10);overflow:hidden}.renewal-notice-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:6px;background:var(--deal-purchase)}.renewal-notice-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:6px var(--sp-3);background:var(--deal-purchase);color:var(--deal-purchase-foreground);font-size:var(--text-caption);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide);border-radius:var(--radius-md);margin-bottom:var(--sp-5)}.renewal-notice-title{font-size:var(--text-display-md);font-weight:var(--font-weight-bold);color:var(--foreground);margin:0 0 var(--sp-4);line-height:var(--text-display-md-lh);letter-spacing:var(--tracking-tight)}.renewal-notice-lead{font-size:var(--text-body-lg);color:var(--foreground);line-height:1.75;margin-bottom:var(--sp-10);max-width:780px}.renewal-notice-lead strong{color:var(--deal-purchase);font-weight:var(--font-weight-bold)}.renewal-notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-bottom:var(--sp-8)}.renewal-notice-item{background:var(--card);border:1px solid var(--deal-purchase-border);border-radius:var(--radius-md);padding:var(--sp-6)}.renewal-notice-num{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--deal-purchase);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-3)}.renewal-notice-item-title{font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-2);line-height:1.5}.renewal-notice-item-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7}.renewal-notice-footer{padding-top:var(--sp-5);border-top:1px dashed var(--deal-purchase-border);font-size:var(--text-body-md);color:var(--foreground);line-height:1.7}.renewal-notice-footer strong{color:var(--deal-purchase);font-weight:var(--font-weight-semibold)}@media (max-width:900px){.renewal-notice-grid{grid-template-columns:1fr;gap:var(--sp-4)}.renewal-notice-card{padding:var(--sp-8) var(--sp-5)}.renewal-notice-lead{font-size:var(--text-body-md)}}
/* 会社概要 = ブランド宣言ページ。ヒーローを中間サイズで強調 */
#screen-company .page-hero-title{font-size:var(--fs-hero-mid);line-height:var(--fs-hero-mid-lh)}
/* 会社概要ヒーロー：eyebrow → タイトル → リードの情報階層を引き締める。
   既存の汎用マージンだとブロック間が離れすぎて関連性が読み取れないため、
   3要素を1つの宣言ブロックとして見えるよう詰める */
html body main.page-screen #screen-company section.page-hero .page-hero-eyebrow{
  margin-bottom: var(--sp-3) !important;
}
html body main.page-screen #screen-company section.page-hero .page-hero-title{
  margin-top: 0 !important;
  margin-bottom: var(--sp-4) !important;
}
html body main.page-screen #screen-company section.page-hero .page-hero-lead{
  margin-top: 0 !important;
}
/* 会社概要 MVVステートメントを中見出し階層に格上げ（思想の中核） */
#screen-company .mvv-statement{font-size:var(--fs-heading);line-height:var(--fs-heading-lh)}

/* 採用ページ 選考フローのレスポンシブ対応 */
@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 .process-step-num{margin-bottom:0;flex-shrink:0;min-width:80px}
  .process-step .process-step-title{flex:1}
}


/* SPA: ページ切替用 */
[data-page-host] > main { display: block; }
.spa-loading { opacity: 0.4; transition: opacity .15s; }

/* Metabase 埋め込み（インサイト） */
.metabase-embed{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--muted,#f5f5f5)}
.metabase-embed iframe{display:block;width:100%;height:70vh;min-height:520px;border:0;background:var(--card,#fff)}
.metabase-embed iframe[src=""],.metabase-embed iframe:not([src]){display:none}
.metabase-embed-note{padding:var(--sp-4) var(--sp-5);font-size:var(--text-body-sm);color:var(--muted-foreground);border-top:1px solid var(--border);line-height:1.7}
.metabase-embed-note .mono{font-family:ui-monospace,Consolas,monospace}

/* SPA: <a> から <span> に変換されたリンクをクリック可能に見せる */
[data-spa-go] { cursor: pointer; }
[data-spa-go]:focus-visible { outline: 2px solid #1f4ed8; outline-offset: 2px; }
[data-spa-disabled] { cursor: default; opacity: 0.55; }


/* SVG画像ロゴ用スタイル */
.pr-logo--image{
  display: inline-flex !important;
  align-items: center;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  cursor: pointer;
}
.pr-logo-img{
  height: 28px;
  width: auto;
  display: block;
}
.pr-logo--lg .pr-logo-img{
  height: 32px;
}
.pr-logo-img--inverse{
  filter: brightness(0) invert(1);
}
@media (max-width: 640px){
  .pr-logo-img{ height: 24px; }
  .pr-logo--lg .pr-logo-img{ height: 26px; }
}
/* ロゴ：形状は SaaSデザインシステム準拠（radius = shadcn スケール lg=3.33px）
   カラーはコーポレートカラー navy #0A3970。反転は マーク白地＋navy の P、ワードマーク白。 */
html body .pr-logo .pr-logo-mark{background:#0A3970 !important;color:#FFFFFF !important;border-radius:3.33px !important}
html body .pr-logo--sm .pr-logo-mark{border-radius:2px !important}
html body .pr-logo--md .pr-logo-mark{border-radius:2.67px !important}
html body .pr-logo .pr-logo-text{color:#0A3970 !important}
html body:not(.is-top-page) .site-header .pr-logo:not(.pr-logo--inverse) .pr-logo-text{color:#0A3970 !important}
html body .pr-logo--inverse .pr-logo-mark,
html body.is-top-page .site-header .pr-logo .pr-logo-mark{background:#FFFFFF !important;color:#0A3970 !important}
html body .pr-logo--inverse .pr-logo-text,
html body.is-top-page .site-header .pr-logo .pr-logo-text{color:#FFFFFF !important}

/* 導入企業ロゴ：画像表示用
   ────────────────────────────────────────────────────────────
   - セルの背景は白（透過なしロゴと透過ありロゴの見た目を統一）
   - ロゴの「表示高さ」を固定（高さを揃えて並びをキレイに）
   - mix-blend-mode: multiply で白背景込みロゴの白を抜き、
     周囲（白セル）と馴染ませる
*/
.logo-cell.logo-cell--has-image{
  opacity: 1;
  padding: var(--sp-3) var(--sp-4);
  background: #fff;
  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 の内側余白を、見出し（section-title）と左端が揃うよう調整 */
.job-card{ padding-left: 0 !important; padding-right: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.job-card > div{ padding: var(--sp-7) 0 !important; border-bottom: 1px solid var(--border); }
.job-card:last-of-type > div{ border-bottom: 0; }

/* 自動画像表示：data-image-src スロットにロード成功時の表示用 */
/* 全画像領域を 16:10 で統一 + 画像ロード後は枠線・背景・余白を消す */
[data-image-src]{
  aspect-ratio: 16 / 10;
}
[data-image-src].is-image-loaded{
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
[data-image-src].is-image-loaded > .image-slot-fallback{
  display: none !important;
}
.auto-image{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border: 0 !important;
}
/* ロゴセルだけは比率固定の対象外（小さな企業ロゴ用スロット） */
.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;
}


/* ===== Top/Products 再設計・無料アカウント追加 (v6) ===== */
/* hero note */
.hero-note{font-size:var(--text-body-sm);color:var(--muted-foreground);margin-top:var(--sp-4)}
body.is-top-page .hero-note{color:rgb(255 255 255 / 0.62)}
/* SaaS製品カテゴリ見出し */
.prod-cat{margin-top:var(--sp-10)}
.prod-cat:first-of-type{margin-top:var(--sp-8)}
.prod-cat-head{display:flex;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);margin-bottom:var(--sp-5);border-bottom:1px solid var(--border)}
.prod-cat-num{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;font-weight:700;color:var(--primary);flex:none}
.prod-cat-name{font-size:var(--fs-subheading);font-weight:700;letter-spacing:-.01em;line-height:1.3}
.prod-cat-note{margin-left:auto;font-size:var(--text-body-sm);color:var(--muted-foreground);text-align:right}
@media (max-width:600px){.prod-cat-note{display:none}}
.prod-item-name{font-size:var(--text-body-lg);font-weight:700;line-height:1.4;margin-bottom:var(--sp-2)}
/* ホーム製品プレビュー画像 */
.home-shot{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--muted);display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--foreground-subtle);font-size:var(--text-body-sm)}
/* 無料アカウント訴求バンド */
.free-band{background:transparent;padding:var(--sp-12) clamp(20px,5vw,64px)}
.free-band-inner{max-width:1080px;margin:0 auto;background:var(--primary);color:#fff;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-eyebrow{font-family:var(--font-sans);font-size:12px;letter-spacing:.18em;color:rgb(255 255 255 / 0.7);font-weight:600;margin-bottom:var(--sp-4)}
.free-band h3{font-size:var(--text-display-md);font-weight:700;line-height:1.3;letter-spacing:-.02em;color:#fff;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:#fff;font-weight:700}
.free-band-cta{display:flex;flex-direction:column;gap:var(--sp-3)}
.free-band-cta .button--primary{background:#fff;color:var(--primary);border-color:#fff}
.free-band-cta .button--primary:hover{background:var(--muted);border-color:var(--muted)}
.free-band-cta .button--outline{background:transparent;color:#fff;border-color:rgb(255 255 255 / 0.6)}
.free-band-cta .button--outline:hover{background:rgb(255 255 255 / 0.1);border-color:#fff}
.free-band-note{font-size:var(--text-caption);color:rgb(255 255 255 / 0.62);line-height:1.6;margin-top:var(--sp-1)}
@media (max-width:860px){.free-band-inner{grid-template-columns:1fr;gap:var(--sp-8);padding:var(--sp-10) var(--sp-6)}}
/* 製品メガメニュー カテゴリ */
.mm-grid-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-8)}
@media (max-width:900px){.mm-grid-cats{grid-template-columns:1fr}}
.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-actions{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.mm-login-link{color:var(--muted-foreground);font-size:var(--text-body-sm)}
/* ====== ログインメガメニュー：製品を選んでログインできる一覧 ====== */
.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-mono);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 無料アカウント作成 ===== */
.signup-wrap{max-width:1120px;margin:0 auto;padding:var(--sp-12) clamp(20px,5vw,64px) var(--sp-16)}
.signup-grid{display:grid;grid-template-columns:0.92fr 1.08fr;gap:0 var(--sp-12);align-items:start}
.signup-left{display:flex;flex-direction:column;gap:var(--sp-8);align-self:start}
.signup-head{}
.signup-aside{position:sticky;top:88px}
.signup-eyebrow{font-family:var(--font-sans);font-size:12px;letter-spacing:.16em;color:var(--primary);font-weight:600;margin-bottom:var(--sp-4)}
.signup-title{font-size:var(--text-display-lg);font-weight:700;letter-spacing:-.02em;line-height:1.22;margin:0 0 var(--sp-4)}
.signup-lead{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.9;margin:0}
.signup-benefits{list-style:none;margin:0;padding:var(--sp-7) 0 0;display:grid;gap:var(--sp-5);border-top:1px solid var(--border)}
.signup-benefit{display:flex;gap:var(--sp-4)}
.signup-benefit-ico{flex:none;width:40px;height:40px;border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:14px}
.signup-benefit-title{display:block;font-weight:700;font-size:var(--text-body-md);line-height:1.4;margin-bottom:5px}
.signup-benefit-desc{display:block;font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7}
.signup-included{margin-top:var(--sp-7);border-top:1px solid var(--border);padding-top:var(--sp-6)}
.signup-included-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--foreground-subtle);margin-bottom:var(--sp-3)}
.signup-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.signup-plan-list{display:grid;gap:var(--sp-4);list-style:none;margin:0;padding:0}
.signup-plan{display:grid;gap:6px}
.signup-plan-name{font-weight:700;font-size:var(--text-body-sm);line-height:1.5}
.signup-plan-row{display:flex;gap:var(--sp-2);align-items:flex-start}
.signup-plan-tag{flex:none;min-width:38px;text-align:center;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--muted);color:var(--muted-foreground);font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;line-height:1.6}
.signup-plan-tag--free{background:var(--primary-soft);border-color:transparent;color:var(--primary)}
.signup-plan-desc{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7}
.signup-form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--sp-10)}
.signup-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
.signup-form-grid .cv-field{margin-bottom:0}
.signup-form-grid .cv-label{white-space:nowrap}
.signup-col-span{grid-column:1 / -1}
.signup-section+.signup-section{margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--border)}
.signup-section-title{margin:0 0 var(--sp-4);font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.12em;line-height:1;color:var(--foreground-subtle)}
.signup-trust{display:grid;justify-content:center;justify-items:center;gap:9px;margin:0 0 var(--sp-5);font-size:var(--text-body-sm);line-height:1.5;color:var(--foreground)}
.signup-trust span{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}
.signup-trust span::before{content:"✓";display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:10px;line-height:1}
.signup-login-row{margin-top:var(--sp-5);text-align:center;font-size:var(--text-body-sm);color:var(--muted-foreground)}
.signup-login-row [data-spa-go]{color:var(--primary);text-decoration:underline;cursor:pointer}
.cv-consent label{cursor:pointer}
.cv-consent [data-spa-go]{color:var(--primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.signup-form-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;padding-bottom:var(--sp-4);margin-bottom:var(--sp-6);border-bottom:1px solid var(--border)}
.signup-form-head-title{flex:none;white-space:nowrap;font-size:17px;font-weight:700;letter-spacing:-.01em}
.signup-form-head-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-foreground);white-space:nowrap}
#signupLinkModal .signup-step{display:none}
#signupLinkModal[data-step="detect"] .signup-step--detect{display:contents}
#signupLinkModal[data-step="sent"] .signup-step--sent{display:contents}
.signup-modal-actions{display:grid;gap:var(--sp-3);margin-top:var(--sp-6)}
.signup-modal-actions .button{width:100%;justify-content:center}
.signup-modal-note{font-size:12px;color:var(--muted-foreground);text-align:center;line-height:1.7}
@media (max-width:900px){.signup-wrap{padding-top:var(--sp-6)}.signup-left{display:contents}.signup-grid{grid-template-columns:1fr;grid-template-areas:"head" "form" "aside";gap:var(--sp-7)}.signup-head{grid-area:head}.signup-form-card{grid-area:form}.signup-aside{grid-area:aside;position:static}.signup-form-card{padding:var(--sp-7)}.signup-title{font-size:var(--fs-hero-mid);line-height:var(--fs-hero-mid-lh)}}
@media (max-width:560px){.signup-form-grid{grid-template-columns:1fr}.signup-form-card{padding:var(--sp-6) var(--sp-5)}.signup-form-grid .cv-label{white-space:normal}.signup-grid>*{min-width:0}}
/* signup: プロフィール画像 */
.signup-avatar-row{display:flex;gap:var(--sp-4);align-items:center}
.signup-avatar{flex:0 0 72px;width:72px;height:72px;border-radius:50%;border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--foreground-subtle);overflow:hidden;text-align:center}
html[data-signup-avatar="1"] .signup-avatar{border-style:solid;color:var(--muted-foreground);background-image:repeating-linear-gradient(135deg,color-mix(in oklab,var(--foreground) 7%,transparent) 0 6px,transparent 6px 12px)}
.signup-avatar-main{min-width:0}
.signup-avatar-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.signup-avatar-row .cv-help{margin-top:8px}
.signup-file-btn{appearance:none;border:1px solid var(--border);background:var(--card);color:var(--foreground);font:inherit;font-size:var(--text-body-sm);font-weight:600;padding:9px 16px;border-radius:var(--radius-md,8px);cursor:pointer}
.signup-file-btn:hover{border-color:var(--foreground-subtle);background:color-mix(in oklab,var(--foreground) 4%,var(--card))}
.signup-file-link{appearance:none;border:0;background:none;padding:0;font:inherit;font-size:var(--text-body-sm);color:var(--primary);text-decoration:underline;cursor:pointer}
.signup-file-danger{color:var(--destructive)}
html:not([data-signup-avatar="1"]) .signup-file-link{display:none}
html[data-signup-avatar="1"] .signup-file-btn{display:none}
/* signup: 宅建免許・店舗住所 */
.cv-select{appearance:none;-webkit-appearance:none;padding-right:calc(var(--control-px-md) + 24px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23676C77' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--control-px-md) center;background-size:12px 8px}
.signup-license-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.signup-license-row .cv-select{flex:1 1 200px;min-width:0}
.signup-license-num-group{flex:1 1 150px;display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.signup-license-no{flex:1 1 auto;min-width:0}
.signup-inline-unit{flex:0 0 auto;font-size:var(--text-body-sm);color:var(--muted-foreground)}
.signup-address-grid{display:grid;grid-template-columns:.85fr 1fr 1.5fr;gap:var(--sp-3)}
.signup-sub{display:flex;flex-direction:column;gap:5px;min-width:0}
.signup-sub-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--foreground-subtle)}
.signup-form-grid .cv-field .cv-help{margin-top:6px}
.signup-addr-parsed{display:none;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);color:var(--muted-foreground);padding:7px 12px;min-height:0;font-size:12px;line-height:1.6}
.signup-addr-parsed.is-filled{display:flex;color:var(--muted-foreground)}
.signup-addr-val:empty{display:none}
@media (max-width:560px){.signup-address-grid{grid-template-columns:1fr}.signup-avatar-row{align-items:flex-start}}
/* ===== signup: 既存アカウント検知モーダル（送信時に店舗住所＋免許番号で照合） ===== */
.signup-modal-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.signup-modal-headline{font-weight:700;font-size:var(--text-body-md);line-height:1.5}
.signup-modal-note{margin:var(--sp-4) 0 0;font-size:var(--text-body-sm);color:var(--foreground-subtle);line-height:1.8}
.signup-modal-actions .signup-modal-note{margin:0;font-size:12px;color:var(--muted-foreground);text-align:center;line-height:1.7}
.signup-modal--detect{position:relative}
.signup-detect-close{position:absolute;top:var(--sp-3);right:var(--sp-3)}
.signup-detect-title{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font-size:var(--text-display-sm);line-height:var(--text-display-sm-lh);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);color:var(--foreground)}
.signup-detect-icon{background:var(--destructive)}
.signup-acct{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);display:grid;gap:10px}
.signup-acct-row{display:grid;grid-template-columns:76px 1fr;gap:var(--sp-3);align-items:baseline;font-size:var(--text-body-sm)}
.signup-acct-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--foreground-subtle)}
.signup-acct-val{color:var(--foreground);line-height:1.6}
.signup-acct-match{color:var(--primary);font-weight:600}
.signup-acct-chips{display:flex;flex-wrap:wrap;gap:6px}
.signup-modal-text{margin:0 0 var(--sp-4);font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.9}
.modal__body>.signup-modal-text:last-child{margin-bottom:0}
/* 本文の行送り（1.9）による半行分の余白を打ち消し、モーダル本文の上下余白を視覚的に揃える */
.modal__body>.signup-modal-text:first-child{margin-top:-.34em}
@media (max-width:560px){.signup-acct-row{grid-template-columns:1fr;gap:2px}}

<style id="tp-rebuild">
/* ===== Top page rebuild — Cotality-inspired, PinRich navy DS ===== */

/* Subtle reveal — only active when JS adds body.tp-reveal-on (no-JS / reduced-motion = visible) */
@media (prefers-reduced-motion: no-preference){
  body.tp-reveal-on .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--easing),transform .7s var(--easing)}
  body.tp-reveal-on .reveal.is-in{opacity:1;transform:none}
  body.tp-reveal-on .reveal[data-reveal-delay="1"].is-in{transition-delay:.08s}
  body.tp-reveal-on .reveal[data-reveal-delay="2"].is-in{transition-delay:.16s}
  body.tp-reveal-on .reveal[data-reveal-delay="3"].is-in{transition-delay:.24s}
}

/* ---- Hero ---- */
.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%,#000 92%);
          mask-image:linear-gradient(105deg,transparent 28%,#000 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:#fff;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:#fff;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)}}

/* ---- 3 pillars ---- */
.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-idx{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;color:var(--foreground-subtle)}
.tp-pillar-label{font-size:var(--text-display-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);margin:var(--sp-4) 0 var(--sp-3)}
.tp-pillar-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.85;margin:0 0 var(--sp-6)}
.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)}
.tp-chips{display:flex;flex-wrap:wrap;gap:6px}
.tp-chip{font-size:var(--text-caption);font-weight:var(--font-weight-semibold);padding:5px 11px;border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);border:1px solid transparent}
@media (max-width:900px){.tp-pillars{grid-template-columns:1fr;gap:var(--sp-4)}}

/* ---- Products ---- */
.tp-products{display:grid;grid-template-columns:repeat(5,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;width:100%;aspect-ratio:16/10;background:var(--muted);border-bottom:1px solid var(--border);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:var(--sp-6);flex:1}
.tp-prod-cat{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;color:var(--foreground-subtle)}
.tp-prod-name{font-size:var(--fs-subheading);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight)}
.tp-prod-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.75;margin:0}
.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:860px){.tp-products{grid-template-columns:1fr}}

/* ---- News & Insights ---- */
.tp-ni-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:var(--sp-5)}
.tp-ni-feature{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--primary);color:#fff;border-radius:var(--radius-lg);padding:var(--sp-10);cursor:pointer;text-decoration:none;position:relative;overflow:hidden;transition:transform var(--duration-base) var(--easing),box-shadow var(--duration-base) var(--easing)}
.tp-ni-feature::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgb(255 255 255 / 0.06);pointer-events:none}
.tp-ni-feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.tp-ni-feature-tag{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;color:rgb(255 255 255 / 0.78);position:relative;z-index:1}
.tp-ni-feature-title{font-size:var(--text-display-md);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:1.28;position:relative;z-index:1}
.tp-ni-feature-desc{font-size:var(--text-body-md);color:rgb(255 255 255 / 0.85);line-height:1.85;margin:0;position:relative;z-index:1}
.tp-ni-feature-link{margin-top:auto;padding-top:var(--sp-6);font-weight:var(--font-weight-bold);font-size:var(--text-body-md);color:#fff;position:relative;z-index:1}
.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}.tp-ni-feature{padding:var(--sp-8)}}


/* ============ データ系ページ 作り込み (v7 / Cotality参考) ============ */

/* --- 実績数値バンド：大型ヘッダ数値 --- */
.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-mono);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-num{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;color:var(--primary);font-weight:700;margin-bottom:var(--sp-3)}
.cap-title{font-size:var(--fs-heading);font-weight:700;letter-spacing:-.02em;line-height:1.32;margin-bottom:var(--sp-4)}
.cap-desc{font-size:var(--text-body-md);line-height:1.8;color:var(--muted-foreground);margin-bottom:var(--sp-5)}
.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-mono);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:#fff;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-mono);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-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-foreground);text-align:center}
.diag-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%}
.diag-cell{aspect-ratio:1;border-radius:4px;background:var(--primary-soft);border:1px solid var(--border)}
.diag-cell.on{background:var(--primary)}
.diag-cell.warn{background:#e9b949}
.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-mono);font-size:11px;color:var(--muted-foreground)}

/* --- アクセス手段グリッド --- */
.access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-5)}
.access-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3)}
.access-card .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>")}
.access-title{font-size:var(--text-body-lg);font-weight:700;line-height:1.35}
.access-desc{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7;flex:1}

/* --- 関連プロダクト導線 --- */
.rel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}
@media(max-width:900px){.rel-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.rel-grid{grid-template-columns:1fr}}

/* --- データセット一覧テーブルの数値右寄せ --- */
.ds-table td.num,.ds-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);white-space:nowrap}

/* ============ インサイト：ダッシュボード ============ */
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}
@media(max-width:900px){.kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.kpi-grid{grid-template-columns:1fr}}
.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-mono);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}
.kpi-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-1)}
.kpi-delta{font-size:var(--text-body-sm);font-weight:700;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:4px}
.kpi-delta.up{color:var(--success)}
.kpi-delta.down{color:var(--destructive)}
.kpi-delta.flat{color:var(--muted-foreground)}
.kpi-period{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;color:var(--muted-foreground);white-space:nowrap}
.kpi-band-note{font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground);letter-spacing:.03em;margin-top:var(--sp-5);line-height:1.7}

.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6)}
.chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}
.chart-title{font-size:var(--fs-subheading);font-weight:700;letter-spacing:-.01em;line-height:1.4}
.chart-sub{font-size:var(--text-body-sm);color:var(--muted-foreground);margin-top:4px;line-height:1.6}
.chart-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);align-items:center}
.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--foreground);font-weight:600}
.legend-item .dot{width:10px;height:10px;border-radius:3px;flex:none}
.chart-svg{display:block;width:100%;height:auto;overflow:visible}
.chart-tick{font-family:var(--font-mono);font-size:10px;fill:var(--muted-foreground)}
.s-navy{stroke:#0A3970}.s-teal{stroke:#2a8c7a}.s-amber{stroke:#b9822e}.s-slate{stroke:#5b7aa6}
.d-navy{background:#0A3970}.d-teal{background:#2a8c7a}.d-amber{background:#b9822e}.d-slate{background:#5b7aa6}.d-red{background:#b82626}.d-gray{background:#cfd4da}
.chart-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
@media(max-width:840px){.chart-2{grid-template-columns:1fr}}

.rank-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.rank-row{display:grid;grid-template-columns:120px 1fr 60px;align-items:center;gap:var(--sp-3)}
.rank-name{font-size:var(--text-body-sm);font-weight:600}
.rank-track{height:14px;background:var(--muted);border-radius:var(--radius-full);overflow:hidden}
.rank-fill{display:block;height:100%;background:var(--primary);border-radius:var(--radius-full)}
.rank-val{font-family:var(--font-mono);font-size:12px;font-weight:700;text-align:right;color:var(--primary);font-variant-numeric:tabular-nums}
@media(max-width:520px){.rank-row{grid-template-columns:92px 1fr 50px}}

/* CSSのみタブ（インサイト価格指数） */
.ctabs{position:relative}
.ctabs__radios{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ctabs__nav{display:inline-flex;gap:2px;padding:3px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap}
.ctabs__lab{padding:0 var(--sp-4);height:38px;display:inline-flex;align-items:center;font-size:var(--text-body-sm);font-weight:600;color:var(--foreground);border-radius:calc(var(--radius-md) - 2px);cursor:pointer;white-space:nowrap}
.ctabs__lab:hover{background:var(--accent)}
.ctabs__panel{display:none;margin-top:var(--sp-5)}
#ti-a:checked~.ctabs__nav .lab-a,#ti-b:checked~.ctabs__nav .lab-b,#ti-c:checked~.ctabs__nav .lab-c,#ti-d:checked~.ctabs__nav .lab-d{background:var(--card);color:var(--primary);box-shadow:var(--shadow-sm)}
#ti-a:checked~.ctabs__body .panel-a,#ti-b:checked~.ctabs__body .panel-b,#ti-c:checked~.ctabs__body .panel-c,#ti-d:checked~.ctabs__body .panel-d{display:block}

.data-source-note{font-family:var(--font-mono);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)}

/* ====== インサイト：LIVEダッシュボードの視覚階層 ====== */
/* (1) コンテンツ帯を 1240px に拡張（インサイトページのみ） */
html body main.page-screen.insights-page > section.page-hero > *,
html body main.page-screen.insights-page > section.section > .container,
html body main.page-screen.insights-page > section.section--bg > .container > *{
  max-width: calc(1240px + clamp(20px,5vw,64px) * 2) !important;
}
html body main.page-screen.insights-page > section.page-hero > *{
  max-width: 1240px !important;
}

/* (2) グラフを縮小：カード内で中央に置き、最大幅を抑える */
.insights-page .chart-svg{max-width:760px !important;margin-inline:auto !important}
.insights-page .chart-card{padding:var(--sp-7) var(--sp-8)}
.insights-page .chart-head{margin-bottom:var(--sp-4)}

/* (2b) 2カラム：左＝グラフ名／説明、右＝グラフ本体 */
.ins-row{display:grid;grid-template-columns:288px minmax(0,1fr);gap:clamp(32px,4.5vw,72px);align-items:start}
.ins-row-info{position:sticky;top:104px}
.ins-row-info .section-lead{margin-top:var(--sp-3)}
.ins-row-info .data-source-note{margin-top:var(--sp-5)}
.ins-row-charts{min-width:0}
.ins-row-charts > :first-child{margin-top:0 !important}
.ins-row-charts .chart-card + .chart-card{margin-top:var(--sp-5)}
.ins-row .chart-svg{max-width:100% !important;width:100% !important;margin-inline:0 !important;height:auto}
@media(max-width:980px){
  .ins-row{grid-template-columns:1fr;gap:var(--sp-6)}
  .ins-row-info{position:static}
}

/* (3) LIVEシグナル：脈動ドット付きピル + チャート見出しのLIVEタグ */
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);position:relative;flex:none}
.live-dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--success);opacity:.4;animation:livePulse 1.9s ease-out infinite}
@keyframes livePulse{0%{transform:scale(.55);opacity:.55}70%{transform:scale(2);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion: reduce){.live-dot::after{animation:none;opacity:0}}

.ins-livebar{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-6)}
.ins-livebar .live-pill{border-color:transparent;box-shadow:none;background:transparent;padding-left:0;padding-right:0}
.ins-kpi-caption{display:flex;align-items:center;gap:8px;font-size:var(--text-body-md,16px);font-weight:700;letter-spacing:-.01em;color:var(--foreground);margin-top:var(--sp-6)}
.live-pill{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;font-weight:700;color:var(--foreground);background:var(--card);border:1px solid var(--border-strong,var(--border));border-radius:var(--radius-full);padding:8px 16px;box-shadow:var(--shadow-sm)}
.live-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted-foreground)}

.chart-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--success);text-transform:uppercase}
.chart-live .live-dot{width:7px;height:7px}
.chart-head-meta{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}

/* (4) Overview を「ライブの見出し数値」として強調 */
.insights-page .kpi-grid{margin-top:var(--sp-5)}
.insights-page .kpi-card{border-color:var(--border-strong,var(--border))}
.ins-overview-head{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}

/* --- 中央値㎡単価サマリー --- */
.mup-group + .mup-group{margin-top:var(--sp-8)}
.mup-group-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}
.mup-group-name{font-size:var(--fs-subheading);font-weight:700;letter-spacing:-.01em}
.mup-group-meta{font-size:11px;letter-spacing:.06em;color:var(--muted-foreground)}
.mup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.mup-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.mup-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.mup-grid,.mup-grid--2{grid-template-columns:1fr}}
.mup-spread-row{display:flex;align-items:center;gap:var(--sp-3);margin-top:2px}
.mup-spread-cell{display:flex;flex-direction:column;gap:3px}
.mup-spread-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--muted-foreground)}
.mup-spread-num{font-size:clamp(22px,2.6vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;color:var(--foreground)}
.mup-spread-num .u{font-size:.42em;font-weight:700;color:var(--muted-foreground);margin-left:.1em;letter-spacing:0}
.mup-spread-arrow{color:var(--primary);font-size:20px;font-weight:700;line-height:1;flex:none}
.mup-ratio{font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.mup-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;background:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-lg);padding:var(--sp-7) var(--sp-8);box-shadow:0 18px 40px -18px rgba(10,57,112,.55)}
.mup-cta-title{font-size:var(--fs-heading-sm,var(--fs-subheading));font-weight:800;letter-spacing:-.015em;line-height:1.35;color:#fff}
.mup-cta-desc{font-size:var(--text-body-md,var(--text-body-sm));color:rgba(255,255,255,.78);line-height:1.65;margin-top:8px;max-width:52ch}
.mup-cta .button{flex:none}
.mup-cta .button--primary{background:#fff;color:var(--primary);border-color:#fff}
.mup-cta .button--primary:hover{background:rgba(255,255,255,.9)}


/* ===== データライブラリ：カタログ ===== */
.lib-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4)}
.lib-cat-radios{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.lib-filter-nav{display:inline-flex;flex-wrap:nowrap;gap:2px;padding:3px;background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md)}
@media(max-width:680px){.lib-filter-nav{flex-wrap:wrap}}
.lib-filter-lab{padding:0 var(--sp-4);height:38px;display:inline-flex;align-items:center;font-size:var(--text-body-sm);font-weight:600;color:var(--foreground);border-radius:calc(var(--radius-md) - 2px);cursor:pointer;white-space:nowrap}
.lib-filter-lab:hover{background:var(--accent)}
.lib-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-foreground)}
#cap-all:checked ~ .lib-toolbar .lab-all,
#cap-assess:checked ~ .lib-toolbar .lab-assess,
#cap-source:checked ~ .lib-toolbar .lab-source,
#cap-risk:checked ~ .lib-toolbar .lab-risk,
#cap-mkt:checked ~ .lib-toolbar .lab-mkt{background:var(--card);color:var(--primary);box-shadow:var(--shadow-sm)}
.lib-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5);margin-top:var(--sp-6)}
@media(max-width:900px){.lib-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.lib-grid{grid-template-columns:1fr}}
.lib-card{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6)}
.lib-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.lib-card-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--foreground-subtle)}
.lib-aiready{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;font-weight:700;color:var(--primary);background:var(--primary-soft);border-radius:var(--radius-full);padding:3px 9px;white-space:nowrap}
.lib-card-title{font-size:var(--text-body-lg);font-weight:700;line-height:1.4;color:var(--foreground)}
.lib-card-desc{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.7;flex:1}
.lib-tags{display:flex;flex-wrap:wrap;gap:6px}
.lib-tag{font-size:11px;font-weight:600;color:var(--foreground);background:var(--muted);border-radius:var(--radius-full);padding:4px 10px;line-height:1.4;white-space:nowrap}
.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-mono);font-size:11px;color:var(--muted-foreground);letter-spacing:.02em}
.lib-meta b{color:var(--foreground);font-weight:700}
#cap-assess:checked ~ .lib-grid .lib-card,
#cap-source:checked ~ .lib-grid .lib-card,
#cap-risk:checked ~ .lib-grid .lib-card,
#cap-mkt:checked ~ .lib-grid .lib-card{display:none}
#cap-assess:checked ~ .lib-grid .lib-card.cap-assess,
#cap-source:checked ~ .lib-grid .lib-card.cap-source,
#cap-risk:checked ~ .lib-grid .lib-card.cap-risk,
#cap-mkt:checked ~ .lib-grid .lib-card.cap-mkt{display:flex}

/* ===== AI-ready：信頼 ===== */
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
@media(max-width:760px){.trust-grid{grid-template-columns:1fr}}
.trust-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-3)}
.trust-num{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--primary);font-weight:700}
.trust-title{font-size:var(--fs-subheading);font-weight:700;line-height:1.45;color:var(--foreground)}
.trust-desc{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.75}
.qa-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-9) var(--sp-10)}
@media(max-width:760px){.qa-band{grid-template-columns:1fr;gap:var(--sp-7)}}
.qa-item{border-top:2px solid var(--primary);padding-top:var(--sp-4)}
.qa-num{font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--foreground)}
.qa-num .u{font-size:.42em;font-weight:700;letter-spacing:0;margin-left:.12em;color:var(--muted-foreground)}
.qa-label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;line-height:1.55;color:var(--muted-foreground);margin-top:var(--sp-3)}


.dark-cta-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--sp-3)}
.dark-cta-actions>.button{min-width:180px}
@media (max-width:560px){.dark-cta-actions{flex-direction:column;align-items:stretch}.dark-cta-actions>.button{width:100%}}


/* === AIチャット（チャットドック内）：Q&A・引き継ぎフォーム ===
   軽量化方針：面（塗り・枠・影）を減らし、余白と1本の罫線で構造を出す。
   サイズは 本文=--text-body-md / UI=14px / 補助=12px の3段のみ。
   ウェイトは400基調・強調500・見出し級のみ600（700は使わない）。 */
.chat-dock{--cd-ui:14px;--cd-micro:12px}
.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:#16a34a;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}
.cd-clear{display:none;height:34px;padding:0 10px;align-items:center;background:transparent;border:1px solid var(--border);border-radius:6px;font-family:var(--font-sans);font-size:var(--cd-micro);font-weight:var(--font-weight-medium);color:var(--muted-foreground);cursor:pointer;white-space:nowrap;transition:background var(--duration-base) var(--easing),color var(--duration-base) var(--easing)}
.cd-clear:hover{background:var(--muted);border-color:var(--border-strong);color:var(--foreground)}
.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:6px;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}
}
/* ターンは罫線1本で区切る（カードを積み重ねない） */
.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-head .pr-logo-mark{width:14px;height:14px;font-size:9px}
.cd-answer-head .pr-logo-text{font-size:var(--cd-micro);font-weight:var(--font-weight-semibold);letter-spacing:0.02em}
.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-optional{color:var(--foreground-subtle);font-weight:var(--font-weight-regular);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}
/* 入力エリア：角丸フィールド＋アイコン送信ボタン */
.chat-dock-input-row{margin:var(--sp-3);padding:5px 5px 5px 14px;background:var(--card);border:1px solid var(--input);border-top:1px solid var(--input);border-radius:8px;align-items:flex-end;gap:8px}
.chat-dock-input-row:focus-within{border-color:var(--primary);box-shadow:var(--ring-focus)}
textarea.chat-dock-input{height:auto;min-height:44px;max-height:120px;padding:11px 0;line-height:22px;resize:none;overflow-y:auto;display:block;font-size:var(--cd-ui);font-weight:var(--font-weight-regular)}
.chat-dock-send{width:44px;height:44px;padding:0;border-radius:6px;flex-shrink:0;justify-content:center;box-shadow:none}
@media (max-width:768px){.chat-dock-body{max-height:min(52vh, calc(100vh - 200px))}}

/* === トップページ：チャットをヒーロー右側に埋め込み === */
body.is-top-page .chat-dock{position:static;left:auto;right:auto;bottom:auto;transform:none;width:100%;max-width:none;padding:0;z-index:auto;pointer-events:auto}
body.is-top-page .chat-dock.is-expanded{max-width:none}
body.is-top-page .chat-dock-inner{border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px -18px rgba(4,20,44,0.45),0 1px 2px rgba(4,20,44,0.06);max-height: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,58%) minmax(0,40%);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(32px,4.1vw,56px)}
}
@media (max-width:1099px){
  /* 1100px未満は1カラム。カードをヒーロー本文と同幅に揃え、左寄せの違和感を解消 */
  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}
body.is-top-page .chat-dock .chat-dock-prompt{background:var(--card);border-bottom:1px solid var(--border);padding:var(--sp-3) var(--sp-4);gap:var(--sp-2);display:flex;align-items:center}
body.is-top-page .chat-dock .chat-dock-prompt::before{background:#16a34a;box-shadow:none;width:7px;height:7px;border-radius:var(--radius-full)}
body.is-top-page .chat-dock .chat-dock-prompt-label{color:var(--foreground);font-size:var(--cd-ui);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-normal);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-top-page .chat-dock .chat-dock-prompt-sub{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 .pr-logo-mark{width:18px;height:18px;font-size:11px}
.cd-empty .pr-logo-text{font-size:var(--text-body-md);font-weight:var(--font-weight-semibold)}
.cd-empty-title{font-size:var(--text-body-md);font-weight:var(--font-weight-medium);color:var(--foreground);letter-spacing:var(--tracking-tight)}
.cd-empty-desc{font-size:var(--cd-ui);color:var(--muted-foreground);line-height:1.75;max-width:34ch}
.cd-empty-ex{display:flex;flex-direction:column;gap:3px;margin-top:var(--sp-2);text-align:left;font-size:13px;color:var(--muted-foreground);line-height:1.8;max-width:100%}
.cd-empty-ex-label{color:var(--foreground-subtle);font-weight:var(--font-weight-medium);letter-spacing:0.02em}
.cd-empty-ex span:not(.cd-empty-ex-label){position:relative;padding-left:12px}
.cd-empty-ex span:not(.cd-empty-ex-label)::before{content:"";position:absolute;left:0;top:0.8em;width:3px;height:3px;border-radius:var(--radius-full);background:var(--border-strong)}
/* --- 相談デスク：タブレット／スマホのサイズ調整 --- */
@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)}
  body.is-top-page .chat-dock .chat-dock-prompt{padding:var(--sp-2) var(--sp-4)}
  .chat-dock-input-row{margin:10px;padding:4px 4px 4px 12px}
  textarea.chat-dock-input{font-size:16px;min-height:44px;padding:10px 0;line-height:24px}
  .cd-input,.cd-select{font-size:16px}
  .cd-empty{gap:6px;padding:var(--sp-3) var(--sp-2)}
  .cd-empty-desc{line-height:1.7}
  .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}
  .cd-empty-desc{max-width:28ch}
  .cd-empty-ex{font-size:12px;line-height:1.7}
}

/* 相談デスク：オンライン表示の緑ドット（弱いパルス） */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}}

/* === タブレット・スマホ：ヒーロー内は入口カード。押すと全画面のチャットページへ遷移 === */
.tp-chat-open{display:none;width:100%;flex-direction:column;padding:0;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px -18px rgba(4,20,44,0.45),0 1px 2px rgba(4,20,44,0.06);font-family:var(--font-sans);font-feature-settings:inherit;letter-spacing:var(--tracking-normal);color:var(--foreground);cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:border-color 160ms var(--easing)}
.tp-chat-open:active{border-color:var(--primary)}
.tp-chat-open:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--ring-focus)}
.tp-chat-open-bar{display:flex;align-items:center;gap:8px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
.tp-chat-open-dot{width:7px;height:7px;border-radius:var(--radius-full);background:#16a34a;flex-shrink:0}
.tp-chat-open-name{font-size:14px;font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight)}
.tp-chat-open-note{margin-left:auto;font-size:12px;color:var(--muted-foreground);white-space:nowrap}
.tp-chat-open-main{display:flex;flex-direction:column;gap:4px;padding:var(--sp-6) var(--sp-4) var(--sp-5)}
.tp-chat-open-title{font-size:var(--text-body-md);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-tight)}
.tp-chat-open-desc{font-size:14px;color:var(--muted-foreground);line-height:1.7}
.tp-chat-open-field{display:flex;align-items:center;gap:8px;margin:0 var(--sp-3) var(--sp-3);padding:5px 5px 5px 14px;border:1px solid var(--input);border-radius:8px}
.tp-chat-open-ph{flex:1;min-width:0;font-size:14px;color:var(--foreground-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-chat-open-send{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:6px;background:var(--primary);color:var(--primary-foreground);flex-shrink:0}
@media (max-width:1099px){
  .tp-chat-open{display:flex}
  body.is-top-page .tp-hero-chat .chat-dock{display:none}
}
@media (max-width:480px){.tp-chat-open-note{display:none}}

/* --- 全画面のチャットページ（body.is-chat-page のときだけ有効） --- */
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;font-size:var(--text-body-md)}
body.is-chat-page .chat-dock .chat-dock-collapse{order:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 0 0 -6px;padding:0;border:0;border-radius:6px;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}
/* 全画面でもPCのパネルと同じ行長に揃え、質問→回答の階層が崩れないようにする */
body.is-chat-page .chat-dock-body>.cd-turn,body.is-chat-page .chat-dock-body>.cd-form,body.is-chat-page .chat-dock-body>.cd-empty,body.is-chat-page .chat-dock-body>.cd-resolved{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-empty-ex{margin-top:var(--sp-3)}
@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)}}

/* 関連製品モジュールの補足1行（兄弟製品・使い分け・提供形態） */
.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)}
.related-note--wide{max-width:none;text-align:left}

.section--note{padding-top:0}
.section--note .related-note--wide{border-top:1px solid var(--border);padding-top:var(--sp-8);margin:0 auto}


/* 関連製品：上位製品（親）カード — 機能カードと同じ形、背景色だけ変える */
.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)}

/* ====== /estimate：課題→ソリューション対比・無料開始フロー・CTA強調 ====== */
.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}
.pair-challenge,.pair-solution{border-radius:var(--radius-lg);padding:var(--sp-6);background:var(--card)}
.pair-challenge{border:1px solid var(--border)}
.pair-solution{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)}
.pair-tag{font-size:var(--text-caption);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide);color:var(--muted-foreground);margin-bottom:var(--sp-3)}
.pair-solution .pair-tag{color:var(--primary)}
.pair-title{font-size:var(--fs-subheading);font-weight:var(--font-weight-bold);line-height:var(--fs-subheading-lh);margin-bottom:var(--sp-2)}
.pair-desc{font-size:var(--text-body-md);color:var(--muted-foreground);line-height:1.7}
.pair-solution .pair-desc{color:var(--foreground)}
.pair-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{background:var(--primary-foreground);color:var(--primary);border-color:var(--primary-foreground)}
.dark-cta .button--primary:hover{background:rgb(255 255 255 / 0.92);color:var(--primary)}
.dark-cta .button--primary:active{transform:translateY(1px)}

/* 製品ページ：グローバルヘッダーが画面外に出たら表示する固定CTAバー */
.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 clamp(20px,5vw,64px)}
.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-num{width:30px;height:30px;flex:0 0 30px;border-radius:999px;border:1.5px solid var(--primary);color:var(--primary);background:var(--card);display:inline-flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:var(--text-body-sm)}
.step-line{flex:1;height:2px;background:var(--border);border-radius:1px}
.step--goal .step-num{background:var(--primary);color:var(--primary-foreground,#fff)}
.step-title{font-size:var(--text-body-md);font-weight:var(--font-weight-semibold);line-height:1.4;margin-bottom:var(--sp-1)}
.step-desc{font-size:var(--text-body-sm);color:var(--muted-foreground);line-height:1.5}
@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-title{grid-column:2;grid-row:1}.step-desc{grid-column:2;grid-row:2}}

/* ====== アカウント不要の製品（価格査定・賃料査定・売却活動報告書）：SP・タブレットではCTAを「無料デモを申請」カードに差し替える ======
   PCでは製品ページ（アプリ）への直リンク[data-product-app]がCV。
   アカウント必須の製品（顧客管理・謄本取得・画像／間取り図取得・不動産データ取得・物件検索）は
   無料アカウント作成がCVでSP・タブレットからも作成できるため対象外（body[data-pc-only]が付かない）。 */
.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-mono,ui-monospace,monospace);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:#d92d20}
.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:#d92d20}
.pc-start-fine{margin:8px 0 0;font-size:11px;line-height:1.6;color:var(--foreground-subtle)}
.pc-start-copy{margin-left:8px;color:var(--primary);text-decoration:underline;cursor:pointer;white-space:nowrap}
/* 申請完了：success系の面で申請前と明確に見分けがつくようにし、切替時はフェードインさせる */
.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 #fff;border-bottom:2px solid #fff;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:#fff}
.dark-cta .pc-start-title,.free-band .pc-start-title{color:#fff}
.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:#fff}
.dark-cta .pc-start .button--primary,.free-band .pc-start .button--primary{background:#fff;color:var(--primary);border-color:#fff}
.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:#fff}
.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:#fff;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:#fff}
.dark-cta .pc-start-error,.free-band .pc-start-error{color:#ffb4ab}
/* 濃色セクション内でも完了面は明色のsuccessパネルのまま（切替が一目でわかるように） */
@media (max-width:900px){
  /* ログイン（製品の利用）はPC前提のため全ページで非表示 */
  html body .site-header .nav-login,
  html body .mobile-drawer [data-accordion="login"],
  html body .mobile-drawer [data-panel="login"]{display:none !important}
  /* アカウント不要の製品ページのみ：signup導線と製品ページ直リンクを隠し、無料デモ申請カードに差し替える */
  html body[data-pc-only] [data-spa-go="/signup"]:not(.button){display:none !important}
  html body[data-pc-only] .button[data-spa-go="/signup"],
  html body[data-pc-only] .button[data-product-app]{display:none !important}
  /* 顧客管理・コーポレート面：無料アカウント作成はSP・タブレットでも可能なため全幅で表示 */
  /* 注: シミュレータがvar()入りショートハンドを複製できないため、この中はロングハンドで書く */
  html body .pc-start-submit{width:100% !important;flex:0 0 auto}
  html body .pc-start-input{width:100% !important;flex:1 1 auto;min-width:0}
  /* カードは親のflex/inline幅に縛られずラップ幅いっぱいに広げる */
  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}
  /* タブレット・SP：完了メッセージ「申請を受け付けました」の上下に余白を広くとる */
  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}
  /* 画像プレースホルダー：高さ固定をやめて16:10の表示領域を保つ（ロゴスロットは除く） */
  html body main.page-screen .img-ph:not(.integration-logo-slot){height:auto !important;min-height:0 !important;aspect-ratio:16/10}
}

/* SP・タブレットでは製品ページの固定CTAバーを出さない（画面が狭く、上部が塞がるため） */
@media (max-width:900px){html body .product-subnav{display:none !important}}

/* footer: データ／SaaS製品ブロック — 2グループ構成、リンクは段組み（タブレット・SPで1列にしない） */
.footer-products-grid{grid-template-columns:minmax(160px,1fr) 3fr;align-items:start}
.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-products-grid{grid-template-columns:1fr;gap:var(--sp-8)}
  .footer-prod-links--data,.footer-prod-links--saas{column-count:3}
}
@media (max-width:600px){
  .footer-products-grid{gap:var(--sp-7)}
  .footer-prod-links{column-gap:var(--sp-4)}
  .footer-prod-links--data,.footer-prod-links--saas{column-count:2}
}

/* 関連製品カード: SP では2カラムの縦長カードをやめ、1カラムの横長リスト行にする */
@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 !important;min-height:0 !important;padding:var(--sp-4) var(--sp-8) var(--sp-4) var(--sp-4) !important;gap:var(--sp-1) !important}
  html body main.page-screen .related-card--all{display:flex !important;flex-direction:column !important;justify-content:center !important;align-items:flex-start !important;min-height:0 !important;height:auto !important;align-self:start !important;text-align:left !important}
  html body main.page-screen .related-card--all::after{background-color:var(--primary)}
  html body main.page-screen .related-card-name{font-size:16px !important;line-height:1.45 !important}
  html body main.page-screen .related-card-summary{line-height:1.7 !important}
  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 !important}
  html body .pc-start-submit{width:auto !important;padding-left:28px;padding-right:28px}
}

/* 無料アカウント作成CTA: スマホのみ全幅。タブレット幅では自然幅（PCと同じ見え方）を保つ */
@media (max-width:640px){html body:not([data-pc-only]) .button[data-spa-go="/signup"]{width:100%;max-width:440px;justify-content:center}}

/* ====== /deal：標準機能パネル（自動追客＝親ブロック、3機能＝その紹介ページ） ====== */
.std-feature-sub{margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--border)}
.std-feature-sub-head{margin-bottom:var(--sp-5)}
.std-feature-sub-label{font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--foreground);margin-bottom:var(--sp-2)}
.std-feature-sub-note{font-size:var(--text-body-sm,0.94rem);color:var(--muted-foreground);line-height:1.7}
.std-feature-sub .feature-card{background:var(--card)}


/* ====== /deal/mail：「なぜメールか」ロジック定義リスト ====== */
.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-mono,ui-monospace);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}}

/* ====== /deal：共通基盤ヒーロー注記 ＋ 業態別の入り口（下部分岐） ====== */
a:not(.button){color:var(--primary);text-underline-offset:3px}
a:not(.button):hover{color:var(--primary-hover,var(--primary))}
.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-label{font-size:var(--text-caption);font-weight:600;letter-spacing:var(--tracking-wide);color:var(--muted-foreground)}
.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 .feature-card{transition:border-color 160ms ease-out}
.entry-grid .feature-card: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)}}

/* ====== /deal：自動追客メール（共通基盤）への補足導線 ====== */
.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-eyebrow{font-size:var(--text-caption);font-weight:600;letter-spacing:var(--tracking-wide);color:var(--muted-foreground)}
.sub-link-title{font-size:var(--text-body-lg);font-weight:var(--font-weight-bold);color:var(--foreground)}
.sub-link-desc{font-size:var(--text-body-sm);line-height:1.75;color:var(--muted-foreground);max-width:74ch}
.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}}

.flex-align-center{align-items:center}
.cta-inline-note{font-size:var(--text-body-sm);line-height:1.6;color:var(--muted-foreground);max-width:34ch}
.cta-inline-note strong{color:var(--foreground);font-weight:600}
@media (max-width:900px){.cta-inline-note{max-width:none}}


/* 関連製品カードのサムネイル画像（hero から生成した thumb.webp。OGP と共用） */
.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}
/* SP：関連製品カードはコンパクトなリスト行のため画像は出さない */
@media (max-width:640px){html body main.page-screen .related-card .related-card-img{display:none !important}}

/* ====== フォーム入力: iOSの自動ズーム対策 ======
   iOS Safari zooms the viewport whenever a focused control computes below 16px,
   and stays zoomed after blur. site.css overrides --fs-body to 14–15px, so every
   cv-* control sat at 14px and every tap into the contact and signup forms
   scrolled the page sideways.

   max() rather than a flat 16px so this reads as the floor it is, not a new size:
   the control follows body text wherever body text is large enough, and if
   --fs-body is ever restored to the design system's 16–17px this becomes a no-op.
   Raising the floor here rather than adding maximum-scale to the viewport, which
   would fix the symptom by disabling pinch-zoom for everyone. */
.cv-input, .cv-select, .cv-textarea { font-size: max(16px, var(--text-body-md)); }

/* ====== 記事カバー: hidden 属性を効かせる ======
   .news-hero-image sets display:flex, which outranks the UA's [hidden]{display:none}
   — that rule has the lowest priority there is, so any author display declaration
   defeats it. news-detail.js hides #notion-detail-cover when the Notion page has no
   cover image, and the element kept rendering anyway: a 320px band of --muted under
   the title of every article opened from the news list.

   Scoped to this class rather than a global [hidden] reset: a sweep of every
   standalone hidden attribute in the source found this to be the only element whose
   class carries a conflicting display. */
.news-hero-image[hidden] { display: none; }
