/* CosmoSketch design system. Foundation -> shell -> compositions -> editorial -> responsive. */
@font-face { font-family: 'Barlow Condensed'; src: url('/fonts/barlow-condensed/BarlowCondensed-SemiBold.ttf') format('truetype'); font-style: normal; font-weight: 600; font-display: swap; }
:root {
 --ink:#111315; --ink-2:#282b2e; --accent:#25292d; --accent-dark:#111315; --surface:#fdfdfb; --paper:#f1f1ee; --mist:#e8e9e6; --line:#cdd0cd; --muted:#59615f; --danger:#a33425; --success:#18604e;
 --header-h:80px; --font-jp:'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',Meiryo,sans-serif; --font-display:'Barlow Condensed','Arial Narrow',sans-serif;
 --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px; --space-5:32px; --space-6:48px; --space-7:64px; --space-8:96px; --space-9:128px;
}
*,*::before,*::after { box-sizing:border-box; }
html { color-scheme:light; scroll-behavior:auto; }
body { margin:0; padding-top:var(--header-h); background:var(--surface); color:var(--ink); font:400 15px/1.9 var(--font-jp); -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { color:inherit; font:inherit; }
button,select { cursor:pointer; }
button:disabled { cursor:default; }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3,h4 { font-weight:700; overflow-wrap:anywhere; }
h1 { font-size:clamp(34px,4.1vw,60px); line-height:1.4; letter-spacing:-.04em; }
h2 { font-size:clamp(28px,3vw,42px); line-height:1.5; letter-spacing:-.035em; }
h3 { font-size:22px; line-height:1.55; letter-spacing:-.025em; }
:focus-visible { outline:3px solid #477cdd; outline-offset:4px; }
[id] { scroll-margin-top:calc(var(--header-h) + 20px); }
[hidden] { display:none; }
.shell { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.section { padding-block:var(--space-8); }
.section-title.small { font-size:36px; }
.section-end-link { margin-top:32px; text-align:right; }
.eyebrow { color:var(--accent); font:600 16px/1.3 var(--font-display); letter-spacing:.1em; text-transform:uppercase; margin-bottom:20px; }
.page-lead { max-width:720px; font-size:16px; line-height:2; margin-top:24px; color:var(--muted); }
.text-link { display:inline-flex; gap:32px; align-items:center; border-bottom:1px solid var(--ink); padding-bottom:8px; font-size:13px; font-weight:700; }
.text-link::after { content:'→'; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:40px; min-height:54px; padding:14px 26px; border:1px solid var(--ink); border-radius:0; background:transparent; font-size:13px; font-weight:700; line-height:1.6; }
.button.primary { color:#fff; background:var(--accent); border-color:var(--accent); }
.button:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.visually-hidden,.honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 20px; color:#fff; background:var(--ink); }
.skip-link:focus { top:12px; }
/* Navigation has a single visual hierarchy across all routes. */
.site-header { position:fixed; inset:0 0 auto; height:var(--header-h); z-index:50; background:#000; color:#efeee8; border-bottom:1px solid #424447; }
.header-inner { width:min(1440px,calc(100% - 64px)); height:100%; margin:auto; display:flex; align-items:center; gap:32px; }
.brand { display:flex; width:244px; height:56px; background:transparent; padding:0; position:relative; overflow:hidden; margin-right:auto; flex:0 0 auto; }
.brand img,.footer-brand img { position:absolute; top:50%; left:0; transform:translateY(-50%); width:100%; height:auto; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:26px; font-size:12px; font-weight:700; white-space:nowrap; }
.desktop-nav > a,.nav-dropdown-trigger { display:inline-flex; align-items:center; gap:8px; padding:10px 0; }
.desktop-nav [aria-current=page] { text-decoration:underline; text-underline-offset:8px; }
.nav-cta { border:1px solid currentColor; padding:12px 20px!important; }
.nav-cta:hover { background:#efeee8; color:#111315; }
.nav-dropdown { position:relative; }
.nav-chevron { width:6px; height:6px; border-right:1px solid; border-bottom:1px solid; transform:rotate(45deg); margin-bottom:3px; }
.nav-popover { position:absolute; top:100%; left:-32px; width:360px; padding:20px; background:#1b1d1f; border:1px solid #424447; --line:#424447; --muted:#bec0c1; --accent:#efeee8; visibility:hidden; opacity:0; }
.nav-dropdown.is-open .nav-popover,.nav-dropdown:hover .nav-popover { visibility:visible; opacity:1; }
.nav-popover a { display:flex; align-items:start; gap:16px; white-space:normal; padding:14px 10px; border-bottom:1px solid #424447; }
.nav-popover a:hover { background:#303335; }
.nav-popover-index { font-size:13px; justify-content:space-between; }
.nav-popover-number { font:600 24px/1 var(--font-display); color:var(--accent); }
.nav-popover-copy strong { display:block; font-size:13px; }
.nav-popover-copy small { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:4px; }
.language-menu { position:relative; font-size:11px; }
.language-menu summary { cursor:pointer; list-style:none; padding:10px; }
.language-menu summary::-webkit-details-marker { display:none; }
.language-menu summary::after { content:'⌄'; margin-left:10px; }
.language-menu-panel { position:absolute; right:0; top:100%; min-width:160px; border:1px solid #424447; background:#1b1d1f; padding:8px; }
.language-menu-panel a { display:block; padding:10px; color:#f4f3ef; }
.language-menu-panel a[aria-current=page] { background:#303335; }
.language-menu-panel a:hover { background:#303335; }
.language-control select { font-size:12px; border:0; background:transparent; }
.menu-button { display:none; width:44px; height:44px; border:1px solid #8a8e90; background:transparent; }
.menu-button span,.menu-button span::before,.menu-button span::after { display:block; width:20px; height:1px; background:#efeee8; position:relative; margin:auto; }
.menu-button span::before,.menu-button span::after { content:''; position:absolute; left:0; }
.menu-button span::before { top:-6px; } .menu-button span::after { top:6px; }
.mobile-nav { display:none; }
/* The main service stage is edge-to-edge. Inactive slides reserve height but are inert. */
.service-carousel { padding:0; background:#111315; color:#efeee8; }
.service-carousel > .shell { width:100%; max-width:none; }
.carousel-stage { position:relative; min-width:0; }
.carousel-track { min-width:0; width:100%; display:flex; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; }
.carousel-track::-webkit-scrollbar { display:none; }
.service-slide { min-width:0; flex:0 0 100%; width:100%; scroll-snap-align:start; scroll-snap-stop:always; display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:64px; padding:62px max(40px,calc((100vw - 1200px)/2)); min-height:580px; background:#111315; color:#fff; position:relative; overflow:hidden; }
.service-slide[hidden] { display:grid; visibility:visible; }
.slide-quotation { background:#191c1e; } .slide-development { background:#1e2221; color:#efeee8; }
.slide-copy { min-width:0; position:relative; z-index:1; }
.slide-category { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; color:#bec0c1; margin-bottom:18px; }
.slide-category > span { font:600 26px/1 var(--font-display); color:inherit; }
.slide-development .slide-category { color:#bec0c1; }
.slide-service-name { font-size:17px; font-weight:700; letter-spacing:.06em; margin-bottom:20px; }
.slide-copy h2 { font-size:clamp(32px,3.7vw,50px); line-height:1.5; font-weight:700; letter-spacing:-.045em; }
.slide-description { margin:24px 0 28px; max-width:550px; font-size:14px; color:#bec0c1; line-height:2; }
.slide-development .slide-description { color:#bec0c1; }
.slide-copy .button { background:#efeee8; color:#111315; border-color:#efeee8; min-width:245px; justify-content:space-between; }
.slide-copy .button:hover { background:#111315; color:#efeee8; }
.slide-development .button { background:#efeee8; color:#111315; border-color:#efeee8; }
.slide-note { margin-top:16px; max-width:550px; font-size:10px; line-height:1.85; color:#bec0c1; }
.slide-development .slide-note { color:#bec0c1; }
.development-badge { display:inline-block; padding:3px 9px; border:1px solid #9b9b89; background:transparent; color:inherit; font-size:10px; font-weight:700; line-height:1.7; white-space:nowrap; }
.carousel-controls { grid-area:2/1; display:flex; background:#111315; color:#efeee8; --line:#424447; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-inline:max(40px,calc((100vw - 1200px)/2)); }
.carousel-controls[hidden] { display:flex; visibility:hidden; }
.carousel-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); flex:1; min-width:0; }
.carousel-tabs button { display:grid; grid-template-columns:26px minmax(0,1fr); align-content:center; gap:3px 10px; min-height:82px; border:0; border-right:1px solid var(--line); background:transparent; color:#bec0c1; font-size:11px; font-weight:500; padding:14px 18px; line-height:1.6; text-align:left; position:relative; }
.carousel-tabs button > span { grid-row:1/3; font:600 24px/1.2 var(--font-display); }
.carousel-tabs button > small { grid-column:2; font-size:9px; color:#bec0c1; }
.carousel-tabs button[aria-pressed=true] { color:#efeee8; box-shadow:inset 0 -2px #efeee8; background:#ffffff08; }
.carousel-arrows { display:flex; align-items:center; gap:10px; padding-left:20px; }
.carousel-arrows button { width:32px; height:36px; border:0; background:transparent; color:inherit; font-size:20px; }
.carousel-arrows span { font:600 16px var(--font-display); white-space:nowrap; }
.carousel-photo { margin:0; min-width:0; }
.carousel-photo img { width:100%; height:100%; object-fit:cover; }
.carousel-photo figcaption { font-size:9px; color:#bec0c1; position:relative; z-index:2; margin-top:10px; }





/* Common captions and scope information for the three service scenes. */
.service-visual { color:inherit; min-width:0; position:relative; }
.visual-caption { display:flex; align-items:start; justify-content:space-between; gap:20px; padding-bottom:12px; border-bottom:1px solid #ffffff40; }
.visual-caption span { font:600 13px var(--font-display); letter-spacing:.1em; } .visual-caption b { font-size:11px; font-weight:500; }



.visual-summary { display:grid; grid-template-columns:112px minmax(0,1fr); gap:8px 20px; border-top:1px solid #ffffff40; padding-top:14px; font-size:10px; line-height:1.85; color:inherit; }
.visual-summary > p:first-child { color:inherit; opacity:.8; }
.visual-summary > p:nth-child(2) { font-size:11px; }
.visual-steps { grid-column:1/-1; display:flex; justify-content:space-between; gap:12px; padding:14px 0 0; margin:0; list-style:none; }
.visual-steps li { display:flex; gap:8px; align-items:center; font-size:11px; }
.visual-steps span { font:600 19px var(--font-display); }
.service-visual figcaption { margin-top:14px; font-size:9px; line-height:1.8; opacity:.78; }
.visual-development .visual-caption,.visual-development .visual-summary { border-color:#91a2b950; }
/* Evidence is a compact record strip, not another set of promotional cards. */
.corporate-heading { display:grid; grid-template-columns:1fr .8fr; gap:64px; align-items:end; margin-bottom:48px; }
.corporate-heading > p { font-size:14px; line-height:2; color:var(--muted); max-width:530px; }
.corporate-services { background:#111315; color:#efeee8; --ink:#efeee8; --accent:#efeee8; --muted:#bec0c1; --line:#424447; }
.home-service-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.home-service-list > li { border-bottom:1px solid var(--line); }
.home-service-link { display:grid; grid-template-columns:32px minmax(0,1fr) minmax(0,1.1fr) 24px; align-items:center; gap:28px; padding:28px 0; }
.home-service-number { align-self:start; color:var(--muted); font:600 20px/1.6 var(--font-display); }
.home-service-title h3 { font-size:20px; line-height:1.6; }
.home-service-title .development-badge { display:inline-block; margin:8px 0 0; }
.home-service-link > p { color:var(--muted); font-size:14px; line-height:1.9; }
.home-service-arrow { justify-self:end; font-size:22px; }
.home-service-link:hover { background:#ffffff06; }
.home-service-link:focus-visible { outline-offset:6px; }
@media (max-width:860px) {
 .home-service-link { grid-template-columns:24px minmax(0,1fr) 24px; gap:10px 16px; padding:24px 0; }
 .home-service-title h3 { font-size:18px; }
 .home-service-link > p { grid-column:2; font-size:13px; }
 .home-service-arrow { grid-column:3; grid-row:1; align-self:start; }
}
.corporate-cases { background:#e9eae6; color:#111315; }
.corporate-cases .eyebrow { color:#59615f; } .corporate-cases .corporate-heading > p { color:#59615f; }
.corporate-case { --line:#bfc4be; display:grid; grid-template-columns:1fr 1fr; gap:64px; border-top:1px solid var(--line); padding-top:44px; }
.corporate-case-context h3 { font-size:34px; margin:14px 0 20px; }
.corporate-case-context > p { max-width:500px; color:inherit; font-size:14px; line-height:2; }
.case-meta { font-size:11px!important; color:var(--muted); letter-spacing:.04em; }
.corporate-cases .case-meta { color:#59615f; }
.case-client-logo { width:118px; height:60px; object-fit:contain; object-position:left center; margin-top:20px; background:#fff; padding:7px; }
.corporate-case-context .text-link { margin-top:24px; border-color:currentColor; }
.result-period { font-size:12px; }
.result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:16px 0; gap:16px 32px; }
.result-grid > div { border-top:1px solid var(--line); padding-top:12px; }
.result-grid dt { font-size:11px; }
.result-grid dd { font:600 86px/1 var(--font-display); margin:6px 0 0; letter-spacing:-.02em; }
.result-grid dd span { font:500 13px var(--font-jp); margin-left:10px; }
.case-note { font-size:10px; line-height:1.9; color:var(--muted); }
.corporate-cases .case-note { color:#59615f; }
.case-other-links { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:48px; border-top:1px solid #bfc4be; }
.case-other-links > a { padding-top:24px; }
.case-other-links > a > span { display:block; color:#59615f; font-size:11px; }
.case-other-links b { display:flex; justify-content:space-between; gap:20px; font-size:17px; margin-top:10px; }
.corporate-working-grid,.corporate-company-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }
.corporate-working-grid > div > p:not(.eyebrow),.corporate-company-grid > div > p:not(.eyebrow) { color:var(--muted); font-size:14px; margin:24px 0; }
.corporate-process { list-style:none; padding:0; margin:0; }
.corporate-process > li { display:grid; grid-template-columns:50px minmax(0,1fr); gap:24px; border-top:1px solid var(--line); padding:24px 0; }
.corporate-process > li > span { font:600 36px/1 var(--font-display); color:var(--accent); }
.corporate-process h3 { font-size:19px; } .corporate-process p { font-size:12px; color:var(--muted); margin-top:8px; }
.corporate-company { background:#111315; color:#efeee8; --ink:#efeee8; --accent:#efeee8; --muted:#bec0c1; --line:#424447; }
.company-office-proof { margin-top:32px; }
.company-office-proof img { width:100%; height:240px; object-fit:cover; }
.company-office-proof figcaption { font-size:10px; color:var(--muted); margin-top:8px; }
.corporate-company-data { margin:0; }
.corporate-company-data > div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:24px; padding:24px 0; border-top:1px solid var(--line); }
.corporate-company-data dt { font-size:12px; color:var(--muted); } .corporate-company-data dd { font-size:14px; margin:0; }
.corporate-company-data a { border-bottom:1px solid var(--line); }
/* Detail, company and case compositions share primitives, not identical layouts. */
.corporate-page-hero,.page-hero,.news-detail-hero { padding:48px 0 64px; background:#111315; color:#efeee8; --accent:#efeee8; --muted:#bec0c1; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; font-size:10px; line-height:1.9; color:var(--muted); margin-bottom:36px; }
.corporate-page-hero .eyebrow { margin-bottom:20px; }
.service-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.service-detail-grid > div { min-width:0; }
.service-detail-hero { background:#111315; color:#efeee8; }
.service-detail-hero .breadcrumbs,.service-detail-hero .eyebrow,.service-detail-hero .page-lead { color:#bec0c1; }
.service-detail-hero h1 { font-size:clamp(30px,3.5vw,48px); }
.detail-service-name { font-size:16px; font-weight:700; margin-bottom:20px; }
.service-detail-hero .page-lead { font-size:14px; margin-top:24px; }
.individual-guidance,.start-scope-note { font-size:10px; line-height:1.9; margin-top:16px; color:inherit; opacity:.85; }
.page-jump-links { display:flex; flex-wrap:wrap; gap:16px 24px; margin-top:28px; }
.page-jump-links a { font-size:11px; border-bottom:1px solid currentColor; padding-bottom:7px; }
.page-jump-links a::after { content:'↓'; margin-left:16px; }
.development-notice { border-left:2px solid #9b9b89; padding-left:18px; color:#d0d0c1; font-size:11px; line-height:1.9; margin-top:24px; }
.development-themes,.capability-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin-top:40px; }
.development-themes article,.capability-list article { border-top:2px solid var(--accent); padding-top:24px; }
.development-themes article > span,.capability-list strong { font:600 32px var(--font-display); color:var(--accent); }
.development-themes h3,.capability-list h3 { font-size:20px; margin:16px 0; }
.development-themes p,.capability-list p { font-size:13px; color:var(--muted); }
.detail-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.detail-intro-grid p { font-size:14px; color:var(--muted); } .detail-intro-grid p + p { margin-top:20px; }
.detail-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:36px 0 0; padding:0; list-style:none; }
.detail-flow > article,.detail-flow > li { border-top:1px solid var(--line); padding-top:24px; }
.detail-flow h3 { font-size:17px; } .detail-flow p { font-size:12px; margin-top:12px; color:var(--muted); }
.development-status-note { font-size:11px; color:var(--muted); margin-top:30px; }
.mailgori-workflow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; margin:0; padding:0; list-style:none; }
.mailgori-workflow li { border-top:2px solid var(--line); padding-top:20px; }
.mailgori-workflow li > span { font:600 28px var(--font-display); color:var(--accent); }
.mailgori-workflow h3 { font-size:17px; margin:16px 0 12px; } .mailgori-workflow p { font-size:12px; color:var(--muted); }
.mailgori-workflow .human-review { border-color:var(--accent); }
.operating-rules { margin:0; }
.operating-rules > div { display:grid; grid-template-columns:260px minmax(0,1fr); gap:48px; border-top:1px solid var(--line); padding:24px 0; }
.operating-rules dt { font-weight:700; font-size:15px; } .operating-rules dd { font-size:14px; margin:0; color:var(--muted); }
.corporate-faq { display:grid; grid-template-columns:.65fr 1fr; gap:80px; }
.faq-list details { border-top:1px solid var(--line); }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; cursor:pointer; font-size:14px; font-weight:700; list-style:none; }
.faq-list summary::after { content:'+'; font:600 26px var(--font-display); } .faq-list details[open] summary::after { content:'−'; }
.faq-list p { margin:0 0 24px; font-size:13px; color:var(--muted); }
.corporate-overview,.corporate-message-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.corporate-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:40px; }
.corporate-principles article { border-top:1px solid var(--line); padding-top:24px; }
.corporate-principles article > span { font:600 32px var(--font-display); color:var(--accent); }
.corporate-principles h3 { margin:16px 0; font-size:20px; } .corporate-principles p { font-size:13px; color:var(--muted); }
.corporate-message { background:var(--paper); }
.corporate-message-grid p { font-size:14px; color:var(--muted); margin-bottom:20px; }
.corporate-message-grid h3 { font-size:28px; margin-bottom:30px; }
.representative-name { font-size:12px!important; font-weight:700; color:var(--ink)!important; }
.corporate-office-photo img { width:100%; height:320px; object-fit:cover; }
.corporate-office-photo figcaption { font-size:10px; color:var(--muted); margin-top:10px; }
.corporate-policy-links { display:flex; gap:32px; flex-wrap:wrap; margin-top:32px; }
.corporate-policy-links a { border-bottom:1px solid var(--line); padding-bottom:10px; font-size:12px; }
.corporate-case-entry { display:grid; grid-template-columns:.7fr 1.3fr; gap:80px; padding:56px 0; border-bottom:1px solid var(--line); }
.case-entry-marker { background:var(--paper); min-height:220px; position:relative; display:flex; align-items:center; justify-content:center; }
.case-entry-marker img { width:150px; height:120px; object-fit:contain; }
.case-entry-marker > span { position:absolute; top:22px; left:22px; color:var(--accent); font:600 14px var(--font-display); }
.case-entry-marker strong { font:600 48px var(--font-display); }
.corporate-case-entry h2 { font-size:30px; margin:12px 0 20px; }
.corporate-case-entry p { color:var(--muted); font-size:14px; }
.corporate-case-entry .text-link { margin-top:24px; }
/* News and editorial views use a proper reading measure. */
.news-list { border-top:1px solid var(--line); }
.news-row { display:grid; grid-template-columns:110px minmax(0,1fr) 24px; gap:24px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); }
.news-row time { font:600 20px var(--font-display); color:var(--muted); }
.news-row span { font-size:14px; } .news-row:hover { color:var(--accent); }
.news-entry { display:grid; grid-template-columns:110px minmax(0,1fr) 24px; gap:24px; padding:32px 0; border-bottom:1px solid var(--line); }
.news-entry h2 { font-size:24px; } .news-entry p { font-size:13px; color:var(--muted); margin-top:14px; }
.news-entry time { font:600 20px var(--font-display); }
.news-detail-hero-inner { width:min(900px,calc(100% - 80px)); }
.news-detail-hero h1 { margin-block:20px 24px; font-size:clamp(32px,3.8vw,52px); text-wrap:balance; }
.news-title-unit { white-space:nowrap; }
.title-word { display:inline-block; }
.news-detail-hero-inner > p { font-size:16px; color:var(--muted); line-height:2; }
.news-detail-back { display:inline-block; color:var(--accent); font-size:12px; margin-bottom:24px; }
.editorial-meta { display:flex; flex-wrap:wrap; gap:20px; align-items:center; font-size:11px!important; }
.editorial-meta span { font-weight:700; color:var(--accent); }
.article-question { font-size:13px!important; color:var(--accent)!important; margin:16px 0; }
.article-scope { padding:20px 24px; border-left:2px solid var(--ink); margin-top:30px; background:#fff; }
.article-scope p { font-size:12px; line-height:1.9; color:var(--muted); } .article-scope strong { display:block; margin-bottom:5px; color:var(--ink); }
.article-scope p + p { margin-top:10px; }
.editorial-cover,.news-detail-cover { margin:40px auto 0; height:300px; overflow:hidden; }
.editorial-cover img,.news-detail-cover img { width:100%; height:100%; object-fit:cover; }
.editorial-cover-cases img,.news-detail-cover.is-logo img { object-fit:contain; padding:50px; }
.news-detail-layout { display:grid; grid-template-columns:160px minmax(0,760px); gap:60px; justify-content:center; padding-block:64px 96px; }
.news-detail-layout > aside { align-self:start; position:sticky; top:calc(var(--header-h) + 32px); font-size:11px; }
.news-detail-layout > aside p { color:var(--accent); font-weight:700; }
.news-detail-layout > aside time { display:block; color:var(--muted); margin-top:8px; }
.news-detail-layout > aside > a,.news-detail-layout > aside span { display:block; margin-top:18px; color:var(--muted); font-size:11px; }
.news-detail-body { min-width:0; }
.news-detail-body h2 { font-size:28px; line-height:1.6; margin-bottom:24px; }
.news-detail-body > section + section { margin-top:48px; }
.news-detail-body p { color:#39413e; line-height:2; }
.news-detail-body p + p { margin-top:22px; }
.news-markdown h2:not(:first-child) { margin-top:52px; padding-top:40px; border-top:1px solid var(--line); }
.news-markdown h3 { font-size:22px; margin:36px 0 20px; }
.news-markdown ul,.news-markdown ol { margin:22px 0; padding-left:24px; } .news-markdown li + li { margin-top:8px; }
.news-markdown a,.article-sources a { color:var(--accent-dark); text-decoration:underline; text-underline-offset:4px; }
.news-markdown table { width:100%; display:block; overflow-x:auto; border-collapse:collapse; margin:24px 0; font-size:14px; }
.news-markdown td,.news-markdown th { padding:13px 16px; border:1px solid var(--line); min-width:130px; text-align:left; }
.news-markdown th { background:var(--paper); }
.article-table-scroll { overflow-x:auto; max-width:100%; margin:24px 0; }
.news-markdown .article-table-scroll table { display:table; min-width:620px; margin:0; overflow:visible; }
.table-scroll-note { display:none; }
.news-markdown blockquote { margin:30px 0; padding:12px 22px; border-left:2px solid var(--accent); }
.news-markdown pre { overflow:auto; background:var(--ink); color:#fff; padding:24px; }
.news-markdown img { max-width:100%; height:auto; margin:24px auto; }
.news-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 40px; border-top:1px solid var(--line); }
.news-facts > div { padding:18px 12px; border-bottom:1px solid var(--line); }
.news-facts dt { font-size:10px; color:var(--muted); } .news-facts dd { margin:8px 0 0; font-size:22px; font-weight:700; }
.article-toc { margin-bottom:40px; padding:26px; background:var(--paper); border-left:2px solid var(--ink); }
.article-toc p { font-size:13px; font-weight:700; }
.article-toc ol { padding-left:20px; font-size:13px; margin-bottom:0; } .article-toc li + li { margin-top:10px; }
.article-toc a { text-decoration:underline; text-underline-offset:4px; }
.article-sources,.article-related { padding-top:32px; border-top:1px solid var(--line); margin-top:44px; }
.article-sources h2,.article-related h2 { font-size:22px; }
.article-sources p,.article-sources ul { font-size:13px; }
.article-sources small { display:block; font-size:10px; color:var(--muted); margin:4px 0 14px; }
.article-related > a { display:grid; grid-template-columns:minmax(0,1fr) 20px; gap:8px 20px; border-top:1px solid var(--line); padding:20px 0; }
.article-related span { grid-column:1/-1; font-size:10px; color:var(--muted); } .article-related strong { font-size:15px; }
.editorial-author { display:grid; grid-template-columns:50px minmax(0,1fr); gap:8px 20px; border-top:1px solid var(--line); margin-top:48px; padding-top:24px; font-size:12px; }
.editorial-author span { grid-column:2; color:var(--muted); font-size:11px; }
.news-detail-footer { display:flex; flex-wrap:wrap; gap:18px; margin-top:40px; }
.news-detail-external { margin-top:30px; }
.article-archive-heading { margin-bottom:40px; }
.article-archive-heading p { font-size:11px; color:var(--muted); margin-bottom:12px; }
.article-grid,.home-article-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.article-card,.home-article-card { min-width:0; }
.article-typography-cover { min-height:150px; padding:22px 0; background:#fff; border-top:2px solid var(--ink); display:flex; flex-direction:column; gap:20px; position:relative; }
.article-typography-cover > span { color:var(--muted); font:600 13px var(--font-display); letter-spacing:.08em; }
.article-typography-cover > strong { font-size:24px; max-width:80%; }
.article-typography-cover > b { position:absolute; bottom:20px; right:0; color:#71766f; font:600 66px/1 var(--font-display); }
.article-card figure:not(.article-typography-cover),.home-article-card figure:not(.article-typography-cover) { height:190px; margin:0; overflow:hidden; }
.article-card figure img,.home-article-card figure img { width:100%; height:100%; object-fit:cover; }
.article-card-body { padding-top:24px; }
.article-card-meta { display:flex; gap:16px; flex-wrap:wrap; font-size:10px; color:var(--muted); margin-bottom:14px; }
.article-card h2,.home-article-card h3 { font-size:20px; line-height:1.65; margin-bottom:16px; }
.article-card-body > p:not(.article-card-meta),.home-article-card > div > p:not(.article-card-meta) { font-size:12px; line-height:1.9; color:var(--muted); }
.article-card-body b,.home-article-card > div b { display:block; font-size:11px; margin-top:18px; }
.home-article-card > div { padding-top:22px; }
/* Inquiry and legal UI keep readable labels and explicit validation states. */
.contact-section { background:var(--paper); }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; }
.contact-copy p:not(.eyebrow) { color:var(--muted); font-size:13px; margin-top:24px; }
.contact-response { font-size:11px!important; }
.contact-form { min-width:0; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.field { margin-bottom:24px; }
.field label { display:flex; align-items:center; gap:14px; font-size:12px; font-weight:700; margin-bottom:10px; }
.field label span { color:var(--muted); font-size:9px; font-weight:400; border-left:1px solid var(--line); padding-left:12px; }
.field input,.field textarea,.field select { width:100%; min-height:50px; border:1px solid #b6c1d0; border-radius:0; padding:12px; background:#fff; font-size:14px; }
.field textarea { min-height:120px; resize:vertical; }
.field input[aria-invalid=true],.field textarea[aria-invalid=true] { border-color:var(--danger); }
.compact-form-footer { display:grid; gap:20px; }
.form-note { font-size:10px; color:var(--muted); } .form-note a { text-decoration:underline; }
.form-actions { display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.form-status { font-size:12px; } .form-status[data-state=error] { color:var(--danger); }
.inquiry-band { padding:48px 0; background:var(--paper); border-top:1px solid var(--line); }
.inquiry-band .shell { display:grid; grid-template-columns:1fr auto; align-items:center; gap:48px; }
.inquiry-band h2 { font-size:28px; margin-bottom:18px; } .inquiry-band p:not(.eyebrow) { font-size:12px; color:var(--muted); }
.legal-content { max-width:980px; margin:auto; padding-inline:40px; }
.legal-content h1 { margin-bottom:30px; } .legal-content h2 { font-size:25px; margin:40px 0 20px; }
.legal-content h3 { font-size:20px; margin:30px 0 18px; } .legal-content p,.legal-content ul { font-size:14px; }
.legal-content p + p { margin-top:18px; }
.legal-content .text-muted { color:var(--muted); } .legal-content .text-blue-700 { color:var(--accent); }
.legal-content table { width:100%; border-collapse:collapse; } .legal-content th,.legal-content td { border-bottom:1px solid var(--line); padding:16px; text-align:left; }
.note { color:var(--muted); font-size:11px; }
.legal-content .mt-1 { margin-top:4px; } .legal-content .mt-3 { margin-top:12px; } .legal-content .mt-6 { margin-top:24px; } .legal-content .mt-8 { margin-top:32px; }
.legal-content a { text-decoration:underline; text-underline-offset:4px; }
.article-scope { color:#111315; --muted:#59615f; }
/* Footer changes the rhythm with a dark closing band. */
.site-footer { background:#000; color:#fff; padding:64px 0 28px; }
.footer-top { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }
.footer-brand { display:block; position:relative; overflow:hidden; width:260px; height:62px; background:transparent; padding:0; }
.footer-statement { margin-top:26px; font-size:15px; }
.footer-address { margin-top:16px; font-size:11px; color:#bec0c1; }
.footer-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; }
.footer-nav > div { display:flex; flex-direction:column; align-items:start; gap:9px; }
.footer-nav p { color:#bec0c1; font:600 15px var(--font-display); text-transform:uppercase; margin-bottom:12px; letter-spacing:.05em; }
.footer-nav a { font-size:10px; line-height:1.85; } .footer-nav small { color:#c8c8bb; font-size:9px; display:block; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; border-top:1px solid #ffffff30; padding-top:24px; margin-top:48px; font-size:9px; color:#bec0c1; }
@media (max-width:1100px) {
 .desktop-nav { gap:17px; font-size:11px; } .brand { width:200px; } .header-inner { gap:20px; width:calc(100% - 40px); }
 .service-slide { gap:32px; } .slide-copy h2 { font-size:40px; } .carousel-controls { flex-direction:column; }
 .carousel-arrows { padding:10px 0; justify-content:flex-end; border-top:1px solid var(--line); }
 .corporate-working-grid,.corporate-company-grid,.contact-layout,.footer-top { gap:48px; } .footer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:860px) {
 :root { --header-h:68px; --space-8:72px; }
 .shell { width:min(680px,calc(100% - 40px)); }
 .desktop-nav { display:none; } .menu-button { display:block; } .brand { width:206px; height:48px; }
 .mobile-nav { position:fixed; inset:var(--header-h) 0 auto; height:calc(100dvh - var(--header-h)); overflow:auto; padding:24px 20px 40px; background:#111315; color:#efeee8; --line:#424447; opacity:0; pointer-events:none; display:grid; align-content:start; }
 .mobile-nav[hidden] { display:none; } .mobile-nav.is-open { opacity:1; pointer-events:auto; }
 .mobile-nav > a,.mobile-nav > .language-menu { padding:18px 4px; border-bottom:1px solid var(--line); font-size:16px; }
 .mobile-nav .nav-cta { margin-top:20px; text-align:center; }
 .mobile-subnav { display:grid; padding:10px 0 16px 22px; gap:0; border-bottom:1px solid var(--line); }
 .mobile-subnav a { padding:12px 0; font-size:12px; line-height:1.7; }
 .mobile-nav .language-menu-panel { position:static; margin-top:10px; border:0; border-top:1px solid var(--line); }
 .service-carousel .carousel-track { align-items:flex-start; }
 .service-slide { grid-template-columns:1fr; align-content:start; align-items:start; padding:40px max(20px,calc((100vw - 680px)/2)); gap:32px; min-height:0; }
 .service-slide .visual-caption,.service-slide .visual-summary,.service-slide .service-visual figcaption { display:none; }

 .service-slide .service-visual { margin:0 auto; }

 .slide-copy h2 { font-size:40px; } .slide-description,.slide-note { max-width:none; }
 .carousel-controls { padding-inline:20px; } .carousel-tabs button { padding:12px; }
 .service-visual { width:min(520px,100%); margin:auto; }
 .corporate-heading,.corporate-working-grid,.corporate-company-grid,.contact-layout,.corporate-message-grid,.corporate-overview,.detail-intro-grid,.service-detail-grid,.corporate-faq { grid-template-columns:1fr; gap:32px; }
 .corporate-heading { margin-bottom:36px; }
 .service-detail-hero .service-visual { margin-top:10px; } .service-detail-hero h1 { font-size:38px; }
 .development-themes,.capability-list,.corporate-principles { grid-template-columns:1fr; gap:30px; }
 .detail-flow { grid-template-columns:1fr 1fr; } .mailgori-workflow { grid-template-columns:1fr 1fr; }
 .operating-rules > div { grid-template-columns:180px minmax(0,1fr); gap:24px; }
 .corporate-case { gap:32px; } .corporate-case-entry { grid-template-columns:1fr; gap:28px; }
 .footer-top { grid-template-columns:1fr; gap:40px; } .footer-nav { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .news-detail-layout { grid-template-columns:1fr; gap:30px; padding-block:48px 64px; }
 .news-detail-layout > aside { position:static; display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; border-bottom:1px solid var(--line); padding-bottom:20px; }
 .news-detail-layout > aside > time,.news-detail-layout > aside > a,.news-detail-layout > aside > span { margin-top:0; }
 .news-detail-hero-inner { width:calc(100% - 40px); } .table-scroll-note { display:block; font-size:10px; color:var(--muted); margin-top:20px; }
 .article-grid,.home-article-grid { grid-template-columns:1fr 1fr; gap:28px; }
 .inquiry-band .shell { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:620px) {
 :root { --space-8:56px; }
 body { font-size:14px; } h1 { font-size:32px; } h2 { font-size:28px; } h3 { font-size:21px; }
 .shell { width:calc(100% - 36px); } .section-title.small { font-size:28px; } .eyebrow { font-size:14px; margin-bottom:16px; }
 .header-inner { width:calc(100% - 28px); }
 .service-slide { padding:32px 22px; gap:28px; } .slide-category { font-size:10px; margin-bottom:14px; } .slide-category > span { font-size:24px; }
 .slide-service-name { font-size:14px; margin-bottom:16px; } .slide-copy h2 { font-size:28px; line-height:1.6; }
 .slide-description { font-size:12px; line-height:1.95; margin:20px 0 24px; } .slide-copy .button { width:100%; min-width:0; min-height:50px; } .slide-note { font-size:9px; }

  .visual-caption span { font-size:12px; } .visual-caption b { font-size:9px; }
 .visual-summary { grid-template-columns:1fr; gap:4px; font-size:9px; } .visual-summary > p:nth-child(2) { font-size:10px; }
 .visual-steps { gap:10px; flex-wrap:wrap; padding-top:10px; } .visual-steps li { font-size:9px; } .visual-steps span { font-size:17px; }
 .carousel-controls { padding-inline:0; } .carousel-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } .carousel-tabs button { min-height:68px; border-bottom:1px solid var(--line); padding:12px 18px; font-size:10px; }
 .carousel-arrows { justify-content:center; padding:12px; border-top:0; gap:16px; }


 .corporate-case { grid-template-columns:1fr; gap:32px; padding-top:30px; } .result-grid dd { font-size:76px; }
 .case-other-links { grid-template-columns:1fr; gap:24px; margin-top:32px; } .case-other-links > a + a { border-top:1px solid #bfc4be; }
 .corporate-case-context h3 { font-size:28px; } .corporate-case-context > p { font-size:13px; }
 .corporate-company-data > div { grid-template-columns:90px minmax(0,1fr); gap:16px; padding-block:20px; }
 .company-office-proof img,.corporate-office-photo img { height:220px; }
 .corporate-page-hero,.page-hero,.news-detail-hero { padding-block:26px 40px; } .breadcrumbs { margin-bottom:24px; font-size:9px; }
 .service-detail-hero h1 { font-size:30px; } .service-detail-hero .page-lead { font-size:13px; } .page-lead { font-size:14px; }
 .detail-flow,.mailgori-workflow { grid-template-columns:1fr; } .operating-rules > div { grid-template-columns:1fr; gap:12px; }
 .inquiry-band { padding-block:32px; } .inquiry-band h2 { font-size:24px; }
 .news-row { grid-template-columns:minmax(0,1fr) 20px; gap:7px 14px; padding-block:20px; } .news-row time { grid-column:1/-1; font-size:17px; } .news-row span { font-size:13px; }
 .news-entry { grid-template-columns:minmax(0,1fr) 20px; gap:12px; } .news-entry > time { grid-column:1/-1; } .news-entry h2 { font-size:22px; }
 .news-detail-hero-inner { width:calc(100% - 36px); } .news-detail-hero h1 { font-size:30px; } .news-detail-hero-inner > p { font-size:14px; }
 .editorial-cover,.news-detail-cover { height:220px; margin-top:24px; } .news-detail-body h2 { font-size:24px; } .news-detail-body p { font-size:14px; }
 .news-facts { grid-template-columns:1fr 1fr; } .news-detail-footer { flex-direction:column; }
 .article-grid,.home-article-grid { grid-template-columns:1fr; gap:36px; } .article-typography-cover { min-height:130px; }
 .article-scope,.article-toc { padding:20px; } .field-row { grid-template-columns:1fr; gap:0; }
 .legal-content { padding-inline:18px; } .legal-content h1 { font-size:30px; } .legal-content h2 { font-size:24px; }
 .legal-content table { display:block; overflow-x:auto; }
 .footer-nav { grid-template-columns:1fr 1fr; gap:32px; } .footer-nav a { font-size:11px; } .footer-bottom { flex-direction:column; gap:8px; }
}
/* Service imagery is illustrative; actual work and company records stay separate. */
.sales-media { height:350px; overflow:hidden; }
.sales-media img { width:100%; height:100%; object-fit:cover; object-position:65% 55%; }
.sales-hero-photo { position:absolute; inset:0; z-index:0; }
.sales-hero-photo img { object-position:center 65%; }
.sales-hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#111315f5 0%,#111315d9 35%,#11131540 66%,#1113150a 85%),linear-gradient(0deg,#11131599,transparent 50%); }
@media (min-width:1024px) { .sales-hero-photo { left:16%; } }
.sales-hero-photo figcaption { position:absolute; bottom:18px; right:max(40px,calc((100vw - 1200px)/2)); color:#e8e9e5; }
.quotation-media { position:relative; padding-bottom:12px; }
.quotation-photo { aspect-ratio:3 / 2; overflow:hidden; }
.quotation-photo img { width:100%; height:100%; object-fit:contain; }
.quotation-conversation { width:88%; margin:20px 0 0; position:relative; z-index:1; padding:22px; background:#e9ebe6; color:#161c19; }
.quotation-conversation .media-label { color:#57635b; font:600 10px var(--font-jp); letter-spacing:.1em; }
.quotation-conversation blockquote { margin:12px 0 10px; padding:0; font-size:18px; font-weight:700; line-height:1.6; }
.quotation-conversation > p:not(.media-label) { font-size:11px; line-height:1.8; }
.quotation-conversation > span { display:block; margin-top:12px; border-top:1px solid #bcc5ba; padding-top:10px; font-size:10px; color:#445348; }
.quotation-calculation { margin:20px 0 0 28px; border-left:1px solid #727c74; padding-left:20px; }
.quotation-calculation > span { font-size:9px; color:#bec0c1; }
.quotation-calculation code { display:block; font-family:'SFMono-Regular',Consolas,monospace; font-size:12px; line-height:1.9; margin-top:5px; overflow-wrap:anywhere; }
.quotation-calculation p { margin-top:8px; color:#c4c9c3; font-size:10px; }
.manufacturing-ui { position:relative; height:500px; color:#26343b; font-family:var(--font-jp); }
.ui-screen { background:#f5f7f8; border:1px solid #95a5ae; overflow:hidden; box-shadow:0 20px 40px #0003; }
.ui-orders { position:absolute; top:0; left:0; width:100%; }
.ui-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; height:40px; padding:10px 14px; background:#253945; color:#f4f7f8; }
.ui-toolbar strong { font-size:11px; font-weight:600; }
.ui-toolbar > span { font-size:9px; color:#c7d5dd; }
.ui-workspace { display:grid; grid-template-columns:66px minmax(0,1fr); min-height:240px; }
.ui-sidebar { display:flex; flex-direction:column; gap:18px; padding:17px 8px; border-right:1px solid #ccd5da; color:#5a6b74; font-size:8px; }
.ui-sidebar b { color:#203e4b; }
.ui-content { min-width:0; padding:17px 12px; }
.ui-content-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:15px; font-size:11px; }
.ui-content-heading span { font-size:8px; color:#355f6f; border:1px solid #8ca8b4; padding:3px 7px; }
.ui-table > div { display:grid; grid-template-columns:.8fr 1.3fr 1fr .5fr 1fr .8fr; gap:8px; padding:10px 0; border-bottom:1px solid #d2dade; align-items:center; font-size:8px; line-height:1.5; }
.ui-table .ui-table-head { background:#e5ebee; margin-inline:-5px; padding-inline:5px; font-size:8px; color:#536770; }
.ui-state { font-size:8px; color:#3b5d64; background:#e0eeec; padding:2px 3px; }
.ui-schedule { margin-top:15px; display:grid; gap:7px; font-size:8px; }
.ui-schedule > span { font-weight:700; }
.ui-schedule > div { display:grid; grid-template-columns:34px 1fr; gap:5px; background:repeating-linear-gradient(90deg,transparent 0,transparent 49px,#dce4e7 50px); }
.ui-schedule b { font-weight:400; }
.ui-schedule i { background:#93aeb9; height:7px; width:42%; align-self:center; }
.ui-schedule > div:nth-of-type(2) i { width:31%; margin-left:35%; background:#9bac9f; }
.ui-schedule > div:nth-of-type(3) i { width:19%; margin-left:67%; background:#bac0ae; }
.ui-costs { position:absolute; bottom:0; right:-10px; width:88%; }
.ui-cost-body { padding:18px 20px; display:grid; grid-template-columns:1fr 1fr; gap:16px; background:#fafbf9; }
.ui-cost-body p { font-size:8px; color:#536770; }
.ui-cost-body strong { display:block; font-size:14px; margin-top:4px; }
.ui-cost-body small { display:block; font-size:8px; color:#5b6a70; line-height:1.8; margin-top:8px; }
.ui-cost-body dl { margin:0; font-size:9px; }
.ui-cost-body dl > div { display:flex; justify-content:space-between; gap:8px; border-bottom:1px solid #d4deda; padding:6px 0; }
.ui-cost-body dd { margin:0; }
.ui-cost-lines { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border-top:1px solid #c2cdca; padding-top:12px; font-size:9px; }
.ui-cost-lines span strong { display:block; font-size:12px; margin-top:7px; }
.ui-cost-lines > p { grid-column:1/-1; display:flex; justify-content:space-between; border-top:1px solid #c2cdca; padding-top:10px; font-size:10px; color:#26343b; }
.ui-cost-lines > p > b { font-size:14px; }
.service-visual > figcaption { padding-top:10px; margin-top:0; font-size:9px; opacity:1; color:#bec0c1; }
.service-detail-hero .visual-summary { margin-top:24px; }
.service-catalog { border:1px solid #424447; }
.service-catalog .service-slide { min-height:600px; padding:48px; grid-template-columns:1fr 1fr; gap:64px; }
.service-catalog .slide-copy { grid-column:2; grid-row:1; }
.service-catalog .service-visual { grid-column:1; grid-row:1; }
.service-catalog .slide-copy h3 { font-size:32px; line-height:1.5; letter-spacing:-.035em; }
.service-catalog .slide-service-name { font-size:14px; }
.service-catalog .slide-description { font-size:13px; margin-block:20px; }
.service-catalog .sales-media { height:420px; }
.service-catalog .carousel-controls { padding-inline:0; }
.catalog-scope { margin:0 0 28px; padding-top:16px; border-top:1px solid #ffffff35; }
.catalog-scope > div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:16px; margin-top:8px; }
.catalog-scope dt { color:#bec0c1; font-size:10px; }
.catalog-scope dd { margin:0; font-size:11px; line-height:1.8; }
@media(max-width:1100px) {
 .service-catalog .service-slide { padding:32px; gap:32px; }
 .service-catalog .slide-copy h3 { font-size:28px; }
 .service-catalog .sales-media { height:390px; }
}
@media(max-width:860px) {
 .service-slide .service-visual figcaption { display:block; }
 .service-catalog .service-slide { grid-template-columns:1fr; padding:32px; }
 .service-catalog .slide-copy,.service-catalog .service-visual { grid-column:1; grid-row:auto; }
 .service-catalog .service-visual { width:min(540px,100%); }
 .service-catalog .sales-media { height:260px; }
 .manufacturing-ui { height:470px; }
 .service-slide .quotation-conversation { padding:16px; margin-top:16px; }
 .service-slide .quotation-conversation blockquote { font-size:16px; }
 .service-slide .quotation-calculation { margin-top:12px; }
}
@media(max-width:620px) {
 .service-carousel .slide-mailgori .sales-hero-photo { position:relative; inset:auto; order:-1; width:calc(100% + 44px); height:200px; margin:-32px -22px 0; }
 .sales-hero-photo img { object-position:center 65%; }
 .sales-hero-photo::after { background:linear-gradient(0deg,#111315 0%,#11131500 60%); }
 .sales-hero-photo figcaption { bottom:8px; right:16px; font-size:8px; }
 .carousel-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .carousel-tabs button { min-height:76px; padding:10px 12px; font-size:9px; grid-template-columns:20px minmax(0,1fr); gap:4px 7px; }
 .carousel-tabs button > span { font-size:21px; }
 .service-catalog .service-slide { padding:28px 22px; gap:24px; }
 .service-catalog .slide-copy h3 { font-size:26px; }
 .catalog-scope > div { grid-template-columns:1fr; gap:4px; margin-top:12px; }
 .service-catalog .sales-media,.sales-media { height:240px; }
 .quotation-conversation { width:94%; margin-left:0; padding:18px; }
 .quotation-conversation blockquote { font-size:15px; }
 .quotation-calculation { margin-left:12px; padding-left:15px; }
 .quotation-calculation code { font-size:10px; }
 .manufacturing-ui { height:430px; }
 .ui-workspace { grid-template-columns:46px minmax(0,1fr); min-height:210px; }
 .ui-content { padding:12px 8px; }
 .ui-sidebar { font-size:7px; padding:12px 5px; }
 .ui-content-heading { font-size:9px; }
 .ui-table > div,.ui-table .ui-table-head { gap:4px; font-size:6px; }
 .ui-state { font-size:6px; padding:1px; }
 .ui-costs { right:0; width:94%; }
 .ui-toolbar { padding-inline:10px; height:33px; }
 .ui-toolbar strong { font-size:9px; }
 .ui-cost-body { padding:12px; gap:12px; }
 .ui-cost-body strong { font-size:12px; }
 .ui-cost-body dl { font-size:8px; }
 .ui-cost-lines { gap:12px; font-size:8px; }
}

/* Overlay controls replace the service-selection strip. Native scrolling enables swiping. */
.carousel-controls-compact { position:absolute; inset:0; padding:0; border:0; background:transparent; display:block; pointer-events:none; }
.carousel-controls-compact[hidden] { display:block; visibility:hidden; }
.carousel-controls-compact button { pointer-events:auto; }
.carousel-controls-compact .carousel-dots { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:0; }
.carousel-dots button { width:36px; height:36px; border:0; padding:12px; background:transparent; }
.carousel-dots button > span { display:block; width:9px; height:9px; border:1px solid #e8e9e5; border-radius:50%; }
.carousel-dots button[aria-pressed=true] > span { background:#e8e9e5; }
.carousel-controls-compact .carousel-arrows { position:absolute; top:50%; left:24px; right:24px; transform:translateY(-50%); display:flex; justify-content:space-between; padding:0; border:0; }
.carousel-controls-compact .carousel-arrows button { width:44px; height:44px; border:1px solid #ffffff40; border-radius:50%; background:#0007; color:#fff; font-size:22px; }
.carousel-utility { position:absolute; bottom:12px; right:24px; display:flex; gap:14px; align-items:center; color:#efeee8; }
.carousel-utility > span { font:600 14px var(--font-display); }
.carousel-utility > button { width:36px; height:36px; border:0; background:transparent; font-size:15px; }
.service-slide { padding-bottom:84px; }
.service-catalog .service-slide { padding-bottom:84px; }
@media(max-width:620px) {
 .carousel-controls-compact .carousel-arrows { top:auto; bottom:16px; left:16px; right:16px; transform:none; }
 .carousel-controls-compact .carousel-arrows button { width:36px; height:36px; font-size:18px; }
 .carousel-utility { right:62px; bottom:16px; gap:5px; }
 .carousel-utility > span { display:none; }
 .carousel-controls-compact .carousel-dots { bottom:16px; }
 .service-slide,.service-catalog .service-slide { padding-bottom:78px; }
}
@media (prefers-reduced-motion:no-preference) { a,button { transition:background-color .18s,color .18s; } }
@media print { .site-header,.site-footer,.skip-link,.carousel-controls { display:none!important; } body { padding-top:0; } .service-slide[hidden] { display:none; } .news-detail-layout > aside { position:static; } }
/* Static service rows complement the single moving first-view stage. */
.service-catalog-list { border:0; display:grid; gap:0; }
.service-catalog-list .service-slide { border-top:1px solid #424447; padding:64px 0; min-height:0; background:transparent; }
.service-catalog-list .service-slide:last-child { border-bottom:1px solid #424447; }
.service-catalog-list .slide-copy { grid-column:1; }
.service-catalog-list .service-visual { grid-column:2; }
.service-catalog-list .slide-quotation .slide-copy { grid-column:2; }
.service-catalog-list .slide-quotation .service-visual { grid-column:1; }
/* Product screens sit inside restrained aluminium laptop and phone frames. */
.device-composition { height:auto; aspect-ratio:1.2; isolation:isolate; }
.device-laptop { position:absolute; width:97%; top:6%; left:-2%; }
.laptop-display { padding:12px 11px 15px; background:linear-gradient(135deg,#44484d,#111315 18%,#17191c); border:1px solid #747b82; border-radius:15px 15px 5px 5px; box-shadow:0 24px 64px #0006; position:relative; }
.laptop-display::before { content:''; position:absolute; width:4px; height:4px; border-radius:50%; background:#6b7079; top:4px; left:50%; }
.laptop-base { height:14px; width:110%; margin-left:-5%; background:linear-gradient(#d2d4d8,#8f949c 55%,#585e66); border-radius:2px 2px 50% 50% / 2px 2px 100% 100%; box-shadow:0 15px 24px #0005; }
.laptop-base span { display:block; width:17%; height:4px; margin:auto; background:#747981; border-radius:0 0 6px 6px; }
.device-composition .ui-screen { border:0; box-shadow:none; }
.device-composition .ui-orders { position:relative; width:100%; border-radius:4px; background:#fff; }
.device-composition .ui-toolbar { height:32px; background:#fff; color:#26313e; padding:8px 12px; border-bottom:1px solid #e4e8ee; }
.device-composition .ui-toolbar strong { font-size:9px; }
.device-composition .ui-toolbar > span { color:#566777; background:#edf1f5; border-radius:3px; padding:2px 5px; font-size:7px; }
.device-composition .ui-workspace { min-height:260px; grid-template-columns:70px minmax(0,1fr); }
.device-composition .ui-sidebar { background:#f8f9fb; color:#73808f; gap:16px; font-size:7px; padding:15px 9px; border-color:#e9edf1; }
.ui-workspace-label { font-size:5px; letter-spacing:1px; color:#8993a0; }
.device-composition .ui-sidebar b { color:#365cce; background:#eaf0fe; margin-inline:-5px; padding:5px; border-radius:4px; }
.ui-sidebar-bottom { margin-top:auto; }
.device-composition .ui-content { padding:14px; background:#fff; }
.device-composition .ui-content-heading { margin-bottom:12px; align-items:end; }
.device-composition .ui-content-heading b { display:block; font-size:11px; }
.device-composition .ui-content-heading .ui-breadcrumb { display:block; border:0; padding:0; color:#8992a1; font-size:5px; letter-spacing:.3px; margin-bottom:4px; }
.device-composition .ui-content-heading .ui-new-order { font-size:6px; background:#365cce; color:white; border:0; border-radius:3px; padding:4px 7px; }
.ui-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
.ui-metrics > div { border:1px solid #e9edf2; border-radius:4px; padding:7px; }
.ui-metrics span { display:block; color:#6d7988; font-size:6px; }
.ui-metrics b { display:block; font-size:17px; font-weight:600; line-height:1.4; margin-top:4px; font-variant-numeric:tabular-nums; }
.ui-metrics small { font-size:6px; font-weight:400; color:#748091; margin-left:4px; }
.device-composition .ui-table > div { gap:5px; font-size:6px; padding:8px 0; border-color:#edf0f4; }
.device-composition .ui-table .ui-table-head { font-size:6px; background:#f7f9fc; color:#758394; margin:0; padding-inline:3px; }
.device-composition .ui-state { width:fit-content; white-space:nowrap; border-radius:3px; font-size:5px; padding:2px 4px; background:#edf2ff; color:#4161b9; }
.device-composition .ui-schedule { margin-top:12px; gap:6px; font-size:6px; }
.device-composition .ui-schedule i { background:#a9b9e6; height:5px; border-radius:3px; }
.device-phone { position:absolute; right:-3%; bottom:0; width:32%; padding:5px; background:linear-gradient(135deg,#9ca1a8,#25282c 25%,#555b62 75%,#a0a6ad); border:1px solid #6b7076; border-radius:24px; box-shadow:-10px 16px 36px #0005; }
.phone-screen { overflow:hidden; position:relative; background:#f8fafc; color:#26313e; border:2px solid #111315; border-radius:19px; }
.phone-status { display:flex; align-items:center; justify-content:space-between; padding:8px 10px 5px; font:600 6px/1.4 var(--font-jp); background:#fff; }
.phone-status::after { content:''; position:absolute; width:36%; height:9px; border-radius:0 0 8px 8px; top:0; left:32%; background:#111315; }
.phone-app-heading { padding:8px 9px; background:#fff; border-bottom:1px solid #e9edf2; line-height:1.5; }
.phone-app-heading > span { display:block; font-weight:700; font-size:7px; }
.phone-app-heading small { color:#7a8593; font-size:5px; }
.phone-content { padding:10px; }
.phone-order-id { font-size:5px; color:#8792a2; letter-spacing:.2px; }
.phone-content h4 { font-size:9px; line-height:1.6; margin:3px 0; }
.phone-review { display:inline-block; font-size:5px; color:#866c24; background:#fff5db; padding:2px 4px; border-radius:3px; }
.phone-drawing { margin-top:8px; padding:5px; background:#fff; border:1px solid #e6ebf1; border-radius:4px; color:#a6b2c2; }
.phone-drawing svg { display:block; width:100%; height:52px; }
.phone-cost-lines { margin:8px 0 0; font-size:6px; font-variant-numeric:tabular-nums; }
.phone-cost-lines > div { display:flex; justify-content:space-between; gap:4px; padding:5px 0; }
.phone-cost-lines dt { color:#738090; } .phone-cost-lines dd { margin:0; font-weight:600; }
.phone-cost-lines .phone-cost-total { border-top:1px solid #e1e7ee; margin-top:3px; padding-top:8px; }
.phone-cost-total dd { font-size:9px; color:#365cce; }
.phone-review-note { color:#8290a0; font-size:5px; margin-top:8px; }
.phone-navigation { display:flex; justify-content:space-around; padding:8px 2px 10px; border-top:1px solid #e8edf2; background:#fff; font-size:5px; color:#8e98a5; }
.phone-navigation b { color:#365cce; }
@media(max-width:860px) {
 .service-catalog-list .service-slide { padding:48px 0; }
 .service-catalog-list .slide-copy,.service-catalog-list .service-visual,.service-catalog-list .slide-quotation .slide-copy,.service-catalog-list .slide-quotation .service-visual { grid-column:1; grid-row:auto; }
 .device-composition { height:auto; }
}
@media(max-width:620px) {
 .device-composition { height:auto; aspect-ratio:1.03; }
 .device-laptop { top:10%; }
 .laptop-display { padding:9px 6px 10px; border-radius:10px 10px 3px 3px; }
 .device-composition .ui-workspace { grid-template-columns:49px minmax(0,1fr); min-height:225px; }
 .device-composition .ui-sidebar { padding:11px 5px; font-size:5px; gap:12px; }
 .device-composition .ui-content { padding:9px; }
 .device-composition .ui-content-heading b { font-size:8px; }
 .device-composition .ui-content-heading .ui-new-order { font-size:5px; padding:3px; }
 .ui-metrics { gap:4px; margin-bottom:8px; } .ui-metrics > div { padding:5px; }
 .ui-metrics b { font-size:13px; } .ui-metrics span { font-size:5px; }
 .device-composition .ui-table > div,.device-composition .ui-table .ui-table-head { font-size:5px; gap:3px; padding-block:7px; }
 .device-phone { right:-1%; width:35%; border-radius:20px; padding:4px; }
 .phone-screen { border-radius:16px; } .phone-content { padding:8px; }
 .phone-drawing svg { height:40px; }
}
/* Fixed screen ratios: laptop 16:10, phone 9:19.5. Content scales as one canvas. */
.device-composition { aspect-ratio:1.3; }
.device-laptop { top:16%; }
.laptop-screen { position:relative; width:100%; aspect-ratio:16/10; overflow:hidden; border-radius:4px; background:#fff; }
.device-canvas { transform:scale(var(--device-scale,.65)); transform-origin:top left; }
.device-composition .ui-orders { position:absolute; inset:0 auto auto 0; width:720px; height:450px; border-radius:0; }
.device-composition .ui-toolbar { height:45px; padding:12px 18px; }
.device-composition .ui-toolbar strong { font-size:13px; } .device-composition .ui-toolbar > span { font-size:10px; }
.device-composition .ui-workspace { min-height:405px; grid-template-columns:104px minmax(0,1fr); }
.device-composition .ui-sidebar { font-size:10px; gap:22px; padding:22px 14px; }
.ui-workspace-label { font-size:7px; } .device-composition .ui-sidebar b { padding:8px; }
.device-composition .ui-content { padding:22px; }
.device-composition .ui-content-heading b { font-size:17px; }
.device-composition .ui-content-heading .ui-breadcrumb { font-size:8px; }
.device-composition .ui-content-heading .ui-new-order { font-size:9px; padding:6px 10px; }
.ui-metrics { gap:12px; margin-bottom:18px; } .ui-metrics > div { padding:12px; }
.ui-metrics span { font-size:9px; } .ui-metrics b { font-size:26px; } .ui-metrics small { font-size:9px; }
.device-composition .ui-table > div,.device-composition .ui-table .ui-table-head { font-size:9px; gap:8px; padding-block:12px; }
.device-composition .ui-state { font-size:8px; padding:3px 5px; }
.device-composition .ui-schedule { font-size:9px; gap:8px; margin-top:16px; }
.phone-screen { border:0; aspect-ratio:9/19.5; }
.phone-canvas { position:absolute; top:0; left:0; width:180px; height:390px; overflow:hidden; }
.phone-status { font-size:9px; padding:10px 14px 7px; }
.phone-status::after { height:12px; }
.phone-app-heading { padding:10px 13px; } .phone-app-heading > span { font-size:10px; } .phone-app-heading small { font-size:7px; }
.phone-content { padding:13px; } .phone-order-id { font-size:7px; } .phone-content h4 { font-size:13px; }
.phone-review { font-size:7px; padding:3px 5px; }
.phone-drawing { margin-top:10px; } .phone-drawing svg { height:62px; }
.phone-cost-lines { font-size:9px; margin-top:10px; } .phone-cost-lines > div { padding:6px 0; }
.phone-cost-total dd { font-size:13px; } .phone-review-note { font-size:7px; }
.phone-navigation { font-size:7px; padding:10px 4px; }
@media(max-width:620px) {
 .device-composition { aspect-ratio:1.2; }
 .device-laptop { top:17%; }
 .device-phone { width:32%; }
}
.device-composition .ui-orders { line-height:1.4; }
.device-composition .ui-content { padding:16px; }
.device-composition .ui-metrics { gap:12px; margin-bottom:12px; }
.device-composition .ui-metrics > div { padding:8px; }
.device-composition .ui-table > div,.device-composition .ui-table .ui-table-head { padding-block:8px; }
.device-composition .ui-schedule { gap:6px; margin-top:12px; }
.phone-canvas { display:flex; flex-direction:column; line-height:1.4; }
.phone-content { padding:10px; }
.phone-drawing svg { height:54px; }
.phone-navigation { margin-top:auto; }
.phone-app-heading { font-size:10px; line-height:1.4; }
.phone-app-heading small { display:block; }
.phone-content { font-size:9px; }
/* Small product labels remain readable when the complete UI is scaled into devices. */
.device-composition .ui-sidebar,.ui-workspace-label,.device-composition .ui-content-heading .ui-breadcrumb,.ui-metrics span,.ui-metrics small,.device-composition .ui-table .ui-table-head,.phone-app-heading small,.phone-order-id,.phone-cost-lines dt,.phone-review-note,.phone-navigation { color:#546171; }
.home-commitment { background:#111315; color:#f4f3ef; padding-block:110px; }
.home-commitment .eyebrow { color:#bec0c1; }
.commitment-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:100px; margin-top:42px; }
.commitment-grid h2 { font-size:clamp(36px,4vw,56px); line-height:1.55; letter-spacing:-.045em; }
.commitment-grid > div { padding-top:14px; max-width:450px; }
.commitment-grid p { font-size:15px; line-height:2.1; color:#d0d2d3; }
.commitment-grid p + p { margin-top:24px; }
.commitment-grid .text-link { color:#f4f3ef; border-color:#70767c; margin-top:32px; }
.commitment-footnote { display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-top:70px; padding-top:25px; border-top:1px solid #424447; color:#bfc3c7; font-size:11px; letter-spacing:.06em; }
.home-voices { background:#eeefeb; padding-block:80px 110px; }
.voices-heading { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:24px; border-bottom:1px solid #bfc3bf; }
.voices-heading h2 { font-size:17px; font-weight:500; }
.voices-heading .eyebrow { margin:0; }
.customer-voice { display:grid; grid-template-columns:90px minmax(0,1fr); padding-block:64px; border-bottom:1px solid #bfc3bf; column-gap:30px; }
.voice-number { font:600 22px/1.5 var(--font-display); color:#58605b; padding-top:8px; }
.customer-voice blockquote { margin:0; font-size:clamp(28px,3.1vw,44px); line-height:1.85; letter-spacing:-.025em; font-weight:500; }
.customer-voice figcaption { grid-column:2; margin-top:30px; color:#515b54; font-size:13px; }
.customer-voice figcaption > span { margin-right:14px; }
.voices-note { font-size:11px; color:#5c645d; margin:24px 0 0 120px; }
@media(max-width:860px) {
 .commitment-grid { grid-template-columns:1fr; gap:32px; }
 .commitment-grid h2 { font-size:44px; }
 .commitment-grid > div { padding:0; max-width:620px; }
 .commitment-footnote { flex-direction:column; gap:16px; margin-top:42px; }
 .customer-voice { grid-template-columns:35px minmax(0,1fr); gap:18px; }
 .voices-note { margin-left:53px; }
}
@media(max-width:620px) {
 .home-commitment { padding-block:64px; }
 .commitment-grid { margin-top:28px; }
 .commitment-grid h2 { font-size:clamp(26px,7.8vw,32px); }
 .commitment-grid p { font-size:14px; }
 .home-voices { padding-block:48px 64px; }
 .customer-voice { grid-template-columns:1fr; padding-block:36px; }
 .voice-number { font-size:17px; }
 .customer-voice blockquote { font-size:24px; line-height:1.9; }
 .customer-voice figcaption { grid-column:1; font-size:12px; margin-top:22px; }
 .voices-note { margin-left:0; }
}
.manufacturing-workflow { background:#fafbf8; border-bottom:1px solid #cdd0cd; }
.workflow-heading { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:80px; margin-bottom:42px; }
.workflow-heading h2 { font-size:36px; line-height:1.65; }
.workflow-heading > p { font-size:14px; color:#53605a; max-width:450px; }
.workflow-heading .development-badge { font-family:var(--font-jp); letter-spacing:0; text-transform:none; }
.workflow-stage { position:relative; background:#edf0ed; border:1px solid #c3ccc5; overflow:hidden; }
.workflow-graph { width:100%; height:auto; display:block; }
.workflow-objects { fill:none; }
.workflow-labels { font:500 13px var(--font-jp); }
.workflow-layer-labels { font:600 13px var(--font-display); letter-spacing:1.4px; }
.workflow-screen-label { font:600 10px var(--font-jp); fill:#314439; }
.workflow-flow-lines { stroke-dasharray:7 9; animation:workflow-trace 2s linear infinite; }
.workflow-graph > g { animation:workflow-focus 12s ease-in-out infinite; transform-origin:50% 48%; transform-box:view-box; }
.workflow-data-example { position:absolute; left:24px; top:24px; padding:14px 18px; background:#ffffffeb; border:1px solid #bbc8bf; min-width:220px; }
.workflow-data-example > span { color:#57695e; font-size:10px; }
.workflow-data-example code { display:block; font:11px/1.9 'SFMono-Regular',Consolas,var(--font-jp); color:#33443a; margin-top:8px; }
.workflow-motion-control { position:absolute; right:20px; bottom:20px; background:#f9fbf8; color:#25382d; border:1px solid #8fa395; border-radius:50%; width:40px; height:40px; font-size:13px; }
.workflow-explanation { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin-top:32px; }
.workflow-explanation article { padding-top:20px; border-top:1px solid #bac6bd; }
.workflow-explanation article > span { font:600 20px var(--font-display); color:#51685a; }
.workflow-explanation h3 { font-size:16px; margin:12px 0; }
.workflow-explanation p { color:#546259; font-size:12px; line-height:2; }
.workflow-example-note { margin-top:28px; color:#5e6b62; font-size:10px; }
.manufacturing-workflow.is-paused .workflow-flow-lines,.manufacturing-workflow.is-paused .workflow-graph > g { animation-play-state:paused; }
@keyframes workflow-trace { to { stroke-dashoffset:-32; } }
@keyframes workflow-focus { 0%,100% { transform:scale(1); } 40%,70% { transform:scale(1.025); } }
@media(prefers-reduced-motion:reduce) { .workflow-flow-lines,.workflow-graph > g { animation:none; } }
@media(max-width:860px) {
 .workflow-heading { grid-template-columns:1fr; gap:24px; }
 .workflow-heading > p { max-width:620px; }
 .workflow-data-example { top:16px; left:16px; min-width:180px; padding:12px; }
 .workflow-data-example code { font-size:9px; }
 .workflow-explanation { grid-template-columns:1fr; gap:24px; }
}
@media(max-width:620px) {
 .workflow-heading h2 { font-size:27px; }
 .workflow-stage { padding-top:136px; }
 .workflow-data-example { left:14px; top:14px; right:14px; padding:10px 14px; min-width:0; }
 .workflow-data-example code { margin-top:4px; font-size:9px; line-height:1.65; }
 .workflow-motion-control { right:12px; bottom:12px; width:32px; height:32px; }
 .workflow-labels { font-size:15px; }
 .workflow-layer-labels { font-size:15px; }
}
