/* Corporate theme. Loaded last on every page; overrides style.css, company.css and motion.css. */
:root { --navy:#0b2a4a; --navy-deep:#061a30; --accent:#1f6fbf; --sky:#e9f1f8; --gray:#f3f5f7; --ink:#14212d; --body:#3d4a57; --blue:#0b2a4a; --line:#dde3e9; --paper:#fff; --sand:#f3f5f7; --serif:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; --en:"Helvetica Neue",Arial,"Segoe UI",sans-serif; }
body { font-size:16px; line-height:1.95; letter-spacing:.03em; overflow-x:clip; background:#fff; }
.wrap { width:min(1240px,calc(100% - 80px)); }
a:focus-visible,button:focus-visible { outline-color:var(--accent); }
.mark path:first-child { fill:var(--navy); }
.mark path:last-child { fill:var(--accent); }

/* Header */
header { background:#fff; border-bottom:1px solid var(--line); transition:box-shadow .3s ease; }
.header-inner { min-height:84px; }
.brand strong { font-size:20px; letter-spacing:.08em; }
.brand small { color:#6b7a88; letter-spacing:.2em; }
.nav { gap:34px; }
.nav a { min-height:84px; font-size:15px; font-weight:500; letter-spacing:.06em; }
.nav a::after { height:3px; background:var(--accent); }
.nav a:hover,.nav a[aria-current="page"] { color:var(--navy); }
.nav a[href="contact.html"] { min-height:48px; padding:0 26px; background:var(--navy); color:#fff; }
.nav a[href="contact.html"]:hover { background:var(--accent); }
.nav a[href="contact.html"][aria-current="page"] { box-shadow:none; background:var(--accent); }

/* Top page: transparent header over the full-bleed hero, solid once scrolled. */
.js body[data-page="index"] header { position:fixed; left:0; right:0; }
.js body[data-page="index"] header:not(.is-solid) { background:transparent; border-color:#ffffff33; }
.js body[data-page="index"] header:not(.is-solid) .brand strong,
.js body[data-page="index"] header:not(.is-solid) .nav a { color:#fff; }
.js body[data-page="index"] header:not(.is-solid) .brand small { color:#d6e2ec; }
.js body[data-page="index"] header:not(.is-solid) .mark path:first-child { fill:#fff; }
.js body[data-page="index"] header:not(.is-solid) .mark path:last-child { fill:#8cc3ee; }.js body[data-page="index"] header:not(.is-solid) .nav a::after { background:#fff; }
.js body[data-page="index"] header:not(.is-solid) .nav a[href="contact.html"] { background:transparent; border:1px solid #ffffffb3; }
.js body[data-page="index"] header:not(.is-solid) .nav a[href="contact.html"]:hover { background:#fff; color:var(--navy); }
.js body[data-page="index"] header:not(.is-solid) .menu { color:#fff; background:transparent; border-color:#ffffffb3; }
.js body[data-page="index"] header.is-solid { box-shadow:0 2px 16px #0b2a4a14; }

/* Hero */
.hero { margin:0; height:100svh; min-height:620px; max-height:960px; background:var(--navy-deep); }
.hero::before { background:linear-gradient(100deg,rgba(6,26,48,.82) 0%,rgba(6,26,48,.5) 48%,rgba(6,26,48,.08) 100%),linear-gradient(0deg,rgba(6,26,48,.55),transparent 40%); }
.hero .wrap { min-height:0; height:100%; align-items:flex-end; }
.hero-copy { max-width:860px; padding:0 0 clamp(110px,16vh,170px); }
.hero .eyebrow { color:#fff; font-family:var(--en); font-size:13px; font-weight:600; letter-spacing:.28em; }
.hero .eyebrow::before { width:48px; background:#8cc3ee; }
.hero h1 { font-family:var(--serif); font-size:clamp(40px,6vw,86px); font-weight:700; line-height:1.35; letter-spacing:.06em; margin-bottom:30px; text-shadow:0 2px 24px #061a3055; }
.hero p:not(.eyebrow) { color:#e8eff5; font-size:18px; line-height:2; }
.hero .solid-link { background:#fff; color:var(--navy); border-color:#fff; font-weight:600; }
.hero .solid-link:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
.hero .text-link { color:#fff; border-bottom-color:#ffffff99; }
.hero-controls { bottom:36px; right:max(40px,calc((100% - 1240px)/2)); }
.carousel-button { border-color:#ffffff66; background:#061a3033; }
.hero-scroll { position:absolute; z-index:2; left:max(40px,calc((100% - 1240px)/2)); bottom:36px; display:flex; align-items:center; gap:14px; color:#fff; font-family:var(--en); font-size:11px; letter-spacing:.3em; }
.hero-scroll::after { content:""; width:1px; height:44px; background:linear-gradient(#fff,transparent); animation:scroll-line 2.2s ease-in-out infinite; transform-origin:top; }
@keyframes scroll-line { 0% { transform:scaleY(0); } 50% { transform:scaleY(1); } 100% { transform:scaleY(1); opacity:0; } }

/* Buttons and links */
.solid-link { min-height:58px; padding:14px 30px; gap:40px; background:var(--navy); border-color:var(--navy); font-size:15px; letter-spacing:.08em; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.solid-link:hover { background:var(--accent); border-color:var(--accent); }
.solid-link.is-outline { background:transparent; color:var(--navy); }
.solid-link.is-outline:hover { background:var(--navy); color:#fff; border-color:var(--navy); }
.text-link { color:var(--navy); font-size:15px; border-bottom-color:var(--accent); }
.back-link { color:var(--navy); font-size:15px; text-decoration:none; border-bottom:1px solid var(--accent); min-height:40px; }
.back-link:hover { color:var(--accent); }

/* Section titles: large English label above a small Japanese heading. */
.section-title { margin-bottom:48px; }
.section-title .en { display:block; color:var(--navy); font-family:var(--en); font-size:clamp(40px,5.4vw,72px); font-weight:700; line-height:1.05; letter-spacing:.02em; }
.section-title h2 { display:flex; align-items:center; gap:14px; margin:16px 0 0; color:var(--ink); font-size:16px; font-weight:600; letter-spacing:.12em; }
.section-title h2::before { content:""; width:28px; height:2px; background:var(--accent); }
.section-title.is-light .en,.section-title.is-light h2 { color:#fff; }
.section-title.is-light h2::before { background:#8cc3ee; }
.section-row { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:48px; }
.section-row .section-title { margin-bottom:0; }

/* Top page sections */
.home-message { padding:clamp(88px,11vw,150px) 0; }
.home-message-inner { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(40px,7vw,110px); align-items:start; }
.home-message h3 { margin:0 0 32px; color:var(--ink); font-size:clamp(22px,2.4vw,34px); font-weight:700; line-height:1.7; letter-spacing:.06em; }
.home-message p { font-size:17px; line-height:2.2; }
.home-message .hero-actions { margin-top:40px; }

.home-business { padding:0 0 clamp(88px,10vw,140px); }
.biz-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.biz-card { position:relative; display:flex; align-items:flex-end; min-height:clamp(340px,34vw,480px); overflow:hidden; color:#fff; background:var(--navy); isolation:isolate; }
.biz-card img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.65,.3,1); }
.biz-card::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,rgba(6,26,48,.88),rgba(6,26,48,.15) 70%); transition:background .4s ease; }
.biz-card:hover img { transform:scale(1.06); }
.biz-card:hover::before { background:linear-gradient(0deg,rgba(11,42,74,.92),rgba(31,111,191,.35) 80%); }
.biz-body { width:100%; padding:clamp(28px,3.4vw,48px); }
.biz-body small { display:block; color:#8cc3ee; font-family:var(--en); font-size:12px; font-weight:700; letter-spacing:.24em; }
.biz-body h3 { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:8px 0 10px; font-size:clamp(24px,2.4vw,32px); font-weight:700; letter-spacing:.06em; }
.biz-body p { color:#e3ebf2; font-size:15px; }
.circle-arrow { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border:1px solid currentColor; border-radius:50%; font-size:18px; font-weight:400; transition:background .25s,color .25s,border-color .25s; }
.biz-card:hover .circle-arrow { background:#fff; color:var(--navy); border-color:#fff; }

.home-products { padding:clamp(88px,10vw,140px) 0; background:var(--gray); }
.product-tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2px; background:var(--line); border:1px solid var(--line); }
.product-tile { display:flex; flex-direction:column; min-height:280px; padding:36px 30px 30px; background:#fff; transition:background .25s ease,color .25s ease; }
.product-tile .num { color:var(--accent); font-family:var(--en); font-size:14px; font-weight:700; letter-spacing:.14em; }
.product-tile h3 { margin:20px 0 12px; color:var(--ink); font-size:20px; font-weight:700; line-height:1.6; }
.product-tile p { font-size:14px; line-height:1.9; }
.product-tile .circle-arrow { width:40px; height:40px; margin-top:auto; align-self:flex-end; color:var(--navy); }
.product-tile:hover { background:var(--navy); }
.product-tile:hover h3,.product-tile:hover p { color:#fff; }
.product-tile:hover .num { color:#8cc3ee; }
.product-tile:hover .circle-arrow { background:#fff; border-color:#fff; }
.product-tile.has-photo { padding:0; overflow:hidden; }
.product-tile-photo { aspect-ratio:4 / 3; overflow:hidden; background:var(--gray); }
.product-tile-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.product-tile:hover .product-tile-photo img { transform:scale(1.05); }
.product-tile-body { display:flex; flex:1; flex-direction:column; padding:26px 26px 24px; }
.product-tile-body h3 { margin-top:12px; }

.home-company { padding:clamp(88px,10vw,140px) 0; color:#fff; background:var(--navy); }
.facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 64px; border-top:1px solid #ffffff2e; border-bottom:1px solid #ffffff2e; }
.fact { padding:36px 28px 32px; }
.fact+.fact { border-left:1px solid #ffffff2e; }
.fact dt { color:#a9c4dc; font-size:13px; font-weight:500; letter-spacing:.14em; }
.fact dd { margin:10px 0 0; color:#fff; font-size:clamp(26px,2.6vw,36px); font-weight:700; line-height:1.35; letter-spacing:.04em; }
.fact dd small { margin-left:4px; font-size:15px; font-weight:500; }
.fact .fact-note { display:block; margin-top:6px; color:#a9c4dc; font-size:13px; font-weight:400; letter-spacing:.06em; }
.company-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.company-card { display:block; color:#fff; }
.company-card .story-image { aspect-ratio:1.6; background:#163a5e; }
.company-card h3 { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:22px 0 6px; font-size:20px; font-weight:700; letter-spacing:.06em; }
.company-card p { color:#c3d4e3; font-size:14px; }
.company-card:hover img { transform:scale(1.045); }
.company-card:hover .circle-arrow { background:#fff; color:var(--navy); border-color:#fff; }
.company-card .circle-arrow { width:40px; height:40px; }
.company-sublinks { display:flex; flex-wrap:wrap; gap:12px 36px; margin-top:44px; padding-top:28px; border-top:1px solid #ffffff2e; }
.company-sublinks a { color:#fff; font-size:15px; border-bottom:1px solid #8cc3ee; }
.company-sublinks a:hover { color:#8cc3ee; }
.home-company .image-note { margin-top:20px; color:#a9c4dc; }

.contact-hero { position:relative; padding:clamp(80px,9vw,120px) 0; color:#fff; background:var(--navy-deep); isolation:isolate; overflow:hidden; }
.contact-hero>img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.contact-hero::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(6,26,48,.92),rgba(6,26,48,.7)); }
.contact-hero-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px 64px; align-items:center; }
.contact-hero .section-title { margin-bottom:20px; }
.contact-hero p { color:#dbe6ef; }
.contact-actions { display:grid; gap:14px; justify-items:stretch; min-width:min(380px,100%); }
.contact-tel { display:block; padding:18px 28px; border:1px solid #ffffff66; color:#fff; text-align:center; }
.contact-tel small { display:block; color:#a9c4dc; font-size:12px; letter-spacing:.14em; }
.contact-tel strong { display:block; font-family:var(--en); font-size:30px; letter-spacing:.06em; line-height:1.4; }
.contact-tel:hover { background:#ffffff14; }
.contact-actions .solid-link { background:#fff; color:var(--navy); border-color:#fff; }
.contact-actions .solid-link:hover { background:var(--accent); color:#fff; border-color:var(--accent); }

/* Interior pages */
.crumbs { padding:18px 0; color:#6b7a88; font-size:12px; letter-spacing:.06em; }
.crumbs a { text-decoration:none; color:var(--navy); }
.crumbs a:hover { text-decoration:underline; }
.page-head,.company-main .page-head { padding:clamp(36px,5vw,64px) 0 clamp(32px,4vw,48px); border-bottom:0; }
.page-head .eyebrow,.company-main .page-head .eyebrow,body[data-page] .page-head .eyebrow { margin:0 0 14px; color:var(--navy); font-family:var(--en); font-size:clamp(38px,5.4vw,72px); font-weight:700; line-height:1.05; letter-spacing:.02em; }
.page-head h1,body[data-page="privacy"] .page-head h1 { display:flex; align-items:center; gap:14px; margin:0; font-family:var(--serif); font-size:17px; font-weight:600; line-height:1.6; letter-spacing:.12em; }
.page-head h1::before { content:""; width:28px; height:2px; background:var(--accent); }
.page-visual { margin-top:0; }
body:not(.company-family) .page-visual { max-width:none; width:100vw; margin-left:calc(50% - 50vw); }
body:not(.company-family) .page-visual-frame img { height:clamp(240px,30vw,440px); }
body[data-page="privacy"] .page-visual-frame img { height:clamp(180px,18vw,260px); }
.company-family .page-visual-frame img,body[data-page="company"] .page-visual img { height:clamp(220px,24vw,320px); aspect-ratio:auto; }
.page-visual figcaption { padding-inline:max(20px,calc((100vw - 1240px)/2)); color:#7b8794; }
.page-visual-pair { display:grid; grid-template-columns:1fr 1fr; gap:4px; background:#fff; }
.org-banner svg { display:block; width:100%; height:clamp(220px,24vw,320px); }
.company-family .page-visual figcaption { padding-inline:0; }
.page-content { padding:clamp(48px,6vw,80px) 0 clamp(80px,9vw,120px); }
.intro { color:var(--ink); font-size:clamp(19px,1.8vw,24px); font-weight:600; line-height:1.9; }
.section-heading,.company-main .section-heading { position:relative; margin:0 0 32px; padding:0 0 16px; border-left:0; border-bottom:1px solid var(--line); color:var(--ink); font-size:clamp(21px,2vw,26px); font-weight:700; letter-spacing:.06em; }
.section-heading::after { content:""; position:absolute; left:0; bottom:-1px; width:72px; height:2px; background:var(--accent); }
.route { gap:clamp(28px,6vw,72px); background:var(--navy); color:#fff; border:0; }
.route>div:first-child { color:#fff; }
.route small { color:#a9c4dc; font-family:var(--en); }
.route-arrow { color:#8cc3ee; }
.trade { gap:24px; }
.trade>div { padding:32px; background:var(--gray); border-top:3px solid var(--accent); }
.trade>div+div { padding-left:32px; border-left:0; }
.trade>div+div h3 { color:var(--ink); }
.trade h3 { font-size:21px; }
.service-section { border-top:0; padding-top:24px; }
.product-list { border-bottom:0; display:grid; gap:16px; }
.product-item { padding:32px 36px; border:1px solid var(--line); background:#fff; transition:border-color .2s,box-shadow .2s; }
.product-item:hover { border-color:#b9cde0; box-shadow:0 8px 28px #0b2a4a10; }
.product-number,.product-item:nth-child(n) .product-number { color:var(--accent); font-family:var(--en); font-size:20px; font-weight:700; }
.product-item h2 { font-size:22px; font-weight:700; }
.category-jump { top:85px; border:1px solid var(--line); background:#fffffff2; }
.category-jump a { color:var(--navy); font-size:14px; }
.category-jump a+a { border-left:1px solid var(--line); }
.category-jump a:hover { background:var(--sky); }
.inquiry { padding:40px; background:var(--sky); border-left:4px solid var(--accent); }
dl>.company-row,.company-main .company-row { grid-template-columns:200px minmax(0,1fr); gap:0; padding:0; border-bottom:1px solid var(--line); }
.company-row:first-child { border-top:2px solid var(--navy); }
.company-row dt { padding:22px 24px; background:var(--gray); color:var(--ink); font-size:15px; }
.company-row dd { padding:22px 28px; }
.message { padding:44px; background:var(--gray); }
.contact-block { padding:32px 36px; margin-bottom:16px; border:1px solid var(--line); border-top:3px solid var(--navy); }
.contact-block h2 { font-size:19px; font-weight:700; }
.phone { color:var(--navy); font-family:var(--en); }
.mail { color:var(--navy); }
.policy h2 { font-size:20px; font-weight:700; color:var(--navy); }
.policy section { border-top-color:var(--line); }
.principle-list li,.value-list>div { border-color:var(--line); }
.value-list>div { grid-template-columns:170px minmax(0,1fr); }
.principle-number { color:var(--accent); font-family:var(--en); font-weight:700; }
.principle-list h3,.value-list dt { color:var(--navy); font-weight:700; }
.philosophy { padding:36px 40px; background:var(--navy); border:0; }
.philosophy .eyebrow { color:#8cc3ee; font-family:var(--en); letter-spacing:.24em; }
.philosophy h2 { color:#fff; font-weight:700; line-height:1.8; }
.location-panel { padding:32px 36px; background:var(--gray); border:0; }

/* Company information sections */
.sub-section { margin-top:72px; }
.message+.sub-section { margin-top:72px; }
.lead-text { margin-bottom:28px; }
.note-text { margin-top:14px; color:#6b7a88; font-size:13px; }
.approach-intro p+p { margin-top:18px; }
.message p+p:not(.signature) { margin-top:16px; }
.info-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.info-card { display:block; padding:28px 30px; border:1px solid var(--line); border-top:3px solid var(--navy); transition:border-color .2s,box-shadow .2s; }
.info-card small { color:var(--accent); font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.2em; }
.info-card h3 { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:6px 0 10px; color:var(--ink); font-size:20px; font-weight:700; }
.info-card p { font-size:15px; }
.info-card .circle-arrow { width:38px; height:38px; color:var(--navy); font-size:15px; }
.info-card:hover { border-color:#b9cde0; border-top-color:var(--accent); box-shadow:0 8px 28px #0b2a4a10; }
.info-card:hover .circle-arrow { background:var(--navy); color:#fff; border-color:var(--navy); }
.principle-detail { margin-top:10px; color:#5a6773; font-size:15px; line-height:2; }
.org-chart { padding:40px 24px; background:var(--gray); text-align:center; }
.org-top { display:inline-block; position:relative; min-width:220px; padding:16px 28px; color:#fff; background:var(--navy); font-weight:700; letter-spacing:.1em; }
.org-top::after { content:""; position:absolute; left:50%; top:100%; width:1px; height:28px; background:#9fb1c3; }
.org-branches { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:56px 0 0; padding:0; list-style:none; }
.org-branches::before { content:""; position:absolute; top:-28px; left:calc(100% / 6); right:calc(100% / 6); height:1px; background:#9fb1c3; }
.org-branches li { position:relative; padding:20px 14px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--accent); }
.org-branches li::before { content:""; position:absolute; left:50%; top:-31px; width:1px; height:28px; background:#9fb1c3; }
.org-branches strong { display:block; color:var(--navy); font-size:17px; }
.org-branches span { display:block; margin-top:6px; color:var(--body); font-size:13px; line-height:1.8; }
.flow-list { margin:0; padding:0; list-style:none; counter-reset:none; }
.flow-list li { position:relative; display:grid; grid-template-columns:120px minmax(0,1fr); gap:24px; padding:24px 0 24px; border-bottom:1px solid var(--line); }
.flow-list li:first-child { border-top:1px solid var(--line); }
.flow-step { display:grid; place-items:center; height:44px; color:#fff; background:var(--navy); font-family:var(--en); font-size:12px; font-weight:700; letter-spacing:.14em; }
.flow-list li:last-child .flow-step { background:var(--accent); }
.flow-list h3 { margin:0 0 4px; color:var(--ink); font-size:18px; font-weight:700; line-height:1.6; }
.flow-list p { font-size:15px; }
.service-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.service-card { padding:28px 26px; background:var(--gray); border-top:3px solid var(--accent); }
.service-card small { color:var(--accent); font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.18em; }
.service-card h3 { margin:6px 0 12px; color:var(--ink); font-size:19px; font-weight:700; line-height:1.6; }
.service-card p { font-size:14px; line-height:1.95; }
.sub-heading { margin:48px 0 18px; color:var(--navy); font-size:19px; font-weight:700; }
.feature-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.feature-list li { position:relative; padding:20px 0 20px 34px; border-bottom:1px solid var(--line); color:var(--body); font-size:14px; }
.feature-list li::before { content:"✓"; position:absolute; left:0; top:20px; display:grid; place-items:center; width:22px; height:22px; color:#fff; background:var(--accent); border-radius:50%; font-size:12px; line-height:1; }
.feature-list strong { display:block; margin-bottom:2px; color:var(--ink); font-size:16px; }
.trade-map { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:clamp(16px,3vw,40px); padding:clamp(36px,5vw,56px) clamp(24px,5vw,64px); overflow:hidden; color:#fff; background:linear-gradient(120deg,rgba(6,26,48,.94),rgba(11,42,74,.86)),url("assets/port-dawn.jpg") center / cover; isolation:isolate; }
.trade-map::before { content:""; position:absolute; z-index:-1; inset:0; background-image:radial-gradient(#ffffff1f 1px,transparent 1px); background-size:18px 18px; }
.trade-node { display:grid; justify-items:center; gap:4px; text-align:center; }
.trade-node-mark { display:grid; place-items:center; width:clamp(64px,7vw,88px); aspect-ratio:1; margin-bottom:10px; border:1px solid #ffffff59; border-radius:50%; background:#ffffff14; box-shadow:0 0 0 8px #ffffff0a; font-size:clamp(24px,2.6vw,32px); font-weight:700; }
.trade-node strong { font-size:clamp(20px,2vw,26px); letter-spacing:.12em; line-height:1.4; }
.trade-node small { color:#8cc3ee; font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.24em; }
.trade-lanes { display:grid; gap:22px; }
.trade-lane { display:grid; gap:8px; }
.trade-lane.is-import { gap:40px; }
.trade-lane.is-export { gap:26px; margin-top:20px; }
.trade-lane-label { color:#cfe0ee; font-family:var(--en); font-size:12px; font-weight:700; letter-spacing:.16em; text-align:center; }
.trade-lane-line { position:relative; display:block; height:2px; background:linear-gradient(90deg,#8cc3ee66,#8cc3ee); }
.is-export .trade-lane-line { background:linear-gradient(270deg,#ffffff66,#fff); }
.trade-lane-line::after { content:""; position:absolute; top:50%; width:10px; height:10px; border-top:2px solid; border-right:2px solid; transform:translateY(-50%) rotate(45deg); }
.is-import .trade-lane-line::after { right:0; color:#8cc3ee; }
.is-export .trade-lane-line::after { left:0; color:#fff; transform:translateY(-50%) rotate(-135deg); }
/* Each lane alternates ship and plane: each vehicle crosses during one half of a 14s cycle. */
.trade-lane-line i { position:absolute; opacity:0; animation:lane-right 14s linear infinite; }
.trade-lane-line i svg { display:block; width:100%; height:100%; overflow:visible; }
.lane-ship { --w:46px; bottom:1px; width:46px; height:32px; }
.lane-plane { --w:36px; top:-18px; width:36px; height:36px; }
.lane-ship svg { animation:ship-bob 1.6s ease-in-out infinite; transform-origin:50% 100%; }
.lane-plane svg { animation:plane-sway 2.2s ease-in-out infinite; filter:drop-shadow(0 0 6px #8cc3eeaa); }
.is-import .lane-plane { transform:scaleX(-1); animation-delay:-7s; }
.is-export .trade-lane-line i { animation-name:lane-left; }
.is-export .lane-ship { transform:scaleX(-1); animation-delay:-7s; }
@keyframes lane-right { 0% { left:0; opacity:0; } 3% { opacity:1; } 47% { opacity:1; } 50% { left:calc(100% - var(--w)); opacity:0; } 100% { left:calc(100% - var(--w)); opacity:0; } }
@keyframes lane-left { 0% { left:calc(100% - var(--w)); opacity:0; } 3% { opacity:1; } 47% { opacity:1; } 50% { left:0; opacity:0; } 100% { left:0; opacity:0; } }
@keyframes ship-bob { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(2deg); } }
@keyframes plane-sway { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(-4deg); } }
.biz-jump { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0 0; }
.biz-jump a { position:relative; display:grid; gap:2px; padding:20px 20px 18px; border:1px solid var(--line); background:#fff; transition:border-color .2s; }
.biz-jump-num { color:#7b8794; font-family:var(--en); font-size:12px; font-weight:600; letter-spacing:.1em; }
.biz-jump small { margin-top:8px; color:#9aa6b2; font-family:var(--en); font-size:10px; font-weight:600; letter-spacing:.2em; }
.biz-jump strong { color:var(--ink); font-size:15px; font-weight:600; line-height:1.5; }
.biz-jump-arrow { position:absolute; right:16px; top:16px; width:28px; height:28px; border:1px solid var(--line); border-radius:50%; color:#6f8396; transition:border-color .2s,color .2s; }
.biz-jump-arrow svg { position:absolute; top:50%; left:50%; width:12px; height:12px; transform:translate(-50%,-50%); }
.biz-jump a:hover { border-color:#9fb1c3; }
.biz-jump a:hover .biz-jump-arrow { border-color:var(--navy); color:var(--navy); }
body[data-page="business"] .trade { margin-top:40px; }
body[data-page="business"] .service-section { margin-top:64px; padding-top:0; }
body[data-page="business"] .flow-list li { grid-template-columns:64px minmax(0,1fr); }
.product-jump { grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 8px; }
.product-cat { margin-top:80px; }
.cat-head { display:grid; grid-template-columns:auto minmax(0,1fr); gap:24px; align-items:start; margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.cat-num { color:var(--navy); font-family:var(--en); font-size:clamp(40px,4.4vw,56px); font-weight:700; line-height:1; letter-spacing:.02em; }
.cat-head small { color:var(--accent); font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.2em; }
.cat-head h2 { margin:2px 0 6px; color:var(--ink); font-size:clamp(22px,2.2vw,28px); font-weight:700; letter-spacing:.06em; line-height:1.5; }
.cat-head p { font-size:15px; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.product-card { display:flex; flex-direction:column; padding:28px 28px 26px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy); }
.product-card h3 { margin:0 0 10px; color:var(--ink); font-size:19px; font-weight:700; line-height:1.55; }
.product-card>p { font-size:14px; line-height:1.95; }
.spec { display:grid; gap:0; margin-top:18px; border-top:1px solid var(--line); }
.spec>div { display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.7; }
.spec dt { color:#6b7a88; font-weight:500; }
.spec dd { color:var(--ink); font-weight:600; }
.tag-list { display:flex; flex-wrap:wrap; gap:6px; margin:16px 0 0; padding:0; list-style:none; }
.tag-list li { padding:3px 10px; color:var(--navy); background:var(--sky); font-size:12px; line-height:1.8; }
body[data-page="products"] .note-text,body[data-page="product"] .note-text { margin-top:48px; }
body[data-page="products"] .inquiry,body[data-page="product"] .inquiry { margin-top:16px; }

/* Desktop mega menu (built by script.js) under the global navigation. */
.mega { position:absolute; top:100%; left:0; right:0; visibility:hidden; opacity:0; transform:translateY(-6px); background:#fff; border-top:1px solid var(--line); box-shadow:0 18px 32px #0b2a4a1f; transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s; }
.mega.is-open { visibility:visible; opacity:1; transform:none; transition:opacity .2s ease,transform .2s ease; }
.mega-inner { display:grid; grid-template-columns:280px minmax(0,1fr); gap:56px; padding:40px 0 44px; }
.mega-title .en { display:block; color:var(--navy); font-family:var(--en); font-size:34px; font-weight:700; line-height:1.1; letter-spacing:.02em; }
.mega-title a { display:inline-flex; align-items:center; gap:10px; margin-top:14px; color:var(--ink); font-size:14px; font-weight:600; letter-spacing:.08em; }
.mega-title a::before { content:""; width:24px; height:2px; background:var(--accent); }
.mega-title a:hover { color:var(--accent); }
.mega-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px; margin:0; padding:0; list-style:none; }
.mega-links a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 4px; border-bottom:1px solid var(--line); color:var(--ink); font-size:15px; font-weight:500; transition:color .2s,border-color .2s; }
.mega-links a::after { content:"→"; color:var(--accent); font-family:var(--en); transition:transform .2s; }
.mega-links a:hover { color:var(--accent); border-color:var(--accent); }
.mega-links a:hover::after { transform:translateX(4px); }

/* Back-to-top button (added by script.js). */
.to-top { position:fixed; right:24px; bottom:24px; z-index:30; display:grid; place-items:center; width:52px; height:52px; padding:0; background:var(--navy); color:#fff; border:1px solid #ffffff40; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s,background .2s; }
.to-top.is-visible { opacity:1; visibility:visible; transform:none; transition:opacity .25s ease,transform .25s ease,background .2s; }
.to-top:hover { background:var(--accent); }
.to-top svg { width:18px; height:18px; }

/* Contact band closing every inner page. */
.page-cta { margin-top:0; }

/* Product list: photo cards linking to each product page. */
.product-index { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.product-index a { display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--line); transition:border-color .2s,box-shadow .2s; }
.product-index a:hover { border-color:#9fb1c3; box-shadow:0 8px 28px #0b2a4a14; }
.product-index-img { display:block; aspect-ratio:1; overflow:hidden; background:var(--gray); }
.product-index-img img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.product-index a:hover .product-index-img img { transform:scale(1.04); }
.product-index-body { display:flex; flex-direction:column; gap:6px; padding:16px 16px 18px; border-top:3px solid var(--navy); }
.product-index-body strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; color:var(--ink); font-size:14px; font-weight:600; line-height:1.7; }
.product-index-body small { color:#7b8794; font-family:var(--en); font-size:11px; letter-spacing:.06em; word-break:break-all; }

/* Product page: gallery, summary and the full description. */
.product-detail { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start; padding:clamp(24px,3vw,40px) 0 0; }
.product-gallery-main { background:var(--gray); border:1px solid var(--line); }
.product-gallery-main img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.product-gallery-thumbs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:10px 0 0; padding:0; list-style:none; }
.product-gallery-thumbs button { display:block; width:100%; padding:0; background:#fff; border:1px solid var(--line); cursor:pointer; opacity:.7; transition:opacity .2s,border-color .2s; }
.product-gallery-thumbs button:hover,.product-gallery-thumbs button[aria-current="true"] { opacity:1; border-color:var(--navy); }
.product-gallery-thumbs img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.product-summary .eyebrow { margin:0 0 10px; color:var(--accent); font-family:var(--en); font-size:12px; font-weight:700; letter-spacing:.2em; }
.product-summary h1 { margin:0; color:var(--ink); font-size:clamp(20px,2vw,26px); font-weight:700; line-height:1.6; letter-spacing:.04em; }
.product-model { margin:16px 0 0; padding:10px 0; border-block:1px solid var(--line); color:var(--body); font-size:14px; }
.product-summary-actions { display:grid; gap:12px; margin-top:28px; }
.product-summary-actions .solid-link { justify-content:space-between; }
.product-desc { margin-top:clamp(56px,7vw,96px); color:var(--body); font-size:15px; line-height:1.95; }
.product-desc h3 { margin:48px 0 16px; padding-left:14px; border-left:3px solid var(--accent); color:var(--ink); font-size:clamp(18px,1.7vw,21px); font-weight:700; line-height:1.6; }
.product-desc p { margin:0 0 14px; }
.product-desc img { display:block; max-width:100%; height:auto; margin:20px auto; }
.product-desc table { width:100%; margin:20px 0 28px; border-collapse:collapse; font-size:14px; line-height:1.8; }
.product-desc th,.product-desc td { padding:10px 14px; border:1px solid var(--line); vertical-align:top; text-align:left; }
.product-desc th { background:var(--gray); color:var(--ink); font-weight:600; }
.product-desc td p,.product-desc th p { margin:0; }
.product-desc td img,.product-desc th img { margin:8px auto; }

/* Rewritten product descriptions: lead, feature cards, photo grid. */
.product-desc .desc-lead { margin:8px 0 8px; color:var(--ink); font-size:clamp(16px,1.5vw,18px); line-height:2; }
.desc-features { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0; padding:0; list-style:none; }
.desc-features li { display:grid; gap:8px; padding:22px 24px; background:var(--gray); border-top:3px solid var(--navy); }
.desc-features strong { color:var(--navy); font-size:17px; font-weight:700; letter-spacing:.04em; }
.desc-features span { font-size:14px; line-height:1.9; }
.desc-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0 8px; }
.product-desc .desc-gallery img { width:100%; height:100%; aspect-ratio:4 / 3; margin:0; object-fit:cover; }
.product-desc .desc-gallery.is-natural { align-items:start; }
.product-desc .desc-gallery.is-natural img { height:auto; aspect-ratio:auto; object-fit:contain; }
.desc-list { margin:0 0 14px; padding-left:1.4em; }
.desc-list li { margin-bottom:8px; }
.product-desc .desc-note { color:#6b7a88; font-size:13px; }
.product-desc .desc-link a { color:var(--accent); font-weight:600; border-bottom:1px solid currentColor; }
.product-desc h4 { margin:0 0 8px; color:var(--ink); font-size:clamp(17px,1.6vw,20px); font-weight:700; line-height:1.6; }
.desc-badges { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:28px 0 8px; padding:0; list-style:none; background:var(--line); border:1px solid var(--line); }
.desc-badges li { display:grid; gap:4px; padding:20px 12px; background:#fff; text-align:center; }
.desc-badges strong { color:var(--navy); font-family:var(--en); font-size:clamp(20px,2.2vw,28px); font-weight:700; line-height:1.3; }
.desc-badges span { color:#6b7a88; font-size:12px; letter-spacing:.08em; }
.desc-rows { display:grid; gap:20px; }
.desc-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(20px,3vw,40px); align-items:center; padding:20px; background:var(--gray); }
.desc-row:nth-child(even) img { order:2; }
.product-desc .desc-row img { width:100%; height:auto; margin:0; background:#fff; }
.desc-row-num { display:inline-block; margin-bottom:10px; padding:2px 10px; background:var(--navy); color:#fff; font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.16em; }
.desc-row p { margin:0; }
.desc-steps { counter-reset:step; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0 20px; padding:0; list-style:none; }
.desc-steps li { counter-increment:step; position:relative; display:grid; align-content:start; gap:8px; padding:52px 18px 20px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--accent); }
.desc-steps li::before { content:"STEP " counter(step); position:absolute; top:16px; left:18px; color:var(--accent); font-family:var(--en); font-size:12px; font-weight:700; letter-spacing:.14em; }
.desc-steps strong { color:var(--ink); font-size:15px; line-height:1.6; }
.desc-steps span { font-size:13px; line-height:1.8; }
.desc-faq { display:grid; gap:8px; }
.desc-faq details { border:1px solid var(--line); background:#fff; }
.desc-faq summary { position:relative; padding:16px 48px 16px 52px; color:var(--ink); font-weight:600; cursor:pointer; list-style:none; }
.desc-faq summary::-webkit-details-marker { display:none; }
.desc-faq summary::before { content:"Q"; position:absolute; left:18px; top:14px; color:var(--accent); font-family:var(--en); font-size:18px; font-weight:700; }
.desc-faq summary::after { content:"+"; position:absolute; right:20px; top:12px; color:var(--navy); font-size:22px; line-height:1.2; }
.desc-faq details[open] summary::after { content:"−"; }
.desc-faq details p { margin:0; padding:0 20px 18px 52px; }
.desc-more { margin-top:40px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.desc-more summary { padding:18px 4px; color:var(--navy); font-weight:600; cursor:pointer; }
.desc-more[open] { padding-bottom:12px; }
.desc-more h4 { margin-top:20px; }
.map-embed { margin-top:20px; aspect-ratio:16 / 9; background:var(--gray); }
.map-embed iframe { display:block; width:100%; height:100%; border:0; }

/* Logo placements: footer, greeting signature and faint watermarks. */
.foot-brand { display:flex; align-items:center; gap:14px; }
.foot-mark { width:44px; height:44px; flex-shrink:0; }
.signature-mark { display:block; width:40px; height:40px; margin:0 0 10px auto; }
.page-head,.home-message,.home-company { position:relative; }
.page-head::after,.home-message::after,.home-company::after { content:""; position:absolute; z-index:0; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath d='M5 13h8v17c7-8 16-8 24 0V13h8v24c-13-10-24-10-40 0z' fill='%230b2a4a'/%3E%3Cpath d='M5 40q20-15 40 0v5q-20-13-40 0z' fill='%231f6fbf'/%3E%3C/svg%3E") center / contain no-repeat; }
.page-head::after { right:0; top:50%; width:clamp(120px,16vw,200px); aspect-ratio:1; transform:translateY(-50%); opacity:.06; }
.home-message { overflow:hidden; }
.home-message::after { right:-60px; bottom:-80px; width:min(46vw,520px); aspect-ratio:1; opacity:.04; }
.home-company { overflow:hidden; }
.home-company::after { right:-80px; top:-60px; width:min(50vw,560px); aspect-ratio:1; opacity:.05; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath d='M5 13h8v17c7-8 16-8 24 0V13h8v24c-13-10-24-10-40 0z' fill='%23fff'/%3E%3Cpath d='M5 40q20-15 40 0v5q-20-13-40 0z' fill='%23fff'/%3E%3C/svg%3E"); }
.page-head>*,.home-message>.wrap,.home-company>.wrap { position:relative; z-index:1; }

/* Company side menu */
.company-aside { top:110px; }
.company-menu-title { padding:18px 22px; color:#fff; background:var(--navy); border:0; font-size:16px; letter-spacing:.1em; }
.company-menu { border:1px solid var(--line); border-top:0; }
.company-menu a { padding:16px 22px; border-color:var(--line); color:var(--body); font-size:15px; }
.company-menu a:last-child { border-bottom:0; }
.company-menu a span { color:var(--accent); font-size:15px; }
.company-menu a:hover { background:var(--sky); color:var(--navy); }
.company-menu a[aria-current="page"] { padding-left:22px; color:var(--navy); background:var(--sky); }
.company-menu a[aria-current="page"]::before { left:0; top:0; height:100%; width:3px; background:var(--accent); }
.company-menu a[aria-current="page"] span { color:var(--accent); }

/* Footer */
footer { padding:72px 0 28px; background:var(--navy-deep); border-top:0; }
.foot-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:48px; }
.foot-brand { display:block; font-size:20px; letter-spacing:.08em; line-height:1.5; }
.foot-brand small { display:block; margin-top:4px; color:#a9c4dc; font-family:var(--en); font-size:11px; font-weight:500; letter-spacing:.22em; }
.foot-address { margin-top:24px; color:#c3d4e3; font-size:13px; line-height:2; }
.foot-tel { margin-top:6px; color:#c3d4e3; font-size:13px; }
.foot-sitemap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.foot-head { margin:0 0 12px; padding-bottom:10px; color:#fff; border-bottom:1px solid #ffffff2e; font-size:14px; font-weight:700; letter-spacing:.1em; }
.foot-sitemap a { display:block; padding:5px 0; color:#c3d4e3; font-size:13px; }
.foot-sitemap a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.copyright { display:flex; justify-content:space-between; gap:16px; margin-top:56px; padding-top:22px; border-top-color:#ffffff2e; color:#8aa5bd; font-family:var(--en); font-size:11px; letter-spacing:.14em; }

.motion-ready [data-reveal] { transform:translateY(28px); }

@media (min-width:961px) and (max-width:1120px) {
  .header-inner { min-height:76px; } .nav { gap:20px; } .nav a { min-height:76px; font-size:14px; } .nav a[href="contact.html"] { min-height:44px; padding-inline:16px; }
  .product-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:960px) {
  .wrap { width:calc(100% - 48px); }
  .nav a { min-height:54px; font-size:16px; }
  .nav a[href="contact.html"] { min-height:52px; }
  .js .menu { border-radius:0; border-color:var(--line); }
  .js .nav { padding-inline:24px; }
  .js body[data-page="index"] header:not(.is-solid) .nav a { color:var(--ink); }
  .hero { min-height:560px; }
  .hero-scroll { display:none; }
  .home-message-inner { grid-template-columns:1fr; gap:24px; }
  .biz-grid { grid-template-columns:1fr; }
  .product-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fact:nth-child(3) { border-left:0; }
  .fact:nth-child(n+3) { border-top:1px solid #ffffff2e; }
  .company-cards { grid-template-columns:1fr 1fr; }
  .contact-hero-inner { grid-template-columns:1fr; }
  .foot-main { grid-template-columns:1fr; gap:36px; }
  .service-cards { grid-template-columns:1fr; }
  .biz-jump,.product-jump { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-jump a:last-child { grid-column:1 / -1; }
  .product-index { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .product-detail { grid-template-columns:minmax(0,1fr); }
  .category-jump { top:84px; }
  .company-menu { border-top:1px solid var(--line); }
  .company-menu-title { display:none; }
  .company-menu a[aria-current="page"] { color:var(--navy); border-bottom-color:var(--accent); }
}
@media (max-width:600px) {
  body { font-size:15px; } .wrap { width:calc(100% - 40px); }
  .hero { height:100svh; min-height:540px; }
  .hero-copy { padding-bottom:120px; }
  .hero h1 { font-size:clamp(32px,9vw,44px); line-height:1.5; }
  .hero p:not(.eyebrow) { font-size:15px; }
  .hero-controls { left:20px; bottom:24px; }
  .section-title,.section-row { margin-bottom:32px; }
  .section-title .en,.page-head .eyebrow,body[data-page] .page-head .eyebrow { font-size:clamp(34px,10vw,44px); }
  body[data-page="privacy"] .page-head .eyebrow { font-size:clamp(28px,8.6vw,40px); }
  .home-message h3 br,body[data-page="products"] .intro br { display:none; }
  .home-message p { font-size:15px; }
  .biz-card { min-height:320px; }
  .product-tiles { grid-template-columns:1fr; }
  .product-tile { min-height:0; padding:28px 24px; }
  .product-tile .circle-arrow { margin-top:16px; }
  .product-tile.has-photo { padding:0; }
  .product-tile-body { padding:22px 20px 20px; }
  .to-top { right:16px; bottom:16px; width:46px; height:46px; }
  .facts { grid-template-columns:1fr 1fr; margin-bottom:44px; }
  .fact { padding:24px 16px; }
  .fact dd { font-size:22px; }
  .company-cards { grid-template-columns:1fr; gap:32px; }
  .contact-actions { min-width:0; }
  .contact-tel strong { font-size:26px; }
  .page-content { padding:36px 0 64px; }
  .trade>div,.trade>div+div { padding:24px; border-top:3px solid var(--accent); }
  .product-item { padding:24px 20px; }
  dl>.company-row,.company-main .company-row { grid-template-columns:1fr; padding:0; }
  .company-row dt { padding:12px 18px; }
  .company-row dd { padding:14px 18px 18px; }
  .message,.philosophy,.location-panel,.inquiry { padding:26px 22px; }
  .contact-block { padding:24px 20px; }
  .foot-sitemap { grid-template-columns:1fr 1fr; gap:28px 20px; }
  .page-head::after { width:96px; opacity:.05; }
  .foot-mark { width:38px; height:38px; }
  .foot-sitemap>div:first-child { grid-column:1 / -1; }
  .copyright { flex-direction:column; gap:6px; }
  .company-menu a { flex-basis:50%; }
  .sub-section,.message+.sub-section { margin-top:52px; }
  .value-list>div { grid-template-columns:1fr; }
  .info-cards { grid-template-columns:1fr; }
  .info-card { padding:22px 20px; }
  .org-chart { padding:28px 16px; }
  .org-top::after,.org-branches::before,.org-branches li::before { display:none; }
  .org-branches { grid-template-columns:1fr; gap:12px; margin-top:16px; }
  .flow-list li { grid-template-columns:1fr; gap:10px; }
  .flow-step { justify-self:start; padding:0 16px; height:32px; }
  .map-embed { aspect-ratio:4 / 3; }
  .service-cards,.feature-list,.product-grid { grid-template-columns:1fr; }
  .product-cat { margin-top:56px; }
  .cat-head { gap:14px; }
  .product-card { padding:22px 20px; }
  .spec>div { grid-template-columns:84px minmax(0,1fr); }
  .product-index { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .product-index-body { padding:12px 12px 14px; }
  .product-index-body strong { font-size:13px; }
  .product-gallery-thumbs { grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
  .product-desc { font-size:14px; }
  .product-desc table { display:block; overflow-x:auto; }
  .desc-features { grid-template-columns:1fr; }
  .desc-badges { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .desc-row { grid-template-columns:1fr; padding:14px; }
  .desc-row:nth-child(even) img { order:0; }
  .desc-steps { grid-template-columns:1fr; }
  .desc-faq summary { padding-left:44px; } .desc-faq summary::before { left:14px; } .desc-faq details p { padding-left:44px; }
  .desc-features li { padding:18px 18px; }
  .product-desc th,.product-desc td { padding:8px 10px; }
  .trade-map { gap:12px; padding:32px 16px; }
  .trade-lanes { gap:16px; }
  .trade-lane-label { font-size:10px; letter-spacing:.08em; }
  .trade-node-mark { width:56px; box-shadow:0 0 0 5px #ffffff0a; }
  .trade-node strong { font-size:17px; }
  .biz-jump { gap:8px; }
  .biz-jump a { padding:16px 14px 14px; }
  .biz-jump strong { font-size:14px; }
  .biz-jump-arrow { right:10px; top:12px; width:26px; height:26px; }
  .service-card { padding:22px 20px; }
  body[data-page="business"] .flow-list li { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-scroll::after,.trade-lane-line i,.trade-lane-line i svg { animation:none; }
  .trade-lane-line i { left:calc(50% - var(--w) / 2); opacity:1; }
  .is-import .lane-plane,.is-export .lane-ship { display:none; }
  .biz-card img,.company-card img { transition:none; }
  .biz-card:hover img,.company-card:hover img { transform:none; }
}

/* 2026-10-27: enterprise reference study — clearer hierarchy and product discovery. */
:root { --accent:#176c92; --sky:#edf4f7; --line:#dce3e7; }
html { scroll-padding-top:110px; }
body { line-height:1.9; }
[hidden] { display:none !important; }
.wrap { width:min(1240px,calc(100% - 96px)); }
.header-inner { gap:24px; }
.brand small { letter-spacing:.16em; }
.nav { gap:30px; }
.nav a { font-size:14px; }
.nav a[href="contact.html"] { border-radius:2px; }
.foot-brand { display:flex; align-items:center; white-space:normal; }
.foot-brand span { min-width:0; }
.foot-mark { flex:0 0 42px; }
.hero { height:88svh; min-height:650px; max-height:900px; }
.hero::before { background:linear-gradient(90deg,rgba(4,23,41,.77),rgba(4,23,41,.28) 70%,rgba(4,23,41,.12)); }
.hero .wrap { align-items:center; }
.hero-copy { max-width:900px; padding:90px 0 70px; }
.hero h1 { font-size:clamp(42px,5.8vw,78px); line-height:1.45; font-weight:600; letter-spacing:.08em; margin:24px 0; }
.hero .eyebrow { font-size:12px; letter-spacing:.2em; }
.hero p:not(.eyebrow) { font-size:17px; line-height:2; }
.hero-actions { gap:24px; }
.hero .hero-actions { margin-top:34px; }
.hero .solid-link { min-height:56px; font-size:14px; }
.hero-controls { right:max(48px,calc((100% - 1240px)/2)); bottom:28px; gap:10px; }
.carousel-button { min-width:42px; min-height:42px; width:42px; height:42px; }
.hero-scroll { bottom:26px; left:max(48px,calc((100% - 1240px)/2)); }
.quiet-link { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:44px; color:var(--navy); font-size:14px; font-weight:600; border-bottom:1px solid #a9b8c3; text-decoration:none; }
.quiet-link:hover { color:var(--accent); border-color:var(--accent); }
.section-title { margin-bottom:32px; }
.section-title .en { color:var(--accent); font-size:12px; line-height:1.4; font-weight:700; letter-spacing:.19em; }
.section-title h2 { display:block; margin-top:15px; font-size:clamp(25px,2.8vw,36px); font-weight:600; line-height:1.65; letter-spacing:.055em; }
.section-title h2::before { display:none; }
.section-title.is-light .en { color:#9dc8da; }
.section-row { align-items:flex-end; margin-bottom:40px; }
.section-row>.quiet-link { margin-bottom:8px; }
.mini-label { display:block; color:var(--accent); font:700 11px/1.5 var(--en); letter-spacing:.17em; }
.home-gateway { background:#fff; border-bottom:1px solid var(--line); }
.gateway-grid { display:grid; grid-template-columns:1fr 1fr; }
.gateway-grid>a { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:12px 24px; padding:34px 40px 34px 0; color:var(--navy); }
.gateway-grid>a+a { padding-left:40px; border-left:1px solid var(--line); }
.gateway-number { grid-column:1; color:var(--accent); font:600 10px/1.5 var(--en); letter-spacing:.16em; }
.gateway-copy { grid-column:1; }
.gateway-copy strong { display:block; font-size:20px; font-weight:600; line-height:1.6; }
.gateway-copy small { display:block; margin-top:6px; color:#627280; font-size:12px; }
.link-arrow { display:grid; place-items:center; grid-column:2; grid-row:1 / 3; align-self:center; width:40px; height:40px; border:1px solid #b9c8d0; border-radius:50%; transition:background .2s,color .2s; }
.gateway-grid>a:hover .link-arrow { background:var(--navy); border-color:var(--navy); color:#fff; }
.home-business { padding:105px 0 96px; }
.biz-grid { gap:28px; }
.biz-card { min-height:390px; border-radius:2px; }
.biz-body { padding:36px; }
.biz-body h3 { margin:14px 0; font-size:29px; font-weight:600; }
.biz-body small { color:#c2e0e9; font-size:10px; letter-spacing:.18em; }
.biz-body p { font-size:14px; }
.biz-card-detail { display:block; margin-top:8px; color:#c4d3de; font-size:12px; }
.business-related { display:flex; align-items:center; flex-wrap:wrap; gap:20px 32px; padding-top:28px; }
.business-related>span { color:#6c7b86; font-size:12px; }
.business-related a { display:flex; align-items:center; gap:28px; min-height:36px; font-size:13px; color:var(--navy); }
.business-related a:hover { text-decoration:underline; text-underline-offset:5px; }
.home-products { padding:100px 0; background:#f3f6f7; }
.product-tiles { gap:18px; border:0; background:none; }
.product-tile.has-photo { border:1px solid #e0e6e9; background:#fff; border-radius:2px; transition:box-shadow .25s,border-color .25s; }
.product-tile.has-photo:hover { background:#fff; border-color:#a0bbc8; box-shadow:0 10px 28px #0b2a4a0c; }
.product-tile-photo { aspect-ratio:1.2; background:#fff; border-bottom:1px solid #e8edef; }
.product-tile:nth-child(2) .product-tile-photo img,.product-tile:nth-child(3) .product-tile-photo img { object-fit:contain; padding:12px; }
.product-tile-body { padding:22px; }
.tile-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.tile-meta small { color:#6f818d; font:500 9px/1.5 var(--en); letter-spacing:.12em; }
.product-tile .num { color:var(--accent); font-size:11px; }
.product-tile-body h3 { font-size:19px; margin:12px 0 8px; }
.product-tile-body p { font-size:12px; color:#64737e; }
.product-tile:hover h3 { color:var(--navy); }
.product-tile:hover p { color:#64737e; }
.product-tile:hover .num { color:var(--accent); }
.product-tile-more { display:flex; align-items:center; justify-content:space-between; margin-top:24px; padding-top:14px; border-top:1px solid var(--line); color:var(--navy); font-size:12px; font-weight:600; }
.catalogue-footnote { margin-top:24px; color:#627280; font-size:12px; }
.home-message { padding:105px 0; }
.home-message-inner { grid-template-columns:4fr 7fr; gap:80px; }
.home-message h3 { font-size:26px; }
.home-message p { font-size:14px; line-height:2.2; }
.home-message .hero-actions { margin-top:28px; }
.home-message .solid-link { min-height:50px; font-size:13px; padding:12px 22px; }
.home-message .text-link { font-size:13px; }
.home-company { padding:96px 0; }
.home-company .section-title .en { color:#9dc8da; }
.company-cards { gap:28px; }
.company-card h3 { font-size:19px; }
.contact-hero { padding:82px 0; }
.contact-hero .section-title h2 { font-size:clamp(25px,2.6vw,34px); }
.contact-hero p { font-size:14px; }
.contact-tel { padding:16px 24px; }
.contact-tel strong { font-size:27px; }
.contact-actions { min-width:330px; }
.solid-link { border-radius:2px; font-size:14px; }
/* Interior pages put the Japanese subject ahead of the decorative English label. */
.page-head,.company-main .page-head { padding:38px 0 32px; }
.page-head .eyebrow,.company-main .page-head .eyebrow,body[data-page] .page-head .eyebrow { font-size:11px; line-height:1.6; letter-spacing:.2em; color:var(--accent); margin-bottom:12px; }
.page-head h1,body[data-page="privacy"] .page-head h1 { display:block; font-size:clamp(28px,3vw,40px); font-weight:600; letter-spacing:.07em; }
.page-head h1::before { display:none; }
.page-head::after { width:100px; opacity:.035; }
.crumbs { font-size:11px; }
/* Catalogue. */
.catalogue-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:64px; padding:8px 0 42px; }
.catalogue-lead { margin:0 0 18px; color:var(--navy); font-size:clamp(25px,2.8vw,36px); font-weight:600; line-height:1.7; letter-spacing:.05em; }
.catalogue-intro p:not(.catalogue-lead) { font-size:14px; line-height:2; color:#61717d; }
.catalogue-intro-image { display:grid; grid-template-columns:1fr 1fr; gap:10px; height:220px; }
.catalogue-intro-image img { width:100%; height:100%; min-width:0; object-fit:cover; border-radius:2px; }
.catalogue-intro-image img+img { object-fit:contain; background:#f3f6f7; padding:10px; }
.catalogue-categories { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); margin:0 0 40px; }
.catalogue-categories>a { display:grid; grid-template-columns:24px minmax(0,1fr) 20px; align-items:center; gap:4px 14px; padding:22px 24px; color:var(--navy); }
.catalogue-categories>a+a { border-left:1px solid var(--line); }
.category-number { grid-row:1 / 3; color:var(--accent); font:500 12px var(--en); }
.catalogue-categories strong { font-size:15px; font-weight:600; }
.catalogue-categories small { grid-column:2; color:#73838e; font-size:11px; }
.catalogue-categories>a>span:last-child { grid-column:3; grid-row:1 / 3; }
.catalogue-categories>a:hover { background:var(--sky); }
.catalogue-search { background:#f2f5f6; padding:28px 32px 18px; border-radius:2px; scroll-margin-top:105px; }
.catalogue-search-top { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:22px; }
.catalogue-search h2 { font-size:18px; font-weight:600; color:var(--navy); margin:0; }
.catalogue-search-field { display:flex; align-items:center; gap:12px; width:min(450px,62%); padding:11px 16px; background:#fff; border:1px solid #bdcbd3; border-radius:2px; }
.catalogue-search-field svg { width:20px; height:20px; flex-shrink:0; color:#59717e; }
.catalogue-search-field input { min-width:0; width:100%; border:0; outline:0; color:var(--ink); background:transparent; font:inherit; font-size:14px; }
.catalogue-search-field:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.catalogue-search-field input::placeholder { color:#7c8991; }
.catalogue-filter-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.catalogue-filter-options { display:flex; flex-wrap:wrap; gap:8px; }
.catalogue-filter-options button { min-height:42px; border:1px solid #cbd6dc; background:#fff; color:var(--navy); font:inherit; font-size:12px; padding:9px 15px; cursor:pointer; border-radius:2px; }
.catalogue-filter-options button span { padding-left:10px; color:#6e818d; font:500 11px var(--en); }
.catalogue-filter-options button[aria-pressed="true"] { background:var(--navy); border-color:var(--navy); color:#fff; }
.catalogue-filter-options button[aria-pressed="true"] span { color:#c1d5e0; }
.filter-clear { border:0; background:none; text-decoration:underline; text-underline-offset:4px; padding:10px 0; color:#586c7a; font:inherit; font-size:12px; cursor:pointer; }
.search-result-status { font-size:12px; color:#647783; margin:18px 0 0; overflow-wrap:anywhere; }
.product-cat { margin:64px 0 0; scroll-margin-top:110px; }
.cat-head { grid-template-columns:auto minmax(0,1fr) auto; border-bottom:1px solid var(--line); padding-bottom:25px; margin-bottom:26px; align-items:flex-start; gap:22px; }
.cat-num { font-size:26px; color:#9bb4c1; font-weight:400; line-height:1.5; }
.cat-head small { font-size:10px; color:var(--accent); letter-spacing:.16em; }
.cat-head h2 { font-size:25px; font-weight:600; margin:6px 0 8px; }
.cat-head p { font-size:13px; color:#647581; }
.cat-count { margin-left:auto; color:var(--navy); font:400 30px/1.3 var(--en); text-align:right; }
.cat-count small { display:block; font-size:9px; letter-spacing:.12em; color:#718691; }
.product-index { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 20px; }
.product-index>li { min-width:0; }
.product-index a { border:1px solid #e1e7eb; border-radius:2px; overflow:hidden; }
.product-index-img { aspect-ratio:1.18; background:#fff; border-bottom:1px solid #e7ecef; }
.product-index-img img { object-fit:contain; padding:10px; }
.product-index-body { flex:1; gap:0; padding:20px 18px 16px; border:0; }
.product-index-body .product-card-category { font-size:10px; color:var(--accent); letter-spacing:.03em; margin-bottom:10px; }
.product-index-body strong { display:block; -webkit-line-clamp:unset; overflow:visible; font-size:15px; font-weight:600; line-height:1.7; }
.product-subtitle { display:block; font-size:12px; line-height:1.7; color:#617581; margin-top:7px; }
.product-card-model { display:block; margin-top:9px; }
.spec-chips { display:flex; flex-wrap:wrap; gap:5px; margin:16px 0 20px; }
.spec-chips>span { max-width:100%; overflow-wrap:anywhere; padding:3px 7px; background:#f0f4f6; color:#4f6674; font-size:10px; line-height:1.6; }
.product-card-link { display:flex; justify-content:space-between; align-items:center; gap:14px; border-top:1px solid var(--line); padding-top:12px; margin-top:auto; font-size:11px; color:var(--navy); font-weight:600; }
.product-index a:hover { box-shadow:0 8px 24px #0b2a4a09; border-color:#91b2c2; }
.catalogue-subheading { font-size:17px; color:var(--navy); font-weight:600; margin:36px 0 20px; scroll-margin-top:110px; }
.catalogue-empty { padding:55px 24px; text-align:center; border-bottom:1px solid var(--line); }
.catalogue-empty strong { display:block; color:var(--navy); font-size:18px; }
.catalogue-empty p { color:#627581; font-size:13px; margin:14px 0 24px; }
.catalogue-empty .solid-link { margin:auto; cursor:pointer; font:inherit; font-size:13px; }
.catalogue-help { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:36px 40px; background:#edf3f6; margin:64px 0 20px; }
.catalogue-help h2 { color:var(--navy); font-size:22px; font-weight:600; margin:8px 0; }
.catalogue-help p { font-size:13px; color:#617581; }
body[data-page="products"] main>.wrap { padding-bottom:65px; }
/* Product details. */
.product-detail { gap:64px; padding-top:28px; }
.product-gallery-main { border:1px solid #e1e7eb; background:#fff; }
.product-gallery-main img { object-fit:contain; }
.product-category-label { margin:0 0 16px; color:#70818d; font-size:12px; }
.product-summary .eyebrow { font-size:10px; letter-spacing:.15em; margin-bottom:6px; }
.product-summary h1 { font-size:clamp(24px,2.3vw,32px); font-weight:600; line-height:1.6; }
.product-summary-subtitle { margin-top:12px; color:#5e7481; font-size:16px; }
.product-model { font-size:12px; color:#70828d; margin-top:14px; overflow-wrap:anywhere; }
.product-key-specs { margin:28px 0 0; border-top:1px solid var(--line); }
.product-key-specs>div { display:grid; grid-template-columns:110px minmax(0,1fr); padding:12px 0; border-bottom:1px solid var(--line); gap:16px; font-size:13px; }
.product-key-specs dt { color:#74838d; }
.product-key-specs dd { color:var(--navy); margin:0; }
.product-spec-note { margin-top:12px; color:#7a8992; font-size:11px; }
.product-summary-actions { margin-top:25px; gap:13px; }
.product-summary-actions .quiet-link { justify-self:start; font-size:12px; }
.full-product-name { margin-top:24px; font-size:11px; color:#72818c; border-top:1px solid #e5eaee; padding-top:14px; }
.full-product-name summary { cursor:pointer; min-height:30px; }
.full-product-name p { padding-top:10px; overflow-wrap:anywhere; }
.product-detail-nav { display:flex; justify-content:space-between; gap:24px; margin-top:50px; padding:20px 0; border-block:1px solid var(--line); }
.product-detail-nav a { display:flex; justify-content:space-between; gap:40px; color:var(--navy); font-size:13px; }
.product-source-note { background:#f1f5f7; padding:22px 26px; border-left:2px solid #b2c7d2; margin-bottom:30px; }
.product-source-note strong { color:#456171; font-size:12px; }
.product-source-note p { margin:8px 0 0; font-size:12px; line-height:1.9; color:#697d89; }
.product-desc { margin-top:45px; }
.product-desc .section-heading { scroll-margin-top:110px; }
/* Contact. */
.contact-intro { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; margin:8px 0 40px; }
.contact-intro>.catalogue-lead { margin:0; }
.contact-intro>p:not(.catalogue-lead) { font-size:14px; color:#637783; line-height:2; }
.contact-methods { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-method { padding:32px 36px; border:1px solid var(--line); border-top:3px solid var(--navy); }
.contact-method h2 { color:var(--navy); font-size:18px; font-weight:600; margin:10px 0 18px; }
.contact-method .phone { display:inline-block; font-size:34px; line-height:1.5; }
.contact-method .mail { display:inline-flex; align-items:center; gap:20px; font-size:23px; line-height:1.7; overflow-wrap:anywhere; word-break:break-all; }
.contact-method p { margin-top:12px; font-size:12px; color:#6d7f8b; }
.inquiry-builder { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:70px; margin-top:70px; padding-top:45px; border-top:1px solid var(--line); }
.inquiry-builder-heading h2 { color:var(--navy); font-size:24px; font-weight:600; margin:14px 0; line-height:1.7; }
.inquiry-builder-heading p { color:#6d7f8b; font-size:13px; line-height:1.9; }
.inquiry-field { margin-bottom:25px; }
.inquiry-field>label { display:block; color:var(--navy); font-size:13px; font-weight:600; margin-bottom:10px; }
.inquiry-field>label span { font-size:10px; color:#7b8a93; font-weight:400; margin-left:8px; }
.inquiry-field select,.inquiry-field textarea { width:100%; max-width:100%; min-width:0; border:1px solid #bdcbd3; border-radius:2px; padding:14px 16px; color:var(--ink); background:#fff; font:inherit; font-size:14px; line-height:1.8; }
.inquiry-field select { text-overflow:ellipsis; }
.inquiry-field textarea { resize:vertical; min-height:130px; }
.inquiry-field textarea::placeholder { color:#8a969d; }
.selected-product-back { display:inline-flex; align-items:center; margin-top:10px; min-height:30px; color:var(--accent); font-size:12px; }
.inquiry-privacy { margin:0 0 20px; font-size:12px; color:#6c7f8b; }
.inquiry-privacy a { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.inquiry-email { display:flex; justify-content:space-between; width:100%; min-height:60px; }
.inquiry-note { margin-top:15px; font-size:11px; line-height:2; color:#75858e; }
.contact-address { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:32px; border-block:1px solid var(--line); padding:36px 0; margin-top:60px; }
.contact-address h2 { font-size:19px; font-weight:600; color:var(--navy); margin-top:10px; }
.contact-address p { font-size:13px; color:#637581; }
body[data-page="contact"] main>.wrap { padding-bottom:65px; }
@media (max-width:1100px) and (min-width:961px) {
  .nav { gap:17px; } .nav a { font-size:12px; } .nav a[href="contact.html"] { padding-inline:18px; }
  .brand strong { font-size:18px; } .brand small { font-size:8px; }
  .product-index { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .product-tiles { gap:12px; } .product-tile-body { padding:18px; }
  .tile-meta small { font-size:8px; }
}
@media (max-width:960px) {
  .mega { display:none; }
  .wrap { width:calc(100% - 48px); }
  .header-inner,.js .header-inner { gap:18px; }
  .brand { min-width:0; flex-shrink:1; }
  .brand strong { font-size:19px; }
  .brand small { font-size:9px; }
  .js .menu { flex-shrink:0; font-size:12px; min-width:66px; padding:8px 12px; }
  .hero { min-height:620px; height:82svh; }
  .hero-copy { padding:90px 0 80px; }
  .hero h1 { font-size:clamp(40px,6.5vw,62px); }
  .hero-controls { right:24px; }
  .gateway-grid>a { padding:27px 24px 27px 0; }
  .gateway-grid>a+a { padding-left:24px; }
  .gateway-copy strong { font-size:17px; }
  .gateway-copy small { font-size:11px; }
  .home-business,.home-products,.home-message,.home-company { padding:76px 0; }
  .biz-grid { grid-template-columns:1fr 1fr; gap:18px; }
  .biz-card { min-height:350px; }
  .biz-body { padding:24px; }
  .biz-body h3 { font-size:24px; }
  .biz-body p { font-size:12px; }
  .biz-card-detail { font-size:11px; }
  .circle-arrow { width:36px; height:36px; }
  .home-message-inner { grid-template-columns:1fr; gap:26px; }
  .home-message h3 { font-size:24px; }
  .product-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .home-message-inner .section-title { margin-bottom:0; }
  .product-index { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .catalogue-intro { gap:32px; }
  .catalogue-intro-image { height:180px; }
  .catalogue-intro p:not(.catalogue-lead) br { display:none; }
  .catalogue-categories>a { padding:18px 16px; gap:4px 8px; }
  .catalogue-categories strong { font-size:13px; }
  .catalogue-search { padding:24px; }
  .catalogue-search-field { width:65%; }
  .product-detail { grid-template-columns:1fr 1fr; gap:28px; }
  .product-summary h1 { font-size:23px; }
  .product-summary-subtitle { font-size:14px; }
  .product-key-specs>div { grid-template-columns:85px minmax(0,1fr); font-size:12px; }
  .product-summary-actions .solid-link { padding:13px 18px; font-size:12px; gap:14px; }
  .contact-method { padding:26px; }
  .contact-method .phone { font-size:28px; }
  .contact-method .mail { font-size:20px; }
  .inquiry-builder { grid-template-columns:1fr; gap:30px; margin-top:50px; }
  .contact-address { grid-template-columns:1fr 1fr; }
  .contact-address>.quiet-link { grid-column:2; justify-self:start; }
}
@media (max-width:600px) {
  html { scroll-padding-top:94px; }
  .wrap { width:calc(100% - 40px); }
  .header-inner,.js .header-inner { min-height:76px; height:76px; gap:12px; }
  .brand { gap:7px; }
  .brand strong { font-size:16px; letter-spacing:.025em; }
  .brand small { font-size:7px; letter-spacing:.08em; }
  .mark { width:29px; height:29px; }
  .js .menu { min-width:60px; padding:8px; font-size:11px; }
  .hero { height:88svh; min-height:620px; max-height:800px; }
  .hero .wrap { align-items:center; }
  .hero-copy { padding:82px 0 60px; max-width:100%; }
  .hero h1 { font-size:clamp(31px,8.5vw,46px); line-height:1.6; letter-spacing:.04em; margin:20px 0; }
  .hero .eyebrow { font-size:10px; letter-spacing:.12em; }
  .hero .eyebrow::before { width:25px; }
  .hero p:not(.eyebrow) { font-size:13px; line-height:2.1; }
  .hero .hero-actions { flex-wrap:wrap; gap:15px 22px; margin-top:28px; }
  .hero .solid-link { padding:13px 20px; min-height:51px; font-size:12px; gap:24px; }
  .hero .text-link { font-size:11px; gap:12px; }
  .hero-controls { left:20px; right:20px; bottom:22px; justify-content:flex-end; gap:7px; }
  .hero-count { font-size:10px; gap:8px; margin-right:auto; }
  .hero-dots { gap:4px; }
  .hero-dots button { width:17px; min-width:17px; }
  .hero-dots button span { width:14px; }
  .carousel-button { min-width:33px; min-height:33px; width:33px; height:33px; font-size:12px; }
  .gateway-grid { grid-template-columns:1fr; }
  .gateway-grid>a,.gateway-grid>a+a { padding:23px 0; border:0; gap:6px 18px; }
  .gateway-grid>a+a { border-top:1px solid var(--line); }
  .gateway-copy strong { font-size:17px; }
  .gateway-copy small { font-size:10px; }
  .gateway-number { font-size:9px; }
  .link-arrow { width:35px; height:35px; }
  .section-row { gap:22px; margin-bottom:27px; }
  .section-title .en { font-size:10px; }
  .section-title h2 { font-size:24px; line-height:1.7; margin-top:12px; }
  .section-row>.quiet-link { margin:0; font-size:12px; min-height:35px; }
  .home-business,.home-products,.home-message,.home-company { padding:58px 0; }
  .biz-grid { grid-template-columns:1fr; gap:18px; }
  .biz-card { min-height:340px; }
  .biz-body { padding:26px; }
  .biz-body h3 { font-size:26px; }
  .business-related { gap:10px 24px; padding-top:20px; }
  .business-related>span { width:100%; font-size:11px; }
  .business-related a { font-size:12px; gap:14px; }
  .product-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .product-tile-body { padding:16px 13px; }
  .product-tile-photo { aspect-ratio:1; }
  .product-tile-body h3 { font-size:16px; margin:10px 0 7px; }
  .tile-meta { gap:4px; }
  .tile-meta small { font-size:7px; letter-spacing:.035em; }
  .product-tile .num { font-size:9px; }
  .product-tile-body p { font-size:10px; line-height:1.9; }
  .product-tile-more { margin-top:18px; padding-top:12px; font-size:10px; }
  .catalogue-footnote { font-size:11px; }
  .home-message h3 { font-size:21px; }
  .home-message p { font-size:13px; }
  .home-message .hero-actions { gap:18px; }
  .home-message .solid-link { font-size:12px; padding-inline:18px; gap:20px; }
  .home-message .text-link { font-size:11px; }
  .home-company .section-title { margin-bottom:0; }
  .fact { padding:22px 13px; }
  .fact dd { font-size:23px; }
  .fact .fact-note { font-size:11px; }
  .company-cards { gap:28px; }
  .contact-hero { padding:56px 0; }
  .contact-hero .section-title h2 { font-size:25px; }
  .contact-hero p { font-size:12px; }
  .contact-actions { min-width:0; width:100%; }
  .contact-tel strong { font-size:27px; }
  .contact-actions .solid-link { font-size:13px; }
  footer { padding-top:45px; }
  .foot-brand { font-size:17px; gap:11px; }
  .foot-brand small { font-size:8px; letter-spacing:.1em; }
  .foot-mark { flex-basis:33px; height:33px; }
  .foot-address,.foot-tel { font-size:12px; }
  .page-head,.company-main .page-head { padding:28px 0; }
  .page-head .eyebrow,.company-main .page-head .eyebrow,body[data-page] .page-head .eyebrow { font-size:10px; }
  .page-head h1,body[data-page="privacy"] .page-head h1 { font-size:29px; }
  .page-head::after { width:80px; }
  .catalogue-intro { grid-template-columns:1fr; gap:24px; padding-bottom:28px; }
  .catalogue-lead { font-size:25px; margin-bottom:12px; }
  .catalogue-intro p:not(.catalogue-lead) { font-size:12px; }
  .catalogue-intro-image { height:145px; }
  .catalogue-categories { grid-template-columns:1fr; margin-bottom:26px; }
  .catalogue-categories>a { grid-template-columns:22px minmax(0,1fr) 50px 15px; padding:15px 17px; gap:12px; }
  .catalogue-categories>a+a { border-left:0; border-top:1px solid var(--line); }
  .category-number { grid-row:auto; }
  .catalogue-categories strong { font-size:13px; }
  .catalogue-categories small { grid-column:3; font-size:10px; }
  .catalogue-categories>a>span:last-child { grid-column:4; grid-row:auto; }
  .catalogue-search { padding:21px 17px 15px; }
  .catalogue-search-top { display:block; margin-bottom:17px; }
  .catalogue-search h2 { font-size:16px; margin-bottom:13px; }
  .catalogue-search-field { width:100%; padding:11px 12px; }
  .catalogue-search-field input { font-size:12px; }
  .catalogue-filter-options { gap:6px; }
  .catalogue-filter-options button { padding:9px 10px; font-size:11px; }
  .catalogue-filter-options button span { padding-left:6px; font-size:10px; }
  .catalogue-filter-row { gap:5px; }
  .filter-clear { font-size:10px; }
  .search-result-status { font-size:10px; margin-top:8px; }
  .product-cat { margin-top:42px; }
  .cat-head { gap:12px; margin-bottom:20px; padding-bottom:20px; }
  .cat-num { font-size:21px; }
  .cat-head h2 { font-size:21px; margin-top:5px; }
  .cat-head small { font-size:8px; }
  .cat-head p { font-size:11px; line-height:1.9; }
  .cat-count { font-size:23px; }
  .cat-count small { font-size:7px; }
  .product-index { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; }
  .product-index-body { padding:14px 11px 12px; }
  .product-index-body .product-card-category { font-size:8px; margin-bottom:7px; }
  .product-index-body strong { font-size:12px; line-height:1.75; }
  .product-subtitle { font-size:10px; margin-top:6px; }
  .product-index-body .product-card-model { font-size:8px; letter-spacing:0; margin-top:7px; }
  .spec-chips { margin:12px 0 15px; gap:4px; }
  .spec-chips>span { font-size:8px; padding:3px 5px; }
  .product-card-link { padding-top:10px; font-size:9px; gap:8px; }
  .catalogue-subheading { font-size:15px; margin-top:28px; }
  .catalogue-help { flex-direction:column; align-items:stretch; gap:23px; padding:26px 22px; margin-top:42px; }
  .catalogue-help h2 { font-size:20px; }
  .catalogue-help p { font-size:12px; }
  .catalogue-help .solid-link { font-size:12px; padding-inline:18px; gap:18px; justify-content:space-between; }
  .product-detail { grid-template-columns:1fr; gap:30px; padding-top:16px; }
  .product-gallery-thumbs { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .product-summary h1 { font-size:25px; }
  .product-summary-subtitle { font-size:14px; }
  .product-key-specs>div { grid-template-columns:90px minmax(0,1fr); font-size:12px; }
  .product-summary-actions .solid-link { min-height:54px; font-size:13px; }
  .product-detail-nav { margin-top:34px; gap:15px; padding:17px 0; }
  .product-detail-nav a { gap:12px; font-size:10px; }
  .product-desc { margin-top:30px; }
  .product-source-note { padding:18px; }
  .product-source-note p { font-size:11px; }
  .contact-intro { grid-template-columns:1fr; gap:20px; margin-bottom:28px; }
  .contact-intro>p:not(.catalogue-lead) { font-size:12px; }
  .contact-methods { grid-template-columns:1fr; gap:16px; }
  .contact-method { padding:25px 23px; }
  .contact-method h2 { font-size:17px; margin:9px 0 13px; }
  .contact-method .phone { font-size:30px; }
  .contact-method .mail { font-size:21px; gap:16px; }
  .contact-method p { font-size:11px; }
  .inquiry-builder { margin-top:38px; padding-top:28px; gap:24px; }
  .inquiry-builder-heading h2 { font-size:22px; margin:10px 0; }
  .inquiry-builder-heading p { font-size:12px; }
  .inquiry-field select,.inquiry-field textarea { padding:12px; font-size:16px; }
  .inquiry-field>label { font-size:12px; }
  .inquiry-email { font-size:12px; padding-inline:20px; gap:12px; }
  .inquiry-note { font-size:10px; }
  .contact-address { grid-template-columns:1fr; gap:20px; margin-top:40px; padding-block:28px; }
  .contact-address>.quiet-link { grid-column:1; font-size:12px; }
}
@media (max-width:360px) {
  .wrap { width:calc(100% - 32px); }
  .brand strong { font-size:14px; }
  .brand small { font-size:6px; }
  .mark { width:25px; height:25px; }
  .js .menu { min-width:55px; padding-inline:6px; }
  .hero h1 { font-size:29px; }
  .hero .text-link { font-size:10px; }
  .hero .solid-link { gap:18px; padding-inline:15px; }
  .hero-controls { gap:5px; left:16px; right:16px; }
  .hero-dots button { width:14px; min-width:14px; }
  .hero-dots button span { width:11px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .link-arrow,.product-tile.has-photo { transition:none; }
}

/* ===== Improvements based on the base-net "company homepage" checklist (2026-10-27) ===== */

/* Phone number in the header: visible on wide screens, listed in the mobile menu. */
.nav a.nav-tel { flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:0 4px; color:var(--navy); font-family:var(--en); font-size:18px; font-weight:700; letter-spacing:.04em; line-height:1.25; white-space:nowrap; }
.nav a.nav-tel span { color:#6b7a88; font-family:var(--serif); font-size:10px; font-weight:500; letter-spacing:.06em; }
.nav a.nav-tel::after { display:none; }
.nav a.nav-tel:hover { color:var(--accent); }
.js body[data-page="index"] header:not(.is-solid) .nav a.nav-tel span { color:#d6e2ec; }
@media (min-width:961px) and (max-width:1279px) { .nav a.nav-tel { display:none; } }
@media (max-width:960px) {
  .nav a.nav-tel { align-items:flex-start; padding:10px 0; color:var(--navy); font-size:20px; }
  .js body[data-page="index"] header:not(.is-solid) .nav a.nav-tel span { color:#6b7a88; }
}

/* Inner pages: keep the decorative photo short so the content starts sooner. */
body:not(.company-family) .page-visual-frame img { height:clamp(170px,19vw,300px); }
.company-family .page-visual-frame img,body[data-page="company"] .page-visual img { height:clamp(150px,16vw,240px); }
@media (max-width:600px) {
  body:not(.company-family) .page-visual-frame img,.company-family .page-visual-frame img,body[data-page="company"] .page-visual img { height:150px; }
}

/* Installation examples on the products page. */
.case-section { margin-top:clamp(64px,8vw,96px); padding-top:clamp(40px,5vw,56px); border-top:1px solid var(--line); }
.case-section h2 { margin:6px 0 10px; color:var(--ink); font-size:clamp(22px,2.2vw,28px); font-weight:700; letter-spacing:.06em; }
.case-section>p { margin:0 0 24px; font-size:15px; }
.case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; padding:0; list-style:none; }
.case-grid figure { margin:0; background:#fff; border:1px solid var(--line); }
.case-grid img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.case-grid figcaption { padding:12px 14px; color:var(--ink); font-size:14px; font-weight:600; }
.catalogue-footnote a { margin-left:12px; color:var(--accent); font-weight:600; border-bottom:1px solid currentColor; }
@media (max-width:600px) { .case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .case-grid figcaption { padding:8px 10px; font-size:12px; } }

/* Mobile: fixed call / inquiry bar at the bottom of the screen (built by script.js). */
.mobile-cta { display:none; }
@media (max-width:960px) {
  .mobile-cta { position:fixed; left:0; right:0; bottom:0; z-index:35; display:grid; grid-template-columns:1fr 1.4fr; gap:1px; padding-bottom:env(safe-area-inset-bottom); background:#ffffff33; box-shadow:0 -6px 20px #0b2a4a26; }
  .mobile-cta a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:56px; color:#fff; font-size:14px; font-weight:700; letter-spacing:.06em; }
  .mobile-cta a:first-child { background:var(--navy-deep); }
  .mobile-cta a:last-child { background:var(--accent); }
  .mobile-cta svg { width:18px; height:18px; flex:none; }
  body.has-mobile-cta { padding-bottom:calc(56px + env(safe-area-inset-bottom)); }
  body.has-mobile-cta .to-top { bottom:calc(70px + env(safe-area-inset-bottom)); }
}
/* ===== Business page (2026-10-27): overview cards, numbered business blocks, checks, points, CTA rows ===== */
.flow-list h4 { margin:0 0 4px; color:var(--ink); font-size:18px; font-weight:700; line-height:1.6; }
.biz-intro { max-width:880px; }
.biz-intro-title { margin:0 0 14px; color:var(--ink); font-size:clamp(24px,2.6vw,34px); font-weight:700; letter-spacing:.06em; line-height:1.6; }
.biz-intro p { font-size:16px; line-height:2; }
.biz-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:36px 0 0; }
.biz-overview a { display:flex; flex-direction:column; gap:8px; padding:26px 22px 24px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy); color:var(--body); transition:border-color .2s,box-shadow .2s,transform .2s; }
.biz-overview a:hover { border-color:#9fb1c3; border-top-color:var(--accent); box-shadow:0 10px 28px #0b2a4a14; transform:translateY(-2px); }
.biz-ov-icon { display:grid; place-items:center; width:56px; height:56px; margin-bottom:6px; border-radius:50%; background:var(--sky); color:var(--navy); }
.biz-ov-icon svg { width:32px; height:32px; }
.biz-ov-num { color:var(--accent); font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.16em; }
.biz-overview strong { color:var(--ink); font-size:19px; font-weight:700; letter-spacing:.04em; }
.biz-ov-text { font-size:13px; line-height:1.85; }
.biz-block { margin-top:clamp(72px,9vw,120px); padding-top:clamp(40px,5vw,56px); border-top:1px solid var(--line); scroll-margin-top:100px; }
.biz-block-head { display:grid; grid-template-columns:auto minmax(0,1fr); gap:22px; align-items:end; margin-bottom:22px; }
.biz-block-num { color:var(--navy); font-family:var(--en); font-size:clamp(46px,5vw,68px); font-weight:700; line-height:.9; }
.biz-block-head small { color:var(--accent); font-family:var(--en); font-size:11px; font-weight:700; letter-spacing:.2em; }
.biz-block-head h2 { margin:4px 0 0; color:var(--ink); font-size:clamp(24px,2.6vw,32px); font-weight:700; letter-spacing:.06em; line-height:1.4; }
.biz-lead { max-width:900px; margin:0 0 28px; color:var(--ink); font-size:16px; line-height:2; }
.biz-block .trade-map { margin-top:8px; }
.biz-sub { margin:48px 0 18px; padding-left:14px; border-left:3px solid var(--accent); color:var(--ink); font-size:clamp(18px,1.7vw,21px); font-weight:700; line-height:1.5; }
.biz-check { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.biz-check li { position:relative; padding:16px 18px 16px 50px; background:var(--gray); color:var(--ink); font-size:15px; font-weight:500; line-height:1.7; }
.biz-check li::before { content:""; position:absolute; left:18px; top:19px; width:18px; height:18px; border-radius:50%; background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.5 2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.biz-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; padding:0; list-style:none; }
.biz-points li { display:grid; align-content:start; gap:8px; padding:24px 22px; background:var(--gray); border-top:3px solid var(--navy); }
.biz-points strong { color:var(--ink); font-size:17px; font-weight:700; }
.biz-points span { font-size:14px; line-height:1.9; }
.biz-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 32px; margin-top:36px; padding:26px 30px; background:var(--sky); border-left:4px solid var(--accent); }
.biz-cta p { margin:0; color:var(--ink); font-size:15px; font-weight:500; }
.biz-block .desc-faq { margin-top:4px; }
.biz-flow,.biz-products { margin-top:clamp(72px,9vw,120px); }
.desc-steps.is-six { grid-template-columns:repeat(3,minmax(0,1fr)); }
.biz-products>p { margin:0 0 22px; }
.biz-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.biz-product-grid a { position:relative; display:block; overflow:hidden; aspect-ratio:4 / 3; background:var(--navy); }
.biz-product-grid img { width:100%; height:100%; object-fit:cover; opacity:.82; transition:transform .5s ease,opacity .3s; }
.biz-product-grid a:hover img { transform:scale(1.04); opacity:.65; }
.biz-product-grid span { position:absolute; left:0; right:0; bottom:0; display:grid; gap:2px; padding:40px 20px 18px; background:linear-gradient(0deg,#061a30d9,transparent); color:#fff; font-size:18px; font-weight:700; }
.biz-product-grid small { color:#8cc3ee; font-family:var(--en); font-size:10px; letter-spacing:.2em; }
@media (max-width:960px) {
  .biz-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .biz-points,.desc-steps.is-six { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .biz-overview { gap:8px; }
  .biz-overview a { padding:18px 14px; }
  .biz-overview strong { font-size:16px; }
  .biz-ov-icon { width:46px; height:46px; } .biz-ov-icon svg { width:26px; height:26px; }
  .biz-check,.biz-product-grid { grid-template-columns:1fr; }
  .biz-cta { padding:22px 20px; }
  .biz-cta .solid-link { width:100%; justify-content:space-between; }
  .biz-block-head { gap:14px; }
}
/* ===== Product page top (2026-10-27): badges, highlights, jump links, phone, gallery arrows ===== */
.product-badges { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:18px 0 0; padding:0; list-style:none; background:var(--line); border:1px solid var(--line); }
.product-badges li { display:grid; align-content:center; gap:2px; min-height:72px; padding:12px 10px; background:#fff; text-align:center; }
.product-badges strong { color:var(--navy); font-family:var(--en); font-size:clamp(17px,1.6vw,21px); font-weight:700; line-height:1.3; }
.product-badges span { color:#6b7a88; font-size:11px; letter-spacing:.04em; line-height:1.4; }
.product-highlights { margin:22px 0 0; padding:18px 20px; background:var(--gray); }
.product-highlights p { margin:0 0 8px; color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.12em; }
.product-highlights ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.product-highlights li { position:relative; padding-left:26px; color:var(--ink); font-size:15px; font-weight:600; line-height:1.6; }
.product-highlights li::before { content:""; position:absolute; left:0; top:4px; width:17px; height:17px; border-radius:50%; background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.5 2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }
.product-jump-links { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; }
.product-jump-links a { padding:6px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--navy); font-size:13px; font-weight:600; transition:border-color .2s,background .2s; }
.product-jump-links a::after { content:" ↓"; color:var(--accent); }
.product-jump-links a:hover { border-color:var(--navy); background:var(--sky); }
.product-tel { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:14px 22px; border:1px solid var(--line); color:var(--navy); font-family:var(--en); font-size:20px; font-weight:700; letter-spacing:.04em; }
.product-tel span { color:#6b7a88; font-family:var(--serif); font-size:12px; font-weight:600; letter-spacing:.06em; }
.product-tel:hover { border-color:var(--navy); background:var(--sky); }
.product-desc h3[id] { scroll-margin-top:110px; }
.product-gallery-main { position:relative; }
.gallery-nav { position:absolute; top:50%; display:grid; place-items:center; width:44px; height:44px; padding:0; transform:translateY(-50%); border:0; border-radius:50%; background:#ffffffe6; box-shadow:0 2px 10px #0b2a4a26; color:var(--navy); cursor:pointer; transition:background .2s; }
.gallery-nav:hover { background:#fff; }
.gallery-nav svg { width:18px; height:18px; }
.gallery-nav.is-prev { left:10px; } .gallery-nav.is-next { right:10px; }
.gallery-count { position:absolute; right:10px; top:10px; padding:3px 10px; border-radius:999px; background:#061a30b3; color:#fff; font-family:var(--en); font-size:12px; letter-spacing:.06em; }
@media (max-width:600px) {
  .product-badges { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-highlights li { font-size:14px; }
  .gallery-nav { width:38px; height:38px; }
}

/* ===== Product pages: darker lines (2026-10-27) ===== */
body[data-page="product"] { --line:#6f8090; }
body[data-page="product"] .product-gallery-main,body[data-page="product"] .product-gallery-thumbs button { border-color:#6f8090; }
body[data-page="product"] .product-key-specs,body[data-page="product"] .product-key-specs>div,body[data-page="product"] .product-model { border-color:#6f8090; }
body[data-page="product"] .full-product-name { border-top-color:#6f8090; }
/* ===== Product pages: no pale gray text (2026-10-27) ===== */
body[data-page="product"] { --body:#1f2b37; }
body[data-page="product"] .brand small,
body[data-page="product"] .nav a.nav-tel span,
body[data-page="product"] .crumbs,
body[data-page="product"] .product-category-label,
body[data-page="product"] .product-summary-subtitle,
body[data-page="product"] .product-model,
body[data-page="product"] .product-key-specs dt,
body[data-page="product"] .full-product-name,
body[data-page="product"] .product-badges span,
body[data-page="product"] .product-tel span,
body[data-page="product"] .product-desc,
body[data-page="product"] .product-desc .desc-note,
body[data-page="product"] .desc-badges span,
body[data-page="product"] .note-text,
body[data-page="product"] .spec dt { color:#1f2b37; }
body[data-page="product"] .product-key-specs dd,
body[data-page="product"] .product-desc th,
body[data-page="product"] .product-desc td { color:#14212d; }
/* ===== Product pages: slightly bolder text (2026-10-27) ===== */
body[data-page="product"] main { font-weight:500; }
body[data-page="product"] .crumbs,
body[data-page="product"] .product-model,
body[data-page="product"] .product-summary-subtitle,
body[data-page="product"] .product-key-specs dd,
body[data-page="product"] .product-badges span,
body[data-page="product"] .desc-badges span,
body[data-page="product"] .product-desc p,
body[data-page="product"] .product-desc li span,
body[data-page="product"] .product-desc td,
body[data-page="product"] .full-product-name,
body[data-page="product"] .note-text { font-weight:500; }
body[data-page="product"] .product-key-specs dt,
body[data-page="product"] .product-category-label,
body[data-page="product"] .product-desc th { font-weight:700; }
/* ===== Site-wide: darker lines, no pale gray text, slightly bolder text (2026-10-27) ===== */
:root { --line:#6f8090; --body:#1f2b37; }
body { font-weight:500; }
.brand small,.nav a.nav-tel span,.crumbs,.crumbs a,.crumbs span,.note-text,.spec dt,.page-visual figcaption,.image-note,
.biz-jump-num,.biz-jump small,.biz-jump-arrow,.principle-detail,.company-menu a,.company-menu a span,
.product-index-body small,.product-desc .desc-note,.desc-badges span,.product-badges span,.product-tel span,
.gateway-copy small,.business-related>span,.tile-meta small,.product-tile-body p,.product-tile:hover p,.catalogue-footnote,
.catalogue-intro p:not(.catalogue-lead),.catalogue-categories small,.catalogue-search-field svg,.catalogue-filter-options button span,
.filter-clear,.search-result-status,.cat-head p,.cat-count small,.product-subtitle,.spec-chips>span,.catalogue-empty p,.catalogue-help p,
.product-category-label,.product-summary-subtitle,.product-model,.product-key-specs dt,.product-spec-note,.full-product-name,
.contact-intro>p:not(.catalogue-lead),.contact-method p,.inquiry-builder-heading p,.inquiry-field>label span,.inquiry-privacy,.inquiry-note,
.contact-address p,.story-meta,.rail-bottom { color:#1f2b37; }
.cat-num { color:var(--navy); }
.catalogue-search-field input::placeholder,.inquiry-field textarea::placeholder { color:#4a5865; }
.crumbs,.note-text,.spec dt,.product-key-specs dt,.product-category-label,.cat-head p,.catalogue-footnote { font-weight:500; }
.product-key-specs dt,.product-category-label,.product-desc th,.spec dt { font-weight:700; }
/* ===== Products page: tighter top spacing (2026-10-27) ===== */
body[data-page="products"] .page-head { padding:20px 0 16px; }
body[data-page="products"] .catalogue-intro { gap:48px; padding:0 0 28px; }
body[data-page="products"] .catalogue-lead { margin-top:0; }
@media (max-width:600px) {
  body[data-page="products"] .page-head { padding:14px 0 12px; }
  body[data-page="products"] .catalogue-intro { gap:18px; padding-bottom:22px; }
}
/* ===== Phone buttons made small (2026-10-27) ===== */
.product-tel { display:inline-flex; align-items:baseline; justify-content:flex-start; gap:8px; justify-self:start; padding:2px 0; border:0; border-radius:0; background:none; color:var(--navy); font-size:15px; }
.product-tel span { font-size:12px; }
.product-tel:hover { background:none; color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
body[data-page="product"] .product-tel { border:0; }
@media (max-width:960px) {
  .mobile-cta { grid-template-columns:56px 1fr; }
  .mobile-cta a:first-child { gap:0; font-size:0; }
  .mobile-cta a:first-child svg { width:20px; height:20px; }
  .mobile-cta a:last-child { background:var(--navy); }
  .mobile-cta a:first-child { background:var(--accent); }
  .mobile-cta.has-products { grid-template-columns:56px 1fr 1fr; }
  .mobile-cta a.mobile-cta-products { background:var(--navy-deep); color:#fff; }
}
@media (max-width:380px) { .mobile-cta.has-products a { gap:6px; font-size:12px; letter-spacing:.02em; } }

/* ===== Header: two rows - logo / phone / inquiry on top, larger main menu below (2026-10-27) ===== */
.nav-main { display:contents; }
@media (min-width:961px) {
  .header-inner,.js .header-inner { position:relative; flex-wrap:nowrap; height:auto; min-height:142px; padding:0 0 60px; }
  .header-inner .nav { flex:1; justify-content:flex-end; align-self:stretch; align-items:center; }
  .nav-main { position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:center; gap:clamp(36px,5vw,80px); height:60px; }
  .nav-main::before { content:""; position:absolute; top:0; left:50%; width:100vw; transform:translateX(-50%); border-top:1px solid var(--line); }
  .nav .nav-main a { min-height:60px; padding:0 4px; font-size:16px; font-weight:700; letter-spacing:.12em; }
  .nav .nav-main a::after { height:3px; }
  .nav a.nav-tel,.nav a[href="contact.html"] { min-height:auto; }
  .nav a[href="contact.html"] { min-height:46px; }
  .js body[data-page="index"] header:not(.is-solid) .nav-main::before { border-top-color:#ffffff33; }
}
@media (min-width:961px) and (max-width:1279px) {
  .nav a.nav-tel { display:flex; }
  .nav .nav-main a { font-size:15px; }
}

/* ===== Product search: suggestion list (2026-10-28) ===== */
.search-box { position:relative; width:min(450px,62%); }
.search-box .catalogue-search-field { width:100%; }
.search-suggest { position:absolute; z-index:20; top:calc(100% + 6px); left:0; right:0; max-height:420px; overflow-y:auto; margin:0; padding:6px 0; list-style:none; background:#fff; border:1px solid var(--line); box-shadow:0 12px 28px #0b2a4a26; }
.search-suggest a { display:flex; align-items:center; gap:12px; padding:8px 14px; color:var(--ink); }
.search-suggest img { width:44px; height:44px; flex:none; object-fit:cover; border:1px solid var(--line); background:#fff; }
.search-suggest strong { display:block; font-size:14px; font-weight:700; line-height:1.5; }
.search-suggest small { display:block; color:#1f2b37; font-size:12px; line-height:1.5; }
.search-suggest li.is-active a,.search-suggest a:hover { background:var(--sky); }
@media (max-width:960px) { .search-box { width:65%; } }
@media (max-width:600px) { .search-box { width:100%; } .search-suggest { max-height:340px; } }
/* Mega menu color: pale blue-gray panel with white link tiles. */
.mega { background:#e8eff5; border-top:3px solid var(--navy); }
.mega-links { gap:12px 20px; }
.mega-links a { padding:16px 18px; background:#fff; border:1px solid #c3d1dd; border-left:4px solid var(--navy); }
.mega-links a:hover { background:var(--navy); color:#fff; border-color:var(--navy); }
.mega-links a:hover::after { color:#fff; }

/* Products page: refined search panel. */

.catalogue-search { position:relative; padding:30px 34px 22px; background:#fff; border:1px solid #c3d1dd; border-top:4px solid var(--navy); box-shadow:0 6px 18px #0b2a4a14; border-radius:0; }
.catalogue-search h2 { display:flex; flex-direction:column; gap:4px; font-size:20px; font-weight:700; }
.catalogue-search h2::before { content:"SEARCH"; color:var(--accent); font:700 12px var(--en); letter-spacing:.18em; }
.catalogue-search-field { padding:14px 20px; border:2px solid #9fb2c2; border-radius:999px; background:#f7f9fb; transition:border-color .2s,background .2s; }
.catalogue-search-field:focus-within { outline:0; border-color:var(--navy); background:#fff; }
.catalogue-search-field svg { color:var(--navy); }
.catalogue-search-field input { font-size:15px; }
.catalogue-filter-row { padding-top:18px; border-top:1px solid #dde5ec; }
.catalogue-filter-options { gap:10px; }
.catalogue-filter-options button { min-height:40px; padding:8px 18px; border:1px solid #9fb2c2; border-radius:999px; font-size:13px; font-weight:600; transition:background .2s,color .2s,border-color .2s; }
.catalogue-filter-options button span { display:inline-grid; place-items:center; min-width:24px; height:20px; margin-left:8px; padding:0 6px; border-radius:999px; background:#e8eff5; color:var(--navy); font:700 11px var(--en); }
.catalogue-filter-options button:hover { border-color:var(--navy); background:#e8eff5; }
.catalogue-filter-options button[aria-pressed="true"] span { background:#ffffff26; color:#fff; }
.filter-clear { color:var(--navy); font-weight:600; }
.search-result-status { color:#1f2b37; font-size:13px; font-weight:600; }
@media (max-width:960px) {
}
@media (max-width:600px) {
  .catalogue-search { padding:22px 18px 16px; }
  .catalogue-search-field input { font-size:14px; }
}

/* Products page: category cards as photo bands with white text. */
.catalogue-categories { gap:0; border:0; margin:0 0 40px; }
.catalogue-categories>a { position:relative; display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; text-align:left; gap:6px; min-height:220px; padding:24px 26px; color:#fff; background:#0b2a4a center/cover no-repeat; overflow:hidden; isolation:isolate; }
.catalogue-categories>a+a { border-left:2px solid #fff; }
.catalogue-categories>a::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#0b2a4a10 20%,#0b2a4ae6 100%); transition:background .3s; }
.catalogue-categories>a:nth-child(1) { background-image:url(assets/weed-sheet.jpg); background-position:center 85%; }
.catalogue-categories>a:nth-child(2) { background-image:url(assets/products/20230414_722236.jpg); background-position:center 40%; }
.catalogue-categories>a:nth-child(3) { background-image:url(assets/solar-panel.jpg); background-position:center; }
.catalogue-categories .category-number { color:#9fd0ec; font:700 13px var(--en); letter-spacing:.14em; }
.catalogue-categories strong { margin:0; color:#fff; font-size:20px; font-weight:700; line-height:1.4; text-shadow:0 1px 6px #0b2a4a80; }
.catalogue-categories small { width:auto; margin:0; display:flex; justify-content:space-between; align-items:center; padding-top:10px; border-top:1px solid #ffffff66; color:#fff; font-size:13px; font-weight:600; }
.catalogue-categories small::after { content:"→"; font-family:var(--en); font-size:16px; transition:transform .25s; }
.catalogue-categories>a>span:last-child { display:none; }
.catalogue-categories>a:hover::before { background:linear-gradient(180deg,#0b2a4a40 0%,#0b2a4af2 100%); }
.catalogue-categories>a:hover small::after { transform:translateX(5px); }
@media (max-width:600px) {
  .catalogue-categories { grid-template-columns:1fr; margin-bottom:26px; }
  .catalogue-categories>a { min-height:130px; padding:18px 18px; }
  .catalogue-categories>a+a { border-left:0; border-top:2px solid #fff; }
  .catalogue-categories strong { font-size:17px; }
}
/* Products page: intro without images. */
body[data-page="products"] .catalogue-intro { grid-template-columns:1fr; }

/* Company side menu: visible dividers between items (phone only). */
@media (max-width:600px) { .company-menu a { border-bottom:1px solid var(--line); } .company-menu a:last-child { border-bottom:0; } .company-menu a:nth-child(odd):not(:last-child) { border-right:1px solid var(--line); } .company-menu a:nth-last-child(2):nth-child(even) { border-bottom:1px solid var(--line); } }

/* Language switcher (日本語 / EN / 中文) and fonts for the translated pages. */
.nav-lang { display:flex; align-items:center; margin-right:20px; font-size:13px; font-weight:700; line-height:1; }
.nav .nav-lang a { padding:4px 10px; border-left:1px solid var(--line); letter-spacing:.04em; }
.nav .nav-lang a:first-child { border-left:0; padding-left:0; }
.nav .nav-lang a[aria-current] { color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
@media (max-width:960px) {
  .nav-lang { margin:0; padding:16px 0; justify-content:center; border-bottom:1px solid var(--line); }
  .nav .nav-lang a { padding:6px 16px; border-bottom:0; }
  .nav .nav-lang a:first-child { padding-left:16px; }
}
html[lang="en"] { --serif:"Helvetica Neue",Arial,"Segoe UI",sans-serif; }
html[lang="en"] body { font-family:"Helvetica Neue",Arial,"Segoe UI",sans-serif; }
html[lang="zh-CN"] { --serif:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",sans-serif; }
html[lang="zh-CN"] body { font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",sans-serif; }
.nav .nav-lang a { display:inline-block; height:auto; min-height:0; line-height:1.2; }
.nav .nav-lang a + a { border-left:1px solid #9fb2c2; }
html[lang="en"] :is(h1,h2,h3,h4,p,dt,dd,li,strong,.nav a,.brand strong,.solid-link,.text-link,.quiet-link,.mega-links a,figcaption) { letter-spacing:0; }
html[lang="en"] .hero h1 { font-size:clamp(36px,5vw,72px); line-height:1.2; }
html[lang="en"] :is(.brand small,.foot-brand small) { display:none; }
@media (min-width:601px) and (max-width:960px) { .catalogue-categories>a:nth-child(1) { background-size:auto 160%; background-position:center bottom; } }
/* This case photo has a title band at the top; show its lower part. */
.case-grid img[src$="20260205_b6a0e3.jpg"] { object-position:center bottom; }

/* Product gallery: enlarge button and full-size image viewer. */
.product-gallery-main img { cursor:zoom-in; }
.gallery-zoom { position:absolute; right:12px; bottom:12px; z-index:2; display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border:0; border-radius:999px; background:#0b2a4acc; color:#fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.gallery-zoom svg { width:16px; height:16px; }
.gallery-zoom:hover { background:var(--navy); }
.zoom { width:100vw; height:100vh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; }
.zoom::backdrop { background:#061a30eb; }
.zoom-scroll { width:100%; height:100%; overflow:auto; display:flex; justify-content:center; align-items:flex-start; padding:56px 16px 40px; box-sizing:border-box; }
.zoom-scroll img { display:block; max-width:100%; height:auto; margin:auto; background:#fff; cursor:default; }
.zoom-close { position:fixed; top:12px; right:16px; width:44px; height:44px; border:1px solid #ffffff80; border-radius:50%; background:#0b2a4a; color:#fff; font-size:26px; line-height:1; cursor:pointer; }
/* Four product categories (portable power added as 04). */
.catalogue-categories { grid-template-columns:repeat(4,minmax(0,1fr)); }
.catalogue-categories>a:nth-child(4) { background-image:url(assets/products/20240719_3f5b55.jpg); background-position:center 40%; }
@media (min-width:601px) and (max-width:960px) {
  .catalogue-categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalogue-categories>a:nth-child(3) { border-left:0; }
  .catalogue-categories>a:nth-child(n+3) { border-top:2px solid #fff; }
}
@media (max-width:600px) { .catalogue-categories { grid-template-columns:1fr; } }
/* Category photo bands as an auto-sliding row (script.js wraps them in .cat-slider). */
.cat-slider { overflow:hidden; margin:0 0 40px; }
.cat-slider .catalogue-categories { display:flex; margin:0; transition:transform .8s ease; will-change:transform; }
.cat-slider .catalogue-categories>a { flex:0 0 calc(100% / 3); border-top:0; border-left:2px solid #fff; }
@media (min-width:601px) and (max-width:960px) { .cat-slider .catalogue-categories>a { flex-basis:50%; border-top:0; } }
@media (max-width:600px) { .cat-slider { margin-bottom:26px; } .cat-slider .catalogue-categories>a { flex-basis:100%; border-top:0; } }
/* Products page: picked-up products, auto-sliding (script.js wraps the track in .pickup-slider). */
.pickup { margin:0 0 44px; }
.pickup-head { display:flex; align-items:baseline; gap:14px; margin:0 0 16px; }
.pickup-en { color:var(--accent); font:700 12px var(--en); letter-spacing:.18em; }
.pickup-head h2 { margin:0; color:var(--navy); font-size:20px; font-weight:700; }
.pickup-slider { overflow:hidden; margin:0 -8px; }
.pickup-track { display:flex; transition:transform .8s ease; will-change:transform; }
.pickup-track>a { flex:0 0 25%; box-sizing:border-box; padding:0 8px; color:var(--ink); }
.pickup-img { display:block; background:#fff; border:1px solid #c3d1dd; overflow:hidden; }
.pickup-img img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; transition:transform .4s ease; }
.pickup-body { display:block; padding:12px 2px 0; }
.pickup-body small { display:block; color:var(--accent); font-size:12px; font-weight:700; }
.pickup-body strong { display:block; margin-top:4px; color:var(--navy); font-size:15px; font-weight:700; line-height:1.5; }
.pickup-body span { display:block; margin-top:2px; color:#1f2b37; font-size:13px; }
.pickup-track>a:hover .pickup-img img { transform:scale(1.05); }
.pickup-track>a:hover strong { color:var(--accent); }
@media (max-width:960px) { .pickup-track>a { flex-basis:calc(100% / 3); } }
@media (max-width:600px) { .pickup { margin-bottom:30px; } .pickup-track>a { flex-basis:50%; } .pickup-body strong { font-size:13px; } .pickup-body span { font-size:12px; } }
/* Continuous flow: the track holds the cards twice (--n originals + copies) and slides by half its width, then repeats. */
.pickup-slider { --per:4; }
.pickup-track.is-flowing { width:calc(var(--n) * 200% / var(--per)); transition:none; animation:pickup-flow var(--dur) linear infinite; backface-visibility:hidden; }
.pickup-track.is-flowing>a { flex-basis:calc(100% / var(--n) / 2); }
.pickup-slider:has(a:focus-visible) .pickup-track { animation-play-state:paused; }
@media (hover:hover) { .pickup-slider:hover .pickup-track { animation-play-state:paused; } }
.pickup-slider { touch-action:pan-y; cursor:grab; -webkit-user-select:none; user-select:none; }
.pickup-slider.is-dragging { cursor:grabbing; }
@keyframes pickup-flow { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
@media (max-width:960px) { .pickup-slider { --per:3; } }
@media (max-width:600px) { .pickup-slider { --per:2; } }
@media (prefers-reduced-motion:reduce) { .pickup-track.is-flowing { animation:none; } }
/* Phones and tablets zoom into inputs whose text is under 16px; keep the product search at 16px there. */
@media (max-width:960px) { .catalogue-search-field input { font-size:16px; } }
/* Top hero: the products button sits on the photo as a frosted pill with a round arrow, instead of a white block. */
.hero .solid-link { gap:18px; min-height:58px; padding:8px 8px 8px 28px; border:1px solid rgba(255,255,255,.55); border-radius:999px; background:rgba(255,255,255,.12); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); color:#fff; font-size:14px; font-weight:600; letter-spacing:.1em; }
.hero .solid-link>span { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#fff; color:var(--navy); transition:transform .25s ease,background .25s ease,color .25s ease; }
.hero .solid-link:hover { background:rgba(255,255,255,.22); border-color:#fff; color:#fff; }
.hero .solid-link:hover>span { transform:translateX(4px); background:var(--accent); color:#fff; }
@media (max-width:600px) { .hero .solid-link { min-width:0; gap:14px; min-height:50px; padding:6px 6px 6px 20px; font-size:13px; } .hero .solid-link>span { width:36px; height:36px; } }
/* Contact page: real inquiry form (sent to /api/inquiry). */
.inquiry-field input { width:100%; max-width:100%; min-width:0; min-height:52px; border:1px solid #bdcbd3; border-radius:2px; padding:12px 16px; color:var(--ink); background:#fff; font:inherit; font-size:14px; }
.inquiry-field input:focus, .inquiry-field select:focus, .inquiry-field textarea:focus { outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.inquiry-field>label span.is-required { padding:1px 7px; border-radius:2px; background:var(--navy); color:#fff; font-weight:600; }
.inquiry-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.inquiry-turnstile:not(:empty) { margin:0 0 20px; }
.inquiry-email { cursor:pointer; border:1px solid var(--navy); font:inherit; font-weight:600; }
.inquiry-email:disabled { opacity:.6; cursor:wait; }
.inquiry-status:not(:empty) { margin:14px 0 0; padding:12px 14px; border-left:3px solid #b3261e; background:#fdf1f0; color:#8c1d16; font-size:13px; }
.inquiry-done { padding:36px 32px; border:1px solid var(--line); border-top:3px solid var(--accent); background:var(--sky); }
.inquiry-done h2 { margin:10px 0; color:var(--navy); font-size:22px; }
.inquiry-done p { margin:0; font-size:14px; line-height:2; }
@media (max-width:960px) { .inquiry-field input { font-size:16px; } }
/* The language switcher's Japanese link on the contact page also points to contact.html; keep it from taking the inquiry button's look. */
.nav .nav-lang a[href] { min-height:0; background:none; color:inherit; box-shadow:none; border-radius:0; }
.nav .nav-lang a[href][aria-current] { color:var(--accent); }
/* Leave room for the fixed header when the contact page jumps to the form. */
.inquiry-builder { scroll-margin-top:110px; }
@media (max-width:960px) { .inquiry-builder { scroll-margin-top:84px; } }
/* 404 page */
.notfound { max-width:760px; padding:10px 0 90px; }
.notfound>p { margin:0 0 30px; font-size:15px; line-height:2; }
.notfound-links { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.notfound .solid-link.is-ghost { background:#fff; color:var(--navy); border:1px solid var(--navy); }
.notfound .solid-link.is-ghost:hover { background:var(--navy); color:#fff; }
.notfound-other { color:#5b6876; font-size:13px; }
.notfound-other a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:600px) { .notfound-links { flex-direction:column; } .notfound-links .solid-link { justify-content:space-between; } }
/* Top page: products now come before business, leaving two white sections next to each other; a hairline separates them. */
.home-business + .home-message { border-top:1px solid var(--line); }
/* Top page: the COMPANY watermark sits bottom-right so it is not right under the OUR PHILOSOPHY one. */
.home-company::after { top:auto; bottom:-60px; }
/* ===== Product pages (2026-10-28): related products, points, size consult buttons, consult bar ===== */
.related { padding:70px 0 80px; background:var(--gray); }
.related-head { display:flex; align-items:baseline; gap:14px; margin-bottom:22px; }
.related-en { color:var(--accent); font:700 12px var(--en); letter-spacing:.18em; }
.related-head h2 { margin:0; color:var(--navy); font-size:22px; font-weight:700; }
.related-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
.related-list a { display:block; height:100%; background:#fff; border:1px solid var(--line); color:var(--ink); transition:border-color .2s ease,box-shadow .2s ease; }
.related-list a:hover { border-color:var(--accent); box-shadow:0 10px 24px #0b2a4a14; }
.related-img { display:block; overflow:hidden; }
.related-img img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; transition:transform .4s ease; }
.related-list a:hover .related-img img { transform:scale(1.04); }
.related-body { display:block; padding:14px 16px 18px; }
.related-body small { display:inline-block; padding:1px 8px; background:var(--sky); color:var(--accent); font-size:11px; font-weight:700; }
.related-body strong { display:block; margin-top:8px; color:var(--navy); font-size:15px; line-height:1.55; }
.related-list a:hover strong { color:var(--accent); }
.related-body span { display:block; margin-top:2px; color:#3d4a57; font-size:13px; line-height:1.6; }
.related-more { margin:22px 0 0; text-align:right; }
.related-more a { color:var(--accent); font-size:14px; font-weight:700; border-bottom:1px solid currentColor; }
@media (max-width:960px) { .related { padding:50px 0 56px; } .related-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .related-body { padding:12px; } .related-body strong { font-size:14px; } .related-body span { font-size:12px; } }

.product-desc .desc-row { background:#fff; border:1px solid var(--line); padding:24px; }
.desc-row-num { display:flex; align-items:baseline; gap:8px; margin-bottom:12px; padding:0; background:none; color:var(--accent); font-family:var(--en); font-size:42px; font-weight:700; line-height:1; letter-spacing:.02em; }
.desc-row-num small { color:var(--navy); font-size:12px; letter-spacing:.2em; }
.product-desc .desc-row h4 { margin:0 0 12px; color:var(--navy); font-size:clamp(19px,1.9vw,23px); line-height:1.6; }
.product-desc .desc-row p { font-size:15px; line-height:2; }
@media (max-width:600px) { .product-desc .desc-row { padding:16px; } .desc-row-num { font-size:34px; } .product-desc .desc-row h4 { font-size:18px; } .product-desc .desc-row p { font-size:14px; } }

.size-ask { display:inline-flex; align-items:center; min-height:34px; padding:4px 14px; border:1px solid var(--navy); border-radius:999px; color:var(--navy); font-size:12px; font-weight:700; white-space:nowrap; transition:background .2s ease,color .2s ease; }
.size-ask:hover { background:var(--navy); color:#fff; }

.product-bar { display:none; }
@media (min-width:961px) {
  .product-bar { display:block; position:fixed; left:0; right:0; bottom:0; z-index:30; background:#fff; border-top:1px solid var(--line); box-shadow:0 -8px 24px #0b2a4a1f; transform:translateY(110%); transition:transform .3s ease; }
  .product-bar.is-visible { transform:none; }
  .product-bar .wrap { display:flex; align-items:center; gap:28px; min-height:76px; }
  .product-bar p { display:flex; flex:1; align-items:baseline; gap:14px; min-width:0; margin:0; }
  .product-bar strong { overflow:hidden; color:var(--navy); font-size:17px; white-space:nowrap; text-overflow:ellipsis; }
  .product-bar p span { overflow:hidden; color:#5b6876; font-size:13px; white-space:nowrap; text-overflow:ellipsis; }
  .product-bar-tel { color:var(--navy); font-size:14px; font-weight:700; white-space:nowrap; }
  .product-bar-tel:hover { color:var(--accent); }
  .product-bar .solid-link { min-height:50px; padding:10px 26px; gap:26px; white-space:nowrap; }
  body.has-product-bar .to-top { bottom:96px; }
}
@media (prefers-reduced-motion:reduce) { .product-bar { transition:none; } }
/* Contact page: the form now comes first, with phone and email below it. */
.contact-intro + .inquiry-builder { margin-top:16px; }
.inquiry-builder + .contact-methods { margin-top:70px; }
@media (max-width:960px) { .inquiry-builder + .contact-methods { margin-top:44px; } }
/* ===== Product list as a photo gallery (2026-10-28): the photo leads, with a short name underneath; specs live on each product page. ===== */
.product-index { grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px 22px; }
.product-index a { background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; color:var(--ink); }
.product-index a:hover { border:0; box-shadow:none; }
.product-index-img { aspect-ratio:1; overflow:hidden; background:#fff; border:1px solid #e3e9ee; border-radius:4px; transition:border-color .25s ease,box-shadow .25s ease; }
.product-index-img img { object-fit:contain; padding:0; transition:transform .5s ease; }
.product-index a:hover .product-index-img { border-color:#9fb6c8; box-shadow:0 12px 28px #0b2a4a14; }
.product-index a:hover .product-index-img img { transform:scale(1.05); }
.product-index-body { gap:2px; padding:14px 2px 0; border:0; }
.product-index-body .product-card-category,.product-index-body .product-card-model,.product-index-body .spec-chips,.product-index-body .product-card-link { display:none; }
.product-index-body strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; color:var(--navy); font-size:15px; font-weight:700; line-height:1.6; transition:color .2s ease; }
.product-index a:hover .product-index-body strong { color:var(--accent); }
.product-index-body .product-subtitle { display:block; overflow:hidden; color:#4a5866; font-size:13px; line-height:1.7; white-space:nowrap; text-overflow:ellipsis; }
@media (max-width:1100px) { .product-index { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:600px) { .product-index { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px; } .product-index-body { padding-top:10px; } .product-index-body strong { font-size:13px; } .product-index-body .product-subtitle { font-size:12px; } }
/* Gallery cards: photo and its two lines share one frame so they read as a set. */
.product-index a { background:#fff; border:1px solid #dfe6ec; border-radius:6px; overflow:hidden; transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease; }
.product-index a:hover { border-color:#9fb6c8; box-shadow:0 14px 30px #0b2a4a17; transform:translateY(-2px); }
.product-index-img { border:0; border-radius:0; border-bottom:1px solid #edf1f4; }
.product-index a:hover .product-index-img { border-color:#edf1f4; box-shadow:none; }
.product-index-body { flex:1; padding:12px 14px 14px; background:#fff; border-top:0; position:relative; }
.product-index-body::before { content:""; position:absolute; left:14px; top:0; width:28px; height:3px; background:var(--accent); }
@media (max-width:600px) { .product-index-body { padding:10px 10px 12px; } .product-index-body::before { left:10px; width:22px; } }
@media (prefers-reduced-motion:reduce) { .product-index a:hover { transform:none; } }
/* Description images open in the zoom view. */
.product-desc img.is-zoomable { cursor:zoom-in; transition:opacity .2s ease,box-shadow .2s ease; }
.product-desc img.is-zoomable:hover { opacity:.92; box-shadow:0 0 0 2px var(--accent); }
.product-desc img.is-zoomable:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.zoom-hint { display:flex; align-items:center; gap:8px; margin:6px 0 0; color:var(--accent); font-size:13px; font-weight:600; }
.zoom-hint::before { content:""; flex:none; width:18px; height:18px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231f6fbf' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='8.5' cy='8.5' r='5.5'/%3E%3Cpath d='m13 13 4.5 4.5M8.5 6v5M6 8.5h5'/%3E%3C/svg%3E") center / contain no-repeat; }
.zoom-scroll img { cursor:zoom-in; }
.zoom.is-full .zoom-scroll { justify-content:flex-start; }
.zoom.is-full .zoom-scroll img { max-width:none; cursor:zoom-out; }
.zoom-tip { position:fixed; left:0; right:0; bottom:12px; margin:0; color:#ffffffcc; font-size:12px; text-align:center; pointer-events:none; }
.zoom.is-full .zoom-tip { display:none; }
/* Page titles: the faint logo mark is drawn large, kept whole inside the page width. */
.page-head::after { right:0; top:50%; width:clamp(240px,26vw,380px); transform:translateY(-46%); opacity:.07; }
@media (max-width:600px) { .page-head::after { right:0; width:170px; opacity:.06; } }
/* Anything drawn past the screen edge (like the page-title logo) is cut off instead of widening the page. */
main { overflow-x:clip; }
/* Product list: the product count sits at the bottom of the category heading, level with the description. */
.cat-head .cat-count { align-self:end; }
/* ===== Column (articles) ===== */
.article { max-width:820px; padding:10px 0 clamp(70px,8vw,110px); color:#24323f; font-size:16px; line-height:2; }
.article-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin:0 0 22px; color:#5b6876; font-size:13px; }
.article-meta span { padding:0 10px; background:var(--sky); color:var(--accent); font-weight:700; }
.article-lead { margin:0 0 30px; font-size:17px; }
.article-toc { margin:0 0 50px; padding:22px 26px; background:var(--gray); border-left:4px solid var(--navy); }
.article-toc p { margin:0 0 6px; color:var(--navy); font-weight:700; }
.article-toc ol { margin:0; padding-left:1.4em; }
.article-toc a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.article h2 { margin:56px 0 18px; padding-bottom:10px; border-bottom:2px solid var(--navy); color:var(--navy); font-size:clamp(20px,2.2vw,25px); line-height:1.6; scroll-margin-top:110px; }
.article h3 { margin:0 0 6px; color:var(--navy); font-size:18px; }
.article p { margin:0 0 16px; }
.article-points { display:grid; gap:12px; margin:0; }
.article-points div { padding:16px 20px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--accent); }
.article-points dt { color:var(--navy); font-weight:700; }
.article-points dd { margin:4px 0 0; font-size:15px; }
.article-table { margin:0 0 18px; overflow-x:auto; }
.article-table table { width:100%; min-width:560px; border-collapse:collapse; font-size:14px; line-height:1.7; }
.article-table th,.article-table td { padding:12px 14px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.article-table thead th { background:var(--navy); color:#fff; font-weight:700; }
.article-table tbody th { background:var(--gray); color:var(--navy); font-weight:700; white-space:nowrap; }
.article-table a { color:var(--accent); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.article-note { color:#5b6876; font-size:13px; }
.article-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0 0 20px; }
.article-compare section { padding:20px 22px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy); }
.article-compare ul,.article-list { margin:8px 0 0; padding-left:1.2em; font-size:15px; }
.article-compare li,.article-list li { margin-bottom:6px; }
.article-steps { counter-reset:step; display:grid; gap:12px; margin:0 0 16px; padding:0; list-style:none; }
.article-steps li { counter-increment:step; position:relative; padding:16px 20px 16px 64px; background:var(--gray); }
.article-steps li::before { content:counter(step,decimal-leading-zero); position:absolute; left:20px; top:14px; color:var(--accent); font:700 22px/1.4 var(--en); }
.article-steps strong { display:block; color:var(--navy); }
.article-steps span { display:block; font-size:14px; }
.article-cta { margin-top:56px; padding:30px 32px; background:var(--sky); border-top:3px solid var(--accent); }
.article-cta-title { margin:0 0 6px !important; color:var(--navy); font-size:20px; font-weight:700; }
.article-cta-links { display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:16px; }
@media (max-width:600px) { .article { font-size:15px; } .article-lead { font-size:16px; } .article-compare { grid-template-columns:1fr; } .article-cta { padding:22px 18px; } .article h2 { scroll-margin-top:84px; } }
.column-lead { margin:0 0 30px; }
.column-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0 0 clamp(70px,8vw,110px); padding:0; list-style:none; }
.column-list a { display:block; height:100%; background:#fff; border:1px solid #dfe6ec; border-radius:6px; overflow:hidden; color:var(--ink); transition:border-color .25s ease,box-shadow .25s ease; }
.column-list a:hover { border-color:#9fb6c8; box-shadow:0 14px 30px #0b2a4a17; }
.column-img { display:block; aspect-ratio:16/10; overflow:hidden; }
.column-img img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.column-list a:hover .column-img img { transform:scale(1.04); }
.column-body { display:block; padding:16px 18px 20px; }
.column-meta { display:flex; gap:10px; color:#5b6876; font-size:12px; }
.column-meta small { padding:0 8px; background:var(--sky); color:var(--accent); font-weight:700; }
.column-body strong { display:block; margin:8px 0 4px; color:var(--navy); font-size:17px; line-height:1.6; }
.column-body>span:last-child { display:block; color:#4a5866; font-size:13px; }
@media (max-width:960px) { .column-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .column-list { grid-template-columns:1fr; } }
.cat-head .cat-guide { margin:12px 0 0; font-size:14px; line-height:1.4; }
.cat-guide a { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border:1px solid var(--accent); border-radius:999px; background:#eef5fc; color:var(--accent); font-weight:700; text-decoration:none; transition:background .2s,color .2s; }
.cat-guide a::before { content:""; flex:none; width:16px; height:16px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231f6fbf' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 4.5c2.5-1 4.8-1 7 .8 2.2-1.8 4.5-1.8 7-.8v11c-2.5-1-4.8-1-7 .8-2.2-1.8-4.5-1.8-7-.8z'/%3E%3Cpath d='M10 5.3v11'/%3E%3C/svg%3E") center / contain no-repeat; }
.cat-guide a:hover { background:var(--accent); color:#fff; }
.cat-guide a:hover::before { filter:brightness(0) invert(1); }
@media (max-width:960px) { .cat-head .cat-guide { font-size:13px; } }
/* Article pages: the text column sits in the middle, with its breadcrumbs and title lined up to the same width. */
.article { margin-inline:auto; }
.wrap:has(> .article) > .crumbs,.wrap:has(> .article) > .page-head { max-width:820px; margin-inline:auto; }
/* Article pictures: photos, diagrams and charts */
.article-figure { margin:22px 0 26px; }
.article-figure img { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:6px; background:#fff; }
.article-figure.is-narrow { max-width:520px; margin-inline:auto; }
.article-figure figcaption { margin-top:8px; color:#5b6876; font-size:13px; line-height:1.7; text-align:center; }
.article-chart { display:block; width:100%; height:auto; font-family:inherit; }
.article-chart g:hover rect[fill="#1f6fbf"] { fill:#0b2a4a; }
.article-points div { display:grid; grid-template-columns:48px 1fr; column-gap:16px; align-items:start; }
.article-points .article-icon { grid-row:span 2; color:var(--accent); }
.article-points .article-icon svg { display:block; width:44px; height:44px; }
.article-fabric { display:block; width:100%; height:auto; margin-bottom:14px; }
.article-product { display:flex; align-items:center; gap:10px; }
.article-product img { flex:none; width:52px; height:52px; object-fit:contain; border:1px solid var(--line); border-radius:4px; background:#fff; }
.article-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.article-photos .article-figure { margin:10px 0 16px; }
@media (max-width:600px) { .article-photos { grid-template-columns:1fr; } .article-figure.is-narrow { max-width:none; } }/* Laptop screens: the two-row header sits over the hero, so keep the copy below it and shrink the heading on short screens. */
@media (min-width:961px) {
  .hero { height:100svh; min-height:640px; max-height:960px; }
  .hero-copy { padding:160px 0 90px; }
  .hero h1 { font-size:clamp(40px,min(5.8vw,9.5svh),78px); margin:18px 0; }
  .hero .hero-actions { margin-top:clamp(20px,3.5svh,34px); }
}

/* Top page: a faint map of Japan and China (sea route to Hiroshima) behind the contact band. */
.contact-hero::after { content:""; position:absolute; z-index:-1; inset:0; background:url("assets/map-japan-china-dark.svg") no-repeat calc(50% - 60px) 46% / min(820px,66vw) auto; -webkit-mask-image:radial-gradient(ellipse 30% 95% at calc(50% + 60px) 50%,#000 35%,transparent 100%); mask-image:radial-gradient(ellipse 30% 95% at calc(50% + 60px) 50%,#000 35%,transparent 100%); pointer-events:none; }
@media (max-width:760px) { .contact-hero::after { background-position:right -45px top -10px; background-size:520px auto; -webkit-mask-image:linear-gradient(#000 25%,transparent 62%); mask-image:linear-gradient(#000 25%,transparent 62%); opacity:.9; } }
/* Hero, first slide: the same Japan-China map laid over the sea photo. */
.hero-slide:has(img[src$="ocean-dawn.jpg"]) { position:relative; }
.hero-slide:has(img[src$="ocean-dawn.jpg"])::after { content:""; position:absolute; inset:0; background:url("assets/map-japan-china-hero.svg") no-repeat right -2% top 58% / max(1180px,86vw) auto; -webkit-mask-image:radial-gradient(ellipse 58% 64% at 67% 52%,#000 58%,transparent 100%); mask-image:radial-gradient(ellipse 58% 64% at 67% 52%,#000 58%,transparent 100%); pointer-events:none; }
@media (max-width:760px) { .hero-slide:has(img[src$="ocean-dawn.jpg"])::after { background-position:right -190px top 24%; background-size:960px auto; -webkit-mask-image:linear-gradient(#000 70%,transparent 92%); mask-image:linear-gradient(#000 70%,transparent 92%); } }


/* Article charts on phones: keep the labels readable and let the chart scroll sideways. */
@media (max-width:600px) {
  .article-figure:has(> .article-chart) { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .article-figure > .article-chart { width:720px; max-width:none; }
  .article-figure:has(> .article-chart)::before { content:"← 横にずらして見られます →"; position:sticky; left:0; display:block; margin-bottom:6px; color:var(--accent); font-size:12px; font-weight:700; }
}

/* Product description: keep each point and spec image to a comfortable size instead of filling the screen. */
.product-desc img { max-width:min(100%,760px); }
@media (min-width:761px) {
  .desc-row { grid-template-columns:minmax(0,380px) minmax(0,1fr); }
  .desc-row:nth-child(even) { grid-template-columns:minmax(0,1fr) minmax(0,380px); }
}
@media (max-width:760px) {
  .product-desc .desc-row img { max-width:420px; margin-inline:auto; }
}
/* Point rows: a lower row with a smaller photo. */
@media (min-width:761px) {
  .desc-row { grid-template-columns:minmax(0,290px) minmax(0,1fr); gap:28px; padding:16px 20px; }
  .desc-row:nth-child(even) { grid-template-columns:minmax(0,1fr) minmax(0,290px); }
  .desc-row-num { margin-bottom:8px; font-size:34px; }
  .desc-row h4 { margin-bottom:8px; }
  .desc-row p { line-height:1.85; }
}
/* Wide screens: the header stays fixed, and its menu row slides away while scrolling down (script.js adds .nav-hidden). */
@media (min-width:961px) {
  .js header { position:fixed; top:0; left:0; right:0; z-index:40; }
  .js body:not([data-page="index"]) { padding-top:143px; }
  .js header .header-inner { transition:min-height .3s ease, padding-bottom .3s ease; }
  .js header .nav-main { transition:opacity .25s ease, transform .3s ease; }
  .js header.nav-hidden .header-inner { min-height:82px; padding-bottom:0; }
  .js header.nav-hidden .nav-main { opacity:0; transform:translateY(-30px); pointer-events:none; visibility:hidden; }
}
/* Menu icon shown at the top right while the menu row is hidden (script.js). */
.nav-reveal { display:none; }
@media (min-width:961px) {
  .js header.nav-hidden .nav-reveal { display:inline-grid; place-items:center; flex:none; width:46px; height:46px; margin-left:4px; padding:0; border:1px solid var(--navy); border-radius:2px; background:#fff; color:var(--navy); cursor:pointer; animation:nav-reveal-in .25s ease; }
  .nav-reveal span, .nav-reveal span::before, .nav-reveal span::after { display:block; width:20px; height:2px; background:currentColor; }
  .nav-reveal span { position:relative; }
  .nav-reveal span::before, .nav-reveal span::after { content:""; position:absolute; left:0; }
  .nav-reveal span::before { top:-6px; }
  .nav-reveal span::after { top:6px; }
  .js header.nav-hidden .nav-reveal:hover { background:var(--navy); color:#fff; }
  .js header.nav-hidden .nav-reveal:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
}
@keyframes nav-reveal-in { from { opacity:0; transform:scale(.85); } to { opacity:1; transform:none; } }
/* Menu icon bars as borders: border widths snap to whole device pixels, so all three stay the same thickness at 125%/150% scaling. */
@media (min-width:961px) {
  .nav-reveal span, .nav-reveal span::before, .nav-reveal span::after { height:0; background:none; border-top:2px solid currentColor; }
  .nav-reveal span::before { top:-8px; }
  .nav-reveal span::after { top:4px; }
}
/* Map over the first hero slide: hidden (2026-10-28, user request). Delete this line to bring it back. */
.hero-slide:has(img[src$="ocean-dawn.jpg"])::after { content:none; }
/* Hero button: keep the round arrow at the right edge even when the label is short (EN/ZH). */
.hero .solid-link { justify-content:space-between; }
.hero .solid-link { min-width:0; }
