:root {
  --ink: #102530;
  --ink-2: #304852;
  --blue: #008fca;
  --blue-bright: #19baf2;
  --navy: #092b3b;
  --navy-2: #0f3f53;
  --paper: #f5f7f7;
  --white: #ffffff;
  --line: #cad4d8;
  --muted: #687b83;
  --orange: #f2a12b;
  --content: 1180px;
  color-scheme: light;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

/* ZEB head office */
.zeb-hero { position: relative; min-height: 640px; display: grid; align-items: end; overflow: hidden; background: #062632; color: #fff; }
.zeb-hero-image, .zeb-hero-image img, .zeb-hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.zeb-hero-image img { object-fit: cover; }
.zeb-hero-overlay { background: linear-gradient(90deg, rgba(3,32,43,.92) 0%, rgba(3,32,43,.64) 48%, rgba(3,32,43,.24) 100%); }
.zeb-hero-inner { position: relative; z-index: 1; width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 150px 0 92px; }
.zeb-hero h1 { max-width: 850px; margin: 24px 0; font-size: clamp(3rem, 6vw, 6.5rem); line-height: 1.08; }
.zeb-hero-lead { max-width: 720px; margin-bottom: 32px; font-size: 1.05rem; line-height: 2; }
.zeb-core-story { padding: 110px 28px; background: #fff; }
.zeb-core-story .section-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: end; }
.zeb-core-copy h2 { font-size: clamp(2.35rem, 4vw, 3.5rem); }
.zeb-core-copy h2 { margin: 0 0 28px; font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: 1.2; letter-spacing: -.04em; }
.zeb-core-copy p:not(.eyebrow) { color: #58717a; line-height: 2; }
.zeb-story-flow { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; border-top: 1px solid #cad6db; border-left: 1px solid #cad6db; }
.zeb-story-flow li { min-width: 0; min-height: 150px; padding: 22px 16px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid #cad6db; border-bottom: 1px solid #cad6db; background: #f5f8f9; }
.zeb-story-flow span { color: #0099d1; font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.zeb-story-flow strong { font-size: 1rem; line-height: 1.45; }
.zeb-concepts, .zeb-facilities, .zeb-visit-info { padding: 120px 28px; }
.zeb-story-list { display: grid; gap: 72px; margin-top: 64px; }
.zeb-story { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 72px; }
.zeb-story.is-reverse figure { order: 2; }
.zeb-story.is-text-only { grid-template-columns: minmax(0, 1fr); }
.zeb-story figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.zeb-story img { width: 100%; height: 100%; object-fit: cover; }
.zeb-story small { color: #0099d1; font-weight: 800; letter-spacing: .18em; }
.zeb-story h3 { margin: 14px 0 18px; font-size: clamp(1.8rem, 3vw, 3rem); }
.zeb-story p { line-height: 2; }
.zeb-performance { padding: 110px 28px; background: #062632; color: #fff; }
.zeb-performance-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 52px; border-top: 1px solid rgba(255,255,255,.24); border-left: 1px solid rgba(255,255,255,.24); }
.zeb-performance-grid article { min-height: 300px; padding: 38px; border-right: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); }
.zeb-performance-grid article > p { margin: 0 0 24px; color: #31bbed; }
.zeb-performance-grid strong { font-size: clamp(3rem, 5vw, 5rem); line-height: 1; }
.zeb-performance-grid span { margin-left: 8px; font-weight: 800; }
.zeb-performance-grid h3 { font-size: 1.35rem; }
.zeb-performance-grid article div { color: rgba(255,255,255,.78); line-height: 1.85; }
.zeb-facility-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 52px; }
.zeb-facility-grid article { border: 1px solid #cad6db; background: #fff; }
.zeb-facility-grid figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.zeb-facility-grid img { width: 100%; height: 100%; object-fit: cover; }
.zeb-facility-grid article > div { padding: 30px; }
.zeb-facility-grid h3 { margin-top: 0; }
.zeb-facility-grid p { color: #58717a; line-height: 1.8; }
.zeb-visit-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #cad6db; border-left: 1px solid #cad6db; }
.zeb-visit-grid article { padding: 40px; border-right: 1px solid #cad6db; border-bottom: 1px solid #cad6db; }
.zeb-visit-grid article div { line-height: 1.9; }
.zeb-visit-grid a { color: #008fc9; font-weight: 800; }
.zeb-rental-link { padding: 90px 28px; background: #0099d1; color: #fff; }
.zeb-rental-link .section-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.zeb-rental-link h2 { margin: 12px 0; font-size: clamp(2rem, 4vw, 4rem); }

@media (max-width: 800px) {
  .zeb-hero { min-height: 570px; }
  .zeb-hero-inner { width: min(100% - 32px, 1180px); padding: 120px 0 60px; }
  .zeb-hero h1 { font-size: clamp(2.5rem, 12vw, 4.4rem); }
  .zeb-concepts, .zeb-performance, .zeb-facilities, .zeb-visit-info { padding: 80px 20px; }
  .zeb-story, .zeb-story.is-reverse { grid-template-columns: 1fr; gap: 28px; }
  .zeb-story.is-reverse figure { order: 0; }
  .zeb-performance-grid, .zeb-facility-grid, .zeb-visit-grid { grid-template-columns: 1fr; }
  .zeb-performance-grid article { min-height: auto; }
  .zeb-rental-link .section-inner { display: block; }
  .zeb-rental-link { padding: 70px 20px; }
  .zeb-rental-link .button { margin-top: 24px; }
  .zeb-core-story { padding: 80px 20px; }
  .zeb-core-story .section-inner { grid-template-columns: 1fr; gap: 36px; }
  .zeb-story-flow { grid-template-columns: 1fr; }
  .zeb-story-flow li { min-height: 76px; flex-direction: row; align-items: center; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--blue-bright);
  outline-offset: 3px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid rgba(9, 43, 59, .12);
  backdrop-filter: blur(12px);
}
.header-inner {
  max-width: 1440px;
  min-height: 84px;
  margin: 0 auto;
  padding: 0 30px;
  display: grid;
  grid-template-columns: 210px 1fr auto;
  gap: 32px;
  align-items: center;
}
.brand img { width: 190px; height: auto; }
.global-nav { display: flex; justify-content: flex-end; gap: clamp(20px, 2.3vw, 38px); }
.global-nav a { font-size: .9rem; font-weight: 700; letter-spacing: .02em; }
.global-nav a:hover { color: var(--blue); }
.header-cta {
  min-height: 48px;
  padding: 0 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  background: var(--blue);
  font-weight: 700;
}
.menu-button { display: none; }

.service-bridge { padding: 82px 28px; background: #edf4f7; }
.service-bridge-inner { display: grid; grid-template-columns: .78fr 1.22fr; gap: 64px; align-items: start; }
.service-bridge-copy h2 { margin: 0; font-size: clamp(2.1rem, 3.4vw, 3.35rem); line-height: 1.25; letter-spacing: -.04em; }
.service-bridge-copy > p:not(.eyebrow) { margin: 26px 0 0; color: var(--muted); font-size: 1.02rem; line-height: 2; }
.service-bridge-links { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-bridge-links a { min-height: 240px; padding: 31px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease; }
.service-bridge-links a:hover { transform: translateY(-4px); color: var(--white); background: var(--navy); }
.service-bridge-links span, .home-choice-grid span { color: var(--blue); font-size: .76rem; font-weight: 700; letter-spacing: .16em; }
.service-bridge-links strong { margin-top: 36px; font-size: 1.35rem; line-height: 1.5; }
.service-bridge-links small { margin-top: 12px; color: var(--muted); font-size: .95rem; line-height: 1.75; }
.service-bridge-links b { margin-top: auto; padding-top: 24px; font-size: .96rem; transition: transform .2s ease; }
.service-bridge-links a:hover span { color: var(--blue-bright); }
.service-bridge-links a:hover small { color: #c4d3d9; }
.service-bridge-links a:hover b { transform: translateX(4px); }

.home-choice { padding: 105px 28px; background: #edf4f7; }
.home-choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-choice-grid a { min-height: 255px; padding: 34px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); transition: transform .2s ease; }
.home-choice-grid a:hover { transform: translateY(-4px); }
.home-choice-grid strong { margin-top: 45px; font-size: 1.45rem; }
.home-choice-grid p { margin: 10px 0 0; color: var(--muted); line-height: 1.7; }
.home-choice-grid b { margin-top: auto; color: var(--blue); font-size: .9rem; }
.home-choice-secondary { box-shadow: inset 0 5px 0 var(--orange); }

.hero {
	min-height: min(680px, calc(100vh - 84px));
  position: relative;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--navy);
  color: var(--white);
}
.hero-picture { position: absolute; inset: 0; display: block; }
.hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center 44%; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 28, 39, .94) 0%, rgba(5, 28, 39, .76) 44%, rgba(5, 28, 39, .12) 78%); }
.hero-grid { position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px); background-size: 92px 92px; transform: skewY(-4deg) scale(1.1); }
@media (max-width: 680px) { .hero-grid { transform: none; } }
.hero-inner { position: relative; z-index: 2; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 100px 0 140px; }
.hero-content-slide { display: none; }
.hero-content-slide.is-active { display: block; }
.eyebrow { margin: 0 0 18px; color: var(--blue); font-size: .78rem; font-weight: 700; letter-spacing: .2em; }
.hero-eyebrow { color: var(--blue-bright); }
.hero h1, .hero-title { margin: 0; font-size: clamp(3rem, 7vw, 6.6rem); line-height: 1.06; letter-spacing: -.045em; font-weight: 800; }
.hero h1 span, .hero-title span { color: var(--white); }
.hero-copy { margin: 34px 0 0; font-size: clamp(1.05rem, 1.8vw, 1.35rem); line-height: 1.9; font-weight: 600; }
.hero-actions { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 12px; }
.button { min-height: 54px; padding: 0 25px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; font-weight: 700; transition: transform .2s ease, background .2s ease; }
.hero-actions .button { min-height: 60px; padding: 0 30px; font-size: 1rem; }
body.home .header-cta { min-height: 52px; padding: 0 28px; font-size: .92rem; }
.button:hover { transform: translateY(-2px); }
.button-accent { color: #17232a; background: var(--orange); }
.button-outline { color: var(--white); border-color: rgba(255,255,255,.75); background: rgba(6,31,42,.25); }
.hero-foot { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; min-height: 76px; padding: 0 max(24px, calc((100% - var(--content))/2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; background: rgba(5,28,39,.74); border-top: 1px solid rgba(255,255,255,.25); font-size: .76rem; letter-spacing: .16em; }
.hero-foot a { letter-spacing: .02em; font-size: .88rem; }

.section { padding: 110px 28px; }
.section-inner { width: min(var(--content), 100%); margin: 0 auto; }
.section-heading { margin-bottom: 52px; }
.split-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: end; }
.section-heading h2, .contact-heading h2 { margin: 0; font-size: clamp(2rem, 4.4vw, 4.1rem); line-height: 1.28; letter-spacing: -.035em; }
.section-heading > p, .split-heading > p { margin: 0; color: var(--muted); line-height: 2; font-size: 1rem; }
body.home .audience-section,
body.home .solutions-section,
body.home .works-section,
body.home .news-section { padding-top: 100px; padding-bottom: 100px; }
body.home .products-section { padding-top: 88px; padding-bottom: 88px; }
body.home .section-heading > p,
body.home .split-heading > p { font-size: 1.04rem; }

.audience-section { background: var(--white); }
.audience-primary { margin-bottom: 18px; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--navy); border-left: 1px solid var(--navy); }
.audience-primary a { min-height: 96px; padding: 21px 26px; display: grid; grid-template-columns: 1fr auto; gap: 5px 22px; align-items: center; color: var(--white); border-right: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid var(--navy); background: var(--navy); transition: background .2s ease; }
.audience-primary a:hover { background: var(--blue); }
.audience-primary span { grid-column: 1 / -1; color: var(--blue-bright); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.audience-primary strong { font-size: 1.2rem; }
.audience-primary b { font-size: 1.4rem; font-weight: 400; transition: transform .2s ease; }
.audience-primary a:hover b { transform: translateX(4px); }
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.audience-card { min-height: 370px; padding: 38px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: var(--white); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, color .22s ease, background-color .22s ease; }
.audience-card:last-child { border-right: 0; }
.audience-card:hover, .audience-card:focus-visible { position: relative; z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-6px); box-shadow: 0 22px 45px rgba(7,36,49,.18); }
.audience-number { font-size: .76rem; letter-spacing: .14em; color: var(--blue); }
.audience-icon { width: 54px; height: 54px; margin-top: 31px; display: inline-grid; place-items: center; color: var(--blue); }
.audience-icon svg { width: 100%; height: 100%; display: block; }
.audience-card h3 { margin: 25px 0 14px; font-size: 1.4rem; line-height: 1.45; }
.audience-card p { margin: 0 0 28px; font-size: 1.02rem; line-height: 1.85; color: var(--muted); transition: color .22s ease; }
.text-link { margin-top: auto; font-size: .98rem; font-weight: 700; color: var(--blue); }
.text-link span { display: inline-block; margin-left: 4px; font-size: 1.12rem; transition: transform .2s ease; }
.audience-card:hover p, .audience-card:focus-visible p { color: #c8d8de; }
.audience-card:hover .audience-number, .audience-card:focus-visible .audience-number, .audience-card:hover .audience-icon, .audience-card:focus-visible .audience-icon, .audience-card:hover .text-link, .audience-card:focus-visible .text-link { color: var(--blue-bright); }
.audience-card:hover .text-link span, .audience-card:focus-visible .text-link span { transform: translateX(4px); }
.audience-secondary { margin-top: 18px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.audience-secondary a { min-height: 78px; padding: 17px 22px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink-2); background: var(--paper); transition: color .2s ease, background-color .2s ease; }
.audience-secondary a:hover, .audience-secondary a:focus-visible { color: var(--white); background: var(--navy); }
.audience-secondary strong { min-width: 0; font-size: .95rem; font-weight: 700; line-height: 1.5; }
.audience-secondary-icon { width: 28px; height: 28px; display: inline-grid; place-items: center; color: var(--blue); transition: color .2s ease; }
.audience-secondary-icon svg { width: 100%; height: 100%; display: block; }
.audience-secondary-arrow { color: var(--blue); font-size: 1.1rem; transition: color .2s ease, transform .2s ease; }
.audience-secondary a:hover .audience-secondary-icon, .audience-secondary a:focus-visible .audience-secondary-icon, .audience-secondary a:hover .audience-secondary-arrow, .audience-secondary a:focus-visible .audience-secondary-arrow { color: var(--blue-bright); }
.audience-secondary a:hover .audience-secondary-arrow, .audience-secondary a:focus-visible .audience-secondary-arrow { transform: translateX(4px); }

.home-proof { padding: 0 28px; color: var(--white); background: var(--navy); }
.home-proof-grid { display: grid; grid-template-columns: .9fr .9fr 1.2fr; }
.home-proof-grid > div { min-height: 172px; padding: 34px 38px; display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 20px; align-items: center; border-left: 1px solid rgba(255,255,255,.18); }
.home-proof-grid > div:last-child { border-right: 1px solid rgba(255,255,255,.18); }
.home-proof-icon { width: 42px; height: 42px; display: inline-grid; place-items: center; color: var(--blue-bright); }
.home-proof-icon svg { width: 100%; height: 100%; display: block; }
.home-proof-copy { min-width: 0; display: flex; flex-direction: column; }
.home-proof-copy > span { margin-bottom: 10px; color: var(--blue-bright); font-size: .68rem; font-weight: 800; letter-spacing: .18em; }
.home-proof-copy strong, .home-proof-copy strong .u-heading-line { margin: 0; color: var(--white); font-size: clamp(1.15rem, 1.55vw, 1.42rem); font-weight: 800; line-height: 1.45; letter-spacing: 0; }
.home-proof-copy small { margin-top: 7px; color: #c4d3d9; font-size: .87rem; line-height: 1.65; }

.home-reasons { background: var(--paper); }
.home-reasons-heading { max-width: 880px; margin-bottom: 64px; }
.home-reasons-heading h2 { margin: 0; font-size: clamp(2.35rem, 4.8vw, 4.7rem); line-height: 1.18; letter-spacing: -.045em; }
.home-reasons-heading > p:last-child { max-width: 720px; margin: 28px 0 0; color: var(--muted); font-size: 1rem; line-height: 2; }
.home-reason-list { border-top: 1px solid var(--line); }
.home-reason-card { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: stretch; border-bottom: 1px solid var(--line); }
.home-reason-card.is-reverse figure { order: 2; }
.home-reason-card figure { min-height: 390px; margin: 0; overflow: hidden; background: #dfe7ea; }
.home-reason-card figure img { width: 100%; height: 100%; object-fit: cover; }
.home-reason-card > div { padding: clamp(42px, 6vw, 78px); display: flex; flex-direction: column; justify-content: center; background: var(--white); }
.home-reason-card > div > span { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.home-reason-card h3 { margin: 16px 0 22px; font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.35; letter-spacing: -.025em; }
.home-reason-body p { margin: 0 0 16px; color: var(--muted); line-height: 1.95; }
.home-reason-body p:last-child { margin-bottom: 0; }

.works-section { background: var(--paper); }
.home-zeb-proof { color: var(--white); background: #062632; }
.home-zeb-proof-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.home-zeb-proof figure { min-height: 400px; margin: 0; overflow: hidden; }
.home-zeb-proof img { width: 100%; height: 100%; object-fit: cover; }
.home-zeb-proof-inner > div { padding: clamp(48px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.home-zeb-proof h2 { margin: 0 0 28px; font-size: clamp(2.4rem, 4vw, 3.35rem); line-height: 1.2; letter-spacing: -.045em; }
.home-zeb-proof p:not(.eyebrow) { margin: 0 0 32px; color: #c8d9df; line-height: 2; }
.home-zeb-proof .arrow-link { color: #55c2e7; }
@media(max-width:780px){.home-zeb-proof-inner{grid-template-columns:1fr}.home-zeb-proof figure{height:300px;min-height:0}.home-zeb-proof-inner>div{padding:60px 22px}}
.works-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.arrow-link { padding-bottom: 8px; border-bottom: 1px solid var(--ink); font-weight: 700; }
.works-grid { display: grid; grid-template-columns: 1.55fr .9fr; grid-template-rows: repeat(2, 260px); gap: 18px; }
.work-card { position: relative; overflow: hidden; color: var(--white); background: var(--navy); }
.work-card-main { grid-row: 1 / 3; }
.work-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.work-card:hover img { transform: scale(1.035); }
.work-card::after { content: ""; position: absolute; inset: 28% 0 0; background: linear-gradient(transparent, rgba(3,24,33,.9)); }
.work-caption { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 30px; }
.work-caption span { font-size: .76rem; font-weight: 700; letter-spacing: .14em; color: var(--blue-bright); }
.work-caption h3 { margin: 10px 0 5px; font-size: 1.45rem; line-height: 1.45; }
.work-caption p { margin: 0; color: #d5e1e5; font-size: .95rem; }
.works-note { margin: 24px 0 0; text-align: right; color: var(--muted); font-size: .85rem; }

.solutions-section { background: var(--white); }
.solutions-list { border-top: 1px solid var(--line); }
.solutions-list a { min-height: 112px; padding: 0 14px; display: grid; grid-template-columns: 70px 1.05fr 1.3fr auto; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); transition: padding .2s ease, color .2s ease, background .2s ease; }
.solutions-list a:hover { color: var(--blue); padding-left: 22px; background: #f7fafb; }
.solutions-list span { color: var(--blue); font-size: .78rem; font-weight: 700; letter-spacing: .12em; }
.solutions-list strong { font-size: 1.18rem; }
.solutions-list small { color: var(--muted); font-size: 1rem; line-height: 1.65; }
.solutions-list b { font-size: 1.5rem; font-weight: 400; transition: transform .2s ease; }
.solutions-list a:hover b { transform: translateX(4px); }
.solutions-more { margin: 28px 0 0; text-align: right; }
.solutions-more .arrow-link span { margin-right: 8px; color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.solutions-empty { margin: 0; padding: 30px 14px; color: var(--muted); border-bottom: 1px solid var(--line); }

.strength-section { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; background: var(--navy); color: var(--white); }
.strength-image-wrap { min-height: 600px; overflow: hidden; }
.strength-image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.strength-content { padding: clamp(70px, 8vw, 120px); display: flex; flex-direction: column; justify-content: center; }
.light-eyebrow { color: var(--blue-bright); }
.strength-content h2, .mission-copy h2 { margin: 0; font-size: clamp(2.4rem, 4.7vw, 4.8rem); line-height: 1.2; letter-spacing: -.045em; }
.strength-content > p:not(.eyebrow) { margin: 30px 0 0; color: #c4d3d9; line-height: 2; }
.strength-flow { margin: 38px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.strength-flow li { padding: 14px 0; display: grid; grid-template-columns: 52px 1fr; border-bottom: 1px solid rgba(255,255,255,.18); }
.strength-flow span { color: var(--blue-bright); font-size: .76rem; }
.button-light { align-self: flex-start; color: var(--navy); background: var(--white); }

.products-section { background: var(--paper); }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.product-card { min-width: 0; min-height: 190px; display: flex; flex-direction: column; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); transition: color .2s ease; }
.product-card-image { position: relative; aspect-ratio: 8 / 5; overflow: hidden; background: #dfe7ea; }
.product-card-image::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; background: linear-gradient(transparent, rgba(3,24,33,.18)); pointer-events: none; }
.product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.product-card:hover .product-card-image img { transform: scale(1.035); }
.product-card-body { position: relative; min-height: 205px; padding: 32px; display: flex; flex-direction: column; background: var(--white); transition: background .2s ease, color .2s ease; }
.product-card:hover .product-card-body { color: var(--white); background: var(--navy); }
.product-card span { color: var(--blue); font-size: .78rem; font-weight: 700; }
.product-card strong { margin-top: auto; padding-right: 34px; font-size: 1.35rem; line-height: 1.5; }
.product-card small { margin-top: 10px; padding-right: 34px; color: var(--muted); font-size: .95rem; line-height: 1.7; }
.product-card b { position: absolute; right: 32px; bottom: 32px; font-size: 1.4rem; font-weight: 400; transition: transform .2s ease; }
.product-card:hover small { color: #c4d3d9; }
.product-card:hover b { transform: translateX(4px); }

.mission-section { padding: 120px 28px; color: var(--white); background: var(--navy-2); position: relative; overflow: hidden; }
.mission-section::before { content: "U"; position: absolute; right: -3vw; bottom: -15vw; color: rgba(255,255,255,.035); font-size: 50vw; line-height: .8; font-weight: 800; }
.mission-inner { position: relative; z-index: 1; width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: 1.2fr .8fr; gap: 100px; align-items: center; }
.mission-copy p:not(.eyebrow) { max-width: 650px; margin: 30px 0 0; color: #c7d7dd; line-height: 2; }
.mission-links { border-top: 1px solid rgba(255,255,255,.24); }
.mission-links a { min-height: 82px; padding: 0 10px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.24); font-size: 1.02rem; font-weight: 700; }
.mission-links a:hover { color: var(--blue-bright); }

.community-section { padding: 72px 28px; background: #fff8e9; }
.community-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 78px); align-items: center; }
.community-visual { position: relative; min-height: 0; aspect-ratio: 16 / 10; overflow: hidden; background: #decda7; }
.community-visual img { width: 100%; height: 100%; object-fit: cover; }
.community-visual-text { position: absolute; left: clamp(20px, 3vw, 38px); bottom: clamp(18px, 3vw, 34px); z-index: 1; max-width: calc(100% - 40px); margin: 0; color: #fff; font-size: clamp(1rem, 1.7vw, 1.35rem); font-weight: 700; letter-spacing: .04em; text-shadow: 0 2px 14px rgba(4,27,38,.7); }
.community-content { padding: 0; display: flex; flex-direction: column; justify-content: center; }
.community-label { margin: 0 0 12px; color: #7d6840; font-size: .86rem; font-weight: 700; }
.community-content h2 { margin: 0; font-size: clamp(2rem, 3.3vw, 3.2rem); line-height: 1.28; letter-spacing: -.04em; }
.community-lead { max-width: 620px; margin: 18px 0 0; color: #615b4f; font-size: 1.02rem; line-height: 1.9; }
.button-community { margin-top: 25px; align-self: flex-start; min-height: 54px; padding: 0 24px; color: #705b31; border-color: #b99b60; background: transparent; font-size: .94rem; }
.button-community:hover { background: rgba(185,155,96,.1); }
.button-community span { margin-left: 12px; }

.news-section { background: var(--paper); }
.news-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.news-list { border-top: 1px solid var(--line); }
.news-list a { min-height: 98px; display: grid; grid-template-columns: 120px 96px 1fr auto; gap: 25px; align-items: center; border-bottom: 1px solid var(--line); transition: padding .2s ease, color .2s ease; }
.news-list a:hover { padding-left: 10px; color: var(--blue); }
.news-list time { color: var(--muted); font-size: .9rem; }
.news-category { padding: 7px 8px; color: var(--blue); border: 1px solid var(--blue); text-align: center; font-size: .74rem; font-weight: 700; }
.community-category { color: #8a651d; border-color: #b38a39; }
.news-list strong { font-size: 1.02rem; line-height: 1.65; }
.news-list b { font-size: 1.2rem; font-weight: 400; }

.factory-hero { min-height: 660px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.factory-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.factory-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.96) 0%, rgba(4,27,38,.8) 48%, rgba(4,27,38,.28) 100%); }
.factory-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 100px; }
.breadcrumbs { margin-bottom: 68px; display: flex; flex-wrap: wrap; gap: 10px; color: #bfd0d6; font-size: .76rem; }
.factory-hero h1 { max-width: 900px; margin: 0; font-size: clamp(3rem, 6vw, 6rem); line-height: 1.1; letter-spacing: -.045em; }
.factory-hero h1 span { color: var(--blue-bright); }
.factory-hero-inner > p:not(.eyebrow) { max-width: 690px; margin: 30px 0 0; font-size: 1.15rem; line-height: 1.9; font-weight: 600; }

.factory-intro { padding: 120px 28px; background: var(--white); }
.factory-content-grid { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; align-items: start; }
.factory-intro-copy { position: sticky; top: 130px; }
.factory-intro-copy h2, .factory-solutions-head h2, .factory-proof-copy h2, .factory-contact h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.factory-intro-copy > p:not(.eyebrow) { margin: 28px 0 0; color: var(--muted); line-height: 2; }
.issue-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.issue-grid article { min-height: 250px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.issue-grid span, .factory-solution-list > article > span { color: var(--blue); font-size: .74rem; letter-spacing: .14em; }
.issue-grid h3 { margin: 65px 0 12px; font-size: 1.2rem; }
.issue-grid p { margin: 0; color: var(--muted); line-height: 1.8; font-size: .9rem; }

.factory-solutions { padding: 120px 28px; color: var(--white); background: var(--navy); }
.factory-solutions-head { margin-bottom: 55px; }
.factory-solution-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.factory-solution-list article { min-height: 210px; padding: 34px; display: grid; grid-template-columns: 52px 1fr; gap: 18px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.factory-solution-list h3 { margin: 0 0 14px; font-size: 1.2rem; }
.factory-solution-list p { margin: 0; color: #bdd0d8; line-height: 1.9; font-size: .92rem; }

.factory-process { padding: 120px 28px; background: var(--paper); }
.process-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.process-grid li { min-height: 210px; padding: 25px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.process-grid span { color: var(--blue); font-size: .74rem; }
.process-grid strong { margin-top: 56px; font-size: 1.08rem; }
.process-grid small { margin-top: 10px; color: var(--muted); line-height: 1.6; }

.factory-proof { min-height: 660px; display: grid; grid-template-columns: 1fr 1fr; color: var(--white); background: var(--navy-2); }
.factory-proof-image { overflow: hidden; }
.factory-proof-image img { width: 100%; height: 100%; object-fit: cover; }
.factory-proof-copy { padding: clamp(65px, 8vw, 115px); display: flex; flex-direction: column; justify-content: center; }
.factory-proof-copy > p:not(.eyebrow) { margin: 30px 0 36px; color: #c6d8de; line-height: 2; }

.factory-works { padding: 110px 28px; background: var(--white); }
.factory-works-placeholder { padding: 45px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 55px; border-top: 4px solid var(--blue); background: var(--paper); }
.factory-works-placeholder strong { font-size: 1.25rem; }
.factory-works-placeholder p { margin: 0; color: var(--muted); line-height: 1.9; }

.factory-contact { padding: 110px 28px; color: var(--white); background: #073347; }
.factory-contact-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: 90px; align-items: center; }
.factory-contact-inner > div:first-child > p:not(.eyebrow) { margin: 28px 0 0; color: #c6d8de; line-height: 2; }
.factory-contact-actions { display: grid; gap: 12px; }
.factory-phone { min-height: 78px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.45); }
.factory-phone span { color: #bcd0d8; font-size: .78rem; }
.factory-phone strong { margin-top: 3px; font-size: 1.25rem; }
.factory-footer { margin-top: 0; }

.professional-hero { min-height: 660px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.professional-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.professional-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.97) 0%, rgba(4,27,38,.87) 48%, rgba(4,27,38,.25) 100%); }
.professional-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 100px; }
.professional-hero h1 { max-width: 920px; margin: 0; font-size: clamp(3rem, 6.3vw, 6.2rem); line-height: 1.08; letter-spacing: -.045em; }
.professional-hero h1 span { color: var(--blue-bright); }
.professional-hero-inner > p:not(.eyebrow) { max-width: 700px; margin: 30px 0 0; font-size: 1.15rem; line-height: 1.9; font-weight: 600; }

.professional-promise { padding: 95px 28px; color: var(--white); background: var(--blue); }
.professional-promise-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .7fr 1.3fr; gap: 75px; }
.professional-promise .eyebrow { color: #d9f5ff; }
.professional-promise h2 { margin: 0; font-size: clamp(2rem, 3.7vw, 3.5rem); line-height: 1.35; letter-spacing: -.035em; }
.professional-promise p:last-child { grid-column: 2; margin: 0; color: #e5f7fd; line-height: 2; }

.professional-audience { padding: 120px 28px; background: var(--white); }
.professional-role-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.professional-role-grid article { min-height: 420px; padding: 34px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.professional-role-grid article > span { color: var(--blue); font-size: .74rem; letter-spacing: .14em; }
.professional-role-grid h3 { margin: 70px 0 18px; font-size: 1.28rem; }
.professional-role-grid p { margin: 0; color: var(--muted); line-height: 1.9; }
.professional-role-grid a { margin-top: auto; padding-top: 30px; color: var(--blue); font-size: .9rem; font-weight: 700; }

.professional-support { padding: 120px 28px; color: var(--white); background: var(--navy); }
.professional-support-head { margin-bottom: 55px; display: grid; grid-template-columns: .65fr 1.35fr; gap: 40px 75px; align-items: end; }
.professional-support-head .eyebrow { grid-column: 1 / 3; margin-bottom: -20px; }
.professional-support-head h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.professional-support-head > p { margin: 0; color: #bdd0d8; line-height: 2; }
.professional-support-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.professional-support-grid article { min-height: 245px; padding: 30px; display: grid; grid-template-columns: 44px 1fr; gap: 12px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.professional-support-grid article > span { color: var(--blue-bright); font-size: .74rem; letter-spacing: .12em; }
.professional-support-grid h3 { margin: 0 0 14px; font-size: 1.16rem; }
.professional-support-grid p { margin: 0; color: #bdd0d8; line-height: 1.85; font-size: .9rem; }

.professional-network { min-height: 440px; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); }
.professional-network-image { overflow: hidden; }
.professional-network-image img { width: 100%; height: 100%; object-fit: cover; }
.professional-network-copy { padding: clamp(44px, 5vw, 62px); display: flex; flex-direction: column; justify-content: center; }
.professional-number { margin: 0 0 20px; color: var(--blue); font-weight: 800; }
.professional-number span { font-size: clamp(4rem, 8vw, 7rem); line-height: .9; letter-spacing: -.06em; }
.professional-network-copy h2, .professional-contact h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.professional-network-copy > p:not(.eyebrow):not(.professional-number) { margin: 28px 0 0; color: var(--muted); line-height: 2; }
.professional-network-copy small { margin-top: 22px; color: #87959b; font-size: .75rem; }

.professional-flow { padding: 120px 28px; background: var(--white); }
.professional-flow-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.professional-flow-grid li { min-height: 225px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.professional-flow-grid span { color: var(--blue); font-size: .74rem; }
.professional-flow-grid strong { margin-top: 62px; font-size: 1.08rem; }
.professional-flow-grid small { margin-top: 10px; color: var(--muted); line-height: 1.6; }

.professional-contact { padding: 110px 28px; color: var(--white); background: #073347; }
.professional-contact-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.professional-contact-inner > div:first-child > p:not(.eyebrow) { margin: 28px 0 0; color: #c6d8de; line-height: 2; }
.professional-contact-menu { border-top: 1px solid rgba(255,255,255,.35); }
.professional-contact-menu > a { min-height: 70px; padding: 0 8px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.35); font-weight: 700; }
.professional-contact-menu > a:hover { color: var(--blue-bright); }
.professional-contact-menu b { font-size: 1.15rem; font-weight: 400; }
.professional-contact-menu .professional-phone { min-height: 82px; justify-content: center; flex-direction: column; color: var(--ink); border: 0; background: var(--white); }
.professional-phone > span { color: var(--muted); font-size: .72rem; }
.professional-phone strong { margin-top: 3px; font-size: 1.2rem; }

.home-hero { min-height: 640px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.home-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.96) 0%, rgba(4,27,38,.82) 50%, rgba(4,27,38,.2) 100%); }
.home-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 100px; }
.home-hero h1 { max-width: 930px; margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); line-height: 1.12; letter-spacing: -.045em; }
.home-hero h1 span { color: var(--blue-bright); }
.home-hero-inner > p:not(.eyebrow) { max-width: 700px; margin: 30px 0 0; font-size: 1.15rem; line-height: 1.9; font-weight: 600; }

.home-concerns { padding: 120px 28px; background: var(--white); }
.home-concern-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-concern-grid article { min-height: 240px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-concern-grid span { color: var(--blue); font-size: .74rem; letter-spacing: .14em; }
.home-concern-grid h3 { margin: 48px 0 12px; font-size: 1.16rem; }
.home-concern-grid p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.8; }
.home-safety { margin-top: 28px; padding: 25px 30px; display: grid; grid-template-columns: .65fr 1.35fr; gap: 30px; align-items: center; color: var(--white); background: var(--blue); }
.home-safety strong { font-size: 1.06rem; }
.home-safety p { margin: 0; line-height: 1.7; }

.home-services { padding: 120px 28px; color: var(--white); background: var(--navy); }
.home-services-head { margin-bottom: 55px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 40px 75px; align-items: end; }
.home-services-head .eyebrow { grid-column: 1 / 3; margin-bottom: -20px; }
.home-services-head h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.home-services-head > p { margin: 0; color: #bdd0d8; font-size: 1rem; line-height: 2; }
.home-service-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.home-service-list article { min-height: 220px; padding: 34px; display: grid; grid-template-columns: 50px 1fr; gap: 16px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.home-service-list article > span { color: var(--blue-bright); font-size: .74rem; letter-spacing: .12em; }
.home-service-list h3 { margin: 0 0 14px; font-size: 1.18rem; }
.home-service-list p { margin: 0; color: #c2d3d9; font-size: 1rem; line-height: 1.85; }

.home-explanation { min-height: 440px; display: grid; grid-template-columns: 1fr 1fr; color: var(--white); background: var(--navy-2); }
.home-explanation-image { overflow: hidden; }
.home-explanation-image img { width: 100%; height: 100%; object-fit: cover; }
.home-explanation-copy { padding: clamp(44px, 5vw, 62px); display: flex; flex-direction: column; justify-content: center; }
.home-explanation-copy h2, .home-contact h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.home-explanation-copy > p:not(.eyebrow) { margin: 30px 0 0; color: #c6d8de; font-size: 1rem; line-height: 2; }
.home-explanation-copy ul { margin: 34px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.25); }
.home-explanation-copy li { padding: 16px 4px; border-bottom: 1px solid rgba(255,255,255,.25); font-weight: 700; }

.home-process { padding: 120px 28px; background: var(--paper); }
.home-process-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-process-grid li { min-height: 220px; padding: 25px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.home-process-grid span { color: var(--blue); font-size: .74rem; }
.home-process-grid strong { margin-top: 58px; font-size: 1.04rem; }
.home-process-grid small { margin-top: 10px; color: var(--muted); font-size: .86rem; line-height: 1.6; }

.home-works { padding: 110px 28px; background: var(--white); }
.home-works-placeholder { padding: 45px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 55px; border-top: 4px solid var(--blue); background: var(--paper); }
.home-works-placeholder strong { font-size: 1.25rem; }
.home-works-placeholder p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.9; }

.home-faq { padding: 110px 28px; background: var(--paper); }
.home-faq-list { border-top: 1px solid var(--line); }
.home-faq-list details { border-bottom: 1px solid var(--line); background: var(--white); }
.home-faq-list summary { min-height: 82px; padding: 25px 62px 25px 28px; position: relative; display: flex; align-items: center; cursor: pointer; font-size: 1.05rem; font-weight: 700; list-style: none; }
.home-faq-list summary::-webkit-details-marker { display: none; }
.home-faq-list summary::after { content: "+"; position: absolute; right: 28px; color: var(--blue); font-size: 1.6rem; font-weight: 400; }
.home-faq-list details[open] summary::after { content: "−"; }
.home-faq-list details p { margin: 0; padding: 0 70px 28px 28px; color: var(--muted); font-size: 1rem; line-height: 1.9; }

.home-contact { padding: 110px 28px; color: var(--white); background: #073347; }
.home-contact-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; align-items: center; }
.home-contact-inner > div:first-child > p:not(.eyebrow) { margin: 28px 0 0; color: #c6d8de; font-size: 1rem; line-height: 2; }
.home-contact-actions { display: grid; gap: 12px; }
.home-phone { min-height: 78px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.45); }
.home-phone span { color: #bcd0d8; font-size: .78rem; }
.home-phone strong { margin-top: 3px; font-size: 1.25rem; }

.works-archive-hero { min-height: 610px; display: grid; align-items: center; color: var(--white); background: linear-gradient(110deg, rgba(4,27,38,.97), rgba(4,27,38,.72)), url('./assets/aerial-2.jpg') center / cover; }
.works-archive-hero-inner { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 95px; }
.works-archive-hero h1 { margin: 0; font-size: clamp(3rem, 6.4vw, 6.3rem); line-height: 1.08; letter-spacing: -.045em; }
.works-archive-hero h1 span { color: var(--blue-bright); }
.works-archive-hero-inner > p:not(.eyebrow) { max-width: 720px; margin: 30px 0 0; color: #d5e4e9; font-size: 1.1rem; line-height: 1.9; font-weight: 600; }
.works-archive { padding: 120px 28px; background: var(--white); }
.works-search-form { margin-bottom: 42px; padding: 28px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: end; border: 1px solid var(--line); background: var(--paper); }
.works-search-form label { display: grid; gap: 8px; color: var(--ink); font-size: .78rem; font-weight: 800; }
.works-search-form input, .works-search-form select { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: var(--white); }
.works-search-form button { align-self: end; }
.works-search-form > a { color: var(--blue); font-size: .82rem; font-weight: 800; }
.works-filter { margin-bottom: 42px; display: flex; flex-wrap: wrap; gap: 8px; }
.works-filter button { min-height: 46px; padding: 0 18px; border: 1px solid var(--line); color: var(--ink); background: var(--white); cursor: pointer; font-weight: 700; }
.works-filter button.is-active { color: var(--white); border-color: var(--navy); background: var(--navy); }
.works-archive-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.works-archive-card { display: block; border: 1px solid var(--line); background: var(--paper); }
.works-archive-card[hidden] { display: none; }
.works-archive-image { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--navy); }
.works-archive-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
a.works-archive-card:hover .works-archive-image img { transform: scale(1.035); }
.works-archive-image span { position: absolute; top: 18px; left: 18px; padding: 7px 10px; color: var(--white); background: rgba(5,28,39,.88); font-size: .72rem; font-weight: 700; }
.works-archive-copy { padding: 28px; }
.works-archive-copy small { color: var(--blue); font-size: .7rem; letter-spacing: .13em; }
.works-archive-copy h3 { margin: 10px 0 8px; font-size: 1.35rem; }
.works-archive-copy p { margin: 0; color: var(--muted); font-size: .9rem; }
.works-archive-copy .works-product-meta { margin-top: 10px; line-height: 1.6; }
.works-product-meta strong { margin-right: 8px; color: var(--ink); font-size: .76rem; }
.works-archive-copy b { display: block; margin-top: 24px; font-size: .86rem; }
.concern-archive-hero, .concern-detail-hero { min-height: 540px; display: grid; align-items: center; color: var(--white); background: linear-gradient(110deg, rgba(4,27,38,.97), rgba(4,27,38,.7)), url('./assets/aerial-2.jpg') center / cover; }
.concern-archive-hero-inner, .concern-detail-hero-inner { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 85px 0; }
.concern-archive-hero h1, .concern-detail-hero h1 { max-width: 900px; margin: 0; font-size: clamp(3rem, 6.2vw, 6rem); line-height: 1.1; letter-spacing: -.05em; }
.concern-archive-hero h1 span { color: var(--blue-bright); }
.concern-archive-hero-inner > p:not(.eyebrow), .concern-detail-hero-inner > p:not(.eyebrow) { max-width: 720px; margin: 28px 0 0; color: #d5e4e9; line-height: 1.9; font-weight: 600; }
.concern-archive-section, .concern-detail-content, .concern-related-works { padding: 110px 28px; background: var(--white); }
.concern-archive-intro { max-width: 780px; margin-bottom: 50px; }
.concern-archive-intro h2 { margin: 12px 0 18px; font-size: clamp(2rem, 4.5vw, 3.8rem); line-height: 1.2; }
.concern-archive-intro > p:last-child { max-width: 680px; color: var(--muted); line-height: 1.9; }
.concern-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.concern-card { min-width: 0; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); color: var(--ink); text-decoration: none; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.concern-card figure { min-height: 230px; margin: 0; overflow: hidden; background: #dce5e8; }
.concern-card figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.concern-card:hover figure img { transform: scale(1.04); }
.concern-card > div { padding: 30px; }
.concern-card > div:only-child { grid-column: 1 / -1; }
.concern-card h2 { margin: 16px 0 13px; font-size: clamp(1.2rem, 1.85vw, 1.6rem); font-weight: 700; line-height: 1.4; letter-spacing: -.025em; line-break: strict; word-break: auto-phrase; overflow-wrap: normal; text-wrap: balance; }
.concern-card p:not(.eyebrow) { margin: 0; color: var(--muted); line-height: 1.75; }
.concern-card b { display: block; margin-top: 26px; color: var(--blue); font-size: .84rem; }
.concern-other { max-width: 900px; margin: 72px auto 0; padding: clamp(30px, 5vw, 52px); border-top: 5px solid var(--blue); background: var(--paper); }
.concern-other h2 { margin: 10px 0 18px; font-size: clamp(1.7rem, 3.3vw, 2.7rem); line-height: 1.3; letter-spacing: -.035em; }
.concern-other > p:not(.eyebrow) { max-width: 690px; margin: 0; color: var(--muted); line-height: 1.9; }
.concern-other-form { display: grid; gap: 12px; margin-top: 30px; }
.concern-other-form > label { font-weight: 700; }
.concern-other-form textarea { box-sizing: border-box; width: 100%; min-height: 150px; padding: 16px; border: 1px solid var(--line); border-radius: 0; background: var(--white); color: var(--ink); font: inherit; line-height: 1.8; resize: vertical; }
.concern-other-form textarea:focus { outline: 3px solid rgba(17, 127, 166, .22); border-color: var(--blue); }
.concern-other-note, .concern-other-error { margin: 0; font-size: .86rem; }
.concern-other-note { color: var(--muted); }
.concern-other-error { color: #b42318; font-weight: 700; }
.concern-other-form .button { justify-self: start; margin-top: 10px; }
.concern-detail-image { max-height: 650px; overflow: hidden; background: var(--navy); }
.concern-detail-image img { width: 100%; max-height: 650px; display: block; object-fit: cover; }
.concern-detail-content-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr); gap: clamp(40px, 8vw, 110px); align-items: start; }
.concern-detail-content-inner.is-single-column { grid-template-columns: minmax(0, 760px); }
.concern-detail-content .uematsu-entry-content { max-width: 760px; font-size: 1.04rem; line-height: 2; }
.concern-detail-content .concern-intro-heading { margin: 0 0 28px; font-size: clamp(1.55rem, 2.6vw, 2.2rem); font-weight: 700; line-height: 1.5; letter-spacing: -.03em; text-wrap: balance; word-break: normal; }
.concern-first-check { padding: 32px; border-top: 5px solid var(--blue); background: #eef7fa; }
.concern-first-check h2 { margin: 10px 0 18px; font-size: 1.45rem; }
.concern-first-check ul { margin: 0; padding-left: 1.25em; color: var(--muted); line-height: 1.85; }
.concern-related-works { background: var(--paper); }
.concern-contact { padding: 96px 28px; color: var(--white); background: var(--navy); }
.concern-contact .section-inner { display: flex; align-items: end; justify-content: space-between; gap: 42px; }
.concern-contact h2 { margin: 12px 0 18px; color: var(--white); font-size: clamp(2rem, 4.2vw, 3.6rem); line-height: 1.25; }
.concern-contact p:not(.eyebrow) { max-width: 700px; margin: 0; color: #c5d7dd; line-height: 1.9; }
.concern-contact .button { flex: 0 0 auto; }
.works-empty { padding: 35px; text-align: center; color: var(--muted); background: var(--paper); }
.work-contact-panel { margin-top: 75px; padding: clamp(30px, 5vw, 56px); color: var(--white); background: var(--navy); }
.work-contact-panel h2 { margin: 10px 0 16px; color: var(--white); }
.work-contact-panel > p:not(.eyebrow) { max-width: 720px; color: #c5d7dd; line-height: 1.85; }
.work-contact-panel .button { margin-top: 12px; }
.works-brand-lead { max-width: 720px; margin: 22px 0 0; color: var(--muted); line-height: 1.9; font-size: .98rem; }
.works-city-story { padding-top: 14px; border-top: 1px solid var(--line); line-height: 1.75; }
.work-detail-hero .work-local-proof { margin: 0 0 14px; color: #75d8ff; font-weight: 700; letter-spacing: .08em; }
.work-city-proof { margin: 60px 0; padding: clamp(28px, 5vw, 52px); background: #f1f6f7; border-left: 5px solid var(--blue); }
.work-city-proof h2 { margin: 8px 0 14px; }
.work-city-proof > p:last-child { max-width: 760px; margin-bottom: 0; line-height: 1.9; }
.related-local-works { margin-top: 76px; }
.related-local-works > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.related-local-works a { display: flex; flex-direction: column; border: 1px solid var(--line); color: var(--ink); text-decoration: none; background: #fff; }
.related-local-works img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.related-local-works span { padding: 18px 18px 4px; font-weight: 700; font-size: 1.05rem; }
.related-local-works small { padding: 0 18px 18px; color: var(--muted); }
@media(max-width:700px){.related-local-works>div{grid-template-columns:1fr}.work-city-proof{margin:42px 0}.works-brand-lead{font-size:.93rem}}
.contact-case-context { max-width: 920px; margin: 0 auto 30px; padding: 22px 25px; display: grid; gap: 6px; border-left: 5px solid var(--blue); background: #e9f6fb; }
.contact-case-context strong { color: var(--blue); }
.contact-case-context span { font-size: 1.08rem; font-weight: 800; }
.contact-case-context small { color: var(--muted); }
.contact-case-context a { margin-top: 7px; color: var(--blue); font-size: .82rem; font-weight: 800; }
@media (max-width: 980px) { .works-search-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .works-search-form { padding: 20px; grid-template-columns: 1fr; } .works-search-form button { width: 100%; } }
.works-data-section { padding: 110px 28px; color: var(--white); background: var(--navy); }
.works-data-inner { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: start; }
.works-data-inner h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.works-data-inner ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.22); }
.works-data-inner li { min-height: 90px; display: grid; grid-template-columns: 48px 1fr 1.2fr; gap: 18px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.22); }
.works-data-inner li span { color: var(--blue-bright); font-size: .74rem; }
.works-data-inner li small { color: #bdd0d8; line-height: 1.6; }

.work-detail-header { padding: 95px 28px 75px; background: var(--white); }
.work-detail-header-inner { width: min(var(--content), 100%); margin: 0 auto; }
.work-detail-header .breadcrumbs { margin-bottom: 55px; color: var(--muted); }
.work-detail-header h1 { margin: 0; font-size: clamp(3rem, 6.2vw, 6.1rem); line-height: 1.08; letter-spacing: -.045em; }
.work-detail-lead { max-width: 680px; margin: 28px 0 0; color: var(--muted); font-size: 1.08rem; line-height: 1.9; }
.work-detail-main-image { width: min(1440px, 100%); height: min(65vw, 760px); margin: 0 auto; overflow: hidden; background: var(--navy); }
.work-detail-main-image img { width: 100%; height: 100%; object-fit: cover; }
.work-demo-notice { width: min(var(--content), calc(100% - 48px)); margin: 45px auto 0; padding: 28px 32px; border-left: 5px solid var(--orange); background: #fff5df; }
.work-demo-notice strong { font-size: 1.05rem; }
.work-demo-notice p { margin: 10px 0 0; color: #655942; line-height: 1.8; }
.work-detail-summary { padding: 105px 28px; background: var(--paper); }
.work-detail-summary-inner { display: grid; grid-template-columns: .55fr 1.45fr; gap: 80px; }
.work-detail-summary h2 { margin: 0; font-size: clamp(2rem, 3.8vw, 3.5rem); }
.work-detail-summary dl { margin: 0; border-top: 1px solid var(--line); }
.work-detail-summary dl div { min-height: 72px; display: grid; grid-template-columns: 180px 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.work-detail-summary dt { color: var(--muted); font-size: .82rem; font-weight: 700; }
.work-detail-summary dd { margin: 0; font-weight: 700; }
.work-story { padding: 115px 28px; background: var(--white); }
.work-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.work-story-grid article { min-height: 330px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.work-story-grid span { color: var(--blue); font-size: .7rem; letter-spacing: .12em; }
.work-story-grid h3 { margin: 80px 0 16px; font-size: 1.25rem; }
.work-story-grid p { margin: 0; color: var(--muted); line-height: 1.9; }
.work-scope { padding: 110px 28px; color: var(--white); background: var(--navy-2); }
.work-scope-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; }
.work-scope h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; }
.work-scope p:not(.eyebrow) { margin: 28px 0 0; color: #c2d4da; line-height: 2; }
.work-scope ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.22); }
.work-scope li { min-height: 72px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,.22); }
.work-scope li b { color: #9bb1b9; font-size: .8rem; }
.work-gallery { padding: 110px 28px; background: var(--paper); }
.work-gallery-grid { display: grid; grid-template-columns: 1.4fr .8fr; grid-template-rows: repeat(2, 280px); gap: 16px; }
.work-gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.work-gallery-grid img:first-child { grid-row: 1 / 3; }
.work-detail-nav { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 52px 0; display: flex; justify-content: space-between; gap: 28px; font-weight: 700; }
.work-detail-nav a:last-child { color: var(--blue); }

.inquiry-hero { min-height: 590px; display: grid; align-items: center; color: var(--white); background: linear-gradient(110deg, rgba(4,27,38,.98), rgba(4,27,38,.7)), url('./assets/exterior-1.jpg') center / cover; }
.inquiry-hero-inner { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 95px; }
.inquiry-hero h1 { margin: 0; font-size: clamp(3rem, 6vw, 5.9rem); line-height: 1.1; letter-spacing: -.045em; }
.inquiry-hero h1 span { color: var(--blue-bright); }
.inquiry-hero-inner > p:not(.eyebrow) { max-width: 710px; margin: 30px 0 0; color: #d6e4e9; font-size: 1.1rem; line-height: 1.9; font-weight: 600; }
.inquiry-guide { padding: 115px 28px; background: var(--white); }
.inquiry-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.inquiry-type-grid button { min-height: 225px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; text-align: left; color: var(--ink); border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); cursor: pointer; }
.inquiry-type-grid button:hover, .inquiry-type-grid button.is-active { color: var(--white); background: var(--navy); }
.inquiry-type-grid span { color: var(--blue); font-size: .72rem; letter-spacing: .12em; }
.inquiry-type-grid strong { margin-top: auto; font-size: 1.08rem; }
.inquiry-type-grid small { margin-top: 9px; color: var(--muted); line-height: 1.6; }
.inquiry-type-grid button:hover small, .inquiry-type-grid button.is-active small { color: #c5d5da; }
.inquiry-form-section { padding: 110px 28px; color: var(--white); background: var(--navy); }
.inquiry-form-layout { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; align-items: start; }
.inquiry-form-intro { position: sticky; top: 125px; }
.inquiry-form-intro h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: 1.28; letter-spacing: -.035em; }
.inquiry-form-intro > p:not(.eyebrow) { margin: 28px 0 0; color: #c1d3d9; line-height: 2; }
.inquiry-selected { margin-top: 34px; padding: 24px; border-left: 4px solid var(--blue-bright); background: rgba(255,255,255,.08); }
.inquiry-selected small { color: #a9c5cf; }
.inquiry-selected strong { display: block; margin-top: 9px; font-size: 1.08rem; }
.inquiry-selected p { margin: 9px 0 0; color: #c7d7dd; font-size: .88rem; line-height: 1.7; }
.inquiry-phone { margin-top: 14px; padding: 20px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.3); }
.inquiry-phone span, .inquiry-phone small { color: #b6cbd2; font-size: .75rem; }
.inquiry-phone strong { margin: 4px 0; font-size: 1.35rem; }
.inquiry-form { padding: 42px; color: var(--ink); background: var(--white); }
.prototype-note { margin: 0 0 30px; padding: 18px 20px; color: #655942; background: #fff5df; font-size: .86rem; line-height: 1.7; }
.prototype-note strong { display: block; }
.form-row { margin-top: 25px; }
.form-row:first-of-type { margin-top: 0; }
.form-row label, .form-split label { display: block; margin-bottom: 9px; font-size: .9rem; font-weight: 700; }
.form-row em { margin-left: 7px; padding: 3px 6px; color: var(--white); background: var(--blue); font-size: .65rem; font-style: normal; }
.form-row input, .form-row select, .form-row textarea { width: 100%; min-height: 52px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: var(--paper); font: inherit; }
.form-row textarea { resize: vertical; }
.form-row > small { display: block; margin-top: 8px; color: var(--muted); line-height: 1.6; }
.form-split { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-consent { margin: 28px 0; display: flex; gap: 10px; align-items: flex-start; color: var(--muted); font-size: .85rem; line-height: 1.6; }
.form-consent input { margin-top: 4px; }
.inquiry-submit { width: 100%; border: 0; color: #17232a; background: var(--orange); cursor: pointer; }
.inquiry-flow { padding: 110px 28px; background: var(--paper); }
.inquiry-flow ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.inquiry-flow li { min-height: 205px; padding: 25px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.inquiry-flow li span { color: var(--blue); font-size: .72rem; }
.inquiry-flow li strong { margin-top: 55px; }
.inquiry-flow li small { margin-top: 10px; color: var(--muted); line-height: 1.6; }

.products-hero { min-height: 650px; display: grid; align-items: center; color: var(--white); background: linear-gradient(110deg, rgba(4,27,38,.98), rgba(4,27,38,.68)), url('./assets/aerial-3.jpg') center / cover; }
.products-hero-inner { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 95px; }
.products-hero h1 { margin: 0; font-size: clamp(3rem, 5.9vw, 5.8rem); line-height: 1.12; letter-spacing: -.045em; }
.products-hero h1 span { color: var(--blue-bright); }
.products-hero-inner > p:not(.eyebrow) { max-width: 730px; margin: 30px 0 0; color: #d5e4e9; font-size: 1.1rem; line-height: 1.9; font-weight: 600; }
.product-detail-hero.has-product-hero-image { background-image: linear-gradient(110deg, rgba(4,27,38,.98), rgba(4,27,38,.68)), var(--product-detail-hero-image); background-position: center; background-size: cover; }
.products-nav { padding: 115px 28px; background: var(--white); }
.products-nav-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.products-nav-grid a { min-height: 205px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.products-nav-grid a:hover { color: var(--white); background: var(--navy); }
.products-nav-grid span { color: var(--blue); font-size: .72rem; }
.products-nav-grid strong { margin-top: auto; font-size: 1.12rem; }
.products-nav-grid small { margin-top: 9px; color: var(--muted); }
.products-nav-grid a:hover small { color: #c5d5da; }
.products-group + .products-group { margin-top: 95px; }
.products-group-head { max-width: 760px; margin-bottom: 36px; }
.products-group-head h2 { margin: 7px 0 13px; font-size: clamp(2rem, 4vw, 3.5rem); }
.products-group-head > p:last-child { margin: 0; color: var(--muted); line-height: 1.85; }
.products-group-capabilities { padding-top: 85px; border-top: 1px solid var(--line); }
.products-group-capabilities .products-nav-grid a { background: var(--paper); }
.products-group-capabilities .products-nav-grid a:hover { background: var(--navy); }
.products-story,.products-purpose{padding:105px 28px;background:var(--paper)}.products-story h2,.products-purpose h2{margin:8px 0 28px;font-size:clamp(2rem,4vw,3.6rem)}.products-story-flow{counter-reset:products-story;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin:0;padding:0;list-style:none;background:var(--line)}.products-story-flow li{position:relative;counter-increment:products-story;min-height:116px;padding:22px 18px;display:flex;align-items:end;background:#fff;font-weight:800;line-height:1.5}.products-story-flow li::before{content:counter(products-story,decimal-leading-zero);display:block;position:absolute;align-self:start;color:var(--blue);font-size:.72rem;letter-spacing:.1em}.products-purpose{padding-top:0}.products-purpose-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#fff}.products-purpose-grid a{min-height:145px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);color:var(--ink)}.products-purpose-grid a:last-child{border:0}.products-purpose-grid a:hover{color:#fff;background:var(--navy)}.products-purpose-grid span{color:var(--blue);font-size:1.25rem}.products-support-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:85px;border:1px solid var(--line)}.products-support-grid article{min-height:185px;padding:30px;border-right:1px solid var(--line);background:var(--paper)}.products-support-grid article:last-child{border:0}.products-support-grid strong{font-size:1.2rem}.products-support-grid p{margin:13px 0 0;color:var(--muted);line-height:1.8}.products-warranty-link,.products-contact{margin:34px 0 0}.products-warranty-link a{color:var(--blue);font-weight:800}
.products-categories,.products-category-list{padding:105px 28px;background:var(--paper)}.products-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.products-category-grid>a{position:relative;min-height:240px;padding:30px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:#fff}.products-category-grid>a:hover{color:#fff;background:var(--navy)}.products-category-grid span{color:var(--blue);font-size:.7rem;letter-spacing:.08em}.products-category-grid strong{margin-top:auto;padding-right:28px;font-size:1.4rem;line-height:1.45}.products-category-grid small{margin-top:12px;padding-right:28px;color:var(--muted);line-height:1.7}.products-category-grid>a:hover small{color:#d5e4e9}.products-category-grid b{position:absolute;right:28px;bottom:28px;color:var(--blue);font-size:1.3rem;font-weight:400}.products-category-list{background:#fff}.product-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.product-category-grid>a{display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:var(--paper)}.product-category-grid figure{margin:0;aspect-ratio:16/10;overflow:hidden;background:#dfe8eb}.product-category-grid figure img{width:100%;height:100%;object-fit:cover}.product-category-grid>a>div{min-height:205px;padding:26px;display:flex;flex-direction:column}.product-category-grid span{color:var(--blue);font-size:.7rem;letter-spacing:.08em}.product-category-grid h3{margin:12px 0 10px;font-size:1.35rem;line-height:1.45}.product-category-grid p{margin:0;color:var(--muted);line-height:1.75}.product-category-grid b{margin-top:auto;padding-top:22px;color:var(--blue);font-size:.86rem}.product-category-grid i{font-style:normal}.products-category-back{margin:42px 0 0}
.products-empty { margin: 0; padding: 36px; color: var(--muted); background: var(--paper); }
.products-materials { padding: 115px 28px; color: var(--white); background: var(--navy); }
.material-list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.material-list article { min-height: 390px; padding: 32px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.material-list span, .technical-grid span { color: var(--blue-bright); font-size: .72rem; letter-spacing: .12em; }
.material-list h3 { margin: 75px 0 18px; font-size: 1.35rem; }
.material-list p { margin: 0; color: #c1d3d9; line-height: 1.9; }
.material-list a { margin-top: auto; padding-top: 25px; color: var(--blue-bright); font-weight: 700; font-size: .86rem; }
.capability-section { min-height: 690px; display: grid; grid-template-columns: 1fr 1fr; color: var(--white); background: var(--navy-2); }
.capability-image { overflow: hidden; }
.capability-image img { width: 100%; height: 100%; object-fit: cover; }
.capability-copy { padding: clamp(65px, 8vw, 115px); display: flex; flex-direction: column; justify-content: center; }
.capability-copy h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.035em; }
.capability-copy > p:not(.eyebrow) { margin: 28px 0; color: #c4d5db; line-height: 2; }
.capability-copy ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.22); }
.capability-copy li { padding: 16px 0; display: flex; justify-content: space-between; gap: 22px; border-bottom: 1px solid rgba(255,255,255,.22); }
.capability-copy li span { color: #b6ccd4; }
.technical-support { padding: 115px 28px; background: var(--white); }
.technical-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.technical-grid article { min-height: 340px; padding: 32px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.technical-grid h3 { margin: 70px 0 16px; font-size: 1.25rem; }
.technical-grid p { margin: 0; color: var(--muted); line-height: 1.9; }
.technical-grid a { margin-top: auto; padding-top: 24px; color: var(--blue); font-size: .86rem; font-weight: 700; }
.catalog-section { padding: 110px 28px; background: var(--paper); }
.catalog-inner { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: center; }
.catalog-inner h2 { margin: 0; font-size: clamp(2.2rem, 4.2vw, 4rem); }
.catalog-inner > div:first-child > p:not(.eyebrow) { color: var(--muted); line-height: 2; }
.catalog-placeholder { padding: 38px; border-top: 4px solid var(--blue); background: var(--white); }
.catalog-placeholder strong { font-size: 1.2rem; }
.catalog-placeholder p { margin: 14px 0 25px; color: var(--muted); line-height: 1.8; }
.about-hero{min-height:650px;display:grid;align-items:center;color:#fff;background:linear-gradient(100deg,rgba(4,27,38,.97),rgba(4,27,38,.55)),url('./assets/aerial-1.jpg') center/cover}.about-hero>div{width:min(var(--content),calc(100% - 48px));margin:auto;padding:70px 0 95px}.about-hero h1{margin:0;font-size:clamp(3rem,6vw,6rem);line-height:1.1;letter-spacing:-.045em}.about-hero h1 span{color:var(--blue-bright)}.about-hero>div>p:last-child{max-width:700px;margin-top:30px;line-height:2}.about-purpose,.group-companies{padding:115px 28px;background:#fff}.group-flow{padding:110px 28px;color:#fff;background:var(--navy)}.group-flow h2{font-size:clamp(2.2rem,4vw,4rem)}.group-flow ol{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);list-style:none}.group-flow li{min-height:190px;padding:24px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.2)}.group-flow li span{color:var(--blue-bright);font-size:.72rem}.group-flow li strong{margin-top:50px}.group-flow li small{margin-top:9px;color:#bdd0d8}.company-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.company-grid article{min-height:280px;padding:28px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.company-grid span{color:var(--blue);font-size:.68rem;letter-spacing:.12em}.company-grid h3{margin:55px 0 14px;font-size:1.08rem}.company-grid p{margin:0;color:var(--muted);line-height:1.8}.company-grid a{margin-top:auto;color:#8a651d;font-weight:700}.community-company{background:#fff8e9}.about-people{display:grid;grid-template-columns:1fr 1fr;color:#fff;background:var(--navy-2)}.about-people-image{min-height:400px}.about-people-image img{width:100%;height:100%;object-fit:cover}.about-people>div:last-child{padding:clamp(48px,5vw,64px);display:flex;flex-direction:column;justify-content:center}.about-people h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.25}.about-people p:not(.eyebrow){color:#c4d5db;line-height:2}.about-people .button{margin-top:25px;align-self:flex-start}

.contact-section { padding: 120px 28px; background: var(--white); }
.contact-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 60px; align-items: start; }
.contact-heading h2 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.25; }
body.home .contact-inner { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 60px; }
.contact-heading > p:not(.eyebrow) { margin-top: 24px; color: var(--muted); font-size: 1.05rem; line-height: 1.95; }
.contact-panel { padding: 46px; background: var(--paper); border-top: 6px solid var(--blue); }
.contact-panel h3 { margin: 0 0 22px; font-size: 1.1rem; }
.contact-options { display: flex; flex-wrap: wrap; gap: 8px; }
.contact-options button { min-height: 50px; padding: 0 16px; border: 1px solid var(--line); color: var(--ink); background: var(--white); font-size: .94rem; font-weight: 700; cursor: pointer; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.contact-options button:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-1px); }
.contact-options button[aria-pressed="true"] { color: var(--white); border-color: var(--navy); background: var(--navy); }
.contact-result { margin-top: 24px; padding: 26px; background: var(--white); }
.contact-result span { color: var(--blue); font-size: .74rem; font-weight: 700; letter-spacing: .12em; }
.contact-result strong { display: block; margin-top: 8px; font-size: 1.16rem; line-height: 1.55; }
.contact-result p { margin: 8px 0 0; color: var(--muted); line-height: 1.75; font-size: .98rem; }
.contact-actions { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.contact-actions .button { min-height: 62px; font-size: 1rem; }
.phone-link { min-height: 62px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--line); background: var(--white); transition: color .2s ease, border-color .2s ease, transform .2s ease; }
.phone-link:hover { color: var(--blue); border-color: var(--blue); transform: translateY(-2px); }
.phone-link span { font-size: .76rem; color: var(--muted); }
.phone-link strong { font-size: 1.16rem; }

.inquiry-guidance { margin: 0 0 34px; padding: 22px 26px; border-left: 4px solid var(--blue); background: var(--paper); }
.inquiry-guidance p { margin: 0; color: var(--muted); line-height: 1.9; }
.inquiry-guidance strong { color: var(--ink); }
.inquiry-guidance a { color: var(--blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.contact-channel-guide { margin-bottom: 34px; }
.contact-channel-heading { margin-bottom: 24px; }
.contact-channel-heading h2 { margin: 8px 0 0; font-size: clamp(1.75rem, 3vw, 2.6rem); }
.contact-channel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.contact-channel-grid a { min-height: 230px; padding: 28px; display: flex; flex-direction: column; color: var(--ink); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.contact-channel-grid a:hover { color: var(--white); background: var(--navy); }
.contact-channel-grid span { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .13em; }
.contact-channel-grid strong { margin-top: 38px; font-size: 1.14rem; line-height: 1.6; }
.contact-channel-grid small { margin-top: 9px; color: var(--muted); line-height: 1.7; }
.contact-channel-grid b { margin-top: auto; padding-top: 20px; color: var(--blue); font-size: .82rem; }
.contact-channel-grid a:hover span, .contact-channel-grid a:hover b { color: var(--blue-bright); }
.contact-channel-grid a:hover small { color: #c5d5da; }
.line-contact { margin: 0 0 34px; padding: clamp(26px, 4vw, 42px); display: grid; grid-template-columns: 1fr auto; gap: 38px; align-items: center; color: var(--white); background: #073347; }
.line-contact-copy h2 { margin: 8px 0 14px; color: var(--white); font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1.4; }
.line-contact-copy > p:not(.eyebrow) { max-width: 640px; margin: 0 0 20px; color: #d5e3e8; line-height: 1.8; }
.line-contact-topics { max-width: 720px; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.line-contact-topics li { padding: 7px 11px; border: 1px solid rgba(255,255,255,.35); color: var(--white); font-size: .78rem; line-height: 1.3; }
.line-contact-guide { max-width: 720px; margin: 0 0 24px; padding: 22px 24px; color: var(--ink); background: var(--white); }
.line-contact-guide > strong { display: block; margin-bottom: 15px; font-size: 1rem; }
.line-contact-guide ol { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; list-style: none; counter-reset: line-guide; }
.line-contact-guide li { position: relative; padding-left: 34px; counter-increment: line-guide; }
.line-contact-guide li::before { content: counter(line-guide); position: absolute; left: 0; top: 0; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-size: .72rem; font-weight: 800; }
.line-contact-guide b, .line-contact-guide span { display: block; }
.line-contact-guide b { margin-bottom: 3px; font-size: .86rem; }
.line-contact-guide span { color: var(--muted); font-size: .76rem; line-height: 1.65; }
.line-contact-button { width: min(100%, 390px); min-height: 62px; padding: 0 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; color: var(--white); background: #06c755; font-weight: 800; transition: filter .2s ease, transform .2s ease; }
.line-contact-button:hover { color: var(--white); filter: brightness(.94); transform: translateY(-1px); }
.line-contact-button span { padding: 5px 7px; border: 2px solid currentColor; border-radius: 6px; font-size: .7rem; line-height: 1; }
.line-contact-button b { font-size: 1.1rem; font-weight: 500; }
.line-contact-notes { max-width: 720px; margin-top: 16px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.22); }
.line-contact-notes p { margin: 5px 0; color: #b9cdd4; font-size: .72rem; line-height: 1.7; }
.line-contact-notes strong { margin-right: 8px; color: var(--white); }
.line-contact-qr { width: 170px; margin: 0; padding: 12px; color: var(--ink); background: var(--white); text-align: center; }
.line-contact-qr img { width: 100%; height: auto; display: block; }
.line-contact-qr figcaption { margin-top: 8px; font-size: .68rem; line-height: 1.5; }
.uematsu-form-wrap { padding: clamp(28px, 5vw, 58px); background: var(--paper); border-top: 5px solid var(--blue); }
.uematsu-form-heading { max-width: 720px; margin-bottom: 34px; }
.uematsu-form-heading h2 { margin: 8px 0 12px; font-size: clamp(1.8rem, 3.2vw, 2.8rem); line-height: 1.4; }
.uematsu-form-heading > p:last-child { margin: 0; color: var(--muted); line-height: 1.8; }
.inquiry-choice { min-width: 0; margin: 0; padding: 0; border: 0; }
.inquiry-choice legend { width: 100%; margin-bottom: 15px; padding: 0; font-size: 1rem; font-weight: 800; }
.inquiry-choice legend b { margin-left: 7px; padding: 4px 7px; color: var(--white); background: #b43b31; font-size: .67rem; }
.inquiry-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.inquiry-choice-grid label { position: relative; min-width: 0; margin: 0; cursor: pointer; }
.inquiry-choice-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.inquiry-choice-grid label > span { min-height: 94px; padding: 19px 20px; display: grid; grid-template-columns: 32px 1fr; gap: 10px; align-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); background: var(--white); transition: color .2s ease, background .2s ease, box-shadow .2s ease; }
.inquiry-choice-grid label > span::after { content: ""; position: absolute; right: 18px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--line); border-bottom: 2px solid var(--line); transform: translateY(-50%) rotate(45deg); }
.inquiry-choice-grid small { color: var(--blue); font-size: .68rem; font-weight: 800; }
.inquiry-choice-grid strong { padding-right: 22px; font-size: .9rem; line-height: 1.55; }
.inquiry-choice-grid input:checked + span { color: var(--white); background: var(--navy); box-shadow: inset 5px 0 var(--blue-bright); }
.inquiry-choice-grid input:checked + span small { color: var(--blue-bright); }
.inquiry-choice-grid input:checked + span::after { width: 12px; height: 7px; border-color: var(--blue-bright); border-width: 0 0 2px 2px; transform: translateY(-65%) rotate(-45deg); }
.inquiry-choice-grid input:focus-visible + span { position: relative; z-index: 1; outline: 3px solid var(--blue); outline-offset: -3px; }
.inquiry-choice-error { margin: 12px 0 0; color: #a22f27; font-weight: 800; }
.inquiry-next-step { margin: 24px 0 38px; padding: 25px 28px; border-left: 5px solid var(--blue); background: var(--white); }
.inquiry-next-step > span { color: var(--blue); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.inquiry-next-step strong { display: block; margin-top: 8px; font-size: 1.1rem; }
.inquiry-next-step p { margin: 9px 0 0; color: var(--muted); line-height: 1.75; }
.is-managed-inquiry-field { display: none !important; }
.uematsu-contact-form { max-width: 920px; margin: 0 auto; }
.uematsu-form-intro { margin: 0 0 32px; color: var(--muted); line-height: 1.8; }
.required-mark, .uematsu-form-label b { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; color: var(--white); background: #b43b31; font-size: .68rem; font-style: normal; font-weight: 700; line-height: 1; }
.uematsu-form-label em { color: var(--muted); font-size: .74rem; font-style: normal; font-weight: 500; }
.uematsu-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 28px; }
.uematsu-form-grid > p { display: contents; }
.uematsu-form-grid > p > br { display: none; }
.uematsu-form-step { margin-top: 14px; padding: 0 0 13px; display: flex; align-items: baseline; gap: 12px; border-bottom: 2px solid var(--navy); }
.uematsu-form-step:first-child { margin-top: 0; }
.uematsu-form-step span { color: var(--blue); font-size: .7rem; font-weight: 800; letter-spacing: .14em; }
.uematsu-form-step strong { color: var(--ink); font-size: 1.15rem; }
.uematsu-form-step small { margin-left: auto; color: var(--muted); font-size: .76rem; }
.uematsu-form-field { display: block; margin: 0; }
.uematsu-form-field-full { grid-column: 1 / -1; }
.uematsu-form-label { margin-bottom: 9px; display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: .92rem; font-weight: 700; }
.uematsu-choice-field { min-width: 0; padding: 20px 22px 18px; border: 1px solid #bccbd1; background: var(--white); }
.uematsu-choice-field legend { padding: 0 8px; }
.uematsu-choice-field .wpcf7-form-control { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; }
.uematsu-choice-field .wpcf7-list-item { margin: 0; }
.uematsu-choice-field .wpcf7-list-item label { min-height: 38px; display: flex; align-items: flex-start; gap: 9px; cursor: pointer; line-height: 1.55; }
.uematsu-choice-field input[type="checkbox"] { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--blue); }
.uematsu-choice-field small { margin-top: 13px; display: block; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.uematsu-contact-form input[type="file"] { width: 100%; min-height: 54px; padding: 10px; border: 1px dashed #9fb4bd; background: var(--white); font: inherit; }
.uematsu-contact-form input[type="file"]::file-selector-button { min-height: 34px; margin-right: 12px; padding: 0 14px; border: 0; color: var(--white); background: var(--blue); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.uematsu-file-note { margin-top: 7px; display: block; color: var(--muted); font-size: .75rem; }
.uematsu-contact-form .wpcf7-form-control-wrap { display: block; }
.uematsu-contact-form input[type="text"],
.uematsu-contact-form input[type="email"],
.uematsu-contact-form input[type="tel"],
.uematsu-contact-form select,
.uematsu-contact-form textarea { width: 100%; min-height: 54px; padding: 13px 15px; border: 1px solid #bccbd1; border-radius: 0; color: var(--ink); background: var(--white); font: inherit; line-height: 1.5; transition: border-color .2s ease, box-shadow .2s ease; }
.uematsu-contact-form textarea { min-height: 220px; resize: vertical; }
.uematsu-contact-form input:focus,
.uematsu-contact-form select:focus,
.uematsu-contact-form textarea:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0, 125, 176, .16); }
.uematsu-contact-form .wpcf7-not-valid { border-color: #b43b31 !important; }
.uematsu-contact-form .wpcf7-not-valid-tip { margin-top: 6px; color: #a22f27; font-size: .78rem; }
.uematsu-form-acceptance { margin-top: 28px; padding: 20px 22px; background: var(--white); border: 1px solid var(--line); }
.uematsu-form-acceptance .wpcf7-list-item { margin: 0; }
.uematsu-form-acceptance label { display: flex; gap: 10px; align-items: flex-start; line-height: 1.7; }
.uematsu-form-acceptance input { width: 20px; height: 20px; margin-top: 3px; flex: 0 0 auto; accent-color: var(--blue); }
.uematsu-form-submit { margin-top: 30px; text-align: center; }
.uematsu-form-submit input[type="submit"] { min-width: min(100%, 360px); min-height: 60px; padding: 0 28px; border: 0; color: var(--white); background: var(--blue); font: inherit; font-weight: 700; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.uematsu-form-submit input[type="submit"]:hover { background: var(--navy); transform: translateY(-1px); }
.uematsu-form-submit p { margin: 12px 0 0; color: var(--muted); font-size: .8rem; }
.uematsu-contact-form .wpcf7-spinner { display: block; margin: 12px auto 0; }
.uematsu-contact-form .wpcf7-response-output { margin: 24px 0 0 !important; padding: 16px 18px !important; border-width: 1px !important; line-height: 1.7; }
.uematsu-contact-complete { scroll-margin-top: 105px; margin-top: 35px; padding: clamp(28px, 5vw, 48px); color: var(--white); background: var(--navy); }
.uematsu-contact-complete[hidden] { display: none; }
.uematsu-contact-complete h2 { margin: 8px 0 15px; color: var(--white); font-size: clamp(1.8rem, 3.3vw, 2.8rem); }
.uematsu-contact-complete > p:not(.eyebrow) { color: #cedde2; line-height: 1.8; }
.uematsu-contact-complete > div { margin: 25px 0; padding: 22px; color: var(--ink); border-left: 4px solid var(--blue-bright); background: var(--white); }
.uematsu-contact-complete > div strong { font-size: 1.05rem; }
.uematsu-contact-complete > div p { margin: 8px 0 0; color: var(--muted); line-height: 1.7; }
.uematsu-contact-complete ul { margin: 0; padding-left: 1.3em; color: #cedde2; line-height: 1.9; }
.uematsu-contact-complete .contact-complete-urgent { margin-top: 25px; color: var(--white); }
.contact-complete-urgent a { margin-left: 8px; color: var(--blue-bright); font-size: 1.18rem; font-weight: 800; }
.line-complete-button { margin-top: 8px; color: var(--white); background: #06c755; }

.site-footer { padding: 70px 28px 24px; color: #c9d7dc; background: #061d27; }
.footer-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .65fr 1.35fr; gap: 80px; }
.footer-brand img { width: 210px; }
.footer-brand p { margin: 28px 0 0; line-height: 1.8; font-size: .86rem; }
.footer-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.footer-links div { display: flex; flex-direction: column; gap: 12px; }
.footer-links strong { color: var(--white); margin-bottom: 5px; font-size: .9rem; }
.footer-links a { font-size: .78rem; }
.footer-links a:hover { color: var(--blue-bright); }
.footer-bottom { width: min(var(--content), 100%); margin: 55px auto 0; padding-top: 20px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.15); font-size: .72rem; }

@media (max-width: 980px) {
  .header-inner { grid-template-columns: 185px 1fr auto; }
  .global-nav { gap: 16px; }
  .global-nav a { font-size: .74rem; }
  .split-heading { gap: 45px; }
  .audience-card { padding: 30px; }
  .strength-content { padding: 70px 45px; }
  .mission-inner { gap: 55px; }
  .contact-inner { gap: 45px; }
  .factory-content-grid { gap: 50px; }
  .process-grid { grid-template-columns: repeat(3, 1fr); }
  .professional-support-grid { grid-template-columns: repeat(2, 1fr); }
  .home-concern-grid { grid-template-columns: repeat(2, 1fr); }
  .home-process-grid { grid-template-columns: repeat(3, 1fr); }
  .works-data-inner, .work-scope-inner { gap: 55px; }
  .service-bridge-inner { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 780px) {
  .header-inner { min-height: 70px; padding: 0 18px; grid-template-columns: 1fr auto auto; gap: 12px; }
  .brand img { width: 160px; }
  .menu-button { min-width: 48px; min-height: 48px; padding: 0 8px; border: 0; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--ink); background: transparent; font-size: .64rem; line-height: 1; cursor: pointer; }
  .menu-button-lines, .menu-button-lines::before, .menu-button-lines::after { width: 24px; height: 2px; display: block; background: currentColor; content: ""; transition: transform .2s ease, opacity .2s ease; }
  .menu-button-lines { position: relative; height: 16px; background: transparent; }
  .menu-button-lines::before { position: absolute; top: 0; box-shadow: 0 7px 0 currentColor; }
  .menu-button-lines::after { position: absolute; top: 14px; }
  .menu-button[aria-expanded="true"] .menu-button-lines { background: transparent; }
  .menu-button[aria-expanded="true"] .menu-button-lines::before { box-shadow: none; transform: translateY(7px) rotate(45deg); }
  .menu-button[aria-expanded="true"] .menu-button-lines::after { transform: translateY(-7px) rotate(-45deg); }
  .global-nav { position: absolute; z-index: 10; top: 70px; left: 0; right: 0; max-height: calc(100vh - 70px); max-height: calc(100dvh - 70px); padding: 25px 22px 32px; display: none; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--white); border-bottom: 1px solid var(--line); box-shadow: 0 16px 30px rgba(9,43,59,.14); }
  .global-nav.is-open { display: flex; }
  .global-nav a { padding: 15px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
  .header-cta { min-height: 44px; padding: 0 14px; font-size: .82rem; }
  body.home .header-cta { min-height: 44px; padding: 0 14px; font-size: .82rem; }
  .hero { min-height: 620px; }
  .hero-overlay { background: linear-gradient(90deg, rgba(5,28,39,.92), rgba(5,28,39,.45)); }
  .hero-inner { padding: 85px 0 125px; }
  .hero h1, .hero-title { font-size: clamp(2.8rem, 13vw, 5rem); }
  .hero-copy br { display: none; }
  .hero-foot { padding: 0 22px; }
  .hero-foot > span { display: none; }
  .section { padding: 80px 20px; }
  body.home .audience-section,
  body.home .solutions-section,
  body.home .works-section,
  body.home .news-section { padding: 80px 20px; }
  body.home .products-section { padding: 72px 20px; }
  .service-bridge, .home-choice { padding: 64px 20px; }
  .service-bridge-links, .home-choice-grid { grid-template-columns: 1fr; }
  .service-bridge-links a, .home-choice-grid a { min-height: 195px; padding: 27px 24px; }
  .service-bridge-links strong { margin-top: 28px; font-size: 1.28rem; }
  .service-bridge-links small { font-size: .94rem; }
  .split-heading, .mission-inner, .contact-inner, body.home .contact-inner { grid-template-columns: 1fr; gap: 28px; }
  .audience-grid { grid-template-columns: 1fr; }
	.audience-primary { grid-template-columns: 1fr; }
	.audience-secondary { grid-template-columns: 1fr; }
	.home-proof { padding: 0 20px; }
	.home-proof-grid { grid-template-columns: 1fr; }
	.home-proof-grid > div { min-height: 132px; padding: 25px 22px; grid-template-columns: 38px minmax(0,1fr); gap: 17px; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
	.home-proof-icon { width: 38px; height: 38px; }
	.home-proof-grid > div:last-child { border-bottom: 0; }
	.home-reasons-heading { margin-bottom: 42px; }
	.home-reasons-heading h2 { font-size: clamp(2rem, 9.6vw, 2.75rem); line-height: 1.22; }
	.home-reason-card { grid-template-columns: 1fr; }
	.home-reason-card.is-reverse figure { order: 0; }
	.home-reason-card figure { min-width: 0; min-height: 0; width: 100%; aspect-ratio: 4 / 3; }
	.home-reason-card > div { padding: 38px 24px 48px; }
  .audience-primary a { min-height: 82px; padding: 17px 20px; }
  .audience-primary strong { font-size: 1.08rem; }
  .audience-card { min-height: 300px; padding: 28px 24px; border-right: 0; border-bottom: 1px solid var(--line); }
  .audience-card h3 { font-size: 1.28rem; }
  .audience-card p { font-size: 1rem; }
  .audience-secondary a { min-height: 68px; padding: 14px 18px; grid-template-columns: 28px minmax(0,1fr) auto; }
  .audience-secondary strong { font-size: .9rem; }
  .audience-card:last-child { border-bottom: 0; }
  .works-heading { display: block; }
  .works-heading .arrow-link { display: inline-block; margin-top: 24px; }
  .works-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .work-card, .work-card-main { grid-row: auto; aspect-ratio: 4 / 3; }
  .solutions-list a { min-height: 110px; grid-template-columns: 42px 1fr auto; gap: 12px; }
  .solutions-list small { grid-column: 2 / 4; padding-bottom: 16px; }
	#solutions-title { font-size: clamp(1.82rem, 9vw, 2.25rem); line-height: 1.3; }
  .strength-section { grid-template-columns: 1fr; }
  .strength-image-wrap { min-height: 400px; }
  .strength-content { padding: 75px 22px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .mission-section { padding: 85px 20px; }
	.community-section { padding: 64px 20px; }
	.community-inner { grid-template-columns: 1fr; gap: 30px; }
	.community-visual { min-height: 0; aspect-ratio: 16 / 9; }
	.community-content { padding: 0; }
  .news-heading { display: block; }
  .news-heading .arrow-link { display: inline-block; margin-top: 24px; }
  .news-list a { min-height: 120px; grid-template-columns: 90px 82px auto; gap: 12px; padding: 18px 0; }
  .news-list strong { grid-column: 1 / 4; }
  .contact-section { padding: 85px 20px; }
	body.home .contact-heading h2 br { display: none; }
  .contact-panel { padding: 30px 22px; border-top-width: 5px; }
  .contact-options button { min-height: 48px; font-size: .9rem; }
  .contact-result { padding: 22px; }
  .contact-actions .button, .phone-link { min-height: 58px; }
  .uematsu-form-grid { grid-template-columns: 1fr; gap: 20px; }
  .uematsu-form-field-full { grid-column: auto; }
  .factory-hero { min-height: 600px; }
  .factory-hero-inner { padding: 55px 0 90px; }
  .breadcrumbs { margin-bottom: 55px; }
  .factory-intro, .factory-solutions, .factory-process, .factory-works, .factory-contact { padding: 80px 20px; }
  .factory-content-grid, .factory-contact-inner { grid-template-columns: 1fr; gap: 40px; }
  .factory-intro-copy { position: static; }
  .factory-solution-list, .factory-proof { grid-template-columns: 1fr; }
  .factory-proof-image { min-height: 420px; }
  .factory-proof-copy { padding: 75px 22px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .factory-works-placeholder { grid-template-columns: 1fr; gap: 20px; padding: 32px 25px; }
  .professional-hero { min-height: 600px; }
  .professional-hero-inner { padding: 55px 0 90px; }
  .professional-promise, .professional-audience, .professional-support, .professional-flow, .professional-contact { padding: 80px 20px; }
  .professional-promise-inner, .professional-support-head, .professional-contact-inner { grid-template-columns: 1fr; gap: 28px; }
  .professional-promise p:last-child, .professional-support-head .eyebrow { grid-column: auto; }
  .professional-support-head .eyebrow { margin-bottom: -8px; }
  .professional-role-grid { grid-template-columns: 1fr; }
  .professional-role-grid article { min-height: 340px; }
  .professional-network { grid-template-columns: 1fr; }
  .professional-network-image { height: 360px; min-height: 0; }
  .professional-network-copy { padding: 60px 22px; }
  .professional-flow-grid { grid-template-columns: repeat(2, 1fr); }
  .home-hero { min-height: 580px; }
  .home-hero-inner { padding: 55px 0 90px; }
  .home-concerns, .home-services, .home-process, .home-works, .home-faq, .home-contact { padding: 80px 20px; }
  .home-safety, .home-services-head, .home-contact-inner { grid-template-columns: 1fr; gap: 18px; }
  .home-services-head .eyebrow { grid-column: auto; margin-bottom: -8px; }
  .home-service-list, .home-explanation { grid-template-columns: 1fr; }
  .home-explanation-image { height: 360px; min-height: 0; }
  .home-explanation-copy { padding: 60px 22px; }
  .home-process-grid { grid-template-columns: repeat(2, 1fr); }
  .home-works-placeholder { grid-template-columns: 1fr; gap: 20px; padding: 32px 25px; }
  .works-archive { padding: 80px 20px; }
  .works-archive-grid { grid-template-columns: 1fr; }
  .works-data-section, .work-detail-summary, .work-story, .work-scope, .work-gallery { padding: 80px 20px; }
  .works-data-inner, .work-detail-summary-inner, .work-scope-inner { grid-template-columns: 1fr; gap: 40px; }
  .work-story-grid { grid-template-columns: 1fr; }
  .work-story-grid article { min-height: 270px; }
  .work-gallery-grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 280px); }
  .work-gallery-grid img:first-child { grid-row: auto; }
  .inquiry-guide, .inquiry-form-section, .inquiry-flow { padding: 80px 20px; }
  .inquiry-type-grid { grid-template-columns: repeat(2, 1fr); }
  .inquiry-form-layout { grid-template-columns: 1fr; gap: 40px; }
  .inquiry-form-intro { position: static; }
  .inquiry-flow ol { grid-template-columns: repeat(2, 1fr); }
  .products-nav, .products-materials, .technical-support, .catalog-section { padding: 80px 20px; }
  .products-nav-grid { grid-template-columns: repeat(2, 1fr); }
  .material-list, .technical-grid { grid-template-columns: 1fr; }
  .material-list article { min-height: 330px; }
  .capability-section { grid-template-columns: 1fr; }
  .capability-image { min-height: 420px; }
  .company-grid{grid-template-columns:repeat(2,1fr)}.group-flow ol{grid-template-columns:repeat(3,1fr)}.about-people{grid-template-columns:1fr}.about-people-image{height:360px;min-height:0}
  .capability-copy { padding: 75px 22px; }
  .catalog-inner { grid-template-columns: 1fr; gap: 38px; }
  .footer-inner { grid-template-columns: 1fr; gap: 45px; }
  .footer-links { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .brand img { width: 135px; }
  .header-cta { padding: 0 11px; }
  .hero { min-height: 580px; }
  .hero-inner { width: calc(100% - 40px); padding: 68px 0 112px; }
  .hero h1, .hero-title { font-size: clamp(2rem, 10.2vw, 3.1rem); line-height: 1.08; letter-spacing: -.055em; }
  .hero-copy { margin-top: 24px; font-size: .875rem; line-height: 1.75; letter-spacing: -.02em; }
  .hero-actions { margin-top: 28px; }
  .hero-actions, .contact-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; min-height: 56px; padding: 0 20px; font-size: .94rem; }
  .product-grid { grid-template-columns: 1fr; }
  .product-card { min-height: 0; }
  .product-card-body { min-height: 155px; padding: 24px 22px; }
  .product-card b { right: 22px; bottom: 24px; }
  .community-visual { min-height: 0; }
  .community-content h2 { font-size: clamp(1.9rem, 9vw, 2.5rem); }
  .button-community { width: 100%; }
  .work-caption { padding: 23px; }
  .work-caption h3 { font-size: 1.24rem; }
  .work-caption p { font-size: .88rem; }
  .contact-options button { flex: 1 1 calc(50% - 8px); min-width: 0; padding: 0 10px; font-size: .84rem; line-height: 1.4; }
  .contact-result strong { font-size: 1.08rem; }
  .contact-result p { font-size: .94rem; }
  .news-list a { grid-template-columns: 86px 78px auto; }
  .factory-hero h1 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .factory-hero-inner > p:not(.eyebrow) { font-size: 1rem; }
  .issue-grid, .factory-solution-list, .process-grid { grid-template-columns: 1fr; }
  .issue-grid article { min-height: 210px; }
  .factory-proof-image { min-height: 320px; }
  .professional-hero h1 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .professional-hero-inner > p:not(.eyebrow) { font-size: 1rem; }
  .professional-support-grid, .professional-flow-grid { grid-template-columns: 1fr; }
  .professional-network-image { height: 300px; min-height: 0; }
  .home-hero h1 { font-size: clamp(2.5rem, 11.5vw, 4rem); }
  .home-hero-inner > p:not(.eyebrow) { font-size: 1rem; }
  .home-concern-grid, .home-service-list, .home-process-grid { grid-template-columns: 1fr; }
  .home-concern-grid article { min-height: 210px; }
  .home-explanation-image { height: 300px; min-height: 0; }
  .works-data-inner li { grid-template-columns: 42px 1fr; padding: 18px 0; }
  .works-data-inner li small { grid-column: 2; }
  .work-detail-summary dl div { grid-template-columns: 1fr; gap: 7px; padding: 16px 0; }
  .work-detail-nav { flex-direction: column; }
  .inquiry-type-grid, .inquiry-flow ol { grid-template-columns: 1fr; }
  .inquiry-type-grid button { min-height: 190px; }
  .inquiry-form { padding: 28px 20px; }
  .line-contact { grid-template-columns: 1fr; gap: 24px; }
	.contact-channel-grid, .inquiry-choice-grid { grid-template-columns: 1fr; }
  .line-contact-qr { display: none; }
  .line-contact-guide ol { grid-template-columns: 1fr; }
  .form-split { grid-template-columns: 1fr; }
  .uematsu-choice-field { padding: 17px 16px 15px; }
  .uematsu-choice-field .wpcf7-form-control { grid-template-columns: 1fr; gap: 7px; }
  .uematsu-form-step { flex-wrap: wrap; gap: 5px 10px; }
  .uematsu-form-step small { width: 100%; margin-left: 0; }
  .products-nav-grid { grid-template-columns: 1fr; }
  .products-nav-grid a { min-height: 165px; }
  .capability-image { min-height: 320px; }
  .capability-copy li { flex-direction: column; gap: 6px; }
  .about-purpose,.group-companies,.group-flow{padding:80px 20px}.company-grid,.group-flow ol{grid-template-columns:1fr}.about-people-image{height:300px;min-height:0}.about-people>div:last-child{padding:60px 22px}
  .footer-links { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .footer-bottom { flex-direction: column; }
}

/* Construction cases: release-first, photo-led layout. */
.works-archive-intro { max-width: 760px; margin: 0 0 55px; }
.works-archive-intro h2 { margin: 8px 0 18px; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.3; }
.works-archive-intro > p:last-child { margin: 0; color: var(--muted); line-height: 1.9; }
.works-archive-filters { margin: 0 0 48px; padding: 25px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: end; border: 1px solid var(--line); background: var(--paper); }
.works-archive-filters label { display: grid; gap: 8px; }
.works-archive-filters label span { color: var(--navy); font-size: .78rem; font-weight: 800; letter-spacing: .06em; }
.works-archive-filters select { width: 100%; min-height: 48px; padding: 0 42px 0 14px; border: 1px solid var(--line); color: var(--navy); background-color: var(--white); font: inherit; }
.works-archive-filters .button { grid-column: 1 / -1; width: max-content; min-width: 190px; border: 0; cursor: pointer; }
.works-archive-filters > a { grid-column: 1 / -1; width: max-content; color: var(--blue); font-size: .86rem; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.works-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.works-archive-card { color: var(--ink); text-decoration: none; background: var(--white); }
.works-archive-image { aspect-ratio: 4 / 3; background: #e8eef0; }
.works-archive-image.is-placeholder { display: grid; place-items: center; }
.works-archive-image .works-photo-pending { position: static; color: #89a0a9; background: transparent; font-size: .72rem; letter-spacing: .22em; }
.works-archive-copy { min-height: 190px; display: flex; flex-direction: column; }
.works-card-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.works-card-tags span { padding: 5px 8px; color: var(--blue); background: #eaf6fb; font-size: .68rem; font-weight: 800; }
.works-archive-copy h3 { margin-top: 18px; }
.works-archive-copy b { margin-top: auto; padding-top: 24px; color: var(--blue); }

.work-detail-header { padding-top: 110px; }
.work-detail-kicker { margin: 12px 0 24px; color: var(--blue); font-weight: 800; }
.work-detail-main-image { height: auto; aspect-ratio: 16 / 8.5; }
.work-detail-summary-inner { width: min(var(--content), 100%); }
.work-detail-content { padding: 110px 28px; background: var(--white); }
.work-detail-content > .section-inner { max-width: 920px; }
.work-content-block + .work-content-block { margin-top: 70px; padding-top: 70px; border-top: 1px solid var(--line); }
.work-content-block h2 { margin: 8px 0 22px; font-size: clamp(1.8rem, 3.2vw, 3rem); }
.work-content-block > p:last-child { margin-bottom: 0; color: var(--muted); line-height: 2; }
.work-materials { padding: 100px 28px; color: var(--white); background: var(--navy-2); }
.work-materials > .section-inner { display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; }
.work-materials h2 { margin: 8px 0 0; color: var(--white); font-size: clamp(2rem, 3.7vw, 3.5rem); }
.work-materials dl { margin: 0; border-top: 1px solid rgba(255,255,255,.25); }
.work-materials dl div { display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 21px 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.work-materials dt { color: #a9c0c9; font-size: .82rem; font-weight: 800; }
.work-materials dd { margin: 0; font-weight: 700; }
.work-gallery h2, .work-related-products h2 { margin: 8px 0 35px; font-size: clamp(2rem, 3.5vw, 3.3rem); }
.work-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; gap: 18px; }
.work-gallery-grid.count-1 { grid-template-columns: minmax(0, 760px); }
.work-gallery-grid.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.work-gallery-grid figure { margin: 0; }
.work-gallery-grid img, .work-gallery-grid img:first-child { width: 100%; height: auto; aspect-ratio: 4 / 3; grid-row: auto; object-fit: cover; }
.work-gallery-grid figcaption { margin-top: 9px; color: var(--muted); font-size: .82rem; }
.work-extra-gallery { padding-top: 80px; }
.work-extra-gallery .work-gallery-grid figure { display: flex; align-items: center; justify-content: center; overflow: hidden; background: #eef2f4; }
.work-extra-gallery .work-gallery-grid img { object-fit: contain; }
.work-related-products { padding: 100px 28px; background: var(--white); }
.work-related-products > .section-inner > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.work-related-products a { padding: 25px; display: flex; justify-content: space-between; gap: 20px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.work-related-products a span { font-weight: 800; }
.work-related-products a b { color: var(--blue); font-size: .82rem; }
.work-detail-actions { padding: 100px 28px; background: var(--paper); }
.work-detail-actions .work-contact-panel { margin-top: 0; }

@media (max-width: 980px) {
  .works-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .works-archive-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .works-archive-filters .button { grid-column: 1 / -1; width: 100%; }
  .work-materials > .section-inner { grid-template-columns: 1fr; gap: 45px; }
}
@media (max-width: 700px) {
  .works-archive-hero { min-height: 520px; }
  .works-archive-grid { grid-template-columns: 1fr; }
  .works-archive-filters { padding: 20px; grid-template-columns: 1fr; }
  .works-archive-filters .button, .works-archive-filters > a { grid-column: auto; }
  .works-archive-copy { min-height: 165px; }
  .work-detail-header { padding: 75px 20px 55px; }
  .work-detail-header h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); }
  .work-detail-main-image { aspect-ratio: 4 / 3; }
  .work-detail-content, .work-materials, .work-related-products, .work-detail-actions { padding: 75px 20px; }
  .work-materials dl div { grid-template-columns: 1fr; gap: 7px; }
  .work-gallery-grid, .work-gallery-grid.count-2 { grid-template-columns: 1fr; }
  .work-related-products > .section-inner > div { grid-template-columns: 1fr; }
  .work-related-products a { flex-direction: column; }
}

/* Roof landing page: clear paths before products. */
.roof-hero { min-height: 640px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.roof-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.roof-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.97), rgba(4,27,38,.76) 58%, rgba(4,27,38,.28)); }
.roof-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 75px 0 100px; }
.roof-hero h1 { max-width: 900px; margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); line-height: 1.12; letter-spacing: -.045em; }
.roof-hero h1 span { color: var(--blue-bright); }
.roof-hero-inner > p:not(.eyebrow) { max-width: 720px; margin: 30px 0 0; font-size: 1.12rem; line-height: 1.95; font-weight: 600; }
.roof-capability { padding: 115px 28px; background: var(--white); }
.roof-capability-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 25px 75px; align-items: end; }
.roof-capability-heading .eyebrow { grid-column: 1 / 3; margin: 0; }
.roof-capability-heading h2 { margin: 0; font-size: clamp(2.2rem, 3.5vw, 3.1rem); line-height: 1.25; }
.roof-capability-heading > p:last-child { margin: 0; color: var(--muted); line-height: 2; }
.roof-capability-flow { margin-top: 65px; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.roof-capability-flow span { min-height: 100px; padding: 20px; display: grid; place-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-weight: 800; }
.roof-guide { padding: 115px 28px; background: var(--paper); }
.roof-guide .split-heading { grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr); gap: 50px; }
.roof-guide .section-heading h2 { font-size: clamp(2.15rem, 3.5vw, 3.15rem); }
.roof-guide-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.roof-guide-grid a { min-height: 315px; padding: 34px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; background: var(--white); transition: transform .2s ease, box-shadow .2s ease; }
.roof-guide-grid a:hover { position: relative; z-index: 1; transform: translateY(-4px); box-shadow: 0 18px 38px rgba(7,36,49,.12); }
.roof-guide-grid a > span, .roof-strength-grid article > span { color: var(--blue); font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.roof-guide-grid h3 { margin: 20px 0 13px; font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.45; }
.roof-guide-grid p { margin: 0; color: var(--muted); line-height: 1.8; }
.roof-guide-grid b { margin-top: auto; padding-top: 24px; color: var(--blue); font-size: .86rem; }
.roof-audience-note { margin-top: 28px; padding: 26px 30px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 35px; color: var(--white); background: var(--blue); }
.roof-audience-note p { margin: 0; line-height: 1.75; }
.roof-strengths { padding: 115px 28px; color: var(--white); background: var(--navy); }
.roof-strengths-heading { max-width: 820px; margin-bottom: 55px; }
.roof-strengths-heading h2 { margin: 8px 0 22px; color: var(--white); font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.25; }
.roof-strengths-heading > p:last-child { margin: 0; color: #c2d4da; line-height: 2; }
.roof-strength-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.roof-strength-grid article { min-height: 250px; padding: 30px; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.roof-strength-grid h3 { margin: 18px 0 13px; font-size: 1.25rem; }
.roof-strength-grid p { margin: 0; color: #bfd0d7; line-height: 1.8; }
.roof-products { padding: 115px 28px; background: var(--white); }
.roof-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.roof-product-grid.has-1-items { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
.roof-product-grid.has-2-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.roof-product-grid a { display: flex; flex-direction: column; border: 1px solid var(--line); color: var(--ink); text-decoration: none; background: var(--paper); }
.roof-product-grid figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: #dfe8eb; }
.roof-product-grid figure.is-placeholder { display: grid; place-items: center; color: #8299a2; font-size: .72rem; letter-spacing: .2em; }
.roof-product-grid figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.roof-product-grid a:hover figure img { transform: scale(1.035); }
.roof-product-grid a > div { min-height: 215px; padding: 27px; display: flex; flex-direction: column; }
.roof-product-grid small { color: var(--blue); font-size: .68rem; letter-spacing: .14em; }
.roof-product-grid h3 { margin: 13px 0 10px; font-size: 1.35rem; }
.roof-product-grid p { margin: 0; color: var(--muted); line-height: 1.7; }
.roof-product-grid b { margin-top: auto; padding-top: 23px; color: var(--blue); font-size: .85rem; }
.roof-all-link { margin-top: 32px; }
.roof-products-empty { margin: 32px 0 0; color: var(--muted); line-height: 1.8; }
.roof-empty-panel { padding: 36px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 35px; border-top: 4px solid var(--blue); background: var(--paper); }
.roof-empty-panel p { margin: 0; color: var(--muted); }
.roof-technology { min-height: 440px; display: grid; grid-template-columns: 1fr 1fr; color: var(--white); background: var(--navy-2); }
.roof-technology-image { overflow: hidden; }
.roof-technology-image img { width: 100%; height: 100%; object-fit: cover; }
.roof-technology-copy { padding: clamp(44px, 5vw, 62px); display: flex; flex-direction: column; justify-content: center; }
.roof-technology-copy h2 { margin: 8px 0 26px; color: var(--white); font-size: clamp(2.2rem, 4vw, 3.9rem); line-height: 1.3; }
.roof-technology-copy > p:not(.eyebrow) { margin: 0; color: #c5d6dc; line-height: 2; }
.roof-technology-copy ul { margin: 34px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.25); }
.roof-zeb-link { padding: 105px 28px; background: #eef5f7; }
.roof-zeb-link-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
.roof-zeb-link h2 { margin: 0; font-size: clamp(2.3rem, 3.5vw, 3rem); line-height: 1.22; letter-spacing: -.04em; }
.roof-zeb-link-inner > div:last-child > p { margin: 0 0 28px; color: var(--muted); line-height: 2; }
.roof-technology-copy li { padding: 15px 0; display: grid; grid-template-columns: 120px 1fr; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.25); }
.roof-technology-copy li span { color: #bfd0d7; }
.roof-technology-copy .button { align-self: flex-start; }
.roof-works { padding: 115px 28px; background: var(--paper); }
.roof-contact { padding: 110px 28px; color: var(--white); background: #073347; }
.roof-contact-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.roof-contact h2 { margin: 8px 0 24px; color: var(--white); font-size: clamp(2.2rem, 4.2vw, 4rem); line-height: 1.3; }
.roof-contact-inner > div:first-child > p:last-child { color: #c6d8de; line-height: 2; }
.roof-contact ul { margin: 0 0 30px; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.25); }
.roof-contact li { padding: 13px 5px; border-bottom: 1px solid rgba(255,255,255,.25); }

@media (max-width: 980px) {
  .roof-capability-heading, .roof-technology, .roof-contact-inner { grid-template-columns: 1fr; }
  .roof-capability-heading .eyebrow { grid-column: auto; }
  .roof-capability-flow { grid-template-columns: repeat(3, 1fr); }
  .roof-product-grid { grid-template-columns: repeat(2, 1fr); }
  .roof-technology-image { height: 360px; min-height: 0; }
}
@media (max-width: 700px) {
  .roof-hero { min-height: 580px; }
  .roof-hero-inner { padding: 55px 0 80px; }
  .roof-hero h1 { font-size: clamp(2.45rem, 12vw, 4rem); }
  .roof-hero-inner > p:not(.eyebrow) { font-size: 1rem; }
  .roof-capability, .roof-guide, .roof-strengths, .roof-products, .roof-works, .roof-contact { padding: 80px 20px; }
  .roof-guide .split-heading { grid-template-columns: 1fr; gap: 28px; }
	.roof-contact h2 { font-size: clamp(1.9rem, 8.2vw, 2.45rem); line-height: 1.28; }
  .roof-capability-flow, .roof-guide-grid, .roof-strength-grid, .roof-product-grid,
  .roof-product-grid.has-1-items, .roof-product-grid.has-2-items { grid-template-columns: 1fr; }
  .roof-capability-flow span { min-height: 78px; }
  .roof-guide-grid a { min-height: 275px; padding: 27px; }
  .roof-audience-note, .roof-empty-panel { grid-template-columns: 1fr; gap: 15px; }
  .roof-strength-grid article { min-height: 220px; }
  .roof-technology-image { height: 300px; min-height: 0; }
  .roof-technology-copy { padding: 60px 22px; }
  .roof-technology-copy li { grid-template-columns: 1fr; gap: 5px; }
  .roof-zeb-link { padding: 80px 20px; }
  .roof-zeb-link-inner { grid-template-columns: 1fr; gap: 30px; }
}

.news-archive-hero{min-height:500px;padding:80px 28px;display:grid;align-items:center;color:#fff;background:var(--navy)}.news-archive-hero>div{width:min(var(--content),100%);margin:auto}.news-archive-hero h1{font-size:clamp(3rem,6vw,6rem)}.news-archive-hero h1 span{color:var(--blue-bright)}.news-archive{padding:110px 28px;background:#fff}.news-filters{margin-bottom:35px;display:flex;flex-wrap:wrap;gap:8px}.news-filters button{padding:13px 16px;border:1px solid var(--line);background:#fff;font-weight:700}.news-filters button.is-active{color:#fff;background:var(--navy)}.news-archive-list>*{min-height:100px;padding:20px 0;display:grid;grid-template-columns:120px 100px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line)}.news-archive-list>[hidden]{display:none}.news-archive-list span{padding:6px;border:1px solid var(--blue);color:var(--blue);text-align:center;font-size:.7rem}.news-operation{padding:90px 28px;color:#fff;background:var(--navy-2)}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-reader-text:focus{position:fixed!important;z-index:100000;top:12px;left:12px;width:auto;height:auto;padding:12px 18px;clip:auto;background:#fff;color:#051c27}.hero-media{position:absolute;inset:0}.hero-media .hero-picture{opacity:0;transition:opacity 1s ease}.hero-media .hero-picture.is-active{opacity:1}.brand .custom-logo{width:auto;max-height:48px}.work-card>a{display:block;height:100%}.work-card>a>img{width:100%;height:100%;object-fit:cover}
.uematsu-dark-button{color:var(--navy);border-color:var(--navy);background:var(--white)}
.uematsu-detail{padding:100px 28px;background:#fff}.uematsu-detail .section-inner{max-width:920px}.uematsu-detail-image{margin-bottom:48px}.uematsu-detail-image img{width:100%;height:auto}.uematsu-detail h2{margin:55px 0 18px;font-size:clamp(1.6rem,3vw,2.4rem)}.uematsu-entry-content{font-size:1rem;line-height:2}.uematsu-entry-content img{max-width:100%;height:auto}.uematsu-pagination,.nav-links{margin-top:45px;display:flex;flex-wrap:wrap;gap:8px}.uematsu-pagination .page-numbers,.nav-links .page-numbers{padding:10px 14px;border:1px solid var(--line)}.uematsu-pagination .current,.nav-links .current{color:#fff;background:var(--navy)}.uematsu-form-wrap{max-width:900px;margin:45px auto 0;padding:clamp(24px,5vw,55px);background:var(--paper);border-top:4px solid var(--blue)}
.uematsu-facts{margin:0;border-top:1px solid var(--line)}.uematsu-facts>div{padding:18px 0;display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--line)}.uematsu-facts dt{font-weight:700}.uematsu-facts dd{margin:0;color:var(--muted)}.uematsu-before-after{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.uematsu-before-after figure{margin:0}.uematsu-before-after img{width:100%;height:auto}.uematsu-before-after figcaption{margin-top:8px;color:var(--muted);font-size:.85rem}@media(max-width:700px){.uematsu-detail,.news-archive{padding:80px 20px}.uematsu-facts>div{grid-template-columns:1fr;gap:7px}.uematsu-before-after{grid-template-columns:1fr}}
.global-nav-list{display:contents;margin:0;padding:0;list-style:none}
@media(max-width:780px){
	.global-nav{justify-content:flex-start;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch}
	.global-nav-list{width:100%;display:block;flex:0 0 auto;margin:0;padding:0;list-style:none}
	.global-nav-list>li{width:100%;margin:0;padding:0;display:block}
	.global-nav-list>li>a,
	.global-nav-list>li>a:visited,
	.global-nav-list>.current-menu-item>a,
	.global-nav-list>.current_page_item>a{width:100%;min-height:52px;padding:14px 0;display:flex;align-items:center;box-sizing:border-box;color:var(--ink);border-bottom:1px solid var(--line);font-size:1rem;font-weight:700;line-height:1.45;letter-spacing:.02em;-webkit-tap-highlight-color:rgba(17,112,153,.12)}
	.global-nav-list>li>a:hover,
	.global-nav-list>li>a:focus-visible{color:var(--blue)}
	.global-nav-list>li>a:active{color:var(--ink)}
}
.u-nowrap{white-space:nowrap}.u-heading-line{display:inline-block;max-width:100%;white-space:nowrap}.u-sp-only{display:none!important}
main h1,main h2,main h3,main h4{overflow-wrap:normal;word-break:normal;line-break:strict;text-wrap:balance}
@supports (word-break:auto-phrase){main h1,main h2,main h3,main h4{word-break:auto-phrase}}
@media(max-width:700px){.u-pc-only{display:none!important}.u-sp-only{display:inline!important}.u-heading-line{display:inline;white-space:normal}.u-heading-line+br{display:none}}
.about-manufacturing-quality{padding:105px 28px;color:var(--white);background:#073347}.manufacturing-quality-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.about-manufacturing-quality h2{margin:0;font-size:clamp(2.3rem,4.5vw,4.5rem);line-height:1.22;letter-spacing:-.04em}.manufacturing-quality-inner>div:last-child>p{color:#d0dfe4;line-height:2}.manufacturing-quality-note{margin-top:24px;padding:20px 22px;border-left:3px solid #55c2e7;background:rgba(255,255,255,.07);font-size:.9rem}@media(max-width:780px){.about-manufacturing-quality{padding:80px 20px}.manufacturing-quality-inner{grid-template-columns:1fr;gap:30px}}

/* Recruitment */
.recruit-hero { min-height: 640px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.recruit-hero > img,
.recruit-hero-picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.recruit-hero > img { object-fit: cover; object-position: center; }
.recruit-hero-picture img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.recruit-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.97) 0%, rgba(4,27,38,.82) 52%, rgba(4,27,38,.34) 100%); }
.recruit-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 100px; }
.recruit-hero h1 { max-width: 970px; margin: 0; font-size: clamp(3rem, 6.1vw, 6rem); line-height: 1.12; letter-spacing: -.05em; }
.recruit-hero-inner > p:last-child { max-width: 720px; margin: 30px 0 0; color: #d4e3e8; font-size: 1.1rem; font-weight: 600; line-height: 1.95; }
.recruit-intro { padding: 120px 28px; background: var(--paper); }
.recruit-intro h2 { max-width: 900px; margin: 0; font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.22; letter-spacing: -.045em; }
.recruit-intro .section-inner > p:not(.eyebrow) { max-width: 720px; margin: 32px 0 55px auto; color: var(--muted); line-height: 2; }
.recruit-intro-links { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-intro-links a { min-height: 190px; padding: 28px; display: grid; grid-template-columns: 1fr auto; align-content: space-between; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.recruit-intro-links small { grid-column: 1 / -1; color: var(--blue); letter-spacing: .16em; }
.recruit-intro-links strong { align-self: end; font-size: 1.35rem; }
.recruit-intro-links span { align-self: end; color: var(--blue); font-size: 1.4rem; }
.recruit-intro-links a:hover { color: var(--white); background: var(--navy); }

.recruit-navigation { padding: 115px 28px; background: var(--white); }
.recruit-menu-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-menu-card { min-height: 315px; display: grid; grid-template-columns: 1fr; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); overflow: hidden; transition: color .2s ease, background .2s ease; }
.recruit-menu-card.has-image { grid-template-columns: .88fr 1.12fr; }
.recruit-menu-image { min-height: 315px; overflow: hidden; background: #dce5e8; }
.recruit-menu-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.recruit-menu-copy { padding: 32px; display: flex; flex-direction: column; }
.recruit-menu-copy > span { color: var(--blue); font-size: .75rem; letter-spacing: .14em; }
.recruit-menu-copy h3 { margin: 52px 0 14px; font-size: 1.4rem; }
.recruit-menu-card.has-image .recruit-menu-copy h3 { margin-top: 34px; }
.recruit-menu-copy p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.85; }
.recruit-menu-copy strong { margin-top: auto; padding-top: 28px; color: var(--blue); font-size: .92rem; }
.recruit-menu-copy b { display: inline-block; margin-left: 8px; font-weight: 400; transition: transform .2s ease; }
.recruit-menu-card:hover { color: var(--white); background: var(--navy); }
.recruit-menu-card:hover .recruit-menu-image img { transform: scale(1.035); }
.recruit-menu-card:hover p { color: #c5d5da; }
.recruit-menu-card:hover b { transform: translateX(4px); }

.recruit-message { min-height: 440px; display: grid; grid-template-columns: 1fr 1fr; color: var(--white); background: var(--navy-2); }
.recruit-message-image { min-height: 400px; overflow: hidden; }
.recruit-message-image img { width: 100%; height: 100%; object-fit: cover; }
.recruit-message-copy { padding: clamp(48px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.recruit-message-copy h2 { margin: 0; font-size: clamp(2.25rem, 4.2vw, 4.1rem); line-height: 1.28; letter-spacing: -.04em; }
.recruit-message-body { margin-top: 28px; color: #c7d7dd; font-size: 1rem; line-height: 2; }
.recruit-message-body > :first-child { margin-top: 0; }
.recruit-message-body > :last-child { margin-bottom: 0; }
.recruit-message.is-text-only { min-height: 0; grid-template-columns: 1fr; }
.recruit-message.is-text-only .recruit-message-copy { width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: clamp(72px, 8vw, 112px) 0; }

.recruit-program { padding: 115px 28px; background: var(--white); }
.recruit-program-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .55fr 1.45fr; gap: 90px; align-items: center; }
.recruit-program-number { min-height: 340px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); background: var(--blue); }
.recruit-program-number strong { font-size: clamp(7rem, 15vw, 12rem); line-height: .8; letter-spacing: -.08em; }
.recruit-program-number span { margin-top: 28px; font-size: .8rem; font-weight: 800; letter-spacing: .28em; }
.recruit-program-label { margin: 0 0 16px; color: var(--blue); font-weight: 800; }
.recruit-program h2 { margin: 0; font-size: clamp(2.25rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.04em; }
.recruit-program-inner > div:last-child > p:last-child { max-width: 720px; margin: 28px 0 0; color: var(--muted); font-size: 1rem; line-height: 2; }

.recruit-voices { padding: 115px 28px; background: var(--paper); }
.recruit-voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-voice-card { min-height: 480px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.recruit-voice-card > div { margin: -28px -28px 26px; aspect-ratio: 4 / 3; overflow: hidden; background: #dce5e8; }
.recruit-voice-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.recruit-voice-card > span { color: var(--blue); font-size: .74rem; letter-spacing: .14em; }
.recruit-voice-card h3 { margin: 12px 0; font-size: 1.3rem; line-height: 1.5; overflow-wrap: normal; word-break: normal; line-break: strict; }
.recruit-voice-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.75; overflow-wrap: anywhere; }
.recruit-voice-card strong { margin-top: auto; padding-top: 24px; color: var(--blue); font-size: .88rem; }
.recruit-voice-card:hover img { transform: scale(1.035); }
.recruit-voices .split-heading > div:last-child .arrow-link { display: inline-block; margin-top: 18px; }

.recruit-news { padding: 115px 28px; background: var(--white); }
.recruit-banners { padding: 105px 28px; background: var(--paper); }
.recruit-banner-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.recruit-banner-grid a { min-height: 118px; padding: 20px; display: flex; flex-direction: column; justify-content: center; gap: 10px; border: 1px solid var(--line); background: var(--white); transition: border-color .2s ease, transform .2s ease; }
.recruit-banner-grid a:hover { border-color: var(--blue); transform: translateY(-2px); }
.recruit-banner-grid img { width: 100%; max-height: 110px; object-fit: contain; }
.recruit-banner-grid strong { font-size: 1.05rem; }
.recruit-banner-grid span { color: var(--blue); font-size: .85rem; font-weight: 700; }

.recruit-entry { padding: 110px 28px; color: var(--white); background: #073347; }
.recruit-entry-inner { width: min(var(--content), 100%); margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: center; }
.recruit-entry h2 { margin: 0; font-size: clamp(2.3rem, 4.5vw, 4.4rem); line-height: 1.22; letter-spacing: -.04em; }
.recruit-entry-inner > div:first-child > p:last-child { color: #c5d7dd; line-height: 1.9; }
.recruit-entry-actions { border-top: 1px solid rgba(255,255,255,.3); }
.recruit-entry-actions a { min-height: 92px; padding: 18px 10px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid rgba(255,255,255,.3); }
.recruit-entry-actions a:hover { color: var(--blue-bright); }
.recruit-entry-actions span { font-size: 1rem; font-weight: 700; }
.recruit-entry-actions strong { text-align: right; font-size: .85rem; }

@media (max-width: 980px) {
  .recruit-menu-card.has-image { grid-template-columns: 1fr; }
  .recruit-menu-image { min-height: 235px; }
  .recruit-entry-inner, .recruit-program-inner { gap: 55px; }
  .recruit-voice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .recruit-hero { min-height: 580px; }
  .recruit-hero-inner { padding: 55px 0 90px; }
  .recruit-intro, .recruit-navigation, .recruit-program, .recruit-voices, .recruit-news, .recruit-banners, .recruit-entry { padding: 80px 20px; }
  .recruit-intro-links { grid-template-columns: 1fr; }
  .recruit-intro-links a { min-height: 140px; }
  .recruit-menu-grid { grid-template-columns: 1fr; }
  .recruit-menu-card { min-height: 270px; }
  .recruit-message { grid-template-columns: 1fr; }
  .recruit-message-image { height: 300px; min-height: 0; }
  .recruit-message-copy { padding: 60px 22px; }
  .recruit-program-inner { grid-template-columns: 1fr; gap: 38px; }
  .recruit-program-number { min-height: 260px; }
  .recruit-voice-card { min-height: 0; }
  .recruit-voice-card strong { margin-top: 30px; }
  .recruit-banner-grid { grid-template-columns: repeat(2, 1fr); }
  .recruit-entry-inner { grid-template-columns: 1fr; gap: 38px; }
}

/* Editable recruitment content pages */
.recruit-sub-hero { min-height: 590px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.recruit-sub-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.recruit-sub-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.97), rgba(4,27,38,.72) 58%, rgba(4,27,38,.28)); }
.recruit-sub-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: auto; padding: 70px 0 95px; }
.recruit-sub-hero h1 { max-width: 920px; margin: 0; font-size: clamp(3rem, 5.7vw, 5.5rem); line-height: 1.14; letter-spacing: -.045em; }
.recruit-sub-hero-inner > p:last-child { max-width: 720px; margin: 28px 0 0; color: #d4e3e8; font-size: 1.08rem; font-weight: 600; line-height: 1.95; }
.recruit-content-list { padding: 115px 28px; background: var(--white); }
.recruit-content-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-content-card { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.recruit-content-image { aspect-ratio: 16 / 10; overflow: hidden; background: #dce5e8; }
.recruit-content-image img { width: 100%; height: 100%; object-fit: cover; }
.recruit-content-copy { padding: clamp(28px, 4vw, 46px); }
.recruit-content-copy small { color: var(--blue); letter-spacing: .15em; }
.recruit-content-copy h2 { margin: 28px 0 16px; font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.45; }
.recruit-content-copy p { margin: 0; color: var(--muted); line-height: 1.95; }
.recruit-content-list.is-numbers .recruit-content-grid { grid-template-columns: repeat(3, 1fr); }
.recruit-content-number { min-height: 230px; padding: 35px; display: flex; align-items: baseline; justify-content: center; color: var(--white); background: var(--blue); }
.recruit-content-number strong { font-size: clamp(4.5rem, 8vw, 8rem); line-height: 1; letter-spacing: -.06em; }
.recruit-content-number span { margin-left: 10px; font-size: 1rem; font-weight: 800; }
@media (max-width: 850px) { .recruit-content-list.is-numbers .recruit-content-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .recruit-sub-hero { min-height: 550px; } .recruit-content-list { padding: 80px 20px; } .recruit-content-grid, .recruit-content-list.is-numbers .recruit-content-grid { grid-template-columns: 1fr; } }

.recruit-free-content { padding: 110px 28px; background: var(--white); }
.recruit-free-content .section-inner { max-width: 980px; }
.recruit-free-content .uematsu-entry-content > h2 { margin: 70px 0 25px; padding-bottom: 18px; border-bottom: 3px solid var(--blue); font-size: clamp(1.7rem, 3vw, 2.5rem); }
.recruit-free-content .uematsu-entry-content > h2:first-child { margin-top: 0; }
.recruit-free-content .uematsu-entry-content h3 { margin: 45px 0 18px; font-size: 1.35rem; }
.recruit-free-content .uematsu-entry-content table { width: 100%; border-collapse: collapse; }
.recruit-free-content .uematsu-entry-content th, .recruit-free-content .uematsu-entry-content td { padding: 18px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.recruit-free-content .uematsu-entry-content th { width: 28%; background: var(--paper); }
.recruit-free-content .uematsu-entry-content a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.recruit-faq-list { padding: 110px 28px; background: var(--white); }
.recruit-faq-list .section-inner { max-width: 980px; }
.recruit-faq-item { border-bottom: 1px solid var(--line); }
.recruit-faq-item:first-child { border-top: 1px solid var(--line); }
.recruit-faq-item summary { min-height: 105px; padding: 24px 10px; display: grid; grid-template-columns: 58px 1fr 35px; gap: 18px; align-items: center; cursor: pointer; list-style: none; }
.recruit-faq-item summary::-webkit-details-marker { display: none; }
.recruit-faq-item summary span, .recruit-faq-item > div > span { color: var(--blue); font-size: 1.3rem; font-weight: 800; }
.recruit-faq-item summary strong { font-size: 1.08rem; line-height: 1.7; }
.recruit-faq-item summary i { font-style: normal; color: var(--blue); font-size: 1.5rem; }
.recruit-faq-item[open] summary i { transform: rotate(45deg); }
.recruit-faq-item > div { padding: 28px 55px 38px 10px; display: grid; grid-template-columns: 58px 1fr; gap: 18px; background: var(--paper); }
.recruit-faq-item > div p { margin: 0; color: var(--muted); line-height: 1.95; }
.voice-hero { min-height: 680px; position: relative; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--navy); }
.voice-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.voice-hero-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,27,38,.95), rgba(4,27,38,.16) 72%); }
.voice-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 80px 0; }
.voice-hero h1 { max-width: 850px; margin: 0; font-size: clamp(3rem, 6vw, 6rem); line-height: 1.12; }
.voice-hero-inner > p:last-child { margin: 20px 0 0; color: #d4e3e8; font-weight: 700; }
.voice-message { padding: 90px 28px; color: var(--white); background: var(--blue); }
.voice-message p { max-width: 900px; margin: 0; font-size: clamp(1.35rem, 2.5vw, 2.1rem); font-weight: 700; line-height: 1.75; }
.voice-questions { padding: 110px 28px; background: var(--white); }
.voice-questions .section-inner { max-width: 1050px; }
.voice-question { padding: 75px 0; display: grid; grid-template-columns: 1.15fr .85fr; gap: 65px; align-items: center; border-bottom: 1px solid var(--line); }
.voice-question:first-child { padding-top: 0; }
.voice-question:nth-child(even) .voice-question-copy { order: 2; }
.voice-question-no-image { grid-template-columns: minmax(0, 1fr); }
.voice-question-no-image .voice-question-copy { max-width: 850px; }
.voice-question-no-image:nth-child(even) .voice-question-copy { order: initial; }
.voice-question-timeline .voice-question-copy { max-width: none; }
.voice-question-copy small { color: var(--blue); font-weight: 800; letter-spacing: .14em; }
.voice-question-copy h2 { max-width: 17em; margin: 18px 0 25px; font-size: clamp(1.65rem, 2.55vw, 2.35rem); line-height: 1.42; text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
.voice-question-copy div { color: var(--muted); line-height: 1.95; overflow-wrap: anywhere; }
.voice-question-copy div > :first-child { margin-top: 0; }
.voice-question-copy div > :last-child { margin-bottom: 0; }
.voice-question-image { aspect-ratio: 4 / 3; overflow: hidden; background: #dce5e8; }
.voice-question-image img { width: 100%; height: 100%; object-fit: cover; }
.voice-timeline { margin: 34px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.voice-timeline li { min-width: 0; min-height: 130px; padding: 24px; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 20px; align-items: start; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.voice-timeline time { color: var(--blue); font-size: 1.05rem; font-weight: 800; letter-spacing: .04em; }
.voice-timeline strong { display: block; color: var(--ink); font-size: 1rem; line-height: 1.6; }
.voice-timeline p { margin: 8px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.75; }
.recruit-form-section { padding: 110px 28px; background: var(--white); }
.recruit-form-section .section-inner { max-width: 980px; }
.recruit-form-notice { margin-bottom: 45px; padding: 24px 28px; border-left: 4px solid var(--blue); background: var(--paper); }
.recruit-form-notice strong { font-size: 1.05rem; }
.recruit-form-notice p { margin: 8px 0 0; color: var(--muted); line-height: 1.8; }
.recruit-form-notice a { color: var(--blue); text-decoration: underline; }
.recruit-form-body { padding: clamp(24px, 5vw, 58px); border: 1px solid var(--line); background: var(--paper); }
.recruit-form-body form > p { margin: 0 0 26px; }
.recruit-form-body label { display: block; font-weight: 700; line-height: 1.7; }
.recruit-form-body input[type="text"], .recruit-form-body input[type="email"], .recruit-form-body input[type="tel"], .recruit-form-body input[type="date"], .recruit-form-body select, .recruit-form-body textarea { width: 100%; min-height: 54px; margin-top: 8px; padding: 12px 14px; border: 1px solid #b9c8ce; border-radius: 0; background: var(--white); font: inherit; }
.recruit-form-body textarea { min-height: 180px; resize: vertical; }
.recruit-form-body input[type="submit"], .recruit-form-body button { min-width: min(100%, 340px); min-height: 60px; padding: 12px 28px; border: 0; color: var(--white); background: var(--blue); font: inherit; font-weight: 800; cursor: pointer; }
.recruit-form-body input[type="submit"]:hover, .recruit-form-body button:hover { background: var(--navy); }
.recruit-form-body .wpcf7-list-item { margin: 0 18px 8px 0; }
.recruit-form-body .wpcf7-response-output { margin: 25px 0 0 !important; padding: 16px !important; }
.recruit-news-hero { min-height: 500px; padding: 80px 28px; display: grid; align-items: center; color: var(--white); background: var(--navy); }
.recruit-news-hero > div { width: min(var(--content), 100%); margin: auto; }
.recruit-news-hero h1 { margin: 0; font-size: clamp(3rem, 6vw, 6rem); line-height: 1.1; }
.recruit-news-archive { padding: 110px 28px; background: var(--white); }
.voice-archive-hero > div > p:last-child { max-width: 760px; margin: 28px 0 0; color: #d4e3e8; font-size: 1.05rem; line-height: 1.9; }
.voice-archive-list { padding: 110px 28px; background: var(--white); }
.voice-archive-list .recruit-voice-card h2 { margin: 12px 0; font-size: 1.3rem; line-height: 1.5; text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
.recruit-parents-content { padding: 115px 28px; background: var(--white); }
.recruit-parents-content .section-inner { max-width: 1050px; }
.parents-intro { max-width: 850px; margin-bottom: 70px; }
.parents-intro h2 { margin: 0 0 28px; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.35; letter-spacing: -.035em; }
.parents-intro > p:last-child { color: var(--muted); line-height: 2; }
.parents-points { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.parents-points article { padding: 38px 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.parents-points small { color: var(--blue); font-weight: 800; letter-spacing: .14em; }
.parents-points h2 { margin: 28px 0 18px; font-size: 1.35rem; }
.parents-points p { margin: 0; color: var(--muted); line-height: 1.9; }
.not-found-page { min-height: 72vh; padding: 130px 28px; display: grid; align-items: center; color: var(--white); background: var(--navy); }
.not-found-inner { position: relative; width: min(920px, 100%); margin: auto; }
.not-found-code { position: absolute; right: 0; top: -95px; margin: 0; color: rgba(255,255,255,.07); font-size: clamp(10rem, 24vw, 20rem); font-weight: 900; line-height: 1; }
.not-found-page h1 { position: relative; margin: 0; font-size: clamp(2.7rem, 6vw, 5.7rem); line-height: 1.2; letter-spacing: -.045em; }
.not-found-page .not-found-inner > p:not(.eyebrow):not(.not-found-code) { position: relative; max-width: 720px; margin: 30px 0 0; color: #cbdde4; line-height: 1.95; }
.not-found-actions { position: relative; margin-top: 45px; display: flex; flex-wrap: wrap; gap: 12px; }
.button-outline { border: 1px solid rgba(255,255,255,.5); color: var(--white); background: transparent; }
@media (max-width: 700px) {
	.recruit-free-content, .recruit-faq-list, .voice-questions, .recruit-form-section, .recruit-news-archive, .voice-archive-list, .recruit-parents-content { padding: 80px 20px; }
  .recruit-voice-grid { grid-template-columns: 1fr; }
  .recruit-free-content .uematsu-entry-content table, .recruit-free-content .uematsu-entry-content tbody, .recruit-free-content .uematsu-entry-content tr, .recruit-free-content .uematsu-entry-content th, .recruit-free-content .uematsu-entry-content td { display: block; width: 100%; }
  .recruit-free-content .uematsu-entry-content tr { margin-bottom: 16px; }
  .recruit-faq-item summary { grid-template-columns: 42px 1fr 24px; gap: 10px; }
  .recruit-faq-item > div { padding: 25px 18px; grid-template-columns: 36px 1fr; gap: 10px; }
  .voice-hero { min-height: 520px; }
  .voice-hero-inner { width: calc(100% - 40px); padding: 55px 0; }
  .voice-hero h1 { font-size: clamp(2.35rem, 11vw, 4.2rem); text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
  .voice-question { grid-template-columns: 1fr; gap: 30px; padding: 60px 0; }
	.voice-question-copy h2 { max-width: none; font-size: clamp(1.55rem, 7.2vw, 2.1rem); line-height: 1.45; }
	.voice-question:nth-child(even) .voice-question-copy { order: initial; }
	.voice-timeline { grid-template-columns: 1fr; }
	.parents-points { grid-template-columns: 1fr; }
	.not-found-page { padding: 100px 20px; }
	.not-found-actions { align-items: stretch; flex-direction: column; }
}

@media (max-width: 480px) {
  .recruit-hero h1 { font-size: clamp(2.45rem, 11.5vw, 3.8rem); }
  .recruit-hero-inner > p:last-child { font-size: 1rem; }
  .recruit-menu-image { min-height: 210px; }
  .recruit-menu-copy { padding: 26px 22px; }
  .recruit-message-image { height: 300px; min-height: 0; }
  .recruit-banner-grid { grid-template-columns: 1fr; }
  .recruit-entry-actions a { align-items: flex-start; flex-direction: column; gap: 8px; }
  .recruit-entry-actions strong { text-align: left; }
  .recruit-voice-card { padding: 22px; }
  .recruit-voice-card > div { margin: -22px -22px 22px; }
}

.recruit-hero h1,
.recruit-sub-hero h1,
.recruit-message-copy h2,
.recruit-program h2,
.recruit-entry h2,
.recruit-news-hero h1,
.voice-hero h1,
.parents-intro h2,
.system-hero h1 {
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  line-break: strict;
}

/* Employee archive */
.voice-archive-list .recruit-voice-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.voice-archive-list .recruit-voice-card { min-height: 430px; padding: 22px; }
.voice-archive-list .recruit-voice-card > div { margin: -22px -22px 22px; }
.voice-archive-list .recruit-voice-card > span { min-height: 2.8em; line-height: 1.4; }
.voice-archive-list .recruit-voice-card p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

@media (max-width: 1120px) {
  .voice-archive-list .recruit-voice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .voice-archive-list .recruit-voice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .voice-archive-list .recruit-voice-grid { grid-template-columns: 1fr; }
  .voice-archive-list .recruit-voice-card { min-height: 0; }
  .voice-timeline li { min-height: 0; padding: 22px 18px; grid-template-columns: 68px minmax(0, 1fr); gap: 14px; }
}

/* Company systems and benefits */
.system-hero { min-height: 610px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.system-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.system-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.97) 0%, rgba(4,27,38,.8) 54%, rgba(4,27,38,.28) 100%); }
.system-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 70px 0 95px; }
.system-hero h1 { max-width: 880px; margin: 0; font-size: clamp(3rem, 5.7vw, 5.5rem); line-height: 1.12; letter-spacing: -.045em; }
.system-hero-inner > p:last-child { max-width: 720px; margin: 30px 0 0; color: #d4e3e8; font-size: 1.08rem; font-weight: 600; line-height: 1.95; }
.system-list { padding: 115px 28px; background: var(--white); }
.system-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.system-card { min-width: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.system-card-image { aspect-ratio: 4 / 3; overflow: hidden; background: #dce5e8; }
.system-card-image img { width: 100%; height: 100%; object-fit: cover; }
.system-card-copy { position: relative; flex: 1; min-height: 245px; padding: 30px; }
.system-card-copy > span { display: inline-block; padding: 6px 9px; color: var(--blue); border: 1px solid var(--blue); font-size: .72rem; font-weight: 700; }
.system-card-copy > small { position: absolute; top: 34px; right: 30px; color: var(--muted); font-size: .75rem; letter-spacing: .12em; }
.system-card-copy h3 { margin: 42px 0 14px; font-size: 1.35rem; line-height: 1.5; }
.system-card-copy p { margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.85; }
.system-empty { padding: 35px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); }
.system-category-nav { margin: 0 0 54px; display: flex; flex-wrap: wrap; gap: 10px; }
.system-category-nav a { min-width: 150px; padding: 14px 18px; display: flex; justify-content: space-between; gap: 18px; color: var(--navy); border: 1px solid var(--line); background: var(--white); font-weight: 800; }
.system-category-nav small { color: var(--blue); }
.system-category { scroll-margin-top: 120px; }
.system-category + .system-category { margin-top: 76px; }
.system-category-title { margin: 0 0 24px; padding-bottom: 14px; color: var(--navy); border-bottom: 2px solid var(--navy); font-size: clamp(1.5rem, 3vw, 2.2rem); }
.system-card-copy h4 { margin: 42px 0 14px; font-size: 1.35rem; line-height: 1.5; }
.system-card-details { margin: 20px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.system-card-details div { padding: 8px 0; display: grid; grid-template-columns: 100px 1fr; gap: 12px; }
.system-card-details dt { color: var(--blue); font-size: .75rem; font-weight: 800; }
.system-card-details dd { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.65; }
.system-back { padding: 105px 28px; color: var(--white); background: var(--navy-2); }
.system-back h2 { margin: 0 0 38px; font-size: clamp(2.25rem, 4.2vw, 4rem); line-height: 1.28; letter-spacing: -.04em; }
@media (max-width: 900px) { .system-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) {
  .system-hero { min-height: 570px; }
  .system-list, .system-back { padding: 80px 20px; }
  .system-grid { grid-template-columns: 1fr; }
  .system-card-copy { min-height: 0; }
}

/* Public launch and mobile usability */
.admin-bar .site-header { top: 32px; }
.header-inner > *, .global-nav, .global-nav-list { min-width: 0; }
.breadcrumbs a, .breadcrumbs span { overflow-wrap: anywhere; }

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

@media (max-width: 480px) {
  body { overflow-x: hidden; }
  .footer-links a { min-height: 40px; display: flex; align-items: center; }
  .recruit-menu-card h3, .recruit-content-card h2, .company-grid h3 { overflow-wrap: normal; word-break: normal; line-break: strict; }
}

@media (max-width: 360px) {
  .header-inner { padding: 0 10px; gap: 6px; }
  .brand img { width: 118px; }
  .menu-button { min-width: 44px; padding-inline: 4px; }
  .header-cta { min-height: 42px; padding: 0 8px; font-size: .76rem; }
}

/* Policy and motto */
.policy-hero { min-height: 610px; position: relative; display: grid; align-items: center; overflow: hidden; color: var(--white); background: var(--navy); }
.policy-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.policy-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,27,38,.96), rgba(4,27,38,.7) 62%, rgba(4,27,38,.25)); }
.policy-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: auto; padding: 80px 0; }
.policy-hero h1 { max-width: 900px; margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); line-height: 1.15; letter-spacing: -.045em; text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
.policy-hero-inner > p:last-child { max-width: 760px; margin: 30px 0 0; color: #d4e3e8; font-size: 1.06rem; line-height: 1.95; }
.policy-principles { padding: 115px 28px; background: var(--white); }
.policy-principle { min-width: 0; padding: clamp(30px, 5vw, 64px); background: var(--paper); }
.policy-principle h2 { margin: 18px 0 24px; font-size: clamp(2rem, 3.5vw, 3.45rem); line-height: 1.35; text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
.policy-principle div { color: var(--muted); line-height: 2; }
.policy-logo-story { display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: center; margin-bottom: 24px; }
.policy-logo-story figure { margin: 0; min-height: 280px; display: grid; place-items: center; background: var(--white); }
.policy-logo-story img { max-width: 82%; max-height: 300px; object-fit: contain; }
.policy-principle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.policy-principle-blue { color: var(--white); background: var(--blue); }
.policy-principle-blue div { color: #e9f7fc; }
.motto-list { padding: 115px 28px; background: var(--paper); }
.motto-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.motto-card { min-width: 0; display: grid; grid-template-columns: .72fr 1.28fr; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.motto-card-no-image { grid-template-columns: 1fr; }
.motto-card-image { min-height: 290px; overflow: hidden; }
.motto-card-image img { width: 100%; height: 100%; object-fit: cover; }
.motto-card-copy { padding: 34px; }
.motto-card-copy small { color: var(--blue); font-weight: 800; letter-spacing: .14em; }
.motto-card-copy h3 { margin: 20px 0 16px; font-size: 1.35rem; line-height: 1.55; overflow-wrap: normal; word-break: normal; line-break: strict; }
.motto-card-copy div, .motto-card-copy p { color: var(--muted); line-height: 1.9; }
@media (max-width: 900px) { .policy-logo-story, .policy-principle-grid { grid-template-columns: 1fr; } .motto-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .policy-hero { min-height: 540px; } .policy-principles, .motto-list { padding: 80px 20px; } .motto-card { grid-template-columns: 1fr; } .motto-card-image { min-height: 240px; } .motto-card-copy { padding: 26px 22px; } }

/* Numazu rental space */
.rental-hero { min-height: 640px; position: relative; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--navy); }
.rental-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rental-hero-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,27,38,.96), rgba(4,27,38,.25) 82%); }
.rental-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 48px)); margin: 0 auto; padding: 90px 0; }
.rental-hero h1 { max-width: 950px; margin: 0; font-size: clamp(3rem, 6vw, 6rem); line-height: 1.13; letter-spacing: -.045em; text-wrap: balance; overflow-wrap: normal; word-break: normal; line-break: strict; }
.rental-hero-inner > p:not(.eyebrow) { max-width: 760px; margin: 28px 0 0; color: #d8e7ec; font-size: 1.06rem; line-height: 1.95; }
.rental-hero-actions { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 12px; }
.rental-hero-actions .button, .rental-cta .button { overflow-wrap: normal; word-break: normal; line-break: strict; text-wrap: balance; }
.rental-quick { padding: 0 28px; background: var(--white); }
.rental-quick dl { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-left: 1px solid var(--line); }
.rental-quick dl > div { min-width: 0; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rental-quick dt { margin-bottom: 10px; color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.rental-quick dd { margin: 0; font-weight: 700; line-height: 1.65; overflow-wrap: anywhere; }
.rental-uses, .rental-rooms, .rental-info { padding: 115px 28px; background: var(--white); }
.rental-use-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.rental-use-grid article { border: 1px solid var(--line); background: var(--paper); }
.rental-use-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rental-use-grid article > div { padding: 28px; }
.rental-use-grid h3 { margin: 0 0 12px; font-size: 1.3rem; }
.rental-use-grid p { margin: 0; color: var(--muted); line-height: 1.8; }
.rental-price-list { padding: 115px 28px; background: var(--paper); }
.rental-price-table-wrap { overflow-x: auto; border: 1px solid var(--line); background: var(--white); }
.rental-price-list table { width: 100%; min-width: 760px; border-collapse: collapse; }
.rental-price-list th, .rental-price-list td { padding: 22px 24px; text-align: left; vertical-align: top; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); line-height: 1.65; }
.rental-price-list thead th { color: var(--white); background: var(--navy); font-size: .8rem; letter-spacing: .06em; }
.rental-price-list tbody th { width: 27%; color: var(--navy); }
.rental-price-list td strong { color: var(--ink); font-size: 1.08rem; font-weight: 800; }
.rental-price-note, .rental-price-update-note { margin: 18px 0 0; color: var(--muted); line-height: 1.8; }
.rental-price-update-note { font-size: .82rem; }
.rental-rooms { background: var(--paper); }
.rental-room-list { display: grid; gap: 34px; }
.rental-room { min-width: 0; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 430px; border: 1px solid var(--line); background: var(--white); }
.rental-room.is-text-only { grid-template-columns: minmax(0, 1fr); min-height: 0; }
.products-featured-inner.is-single-column { grid-template-columns: minmax(0, 1fr); }
.page-template-page-about-php .factory-contact-inner.is-single-column { grid-template-columns: minmax(0, 1fr); }
/* サブ写真（.rental-room-gallery）を明示的に2行目・全幅へ固定する。指定がないと、
   偶数カード（.rental-room-visual に order:2 を適用）の場合に自動配置の順序が
   ずれ、メイン写真だけが異なる行に配置されてテキスト側と高さがそろわなくなる
   （2026-09-19確認）。1カラムに変わる900px以下では、この明示指定を外し、
   DOM順（写真→本文→サブ写真）のまま自然に縦積みさせる。 */
@media (min-width: 901px) {
	.rental-room { grid-template-rows: auto auto; }
	.rental-room-gallery { grid-row: 2; }
}
.rental-room:nth-child(even) .rental-room-visual { order: 2; }
.rental-room-visual { min-height: 360px; overflow: hidden; background: var(--navy); }
.rental-room-visual img { width: 100%; height: 100%; object-fit: cover; }
.rental-room-visual-empty { display: grid; place-items: center; background: linear-gradient(135deg, var(--navy), #0b6687); }
.rental-room-visual-empty span { color: rgba(255,255,255,.26); font-size: clamp(7rem, 15vw, 13rem); font-weight: 900; line-height: 1; }
.rental-room-copy { padding: clamp(30px, 5vw, 62px); }
.rental-room-copy > small { color: var(--blue); font-weight: 800; letter-spacing: .14em; }
.rental-room-copy h3 { margin: 18px 0 20px; font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.35; overflow-wrap: normal; word-break: normal; line-break: strict; }
.rental-room-copy > p { color: var(--muted); line-height: 1.9; }
.rental-room-copy dl { margin: 30px 0 0; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.rental-room-copy dl > div { padding: 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rental-room-copy dt { color: var(--muted); font-size: .72rem; }
.rental-room-copy dd { margin: 7px 0 0; font-weight: 800; overflow-wrap: anywhere; }
.rental-room-booking { display: inline-flex; margin-top: 20px; padding-bottom: 5px; color: var(--blue); border-bottom: 1px solid currentColor; font-size: .88rem; font-weight: 800; }
.rental-room-booking:hover { color: var(--navy); }
.rental-room-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: clamp(20px, 3vw, 28px) clamp(30px, 5vw, 62px) clamp(30px, 5vw, 62px); }
.rental-room-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rental-equipment { padding: 115px 28px; color: var(--white); background: var(--navy); }
.rental-equipment-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.rental-equipment-grid article { min-width: 0; padding: 27px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.rental-equipment-grid h3 { min-height: 3.2em; margin: 0 0 18px; font-size: 1rem; line-height: 1.6; }
.rental-equipment-grid strong { color: #4fc5ee; font-size: 1.05rem; }
.rental-equipment-grid p { margin: 10px 0 0; color: #c5d9e0; font-size: .8rem; line-height: 1.7; }
.rental-info-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 70px; }
.rental-info h2 { margin: 12px 0 30px; font-size: clamp(2.3rem, 4vw, 4rem); }
.rental-notes { color: var(--muted); line-height: 1.9; }
.rental-notes ul { padding-left: 1.4em; }
.rental-info aside { padding: 38px; background: var(--paper); }
.rental-info aside h3 { margin: 0 0 20px; font-size: 1.5rem; }
.rental-info aside p { line-height: 1.9; }
.rental-cta { padding: 90px 28px; color: var(--white); background: var(--blue); }
.rental-cta .section-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.rental-cta h2 { margin: 12px 0 18px; font-size: clamp(2.3rem, 4vw, 4rem); }
.rental-cta p { line-height: 1.9; }
.rental-cta .section-inner > div:last-child { display: grid; gap: 12px; }
.rental-phone { padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; color: var(--white); border: 1px solid rgba(255,255,255,.5); }
.rental-phone span { font-size: .82rem; }
.rental-phone strong { font-size: 1.25rem; }
@media (max-width: 900px) { .rental-use-grid { grid-template-columns: repeat(2, 1fr); } .rental-room { grid-template-columns: 1fr; } .rental-room:nth-child(even) .rental-room-visual { order: initial; } .rental-equipment-grid { grid-template-columns: repeat(2, 1fr); } .rental-info-grid, .rental-cta .section-inner { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .rental-hero { min-height: 590px; } .rental-hero-inner { width: calc(100% - 40px); padding: 65px 0; } .rental-hero-actions { align-items: stretch; flex-direction: column; } .rental-quick { padding: 0 20px; } .rental-quick dl, .rental-use-grid, .rental-equipment-grid { grid-template-columns: 1fr; } .rental-uses, .rental-price-list, .rental-rooms, .rental-equipment, .rental-info, .rental-cta { padding: 80px 20px; } .rental-price-list th, .rental-price-list td { padding: 18px; } .rental-room-copy dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rental-room-copy dl > div { padding: 13px; } .rental-room-visual { min-height: 270px; } }

/* Uematsu brand icons: shared 24px line system, coloured by context. */
.uematsu-icon{width:48px;height:48px;display:inline-grid;place-items:center;color:var(--blue);background:#edf7fa;border:1px solid #cbe4ed}.uematsu-icon svg{width:26px;height:26px;display:block}.rental-booking-flow li>.uematsu-icon{margin-bottom:16px}.rental-booking-flow li>span:not(.uematsu-icon){display:block}.rental-booking-flow li>.uematsu-icon+span+strong{margin-top:22px}

/* About entrance: confirmed lead copy and image/text balance. */
.page-template-page-about-php .about-hero{min-height:570px;background:linear-gradient(100deg,rgba(4,27,38,.96) 0%,rgba(4,27,38,.76) 52%,rgba(4,27,38,.3) 100%),url('./assets/aerial-1.jpg') center/cover}
.page-template-page-about-php .about-hero-inner{width:min(var(--content),calc(100% - 48px));margin:auto;padding:88px 0 82px}
.page-template-page-about-php .about-hero-copy{max-width:900px}
.page-template-page-about-php .about-hero h1{max-width:880px;margin:0;font-size:clamp(3rem,5.5vw,5.5rem);line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.page-template-page-about-php .about-hero-lead{max-width:780px;margin:30px 0 0;color:#e0ebef;font-size:clamp(1rem,1.35vw,1.16rem);font-weight:600;line-height:1.95;text-wrap:pretty}
.page-template-page-about-php .company-section-nav a{position:relative}

@media(max-width:780px){.page-template-page-about-php .about-hero{min-height:0}.page-template-page-about-php .about-hero-inner{width:calc(100% - 40px);padding:70px 0 64px}.page-template-page-about-php .about-hero h1{font-size:clamp(2.4rem,11vw,3.4rem);line-height:1.15}.page-template-page-about-php .about-hero-lead{margin-top:24px;font-size:.98rem;line-height:1.85}.page-template-page-about-php .company-section-nav .section-inner{padding-inline:20px}}

@media(prefers-reduced-motion:reduce){.audience-card,.audience-secondary a,.audience-secondary-arrow{transition:none}.audience-card:hover,.audience-card:focus-visible{transform:none}}
.roof-card-icon{margin-top:22px;background:transparent;border:0}.roof-guide-grid .roof-card-icon{width:46px;height:46px}.roof-guide-grid .roof-card-icon svg{width:40px;height:40px}.roof-strength-grid .roof-card-icon{width:52px;height:52px;color:#55c2e7}.roof-strength-grid .roof-card-icon svg{width:44px;height:44px}
.product-processing-warranty{margin:0 0 54px;padding:34px;display:grid;grid-template-columns:150px 1fr;gap:36px;align-items:center;border:1px solid #b9cbd2;border-top:5px solid #087fab;background:#f5f8f9}.product-processing-warranty img{width:140px;height:auto}.product-processing-warranty h2{margin:0 0 15px;font-size:clamp(1.7rem,3vw,2.7rem)}.product-processing-warranty p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.9}.product-processing-warranty .product-processing-warranty-note{margin-top:17px;padding-top:17px;border-top:1px solid #cbd8dd;font-size:.82rem}.product-processing-warranty .arrow-link{display:inline-block;margin-top:20px}@media(max-width:620px){.product-processing-warranty{grid-template-columns:1fr;padding:26px 22px}.product-processing-warranty img{width:112px}}
.product-processing-warranty-action{margin-top:22px!important}.product-processing-warranty-action .button{min-height:46px}

/* Processing warranty detail */
.processing-warranty-page{background:var(--white)}.processing-warranty-hero{position:relative;overflow:hidden;color:var(--white);background:linear-gradient(120deg,#052c3d,#0b526c)}.processing-warranty-hero::after{position:absolute;inset:0;content:"";opacity:.22;background-image:linear-gradient(rgba(255,255,255,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.3) 1px,transparent 1px);background-size:38px 38px}.processing-warranty-hero-inner{position:relative;z-index:1;min-height:600px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(210px,.7fr);gap:70px;align-items:center}.processing-warranty-breadcrumbs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 42px;color:#c4dce4;font-size:.78rem}.processing-warranty-breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.processing-warranty-hero h1{max-width:760px;margin:0;font-size:clamp(3rem,6vw,6.1rem);line-height:1.1;letter-spacing:-.05em}.processing-warranty-hero>div>div>p:not(.eyebrow):not(.processing-warranty-hero-note){max-width:760px;margin:30px 0 0;color:#d9edf4;font-size:1.08rem;line-height:2}.processing-warranty-hero-note{margin:24px 0 32px;color:#b8e9f9;font-size:.86rem;font-weight:800;letter-spacing:.08em}.processing-warranty-hero-mark{justify-self:end;width:min(100%,280px);margin:0;padding:40px 28px;text-align:center;border:1px solid rgba(255,255,255,.62);box-shadow:0 18px 42px rgba(0,0,0,.18);background:#f5f8f9}.processing-warranty-hero-mark img{width:150px;max-width:100%;filter:none}.processing-warranty-hero-mark figcaption{margin-top:18px;color:var(--navy);font-weight:800}.processing-warranty-section{padding:120px 28px}.processing-warranty-section-alt{background:var(--paper)}.processing-warranty-two-column{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(45px,8vw,125px)}.processing-warranty-two-column h2,.processing-warranty-section-heading h2,.processing-warranty-contact h2{margin:0;font-size:clamp(2rem,4vw,4.1rem);line-height:1.3;letter-spacing:-.045em}.processing-warranty-prose{max-width:790px;color:var(--muted);line-height:2}.processing-warranty-prose>p:first-child{margin-top:0}.processing-warranty-prose>p:last-child{margin-bottom:0}.processing-warranty-points,.processing-warranty-caution{margin-top:34px;padding:30px 32px;border-left:5px solid var(--blue);background:#e9f6fb}.processing-warranty-points h3,.processing-warranty-caution h3{margin:0 0 16px;color:var(--navy);font-size:1.15rem}.processing-warranty-points ul,.processing-warranty-caution p,.processing-warranty-applicants ul{margin:0;padding-left:1.25em}.processing-warranty-points li,.processing-warranty-applicants li{margin:8px 0}.processing-warranty-section-heading{max-width:850px;margin-bottom:54px}.processing-warranty-section-heading>p:not(.eyebrow){margin:25px 0 0;color:var(--muted);line-height:2}.processing-warranty-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:28px}.processing-warranty-compare article{min-height:220px;padding:34px;display:flex;flex-direction:column;border-top:5px solid var(--line);background:var(--white)}.processing-warranty-compare article:last-child{border-top-color:var(--blue);background:#eef8fb}.processing-warranty-compare span{color:var(--blue);font-size:.75rem;font-weight:800;letter-spacing:.12em}.processing-warranty-compare strong{margin:42px 0 12px;color:var(--navy);font-size:clamp(1.35rem,2vw,1.8rem)}.processing-warranty-compare p{margin:auto 0 0;color:var(--muted);line-height:1.7}.processing-warranty-table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--white)}.processing-warranty-table-wrap table{width:100%;min-width:720px;border-collapse:collapse}.processing-warranty-table-wrap th,.processing-warranty-table-wrap td{padding:20px 22px;text-align:left;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line);line-height:1.75}.processing-warranty-table-wrap thead th{color:var(--white);background:var(--navy)}.processing-warranty-table-wrap tbody th{width:24%;color:var(--navy);background:#f4f7f8}.processing-warranty-note{margin:20px 0 0;color:var(--muted);font-size:.82rem;line-height:1.8}.processing-warranty-applicants{margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}.processing-warranty-relationship{max-width:820px;margin:72px auto 0;display:grid;gap:10px;text-align:center}.processing-warranty-relationship article{padding:20px 24px;display:grid;gap:5px;border:1px solid var(--line);background:var(--white)}.processing-warranty-relationship article:first-child{border-top:5px solid var(--blue);background:#eaf7fb}.processing-warranty-relationship strong{color:var(--navy);font-size:1.25rem}.processing-warranty-relationship span{color:var(--muted);font-size:.88rem}.processing-warranty-relationship>p{margin:0;color:var(--blue);font-size:.78rem;font-weight:800;line-height:1.5}.processing-warranty-relationship>p::after{content:"↓";display:block;font-size:1.2rem}.processing-warranty-quality{color:var(--white);background:#062f40}.processing-warranty-quality .eyebrow{color:#9fdcf0}.processing-warranty-quality .processing-warranty-prose{color:#c4dce4}.processing-warranty-flow{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;border-top:1px solid var(--line);border-left:1px solid var(--line)}.processing-warranty-flow li{position:relative;min-height:275px;padding:28px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}.processing-warranty-flow li:not(:last-child)::after{position:absolute;z-index:1;top:50%;right:-9px;display:grid;width:18px;height:18px;place-items:center;content:"→";color:var(--white);border-radius:50%;background:var(--blue);font-size:.75rem}.processing-warranty-flow span{color:var(--blue);font-size:.75rem;font-weight:800;letter-spacing:.1em}.processing-warranty-flow strong{margin-top:48px;color:var(--navy);font-size:1.1rem;line-height:1.55}.processing-warranty-flow p{margin:auto 0 0;color:var(--muted);font-size:.88rem;line-height:1.75}.processing-warranty-checklist{margin:28px 0;padding:0;list-style:none}.processing-warranty-checklist li{position:relative;margin:10px 0;padding-left:27px}.processing-warranty-checklist li::before{position:absolute;left:0;content:"✓";color:var(--blue);font-weight:800}.processing-warranty-label-layout{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr);gap:clamp(45px,8vw,120px);align-items:center}.processing-warranty-label-mark{min-height:300px;padding:38px;display:grid;place-items:center;text-align:center;border:1px solid #b9cbd2;border-top:5px solid var(--blue);background:#f5f8f9}.processing-warranty-label-mark img{width:142px}.processing-warranty-label-mark strong{display:block;margin-top:20px;color:var(--navy);font-size:1.2rem;line-height:1.55}.processing-warranty-emphasis{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--navy)!important;font-weight:800}.processing-warranty-faq{border-top:1px solid var(--line)}.processing-warranty-faq details{border-bottom:1px solid var(--line);background:var(--white)}.processing-warranty-faq summary{position:relative;padding:25px 58px 25px 25px;cursor:pointer;color:var(--navy);font-weight:800;line-height:1.7}.processing-warranty-faq summary::after{position:absolute;right:25px;content:"＋";color:var(--blue);font-size:1.4rem}.processing-warranty-faq details[open] summary::after{content:"−"}.processing-warranty-faq p{max-width:900px;margin:0;padding:0 25px 27px;color:var(--muted);line-height:1.95}.processing-warranty-faq-contact{margin:28px 0 0}.processing-warranty-contact{padding:120px 28px;color:var(--white);background:#073347}.processing-warranty-contact-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);gap:clamp(45px,8vw,120px);align-items:start}.processing-warranty-contact-inner>div>p:not(.eyebrow){margin:28px 0 0;color:#c7dce3;line-height:2}.processing-warranty-contact .button{margin:0 12px 14px 0}.processing-warranty-contact-notes{margin-top:28px;padding-top:27px;border-top:1px solid rgba(255,255,255,.35)}.processing-warranty-contact-notes h3{margin:0 0 18px;font-size:1.1rem}.processing-warranty-contact-notes ul{margin:0;padding-left:1.25em;color:#c7dce3;line-height:1.85}.processing-warranty-contact-notes li+li{margin-top:8px}.processing-warranty-updates{padding:80px 28px;background:var(--white)}
@media(max-width:980px){.processing-warranty-hero-inner,.processing-warranty-two-column,.processing-warranty-contact-inner{grid-template-columns:1fr}.processing-warranty-hero-inner{padding-top:100px;padding-bottom:100px}.processing-warranty-hero-mark{justify-self:start}.processing-warranty-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.processing-warranty-flow li:nth-child(3)::after{display:none}.processing-warranty-label-layout{grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr)}}
@media(max-width:680px){.processing-warranty-section,.processing-warranty-contact{padding:80px 20px}.processing-warranty-hero-inner{min-height:0;padding:90px 20px}.processing-warranty-hero h1{font-size:clamp(2.5rem,12vw,4rem)}.processing-warranty-hero>div>div>p:not(.eyebrow):not(.processing-warranty-hero-note){font-size:.96rem;line-height:1.85}.processing-warranty-hero-mark{width:210px;padding:25px}.processing-warranty-compare,.processing-warranty-label-layout{grid-template-columns:1fr}.processing-warranty-compare article{min-height:180px;padding:26px}.processing-warranty-flow{grid-template-columns:1fr}.processing-warranty-flow li{min-height:0;padding:26px}.processing-warranty-flow li:not(:last-child)::after{top:auto;right:50%;bottom:-10px;transform:translateX(50%) rotate(90deg)}.processing-warranty-flow strong{margin-top:25px}.processing-warranty-flow p{margin-top:13px}.processing-warranty-label-mark{min-height:235px}.processing-warranty-two-column h2,.processing-warranty-section-heading h2,.processing-warranty-contact h2{font-size:clamp(1.85rem,8.2vw,2.65rem)}.processing-warranty-points,.processing-warranty-caution{padding:25px 22px}.processing-warranty-contact .button{width:100%;margin-right:0}.processing-warranty-updates{padding:65px 20px}}

/* Processing warranty typography refinements */
.processing-warranty-section-heading h2{text-wrap:balance}.processing-warranty-heading-line{display:inline}#warranty-faq-title{max-width:14em}
@media(min-width:681px){.processing-warranty-heading-line{display:block}}
@media(max-width:680px){#warranty-faq-title{max-width:100%}.processing-warranty-hero h1,.processing-warranty-two-column h2,.processing-warranty-section-heading h2,.processing-warranty-contact h2{word-break:normal;line-break:strict;overflow-wrap:normal}}

/* Processing warranty hero mark and heading finish */
.processing-warranty-hero-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.processing-warranty-hero-mark img{display:block;flex:0 0 auto}.processing-warranty-hero-mark figcaption{margin:0;line-height:1.5}.processing-warranty-page h1,.processing-warranty-page h2{word-break:normal;line-break:strict;overflow-wrap:normal;text-wrap:pretty}
/* Processing warranty heading hierarchy and line balance */
@media(min-width:981px){#warranty-about-title{font-size:clamp(2.3rem,3.6vw,3.75rem);line-height:1.24}#warranty-difference-title{max-width:13em;font-size:clamp(2rem,3.1vw,3.3rem);line-height:1.3}#warranty-audience-title{max-width:15em;font-size:clamp(2rem,3vw,3.2rem);line-height:1.3}#warranty-flow-title{max-width:16em;font-size:clamp(2rem,3vw,3.2rem);line-height:1.3}#warranty-requirements-title{max-width:16em;font-size:clamp(2rem,3vw,3.2rem);line-height:1.3}#warranty-product-label-title{max-width:15em;font-size:clamp(2rem,3vw,3.2rem);line-height:1.3}#warranty-faq-title{max-width:13em;font-size:clamp(2rem,3.15vw,3.35rem);line-height:1.28}#warranty-contact-title{max-width:15em;font-size:clamp(2rem,3vw,3.2rem);line-height:1.3}}
@media(max-width:680px){.processing-warranty-two-column h2,.processing-warranty-section-heading h2,.processing-warranty-contact h2{font-size:clamp(1.72rem,7.2vw,2.25rem);line-height:1.34;letter-spacing:-.035em;text-wrap:pretty}}
/* Final Japanese heading composition: keep related phrases together on desktop. */
@media(min-width:981px){.processing-warranty-two-column h2,.processing-warranty-section-heading h2,.processing-warranty-contact h2{font-size:clamp(2.25rem,3.55vw,3.8rem);line-height:1.24;text-wrap:balance}#warranty-about-title{max-width:15em}#warranty-difference-title{max-width:15.5em}#warranty-audience-title{max-width:15.5em}#warranty-flow-title{max-width:16em}#warranty-requirements-title{max-width:16em}#warranty-product-label-title{max-width:15em}#warranty-faq-title{max-width:14.5em}#warranty-contact-title{max-width:15.5em}}
@media(min-width:681px) and (max-width:980px){.processing-warranty-section-heading h2{max-width:18em;font-size:clamp(2.05rem,4.4vw,3.15rem);line-height:1.28}}

/* Editable company history */
.company-section-nav { position: relative; z-index: 2; padding: 28px; border-bottom: 1px solid var(--line); background: var(--white); }
.admin-bar .company-section-nav { top: auto; }
.company-section-nav .section-inner { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 14px; padding: 0; overflow: visible; white-space: normal; }
.company-section-nav a { min-height: 82px; padding: 18px 20px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 14px; align-items: center; color: var(--ink); border: 1px solid var(--line); background: #f8fafb; font-size: .94rem; font-weight: 800; text-decoration: none; transition: color .22s ease, background-color .22s ease, border-color .22s ease, transform .22s ease; }
.company-section-nav a:hover, .company-section-nav a:focus-visible { color: var(--white); border-color: var(--navy); background: var(--navy); transform: translateY(-2px); }
.company-section-nav a>span:last-child { color: var(--blue); font-size: 1.15rem; transition: transform .22s ease,color .22s ease; }
.company-section-nav a:hover>span:last-child, .company-section-nav a:focus-visible>span:last-child { color: var(--blue-bright); transform: translateX(4px); }
.company-section-nav .about-nav-icon { width: 38px; height: 38px; color: var(--blue); border: 0; background: transparent; transition: color .22s ease,transform .22s ease; }
.company-section-nav .about-nav-icon svg { width: 32px; height: 32px; }
.company-section-nav a:hover .about-nav-icon, .company-section-nav a:focus-visible .about-nav-icon { color: var(--blue-bright); transform: translateY(-2px); }
.company-card-details { margin: 20px 0 0; border-top: 1px solid var(--line); }
.company-card-details div { display: grid; grid-template-columns: 82px 1fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.company-card-details dt { font-size: .76rem; font-weight: 800; color: var(--muted); }
.company-card-details dd { margin: 0; font-size: .84rem; line-height: 1.65; }
.company-card-details dd a { color: inherit; }
.company-history { padding: 115px 28px; background: var(--paper); }
.history-list { margin: 54px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.history-decade { padding: 42px 0 12px; border-bottom: 1px solid var(--line); }
.history-decade span { display: inline-block; color: var(--navy); font-size: clamp(1.8rem, 4vw, 3.2rem); font-weight: 900; letter-spacing: -.03em; }
.history-item { position: relative; display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 42px; padding: 36px 0; border-bottom: 1px solid var(--line); }
.history-item.has-image { grid-template-columns: 160px minmax(0, 1fr) minmax(220px, 360px); }
.history-item::before { content: ''; position: absolute; left: 145px; top: 45px; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); }
.history-item time { color: var(--blue); font-size: 1.08rem; font-weight: 900; letter-spacing: .06em; }
.history-copy h3 { margin: 0 0 10px; font-size: 1.2rem; line-height: 1.55; overflow-wrap: normal; word-break: normal; line-break: strict; }
.history-kind { display: inline-block; margin: 0 0 8px; padding: 4px 9px; color: var(--blue); background: #e8f6fb; font-size: .68rem; font-weight: 800; letter-spacing: .04em; }
.history-copy div, .history-copy p { margin: 0; color: var(--muted); line-height: 1.85; }
.history-item figure { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 10; margin: 0; padding: clamp(12px, 2vw, 24px); overflow: hidden; background: #f4f7f8; border: 1px solid var(--line); }
.history-item figure img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.history-item figure.history-image-scale-large img { transform: scale(1.18); }
.history-item figure.history-image-scale-xlarge img { transform: scale(1.38); }
.history-item figcaption { margin-top: 8px; color: var(--muted); font-size: .76rem; line-height: 1.6; }
.company-history .history-list{position:relative;margin-top:40px}.company-history .history-list::before{position:absolute;z-index:0;top:0;bottom:0;left:128px;width:1px;content:"";background:#bfd4dc}.company-history .history-decade{position:relative;padding:28px 0 8px;background:var(--paper)}.company-history .history-decade span{font-size:clamp(1.55rem,3.2vw,2.55rem)}.company-history .history-item{grid-template-columns:142px minmax(0,1fr);gap:30px;padding:22px 0}.company-history .history-item.has-image{grid-template-columns:142px minmax(0,1fr) minmax(190px,300px)}.company-history .history-item::before{z-index:1;left:124px;top:30px;width:9px;height:9px;box-shadow:0 0 0 5px var(--paper)}.company-history .history-item time{font-size:1rem}.company-history .history-copy h3{margin-bottom:7px;font-size:1.12rem;line-height:1.5;word-break:normal;overflow-wrap:normal}.company-history .history-copy div,.company-history .history-copy p{line-height:1.7}.company-history .history-kind{margin-bottom:6px}.company-history .history-item figure{aspect-ratio:16/9;padding:14px}
@media(max-width:800px){.company-history .history-list::before{left:88px}.company-history .history-item,.company-history .history-item.has-image{grid-template-columns:100px minmax(0,1fr);gap:22px;padding:20px 0}.company-history .history-item::before{left:84px;top:28px}.company-history .history-item figure{grid-column:2}}@media(max-width:520px){.company-history .history-list::before{left:4px}.company-history .history-decade{padding:26px 0 8px}.company-history .history-item,.company-history .history-item.has-image{grid-template-columns:1fr;gap:10px;padding:18px 0 18px 25px}.company-history .history-item::before{left:0;top:29px}.company-history .history-item figure{grid-column:1}.company-history .history-item time{font-size:.92rem}}
@media (max-width: 800px) { .history-item, .history-item.has-image { grid-template-columns: 110px minmax(0, 1fr); gap: 25px; } .history-item::before { left: 98px; } .history-item figure { grid-column: 2; } }
@media (max-width: 520px) { .company-history { padding: 80px 20px; } .history-decade { padding-top: 32px; } .history-item, .history-item.has-image { grid-template-columns: 1fr; gap: 12px; padding-left: 24px; } .history-item::before { left: 0; top: 43px; } .history-item figure { grid-column: 1; margin-top: 8px; } }
@media (max-width: 620px) { .company-section-nav { padding: 20px; } .company-section-nav .section-inner { grid-template-columns: 1fr; gap: 10px; } .company-section-nav a { min-height: 72px; padding: 15px 17px; } }

/* Editable product details */
.product-parts-section { margin: 70px 0 0; }
.um-roof-one-intro{margin:0 0 72px;padding:clamp(28px,5vw,62px);color:#fff;background:var(--navy)}.um-roof-one-intro h2,.um-roof-one-details h2{margin:8px 0 22px;font-size:clamp(2rem,4.3vw,4rem);line-height:1.18}.um-roof-one-lead{max-width:760px;margin:0;color:#d5e4e9;line-height:2}.um-roof-one-points{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border-top:1px solid rgba(255,255,255,.25);border-left:1px solid rgba(255,255,255,.25)}.um-roof-one-points article{min-height:245px;padding:28px;border-right:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}.um-roof-one-points strong{display:block;color:var(--blue-bright);font-size:clamp(1.15rem,2.6vw,2.35rem);letter-spacing:.04em}.um-roof-one-points strong span{font-size:.48em}.um-roof-one-points h3{margin:40px 0 10px;font-size:1.25rem}.um-roof-one-points p{margin:0;color:#d5e4e9;line-height:1.75}.um-roof-one-details{margin:0 0 74px}.um-roof-one-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.um-roof-one-detail-grid article{padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.um-roof-one-detail-grid h3{margin:0 0 12px;font-size:1.18rem}.um-roof-one-detail-grid p{margin:0;color:var(--muted);line-height:1.8}
.product-general-section + .product-general-section { margin-top: 55px; }
.product-general-section > p:last-child { color: var(--muted); line-height: 2; }
.product-related-works { padding-top: 70px; border-top: 1px solid var(--line); }
.product-professional-info, .product-resources { margin-top: 85px; padding: 48px; background: var(--paper); }
.product-professional-info > h2, .product-resources > h2 { margin-top: 8px; }
.product-professional-info .product-parts-section, .product-resources .product-parts-section { margin-top: 42px; }
.product-professional-info .product-parts-section > h3, .product-resources .product-parts-section > h3 { margin: 0 0 22px; font-size: 1.35rem; }
.product-professional-link { margin: 42px 0 0; }
.product-professional-link a { color: var(--blue); font-weight: 800; }
.product-direct-contact { margin-top: 55px; }
.product-parts-section > h2 { margin-bottom: 28px; }
.product-feature-grid, .product-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.product-feature-grid article, .product-related-grid article { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.product-feature-grid figure, .product-related-grid figure { margin: 0; overflow: hidden; }
.product-feature-grid img, .product-related-grid img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.product-feature-grid article > div, .product-related-grid article > div { padding: 28px; }
.product-feature-grid h3, .product-related-grid h3 { margin: 0 0 12px; font-size: 1.18rem; }
.product-feature-grid p, .product-related-grid p { color: var(--muted); line-height: 1.8; }
.product-feature-grid a, .product-related-grid a { color: var(--blue); font-weight: 800; }
.product-spec-list { margin: 0; border-top: 1px solid var(--line); }
.product-spec-list > div { display: grid; grid-template-columns: minmax(180px, 34%) 1fr; border-bottom: 1px solid var(--line); }
.product-spec-list dt, .product-spec-list dd { margin: 0; padding: 20px 24px; }
.product-spec-list dt { background: var(--paper); font-weight: 800; }
.product-spec-list dd strong { display: block; font-size: 1.05rem; }
.product-spec-list dd small { display: block; margin-top: 7px; color: var(--muted); line-height: 1.7; }
.product-color-links { display: flex; flex-wrap: wrap; gap: 10px; }
.product-color-links a { padding: 12px 16px; border: 1px solid var(--line); color: var(--blue); background: var(--paper); font-weight: 800; }
.product-work-grid { margin-bottom: 26px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.product-work-grid > a { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.product-work-grid figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.product-work-grid img { width: 100%; height: 100%; object-fit: cover; }
.product-work-grid a > div { padding: 22px; }
.product-work-grid h3 { margin: 0 0 14px; color: var(--ink); }
.product-work-grid span { color: var(--blue); font-size: .82rem; font-weight: 800; }
@media (max-width: 700px) { .product-feature-grid, .product-related-grid { grid-template-columns: 1fr; } .product-spec-list > div { grid-template-columns: 1fr; } .product-spec-list dt { padding-bottom: 9px; } .product-spec-list dd { padding-top: 9px; } }
@media (max-width: 760px) { .product-work-grid { grid-template-columns: 1fr; } .product-professional-info, .product-resources { padding: 30px 20px; } }
@media (max-width:900px){.products-story-flow{grid-template-columns:repeat(4,1fr)}.products-purpose-grid{grid-template-columns:repeat(2,1fr)}.products-purpose-grid a{border-bottom:1px solid var(--line)}.products-support-grid{grid-template-columns:1fr}.products-support-grid article{border-right:0;border-bottom:1px solid var(--line)}.um-roof-one-points,.um-roof-one-detail-grid{grid-template-columns:1fr}.um-roof-one-points article{min-height:0}.um-roof-one-points h3{margin-top:23px}}@media(max-width:620px){.products-story,.products-purpose{padding:72px 20px}.products-story-flow{grid-template-columns:repeat(2,1fr)}.products-story-flow li{min-height:92px;padding:17px}.products-purpose-grid{grid-template-columns:1fr}.products-purpose-grid a{min-height:94px;border-right:0}.um-roof-one-intro{margin-left:-2px;margin-right:-2px}.um-roof-one-intro h2,.um-roof-one-details h2{font-size:clamp(1.8rem,9vw,2.7rem)}.um-roof-one-details{margin-bottom:54px}}
@media(max-width:900px){.products-category-grid,.product-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.products-categories,.products-category-list{padding:72px 20px}.products-category-grid,.product-category-grid{grid-template-columns:1fr}.products-category-grid>a{min-height:185px}.product-category-grid>a>div{min-height:170px}}

/* Products archive: a compact entry to categories, support, and product detail. */
.products-entry-hero{min-height:clamp(540px,66vh,650px)}
.products-entry-hero.has-custom-hero-image{background-image:linear-gradient(110deg,rgba(4,27,38,.98),rgba(4,27,38,.68)),var(--products-entry-hero-image)}
.products-entry-hero .products-hero-inner{padding-bottom:70px}.products-entry-hero h1{max-width:900px}.products-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:34px}.products-hero-text-link{color:#fff;font-size:.92rem;font-weight:800}.products-hero-text-link span{color:var(--blue-bright)}
.products-entry-section{padding:88px 28px}.products-entry-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.products-entry-category-grid>a{min-height:210px}.products-entry-category-grid b{margin-top:20px;color:var(--blue);font-size:.83rem}.products-entry-category-grid b i{font-style:normal}
.products-featured{background:#fff}.products-featured-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:stretch;background:var(--paper)}.products-featured-image{min-height:390px;margin:0;background:#dbe7e9;overflow:hidden}.products-featured-image img{display:block;width:100%;height:100%;object-fit:cover}.products-featured-image.is-placeholder{display:grid;place-items:center;color:var(--blue);font-weight:800;font-size:.74rem;letter-spacing:.1em}.products-featured-copy{padding:clamp(34px,5vw,68px)}.products-featured-copy h2,.products-professionals h2,.products-quality h2,.products-entry-contact h2{margin:8px 0 18px;font-size:clamp(2rem,3.7vw,3.5rem);line-height:1.22;letter-spacing:-.03em}.products-featured-lead{margin:0;color:var(--ink);font-size:1.1rem;font-weight:800;line-height:1.7}.products-featured-copy ul{display:grid;gap:8px;margin:22px 0 30px;padding:0;list-style:none;color:var(--muted);line-height:1.65}.products-featured-copy li::before{content:'—';margin-right:8px;color:var(--blue)}
.products-story{background:var(--navy)}.products-story .eyebrow,.products-story h2{color:#fff}.products-story .products-group-head>p:last-child{color:#d5e4e9}.products-entry-flow{background:rgba(255,255,255,.18)}.products-entry-flow li{position:relative;min-height:176px;align-items:flex-start;flex-direction:column;justify-content:flex-end;gap:11px;background:rgba(255,255,255,.06);color:#fff}.products-entry-flow li::before{position:static;order:-1;color:var(--blue-bright)}.products-entry-flow small{color:#d5e4e9;font-size:.78rem;line-height:1.55}
.products-manufacturing{background:#edf3f5}.products-manufacturing .section-inner{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:clamp(42px,6vw,86px);align-items:center}.products-manufacturing-copy h2{margin:8px 0 20px;font-size:clamp(2rem,3.7vw,3.55rem);line-height:1.25;letter-spacing:-.03em}.products-manufacturing-copy>p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.9}.products-manufacturing-copy dl{margin:30px 0;border-top:1px solid var(--line)}.products-manufacturing-copy dl>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.products-manufacturing-copy dt{font-size:.83rem;font-weight:900}.products-manufacturing-copy dd{margin:0;color:var(--muted);font-size:.84rem;line-height:1.65}.products-manufacturing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.products-manufacturing-grid>a{position:relative;min-height:210px;overflow:hidden;background:#d7e2e5}.products-manufacturing-grid.count-1{grid-template-columns:1fr}.products-manufacturing-grid.count-1>a{min-height:430px}.products-manufacturing-grid>a:first-child:nth-last-child(odd){grid-row:span 2}.products-manufacturing-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.products-manufacturing-grid a:hover img{transform:scale(1.025)}.products-manufacturing-grid span{position:absolute;right:0;bottom:0;left:0;padding:32px 18px 15px;color:#fff;background:linear-gradient(transparent,rgba(0,35,51,.84));font-size:.84rem;font-weight:800}.products-manufacturing-grid b{position:absolute;top:12px;right:12px;padding:6px 9px;color:#fff;background:var(--blue);font-size:.68rem;letter-spacing:.08em}
.products-professionals{background:#fff}.products-professionals-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:36px 72px;align-items:end}.products-professionals-inner>div>p:not(.eyebrow),.products-quality p,.products-entry-contact p{margin:0;color:var(--muted);line-height:1.85}.products-professional-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.products-professional-tags span{padding:10px 13px;border:1px solid var(--line);font-size:.82rem;font-weight:800}.products-professionals .arrow-link{grid-column:1/-1}
.products-quality{background:var(--paper)}.products-quality-inner{display:grid;grid-template-columns:180px minmax(0,1fr);gap:50px;align-items:center;max-width:980px}.products-quality figure{margin:0;padding:24px;background:#fff}.products-quality figure img{display:block;width:100%;height:auto}.products-quality .arrow-link{display:inline-block;margin-top:26px}
.products-works{background:#fff}.products-works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.products-works-grid>a{display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:var(--paper)}.products-works-grid figure{margin:0;aspect-ratio:16/10;overflow:hidden}.products-works-grid img{width:100%;height:100%;object-fit:cover}.products-works-grid>a>div{min-height:150px;padding:21px;display:flex;flex-direction:column}.products-works-grid span{color:var(--blue);font-size:.7rem;letter-spacing:.08em}.products-works-grid h3{margin:10px 0;color:var(--ink);font-size:1rem;line-height:1.55}.products-works-grid b{margin-top:auto;color:var(--blue);font-size:.8rem}.products-works-grid i{font-style:normal}.products-works-actions{display:flex;flex-wrap:wrap;gap:26px;margin-top:28px}
.products-entry-contact{padding:80px 28px;background:var(--navy);color:#fff;text-align:center}.products-entry-contact .section-inner{max-width:780px}.products-entry-contact h2{color:#fff}.products-entry-contact p{max-width:600px;margin:0 auto 28px}.products-entry-contact .button{margin-top:2px}
@media(max-width:900px){.products-entry-section{padding:72px 20px}.products-entry-flow{grid-template-columns:repeat(4,1fr)}.products-entry-flow li{min-height:155px}.products-professionals-inner{grid-template-columns:1fr}.products-professional-tags{justify-content:flex-start}.products-featured-inner{grid-template-columns:1fr}.products-featured-image{min-height:300px}.products-quality-inner{grid-template-columns:130px minmax(0,1fr);gap:30px}}
@media(max-width:900px){.products-manufacturing .section-inner{grid-template-columns:1fr}.products-manufacturing-grid>a,.products-manufacturing-grid.count-1>a{min-height:300px}.products-manufacturing-grid>a:first-child:nth-last-child(odd){grid-row:auto}}
@media(max-width:620px){.products-entry-hero{min-height:0}.products-entry-hero .products-hero-inner{padding:112px 0 68px}.products-entry-hero h1{font-size:clamp(2.45rem,12vw,3.55rem)}.products-hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.products-entry-section{padding:62px 20px}.products-entry-category-grid,.products-works-grid{grid-template-columns:1fr}.products-entry-category-grid>a{min-height:178px}.products-featured-image{min-height:230px}.products-featured-copy{padding:30px 24px}.products-entry-flow{grid-template-columns:1fr}.products-entry-flow li{min-height:0;padding:20px 18px}.products-entry-flow small{font-size:.82rem}.products-professional-tags span{flex:1 0 calc(50% - 8px);text-align:center}.products-professional-tags span:last-child{flex-basis:100%}.products-quality-inner{grid-template-columns:1fr;gap:25px}.products-quality figure{max-width:150px;padding:18px}.products-works-actions{flex-direction:column;gap:16px}.products-entry-contact{padding:64px 20px}.products-entry-contact h2{font-size:clamp(1.9rem,9vw,2.65rem)}.products-manufacturing-copy dl>div{grid-template-columns:1fr;gap:5px}.products-manufacturing-grid{grid-template-columns:1fr}.products-manufacturing-grid>a,.products-manufacturing-grid.count-1>a{min-height:250px}}

/* Factory, warehouse and facility entry page. */
.factory-entry-section{padding:88px 28px}.factory-entry-heading{max-width:760px;margin-bottom:34px}.factory-entry-heading h2,.factory-operation h2,.factory-management h2{margin:8px 0 14px;font-size:clamp(2rem,3.8vw,3.55rem);line-height:1.24;letter-spacing:-.03em}.factory-entry-heading>p:last-child,.factory-operation p,.factory-management p{margin:0;color:var(--muted);line-height:1.85}.factory-entry-hero{min-height:clamp(560px,68vh,670px)}.factory-entry-hero .factory-hero-inner{padding-bottom:72px}.factory-entry-hero h1{max-width:850px}.factory-issue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-issue-grid>a{position:relative;min-height:190px;padding:26px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);background:#fff}.factory-issue-grid>a:hover{color:#fff;background:var(--navy)}.factory-issue-grid span{color:var(--blue);font-size:.72rem;letter-spacing:.12em}.factory-issue-grid h3{margin:30px 0 9px;font-size:1.08rem;line-height:1.5}.factory-issue-grid p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.7}.factory-issue-grid b{margin-top:auto;padding-top:17px;color:var(--blue);font-size:.8rem}.factory-issue-grid i{font-style:normal}.factory-issue-grid>a:hover p{color:#d5e4e9}.factory-issue-grid>a:hover b,.factory-issue-grid>a:hover span{color:var(--blue-bright)}
.factory-solutions{padding:88px 28px}.factory-scope-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:32px 0 0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.22);border-left:1px solid rgba(255,255,255,.22)}.factory-scope-list li{min-height:114px;padding:22px;display:flex;align-items:flex-end;border-right:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22);font-weight:800;line-height:1.5}.factory-operation{background:var(--paper)}.factory-operation-inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:60px;align-items:end}.factory-operation ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:1px 0 0 1px;list-style:none;background:var(--line)}.factory-operation li{min-height:80px;padding:16px 19px;display:flex;align-items:center;background:#fff;font-size:.88rem;font-weight:800;line-height:1.6}.factory-operation li:last-child{grid-column:1/-1}
.factory-management{background:#fff}.factory-management-diagram{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(230px,1fr) minmax(220px,1fr);gap:22px;align-items:stretch}.factory-management-client,.factory-management-center,.factory-management-diagram ul{margin:0;padding:28px;display:flex;flex-direction:column;justify-content:center}.factory-management-client{color:#fff;background:var(--navy);font-size:1.05rem;font-weight:800;line-height:1.65}.factory-management-center{border:1px solid var(--blue);background:var(--paper)}.factory-management-center strong{font-size:1.15rem}.factory-management-center span{margin-top:8px;color:var(--muted);font-size:.86rem}.factory-management-diagram ul{gap:10px;padding-left:44px;border:1px solid var(--line);list-style:'—  '}.factory-management-diagram li{padding-left:3px;font-size:.9rem;font-weight:800;line-height:1.55}.factory-management-note{margin-top:22px!important;font-weight:800;color:var(--ink)!important}
.factory-works{padding:88px 28px}.factory-works-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-works-grid .works-archive-copy p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0;color:var(--muted);font-size:.85rem;line-height:1.65}.factory-works-action,.factory-process-action{margin:28px 0 0}.factory-process{padding:88px 28px}.factory-process-grid{grid-template-columns:repeat(4,1fr)}.factory-process-grid li{min-height:164px}.factory-contact.factory-entry-contact{padding:82px 28px}.factory-entry-contact .factory-contact-inner{gap:70px}.factory-entry-contact h2{font-size:clamp(2.2rem,4vw,3.8rem)}
@media(max-width:900px){.factory-entry-section,.factory-solutions,.factory-works,.factory-process{padding:72px 20px}.factory-issue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-scope-list{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-operation-inner{grid-template-columns:1fr;gap:30px}.factory-management-diagram{grid-template-columns:1fr}.factory-management-client,.factory-management-center,.factory-management-diagram ul{min-height:0}.factory-works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-process-grid{grid-template-columns:repeat(2,1fr)}.factory-entry-contact .factory-contact-inner{gap:42px}}
@media(max-width:620px){.factory-entry-hero{min-height:0}.factory-entry-hero .factory-hero-inner{padding:52px 0 68px}.factory-entry-hero h1{font-size:clamp(2.5rem,12vw,3.8rem)}.factory-entry-section,.factory-solutions,.factory-works,.factory-process{padding:62px 20px}.factory-entry-heading h2,.factory-operation h2,.factory-management h2{font-size:clamp(1.9rem,9vw,2.7rem)}.factory-issue-grid,.factory-scope-list,.factory-operation ul,.factory-works-grid,.factory-process-grid{grid-template-columns:1fr}.factory-issue-grid>a{min-height:0;padding:21px}.factory-issue-grid h3{margin-top:20px}.factory-scope-list li{min-height:0;padding:19px}.factory-operation li:last-child{grid-column:auto}.factory-management-client,.factory-management-center,.factory-management-diagram ul{padding:23px}.factory-entry-contact.factory-entry-contact{padding:64px 20px}.factory-entry-contact h2{font-size:clamp(2rem,9.5vw,2.8rem)}}

/* Editable company profile and group companies */
.company-card-image { margin: -28px -28px 26px; overflow: hidden; }
.company-card-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.company-grid article:has(.company-card-image) h3 { margin-top: 22px; }
.company-profile { padding: 115px 28px; background: var(--white); }
.company-profile-list { margin: 52px 0 0; border-top: 1px solid var(--line); }
.company-profile-list > div { display: grid; grid-template-columns: minmax(150px, .35fr) 1fr; border-bottom: 1px solid var(--line); }
.company-profile-list dt { padding: 24px 28px; color: var(--navy); font-weight: 800; background: var(--paper); }
.company-profile-list dd { margin: 0; padding: 24px 32px; color: var(--muted); line-height: 1.85; overflow-wrap: anywhere; }
.company-profile-list dd p { margin: 0; }
@media (max-width: 620px) { .company-profile { padding: 80px 20px; } .company-profile-list > div { grid-template-columns: 1fr; } .company-profile-list dt, .company-profile-list dd { padding: 18px 20px; } }

/* Editable organization chart */
.company-organization { padding: 115px 28px; color: var(--white); background: var(--navy); overflow: hidden; }
.organization-chart { margin-top: 58px; outline: none; }
.organization-chart:focus-visible { outline: 3px solid var(--blue-bright); outline-offset: 8px; }
.org-level { margin: 0; padding: 0; list-style: none; }
.org-depth-0 > li > .org-card { width: min(440px, 100%); margin: 0 auto 58px; }
.org-depth-0 > li > .org-level { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.org-depth-0 > li > .org-level::before { content: ''; position: absolute; left: 12%; right: 12%; top: -30px; height: 1px; background: rgba(255,255,255,.3); }
.org-depth-1 > li { position: relative; min-width: 0; }
.org-depth-1 > li::before { content: ''; position: absolute; left: 50%; top: -30px; width: 1px; height: 30px; background: rgba(255,255,255,.3); }
.org-card { min-width: 0; padding: 20px 18px; display: grid; gap: 7px; text-align: center; border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.06); }
.org-card strong { line-height: 1.55; overflow-wrap: anywhere; }
.org-card small { color: #bfd3da; line-height: 1.6; }
.org-card-group { color: var(--navy); border-color: var(--blue-bright); background: var(--blue-bright); }
.org-card-company, .org-card-association { border-top: 4px solid var(--blue-bright); background: rgba(255,255,255,.11); }
.org-card-association { border-top-color: #e4b44f; }
.org-depth-2 { margin-top: 12px; display: grid; gap: 8px; }
.org-depth-2 .org-card { padding: 13px 12px; font-size: .87rem; background: rgba(255,255,255,.025); }
.org-depth-3 { margin: 8px 10px 0; display: grid; gap: 6px; }
.org-depth-3 .org-card { border-style: dashed; }
@media (max-width: 900px) { .org-depth-0 > li > .org-level { grid-template-columns: repeat(2, minmax(0, 1fr)); } .org-depth-0 > li > .org-level::before, .org-depth-1 > li::before { display: none; } }
@media (max-width: 620px) { .company-organization { padding: 80px 20px; } .org-depth-0 > li > .org-card { margin-bottom: 20px; } .org-depth-0 > li > .org-level { grid-template-columns: 1fr; gap: 14px; } .org-card { text-align: left; } }

.president-message,.company-sdgs{padding:115px 28px}.president-message{background:#fff}.president-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(48px,7vw,110px);align-items:center}.president-grid.no-image{grid-template-columns:minmax(0,800px);justify-content:center}.president-grid figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--soft-gray)}.president-grid figure img,.sdg-card figure img{width:100%;height:100%;object-fit:cover}.president-grid h2{margin:12px 0 28px;font-size:clamp(34px,4vw,58px);line-height:1.35}.president-body{color:var(--muted);line-height:2}.president-sign{margin-top:30px;text-align:right}.president-sign small,.president-sign span,.president-sign strong{display:block}.president-sign strong{margin-top:6px;font-size:24px}.company-sdgs{background:var(--soft-gray)}.sdg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.sdg-card{background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.sdg-card figure{margin:0;aspect-ratio:16/9;overflow:hidden}.sdg-card>div{padding:34px}.sdg-card h3{margin:12px 0 16px;font-size:25px}.sdg-card>div>div{color:var(--muted);line-height:1.85}.sdg-card a{display:inline-block;margin:18px 20px 0 0;color:var(--blue);font-weight:700}.sdg-goals{display:flex;flex-wrap:wrap;gap:8px;margin:0}.sdg-goals span{padding:5px 9px;color:var(--blue);border:1px solid currentColor;font-size:11px;font-weight:700;letter-spacing:.08em}.sdg-goal-icon{width:44px;height:44px;display:block;flex-shrink:0}.sdg-disclaimer{margin:26px 0 0;color:var(--muted);font-size:13px;line-height:1.85}.sdg-disclaimer a{color:var(--blue);text-decoration:underline}@media(max-width:700px){.president-message,.company-sdgs{padding:80px 20px}.president-grid,.sdg-grid{grid-template-columns:1fr}.president-grid{gap:36px}.president-grid figure{aspect-ratio:4/3}.sdg-card>div{padding:26px}.sdg-goal-icon{width:36px;height:36px}}
.purpose-grid.has-image{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(45px,7vw,100px);align-items:center}.purpose-grid.has-image .section-heading{display:block}.purpose-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden}.purpose-grid figure img{width:100%;height:100%;object-fit:cover}.purpose-body{color:var(--muted);line-height:2}.group-flow-intro{max-width:760px;margin:22px 0 40px;color:#bdd0d8;line-height:1.9}.group-flow ol{grid-template-columns:repeat(var(--flow-count,5),minmax(0,1fr))}@media(max-width:900px){.purpose-grid.has-image{grid-template-columns:1fr}.group-flow ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.group-flow ol{grid-template-columns:1fr}}

/* Recruitment: work environment and systems */
.recruit-environment{padding:115px 28px;background:var(--paper)}.recruit-environment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:50px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.recruit-environment-grid article{min-width:0;padding:34px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.recruit-environment-grid article.is-linked{padding:0}.recruit-environment-grid article.is-linked>a{display:block;height:100%;padding:34px;color:inherit;text-decoration:none}.recruit-environment-grid article.is-linked>a:hover{background:#f4f8f9}.recruit-environment-grid article.is-linked strong{display:inline-block;margin-top:20px;color:var(--blue);font-size:.88rem}.recruit-environment-grid span{color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.12em}.recruit-environment-grid h3{margin:34px 0 14px;font-size:1.25rem}.recruit-environment-grid p{margin:0;color:var(--muted);line-height:1.85}.recruit-environment-action{margin:34px 0 0;text-align:center}.contact-form-unavailable{padding:clamp(28px,5vw,52px);text-align:center;background:var(--paper);border:1px solid var(--line)}.contact-form-unavailable h2{margin-top:0}.contact-form-unavailable .phone-link{max-width:520px;margin-right:auto;margin-left:auto}@media(max-width:760px){.recruit-environment{padding:80px 20px}.recruit-environment-grid{grid-template-columns:1fr}.recruit-environment-grid article{padding:28px}.recruit-environment-grid article.is-linked>a{padding:28px}.recruit-environment-grid h3{margin-top:22px}}

/* About the Uematsu Group: connected expertise */
.about-scope,.connected-expertise{padding:115px 28px}.about-scope{background:var(--soft-gray)}.about-scope-heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(45px,7vw,105px);align-items:start}.about-scope-heading h2{margin:9px 0 0;font-size:clamp(2.2rem,4.3vw,4.1rem);line-height:1.28;letter-spacing:-.035em}.about-scope-heading>div:last-child{color:var(--muted);line-height:2}.about-scope-heading>div:last-child p{margin:0}.about-scope-heading>div:last-child p+p{margin-top:18px}.about-scope-map{margin-top:58px;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);border:1px solid var(--line);background:#fff}.about-scope-map>div{min-height:210px;padding:34px;display:flex;flex-direction:column;justify-content:center}.about-scope-map span,.expertise-grid>article>span{font-size:.7rem;font-weight:800;letter-spacing:.13em}.about-scope-map strong{display:block;margin:13px 0 9px;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.3}.about-scope-map small{line-height:1.75}.about-scope-core{position:relative;color:#fff;background:var(--blue)}.about-scope-core::after{content:"";position:absolute;z-index:1;right:-18px;top:50%;width:36px;height:36px;border-top:1px solid rgba(255,255,255,.7);border-right:1px solid rgba(255,255,255,.7);background:var(--blue);transform:translateY(-50%) rotate(45deg)}.about-scope-core span{color:#c8edf9}.about-scope-core small{color:#e3f3f8}.about-scope-more{padding-left:58px!important}.about-scope-more span{color:var(--blue)}.about-scope-more small{color:var(--muted)}
.connected-expertise{background:#fff}.connected-expertise>.section-inner>.section-heading{margin-bottom:50px}.expertise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.expertise-grid article{min-height:440px;padding:34px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.expertise-grid>article>span{color:var(--blue)}.expertise-grid .expertise-action{margin:55px 0 6px;color:var(--blue);font-size:1rem;font-weight:800}.expertise-grid h3{margin:0 0 22px;font-size:clamp(1.45rem,2.2vw,2rem)}.expertise-grid article>p:last-child{margin:0;color:var(--muted);line-height:1.9}.expertise-policy{margin-top:54px;padding:clamp(38px,5vw,65px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(38px,6vw,85px);color:#fff;background:var(--navy)}.expertise-policy h3{margin:10px 0 0;font-size:clamp(1.75rem,3vw,2.8rem);line-height:1.45}.expertise-policy>div:last-child{color:#c8d9df;line-height:1.95}.expertise-policy>div:last-child p{margin:0}.expertise-policy>div:last-child p+p{margin-top:17px}.group-value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:1px solid var(--line)}.group-value-grid article{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}.group-value-grid span{color:var(--blue);font-size:.72rem;font-weight:800}.group-value-grid h3{margin:32px 0 13px;font-size:1.2rem}.group-value-grid p{margin:0;color:var(--muted);line-height:1.8}.group-supporting-roles{margin-top:34px;padding:28px 32px;display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:36px;align-items:start;border-left:4px solid var(--blue);background:var(--soft-gray)}.group-supporting-roles strong{font-size:1.05rem;line-height:1.7}.group-supporting-roles p{margin:0;color:var(--muted);line-height:1.85}.group-value-grid article figure{margin:0 0 12px}.group-value-grid article figure img{width:100%;height:auto;display:block;border-radius:2px}.group-value-grid article.is-number strong{display:block;margin:32px 0 4px;font-size:clamp(2.2rem,3.5vw,3rem);line-height:1;color:var(--navy)}.group-value-grid article.is-number strong small{margin-left:6px;font-size:1rem;font-weight:700;color:var(--muted)}.group-value-grid article.is-number h3{margin:4px 0 10px;font-size:1rem;font-weight:700;color:var(--muted)}.group-value-grid article.is-number time{display:block;margin-top:8px;font-size:.78rem;color:var(--muted)}.group-value-grid article.is-number a{display:inline-block;margin-top:14px;color:var(--blue);font-weight:700}
@media(max-width:900px){.about-scope-heading,.expertise-policy{grid-template-columns:1fr}.expertise-grid{grid-template-columns:1fr}.expertise-grid article{min-height:0}.expertise-grid .expertise-action{margin-top:34px}.group-value-grid{grid-template-columns:1fr}.group-supporting-roles{grid-template-columns:1fr;gap:12px}}
@media(max-width:620px){.about-scope,.connected-expertise{padding:80px 20px}.about-scope-map{grid-template-columns:1fr}.about-scope-map>div{min-height:0;padding:28px}.about-scope-core::after{right:auto;left:50%;top:auto;bottom:-14px;width:28px;height:28px;transform:translateX(-50%) rotate(135deg)}.about-scope-more{padding:38px 28px 28px!important}.expertise-grid article{padding:27px 24px}.expertise-policy{margin-top:38px;padding:34px 24px}.group-value-grid article{padding:27px 24px}.group-supporting-roles{padding:24px}}

.community-activity-wrap{width:min(var(--content),calc(100% - 48px));margin:0 auto;padding:105px 0}.community-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #d9c9a6;border-left:1px solid #d9c9a6}.community-activity-grid article{background:#fff;border-right:1px solid #d9c9a6;border-bottom:1px solid #d9c9a6}.community-activity-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden}.community-activity-grid figure img{width:100%;height:100%;object-fit:cover}.community-activity-grid article>div{padding:28px}.community-activity-grid h3{margin:10px 0 15px;font-size:1.25rem}.community-activity-grid article>div>div{color:#615b4f;line-height:1.8}.community-activity-grid a{display:inline-block;margin-top:18px;color:#8a651d;font-weight:700}.activity-meta{margin:0;color:#8a651d;font-size:.75rem;font-weight:700}@media(max-width:900px){.community-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.community-activity-wrap{width:calc(100% - 40px);padding:75px 0}.community-activity-grid{grid-template-columns:1fr}}

.footer-links ul{margin:0;padding:0;list-style:none}.footer-links li{margin:0;padding:0}
.zeb-related-actions{display:flex;flex-wrap:wrap;gap:12px}.zeb-related-actions .button{margin:0}

/* Recruitment banners are managed in WordPress and retain their supplied aspect ratio. */
.recruit-banners { background: var(--white); }
.recruit-banner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.recruit-banner-grid.count-1 { grid-template-columns: minmax(0, 760px); justify-content: center; }
.recruit-banner-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--paper); transition: transform .2s ease, box-shadow .2s ease; }
.recruit-banner-card:hover, .recruit-banner-card:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(7,36,49,.12); }
.recruit-banner-card figure { min-height: 150px; margin: 0; padding: 18px; display: grid; place-items: center; background: var(--white); }
.recruit-banner-card img { width: auto; max-width: 100%; height: auto; max-height: 220px; object-fit: contain; }
.recruit-banner-card > div { padding: 22px 24px 25px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.recruit-banner-card strong { font-size: 1.05rem; line-height: 1.55; }
.recruit-banner-card span { flex: 0 0 auto; color: var(--blue); font-weight: 700; }
@media(max-width:700px){.recruit-banner-grid{grid-template-columns:1fr;gap:16px}.recruit-banner-card figure{min-height:110px;padding:14px}.recruit-banner-card img{max-height:170px}.recruit-banner-card>div{padding:19px 20px;align-items:flex-start;flex-direction:column;gap:10px}.recruit-banner-card span{font-size:.92rem}}

/* Photo library */
.photo-archive-hero{padding:110px 28px;background:var(--navy);color:#fff}.photo-archive-hero .section-inner{max-width:1180px}.photo-archive-hero h1{max-width:900px;margin:18px 0 22px;font-size:clamp(48px,7vw,92px);line-height:1.1}.photo-archive-hero p:last-child{max-width:700px;line-height:1.9}.photo-archive-content{padding:100px 28px 120px;background:var(--soft-gray)}.photo-category-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:42px}.photo-category-nav a{padding:11px 18px;background:#fff;border:1px solid var(--line);font-weight:700}.photo-category-nav a.is-active,.photo-category-nav a:hover{background:var(--blue);border-color:var(--blue);color:#fff}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.photo-card{display:block;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.photo-card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#e8eef1}.photo-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.photo-card:hover figure img{transform:scale(1.035)}.photo-card>div{padding:25px 25px 30px}.photo-card span{color:var(--blue);font-size:11px;font-weight:700;letter-spacing:.13em}.photo-card h2{margin:10px 0 12px;font-size:22px}.photo-card p{margin:0;color:var(--muted);line-height:1.75}.photo-card small{display:block;margin-top:14px;color:var(--muted)}.photo-detail{padding:70px 28px 110px}.photo-detail .section-inner{max-width:1120px}.photo-detail-heading{max-width:820px;margin:70px 0 46px}.photo-detail-heading h1{margin:12px 0 20px;font-size:clamp(42px,6vw,76px);line-height:1.2}.photo-detail-heading>p:last-child{color:var(--muted);line-height:1.9}.photo-detail>div>figure{margin:0;background:var(--soft-gray)}.photo-detail>div>figure img{display:block;width:100%;height:auto}.photo-detail-meta{display:flex;flex-wrap:wrap;margin:28px 0 55px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.photo-detail-meta>div{min-width:220px;flex:1;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.photo-detail-meta dt{color:var(--blue);font-size:12px;font-weight:700}.photo-detail-meta dd{margin:6px 0 0}.photo-back{margin-top:60px}@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.photo-archive-hero{padding:78px 20px}.photo-archive-hero h1{font-size:46px}.photo-archive-content{padding:64px 20px 80px}.photo-grid{grid-template-columns:1fr}.photo-card>div{padding:22px}.photo-detail{padding:45px 20px 80px}.photo-detail-heading{margin:48px 0 32px}.photo-detail-heading h1{font-size:40px}.photo-detail-meta{display:block}.photo-detail-meta>div{min-width:0}.photo-category-nav{gap:7px}.photo-category-nav a{padding:9px 13px;font-size:13px}}

/* Whole-site mobile resilience */
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
iframe, video { display: block; }
.entry-content iframe, .uematsu-entry-content iframe, .entry-content video, .uematsu-entry-content video { width: 100%; aspect-ratio: 16 / 9; height: auto; }
.entry-content table, .uematsu-entry-content table { display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; -webkit-overflow-scrolling: touch; }
.entry-content th, .entry-content td, .uematsu-entry-content th, .uematsu-entry-content td { min-width: 8.5rem; overflow-wrap: anywhere; }
.entry-content pre, .uematsu-entry-content pre { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content a, .uematsu-entry-content a, .company-profile-list dd, .photo-detail-meta dd { overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 780px) {
  main * { min-width: 0; }
  main h1, main h2, main h3, main h4 { overflow-wrap: normal; line-break: strict; text-wrap: balance; }
  input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea { font-size: 16px; }
  .button, button, input[type="submit"], input[type="button"] { min-height: 48px; }
  .company-section-nav { overflow: visible; }
  .company-section-nav .section-inner { width: min(var(--content),100%); min-width: 0; white-space: normal; }
  .zeb-related-actions { display: grid; grid-template-columns: 1fr; }
  .zeb-related-actions .button { width: 100%; }
}
@media (max-width: 480px) {
  .entry-content table, .uematsu-entry-content table { font-size: .875rem; }
  .entry-content th, .entry-content td, .uematsu-entry-content th, .uematsu-entry-content td { padding: 12px; }
  .photo-archive-hero h1, .photo-detail-heading h1 { font-size: clamp(2.15rem, 12vw, 2.9rem); }
}

/* Recruitment completion: entry routes, work overview, selection and FAQ */
.recruit-paths, .recruit-jobs, .recruit-flow, .recruit-faq-summary { padding: 115px 28px; background: var(--white); }
.recruit-path-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-path-grid a { min-height: 330px; padding: 32px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.recruit-path-grid span, .recruit-job-grid span { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.recruit-path-grid h3 { margin: 55px 0 15px; font-size: 1.35rem; line-height: 1.55; }
.recruit-path-grid p, .recruit-job-grid p { margin: 0; color: var(--muted); line-height: 1.85; }
.recruit-path-grid strong { margin-top: auto; padding-top: 30px; color: var(--blue); font-size: .9rem; }
.recruit-path-grid a:hover { color: var(--white); background: var(--navy); }
.recruit-path-grid a:hover span, .recruit-path-grid a:hover strong { color: var(--blue-bright); }
.recruit-path-grid a:hover p { color: #c5d7dd; }
.recruit-features { padding: 115px 28px; color: var(--white); background: var(--navy); }
.recruit-features .split-heading > p { color: #c5d7dd; }
.recruit-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.recruit-feature-grid article { min-height: 285px; padding: 28px; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.recruit-feature-grid span { color: var(--blue-bright); font-size: .72rem; }
.recruit-feature-grid h3 { margin: 58px 0 15px; font-size: 1.16rem; line-height: 1.55; }
.recruit-feature-grid p { margin: 0; color: #c1d3d9; font-size: .92rem; line-height: 1.85; }
.recruit-jobs { background: var(--paper); }
.recruit-job-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-job-grid article { min-height: 260px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.recruit-job-grid h3 { margin: 42px 0 15px; font-size: 1.3rem; }
.recruit-jobs-action { margin: 34px 0 0; text-align: center; }
.recruit-flow-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-flow-grid li { min-height: 220px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.recruit-flow-grid span { color: var(--blue); font-size: .72rem; }
.recruit-flow-grid strong { margin-top: 55px; line-height: 1.6; }
.recruit-flow-grid small { margin-top: 10px; color: var(--muted); line-height: 1.7; }
.recruit-faq-summary { background: var(--paper); }
.recruit-faq-summary-list { border-top: 1px solid var(--line); }
.recruit-faq-summary-list details { border-bottom: 1px solid var(--line); background: var(--white); }
.recruit-faq-summary-list summary { min-height: 92px; padding: 24px 58px 24px 28px; position: relative; display: flex; align-items: center; cursor: pointer; font-weight: 800; line-height: 1.7; list-style: none; }
.recruit-faq-summary-list summary::-webkit-details-marker { display: none; }
.recruit-faq-summary-list summary::after { content: '+'; position: absolute; right: 28px; color: var(--blue); font-size: 1.5rem; font-weight: 400; }
.recruit-faq-summary-list details[open] summary::after { content: '−'; }
.recruit-faq-summary-list p { margin: 0; padding: 24px 28px 30px; color: var(--muted); line-height: 1.9; background: #f3f6f7; }
.recruit-faq-action { margin: 28px 0 0; }

/* Rental space: make the next action explicit */
.rental-booking-flow { padding: 110px 28px; background: var(--paper); }
.rental-booking-flow ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.rental-booking-flow li { min-height: 225px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.rental-booking-flow li span { color: var(--blue); font-size: .72rem; }
.rental-booking-flow li strong { margin-top: 55px; line-height: 1.6; }
.rental-booking-flow li small { margin-top: 10px; color: var(--muted); line-height: 1.7; }

@media (max-width: 980px) {
  .recruit-path-grid { grid-template-columns: 1fr; }
  .recruit-path-grid a { min-height: 250px; }
  .recruit-feature-grid, .recruit-flow-grid, .rental-booking-flow ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .recruit-paths, .recruit-features, .recruit-jobs, .recruit-flow, .recruit-faq-summary, .rental-booking-flow { padding: 80px 20px; }
  .recruit-job-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .rental-booking-flow ol { grid-template-columns: 1fr; }
  .rental-booking-flow li { min-height: 0; padding: 24px 22px; }
  .rental-booking-flow li strong { margin-top: 32px; }
}
@media (max-width: 480px) {
  .recruit-feature-grid, .recruit-flow-grid { grid-template-columns: 1fr; }
  .recruit-path-grid a, .recruit-job-grid article, .recruit-feature-grid article, .recruit-flow-grid li { min-height: 0; padding: 25px 22px; }
  .recruit-path-grid h3, .recruit-feature-grid h3, .recruit-job-grid h3, .recruit-flow-grid strong { margin-top: 32px; }
  .recruit-faq-summary-list summary { padding: 22px 48px 22px 20px; }
  .recruit-faq-summary-list summary::after { right: 20px; }
  .recruit-faq-summary-list p { padding: 22px 20px 26px; }
}

/* Company business calendar */
.company-calendar-section { background: var(--paper); }
.company-calendar-controls { margin-bottom: 18px; display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.company-calendar-controls p { margin: 0; display: flex; align-items: baseline; gap: 14px; }
.company-calendar-controls strong { color: var(--navy); font-size: 1rem; }
.company-calendar-controls span { color: var(--muted); font-size: .8rem; }
.company-calendar-controls > div { display: flex; gap: 8px; }
.company-calendar-controls button { min-width: 92px; padding: 10px 17px; color: var(--navy); font-weight: 800; border: 1px solid var(--line); background: var(--white); cursor: pointer; }
.company-calendar-controls button:hover:not(:disabled) { color: var(--white); border-color: var(--blue); background: var(--blue); }
.company-calendar-controls button:disabled { color: #aab6bb; cursor: default; background: #eef2f3; }

/* Recruit top: concise entry page. Detail lives in Recruit Manager content. */
.recruit-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 34px; }
.recruit-text-link { color: var(--white); font-size: .9rem; font-weight: 800; letter-spacing: .06em; }
.recruit-text-link span { margin-left: 8px; }
.recruit-page-nav { display: flex; justify-content: center; gap: 28px; padding: 18px 24px; overflow-x: auto; border-bottom: 1px solid var(--line); background: var(--white); white-space: nowrap; }
.recruit-page-nav a { color: var(--ink); font-size: .8rem; font-weight: 800; letter-spacing: .08em; }
.recruit-entry-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(270px, .7fr); gap: 32px 6%; align-items: end; max-width: 1180px; margin: 0 auto 52px; }
.recruit-entry-heading .eyebrow, .recruit-entry-heading h2 { grid-column: 1; }
.recruit-entry-heading h2 { margin: -7px 0 0; font-size: clamp(2.2rem, 4vw, 3.85rem); line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
.recruit-entry-heading > p:last-child { grid-column: 2; grid-row: 1 / span 2; margin: 0 0 4px; color: var(--muted); line-height: 1.9; }
.recruit-features .recruit-entry-heading { margin-bottom: 40px; }
.recruit-feature-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: rgba(255,255,255,.22); }
.recruit-feature-list article { min-height: 226px; padding: 30px; background: var(--blue); color: var(--white); }
.recruit-feature-list article.has-image { padding: 0; overflow: hidden; }
.recruit-feature-image { aspect-ratio: 16 / 9; overflow: hidden; background: rgba(255,255,255,.08); }
.recruit-feature-image img { width: 100%; height: 100%; object-fit: cover; }
.recruit-feature-copy { padding: 30px; }
.recruit-feature-list article:not(.has-image) .recruit-feature-copy { padding: 0; }
.recruit-feature-list span { color: #b6d2dd; font-size: .76rem; font-weight: 800; letter-spacing: .14em; }
.recruit-feature-list h3 { margin: 38px 0 12px; font-size: 1.24rem; line-height: 1.45; }
.recruit-feature-list p { margin: 0; color: #dce9ee; line-height: 1.8; }
.recruit-job-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; border: 0; }
.recruit-job-grid article, .recruit-job-card { display: flex; flex-direction: column; min-height: 245px; padding: 28px; border: 1px solid var(--line); background: var(--paper); }
.recruit-job-card.has-image { padding: 0; overflow: hidden; background: var(--white); }
.recruit-job-image { aspect-ratio: 16 / 8; overflow: hidden; background: #dce5e8; }
.recruit-job-image img { width: 100%; height: 100%; object-fit: cover; }
.recruit-job-card > div:last-child { display: flex; flex: 1; flex-direction: column; }
.recruit-job-card.has-image > div:last-child { padding: 24px 26px 26px; }
.recruit-job-card h3 { margin: 0 0 12px; font-size: 1.2rem; line-height: 1.45; }
.recruit-job-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.8; }
.recruit-job-card a { margin-top: auto; padding-top: 22px; color: var(--blue); font-size: .86rem; font-weight: 800; }
.recruit-section-action { margin: 34px 0 0; text-align: center; }
.recruit-voices .uematsu-dark-button,
.recruit-voices .uematsu-dark-button:visited { color: var(--navy); border-color: var(--navy); background: var(--white); }
.recruit-voices .uematsu-dark-button:hover,
.recruit-voices .uematsu-dark-button:focus-visible { color: var(--white); border-color: var(--navy); background: var(--navy); }
.recruit-voices .uematsu-dark-button:focus-visible { outline: 3px solid var(--blue-bright); outline-offset: 3px; }
.recruit-environment-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-environment-grid > a { display: flex; flex-direction: column; min-height: 240px; padding: 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.recruit-environment-grid span { color: var(--blue); font-size: .76rem; font-weight: 800; letter-spacing: .12em; }
.recruit-environment-grid h3 { margin: 34px 0 10px; font-size: 1.1rem; line-height: 1.5; }
.recruit-environment-grid p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.75; }
.recruit-environment-grid strong { margin-top: auto; padding-top: 20px; color: var(--blue); font-size: .82rem; }
.recruit-faq-summary-list details > div { padding: 0 28px 28px; color: var(--muted); line-height: 1.9; background: #f3f6f7; }
.recruit-faq-summary-list details > div p { padding: 0; }
.recruit-faq-actions { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 28px; }

@media (max-width: 780px) {
	.recruit-hero-actions { gap: 16px; margin-top: 25px; }
	.recruit-page-nav { justify-content: flex-start; gap: 23px; padding: 15px 20px; }
	.recruit-entry-heading { display: block; margin-bottom: 35px; }
	.recruit-entry-heading h2 { margin: 0; font-size: clamp(2rem, 8.6vw, 2.7rem); line-height: 1.24; }
	.recruit-entry-heading > p:last-child { margin-top: 18px; font-size: .92rem; line-height: 1.8; }
	.recruit-feature-list, .recruit-job-grid, .recruit-environment-grid { grid-template-columns: 1fr; }
	.recruit-feature-list { gap: 1px; }
	.recruit-feature-list article { min-height: 0; padding: 25px 22px; }
	.recruit-feature-list h3 { margin: 22px 0 9px; }
	.recruit-job-grid { gap: 12px; }
	.recruit-job-grid article, .recruit-job-card { min-height: 0; padding: 22px; }
	.recruit-job-card.has-image > div:last-child { padding: 20px 22px 22px; }
	.recruit-environment-grid > a { min-height: 0; padding: 22px; }
	.recruit-environment-grid h3 { margin-top: 21px; }
	.recruit-faq-summary-list details > div { padding: 0 20px 24px; }
}
.company-calendar-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.company-calendar-month { padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.company-calendar-month h3 { margin: 0 0 24px; color: var(--navy); font-size: 2rem; line-height: 1; }
.company-calendar-month h3 span { margin-right: 10px; color: var(--muted); font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.company-calendar-month table { width: 100%; border-collapse: separate; border-spacing: 5px; table-layout: fixed; text-align: center; }
.company-calendar-month th { padding: 5px; color: var(--muted); font-size: .74rem; font-weight: 700; }
.company-calendar-month td { height: 46px; padding: 0; }
.company-calendar-month td span { width: 38px; height: 38px; margin: auto; display: grid; place-items: center; border-radius: 50%; color: var(--navy); font-size: .9rem; }
.company-calendar-month td.is-closed span { color: #9a2632; background: #f7dfe2; font-weight: 800; }
.company-calendar-month .weekday-0:not(.is-closed) span, .company-calendar-month .weekday-0 { color: #a72d3a; }
.company-calendar-month .weekday-6:not(.is-closed) span, .company-calendar-month .weekday-6 { color: var(--blue); }
.company-calendar-note { margin: 20px 0 0; color: var(--muted); font-size: .86rem; }
.company-calendar-note span { width: 14px; height: 14px; margin-right: 7px; display: inline-block; border-radius: 50%; background: #f7dfe2; vertical-align: -2px; }

/* Inquiry and group strengths */
.group-strength { background: var(--navy); color: var(--white); }
.group-strength .split-heading > p, .group-strength-note { color: #c5d7dd; }
.group-strength-flow { margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.group-strength-flow li { min-height: 230px; padding: 28px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.group-strength-flow span { color: var(--blue-bright); font-size: .74rem; font-weight: 800; letter-spacing: .08em; }
.group-strength-flow strong { margin-top: 48px; font-size: 1.2rem; line-height: 1.55; }
.group-strength-flow small { margin-top: 12px; color: #c5d7dd; line-height: 1.8; }
.group-strength-note { margin: 17px 0 0; font-size: .82rem; }
.solutions-admin-note { margin: 24px 0 0; color: var(--muted); font-size: .82rem; }
.recruit-job-details { margin: 24px 0 0; border-top: 1px solid var(--line); }
.recruit-job-details div { padding: 13px 0; border-bottom: 1px solid var(--line); }
.recruit-job-details dt { color: var(--blue); font-size: .75rem; font-weight: 800; letter-spacing: .06em; }
.recruit-job-details dd { margin: 6px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.8; }
.recruit-visual-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.recruit-visual-grid.is-light { border-color: var(--line); }
.recruit-visual-card { min-width: 0; display: flex; flex-direction: column; color: var(--white); border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); text-decoration: none; background: rgba(0,0,0,.08); }
.recruit-visual-grid.is-light .recruit-visual-card { color: var(--ink); border-color: var(--line); background: var(--white); }
.recruit-visual-image { aspect-ratio: 4 / 3; overflow: hidden; background: #275162; }
.recruit-visual-grid.is-light .recruit-visual-image { background: #dce5e8; }
.recruit-visual-image.is-empty::after { content: 'PHOTO'; display: grid; width: 100%; height: 100%; place-items: center; color: #b6d6e1; font-size: .68rem; font-weight: 800; letter-spacing: .16em; }
.recruit-visual-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.recruit-visual-card:hover .recruit-visual-image img { transform: scale(1.04); }
.recruit-visual-card > div:last-child { flex: 1; padding: 26px; }
.recruit-visual-card span { color: var(--blue-bright); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.recruit-visual-grid.is-light .recruit-visual-card span, .recruit-visual-grid.is-light .recruit-visual-card strong { color: var(--blue); }
.recruit-visual-card h3 { margin: 30px 0 12px; font-size: 1.18rem; line-height: 1.55; }
.recruit-visual-card p { margin: 0; color: #c7d9df; font-size: .9rem; line-height: 1.8; }
.recruit-visual-grid.is-light .recruit-visual-card p { color: var(--muted); }
.recruit-visual-card strong { display: block; margin-top: 24px; color: var(--blue-bright); font-size: .85rem; }
@media (max-width: 1000px) { .recruit-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px) { .recruit-visual-grid { grid-template-columns: 1fr; } .recruit-visual-card > div:last-child { padding: 24px 22px; } .recruit-visual-card h3 { margin-top: 22px; } }

/* Recruitment visual rhythm: use colour, large numerals and directional marks where photography is not needed. */
.recruit-intro-links a { position: relative; overflow: hidden; isolation: isolate; transition: color .25s ease, background .25s ease, transform .25s ease; }
.recruit-intro-links small { position: absolute; z-index: -1; top: 16px; right: 20px; color: rgba(0,152,209,.12); font-size: clamp(4.2rem, 8vw, 7.8rem); font-weight: 800; line-height: 1; letter-spacing: -.08em; }
.recruit-intro-links strong, .recruit-intro-links span { position: relative; }
.recruit-intro-links a::after { content: ''; position: absolute; z-index: -1; right: -25px; bottom: -42px; width: 130px; height: 130px; border: 1px solid rgba(0,152,209,.28); border-radius: 50%; }
.recruit-intro-links a:nth-child(2)::after { border-radius: 0; transform: rotate(45deg); }
.recruit-intro-links a:nth-child(3)::after { width: 180px; height: 64px; right: -32px; bottom: 22px; border-width: 0 0 1px 0; border-radius: 0; transform: rotate(-28deg); }
.recruit-intro-links a:hover { transform: translateY(-4px); }
.recruit-intro-links a:hover small { color: rgba(255,255,255,.12); }

.recruit-path-grid a { position: relative; overflow: hidden; isolation: isolate; min-height: 350px; }
.recruit-path-grid a::before { position: absolute; z-index: -1; right: 18px; bottom: -16px; color: rgba(0,152,209,.12); font-size: clamp(7rem, 13vw, 12rem); font-weight: 800; line-height: 1; letter-spacing: -.09em; }
.recruit-path-grid a:nth-child(1)::before { content: '01'; }
.recruit-path-grid a:nth-child(2)::before { content: '02'; }
.recruit-path-grid a:nth-child(3)::before { content: '03'; }
.recruit-path-grid a::after { content: ''; position: absolute; z-index: -1; top: 0; right: 0; width: 42%; height: 7px; background: var(--blue); }
.recruit-path-grid a:nth-child(2)::after { width: 7px; height: 42%; }
.recruit-path-grid a:nth-child(3)::after { top: auto; bottom: 0; width: 42%; }
.recruit-path-grid a:hover::before { color: rgba(255,255,255,.12); }
.recruit-path-grid a:hover::after { background: var(--blue-bright); }

.recruit-environment-grid article { position: relative; overflow: hidden; isolation: isolate; }
.recruit-environment-grid article::before { position: absolute; z-index: -1; top: 18px; right: 18px; color: rgba(0,152,209,.10); font-size: clamp(5.5rem, 10vw, 9rem); font-weight: 800; line-height: 1; letter-spacing: -.08em; }
.recruit-environment-grid article:nth-child(1)::before { content: '01'; }
.recruit-environment-grid article:nth-child(2)::before { content: '02'; }
.recruit-environment-grid article:nth-child(3)::before { content: '03'; }
.recruit-environment-grid article > span, .recruit-environment-grid article > h3, .recruit-environment-grid article > p, .recruit-environment-grid article > a { position: relative; }
.recruit-environment-grid article.is-linked > a::after { content: ''; position: absolute; right: 28px; bottom: 27px; width: 64px; height: 64px; border: 1px solid rgba(0,152,209,.28); border-radius: 50%; }

.recruit-flow-grid { counter-reset: recruit-flow; overflow: visible; }
.recruit-flow-grid li { position: relative; isolation: isolate; overflow: hidden; padding-top: 78px; }
.recruit-flow-grid li::before { content: ''; position: absolute; z-index: -1; top: 24px; left: 26px; width: 38px; height: 38px; border: 2px solid var(--blue); border-radius: 50%; background: var(--white); }
.recruit-flow-grid li::after { content: '→'; position: absolute; z-index: 2; top: 32px; right: -13px; width: 26px; height: 26px; display: grid; place-items: center; color: var(--blue); border: 1px solid var(--blue); border-radius: 50%; background: var(--white); font-size: .92rem; }
.recruit-flow-grid li:last-child::after { display: none; }
.recruit-flow-grid span { position: absolute; top: 34px; left: 38px; z-index: 1; color: var(--blue); font-size: .66rem; font-weight: 800; }
.recruit-flow-grid strong { margin-top: 14px; }
@media (max-width: 980px) { .recruit-flow-grid li:nth-child(2)::after { display: none; } }
@media (max-width: 480px) { .recruit-path-grid a { min-height: 240px; } .recruit-path-grid a::before { font-size: 7rem; } .recruit-environment-grid article::before { font-size: 6rem; } .recruit-flow-grid li::after { display: none; } }
@media (max-width: 780px) {
  .company-calendar-grid { grid-template-columns: 1fr; }
  .company-calendar-controls { align-items: stretch; flex-direction: column; }
  .company-calendar-controls p { align-items: flex-start; flex-direction: column; gap: 4px; }
  .company-calendar-controls > div { width: 100%; }
  .company-calendar-controls button { flex: 1; }
  .company-calendar-month { padding: 25px 18px; }
  .company-calendar-month td { height: 42px; }
  .company-calendar-month td span { width: 34px; height: 34px; }
  .group-strength-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .group-strength-flow { grid-template-columns: 1fr; }
  .group-strength-flow li { min-height: 0; padding: 25px 22px; }
  .group-strength-flow strong { margin-top: 30px; }
}

/* Site-wide visual rhythm: keep factual pages readable while giving text-led sections a sense of movement. */
.roof-capability-flow { position: relative; overflow: hidden; background: linear-gradient(135deg, #f7fbfc, #fff); }
.roof-capability-flow span { position: relative; isolation: isolate; overflow: hidden; }
.roof-capability-flow span::before { position: absolute; z-index: -1; right: 10px; bottom: -24px; color: rgba(0,152,209,.11); font-size: 5.4rem; font-weight: 800; line-height: 1; letter-spacing: -.1em; }
.roof-capability-flow span:nth-child(1)::before { content: '01'; }
.roof-capability-flow span:nth-child(2)::before { content: '02'; }
.roof-capability-flow span:nth-child(3)::before { content: '03'; }
.roof-capability-flow span:nth-child(4)::before { content: '04'; }
.roof-capability-flow span:nth-child(5)::before { content: '05'; }
.roof-capability-flow span:not(:last-child)::after { content: '→'; position: absolute; z-index: 2; right: -12px; top: 50%; width: 24px; height: 24px; display: grid; place-items: center; color: var(--blue); border: 1px solid var(--blue); border-radius: 50%; background: var(--white); font-size: .72rem; transform: translateY(-50%); }

.roof-guide-grid a { position: relative; overflow: hidden; isolation: isolate; }
.roof-guide-grid a::before { position: absolute; z-index: -1; right: 18px; bottom: -20px; color: rgba(0,152,209,.1); font-size: clamp(7rem, 13vw, 11rem); font-weight: 800; line-height: 1; letter-spacing: -.1em; transition: color .25s ease; }
.roof-guide-grid a:nth-child(1)::before { content: '01'; }
.roof-guide-grid a:nth-child(2)::before { content: '02'; }
.roof-guide-grid a:nth-child(3)::before { content: '03'; }
.roof-guide-grid a:nth-child(4)::before { content: '04'; }
.roof-guide-grid a::after { content: ''; position: absolute; z-index: -1; top: 0; right: 0; width: 36%; height: 7px; background: var(--blue); }
.roof-guide-grid a:nth-child(2)::after { width: 7px; height: 36%; }
.roof-guide-grid a:nth-child(3)::after { top: auto; bottom: 0; }
.roof-guide-grid a:nth-child(4)::after { top: auto; bottom: 0; width: 7px; height: 36%; }
.roof-guide-grid a:hover::before { color: rgba(255,255,255,.13); }

.roof-strength-grid article { position: relative; isolation: isolate; overflow: hidden; }
.roof-strength-grid article::before { position: absolute; z-index: -1; top: 16px; right: 18px; color: rgba(85,194,231,.16); font-size: clamp(5.4rem, 9vw, 8rem); font-weight: 800; line-height: 1; letter-spacing: -.1em; }
.roof-strength-grid article:nth-child(1)::before { content: '01'; }.roof-strength-grid article:nth-child(2)::before { content: '02'; }.roof-strength-grid article:nth-child(3)::before { content: '03'; }.roof-strength-grid article:nth-child(4)::before { content: '04'; }.roof-strength-grid article:nth-child(5)::before { content: '05'; }.roof-strength-grid article:nth-child(6)::before { content: '06'; }
.roof-strength-grid article h3, .roof-strength-grid article p, .roof-strength-grid article > span { position: relative; }

.works-archive-intro { position: relative; isolation: isolate; }
.works-archive-intro::after { content: 'WORKS'; position: absolute; z-index: -1; right: 0; bottom: -20px; color: rgba(0,152,209,.07); font-size: clamp(5rem, 14vw, 12rem); font-weight: 800; letter-spacing: -.1em; line-height: .8; }
.works-archive-filters { position: relative; overflow: hidden; }
.works-archive-filters::after { content: ''; position: absolute; right: -52px; bottom: -74px; width: 190px; height: 190px; border: 1px solid rgba(0,152,209,.18); border-radius: 50%; pointer-events: none; }
.works-data-inner ul li { position: relative; overflow: hidden; }
.works-data-inner ul li::after { content: ''; position: absolute; right: -18px; bottom: -18px; width: 74px; height: 74px; border: 1px solid rgba(83,197,232,.35); border-radius: 50%; }

.expertise-grid article, .group-value-grid article { position: relative; isolation: isolate; overflow: hidden; }
.expertise-grid article::before, .group-value-grid article::before { position: absolute; z-index: -1; right: 17px; bottom: -25px; color: rgba(0,152,209,.09); font-size: clamp(6rem, 11vw, 10rem); font-weight: 800; line-height: 1; letter-spacing: -.1em; }
.expertise-grid article:nth-child(1)::before, .group-value-grid article:nth-child(1)::before { content: '01'; }
.expertise-grid article:nth-child(2)::before, .group-value-grid article:nth-child(2)::before { content: '02'; }
.expertise-grid article:nth-child(3)::before, .group-value-grid article:nth-child(3)::before { content: '03'; }
.expertise-grid article > *, .group-value-grid article > * { position: relative; }
.expertise-policy { position: relative; overflow: hidden; }
.expertise-policy::after { content: ''; position: absolute; right: -105px; bottom: -150px; width: 350px; height: 350px; border: 1px solid rgba(93,205,238,.35); border-radius: 50%; }
.expertise-policy > div { position: relative; z-index: 1; }

@media (max-width: 900px) { .roof-capability-flow span:not(:last-child)::after { display: none; } }
@media (max-width: 620px) { .roof-capability-flow span::before { font-size: 4.4rem; } .roof-guide-grid a::before { font-size: 7rem; } .roof-strength-grid article::before { font-size: 5.8rem; } .works-archive-intro::after { font-size: 5.2rem; } }

/* Recruit work environment: the three top-level cards lead into one scrollable page. */
.system-overview-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 50px 0 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.system-overview-nav a { min-height: 150px; padding: 25px 28px; display: grid; grid-template-columns: 1fr auto; align-content: space-between; color: var(--ink); text-decoration: none; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.system-overview-nav span { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }.system-overview-nav strong { align-self: end; font-size: 1.1rem; }.system-overview-nav b { align-self: end; color: var(--blue); font-size: 1.15rem; }.system-overview-nav a:hover { color: var(--white); background: var(--navy); }
.system-overview-block { margin-top: 82px; padding: clamp(34px, 6vw, 72px); display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(36px, 7vw, 110px); border-top: 7px solid var(--blue); background: var(--white); }
.system-overview-block.is-navy { color: var(--white); border-color: var(--blue-bright); background: var(--navy); }.system-overview-heading > span { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .13em; }.system-overview-block.is-navy .system-overview-heading > span { color: var(--blue-bright); }.system-overview-heading h3 { margin: 21px 0 0; font-size: clamp(2rem, 3.6vw, 3.45rem); line-height: 1.28; letter-spacing: -.04em; }.system-overview-copy > p { margin: 0; color: var(--muted); line-height: 2; }.system-overview-block.is-navy .system-overview-copy > p { color: #c7d9df; }.system-overview-copy ul { margin: 35px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }.system-overview-copy li { padding: 18px 0; display: grid; grid-template-columns: minmax(150px,.75fr) minmax(0,1.25fr); gap: 20px; border-bottom: 1px solid var(--line); }.system-overview-copy li strong { color: var(--blue); }.system-overview-copy li span { color: var(--muted); line-height: 1.75; }.system-overview-block.is-navy .system-overview-copy ul { border-color: rgba(255,255,255,.22); }.system-overview-block.is-navy .system-overview-copy li { border-color: rgba(255,255,255,.22); }.system-overview-block.is-navy .system-overview-copy li strong { color: var(--blue-bright); }.system-overview-block.is-navy .system-overview-copy li span { color: #c7d9df; }.system-overview-copy > small { margin-top: 20px; display: block; color: var(--muted); font-size: .78rem; line-height: 1.7; }.system-overview-block.is-navy .system-overview-copy > small { color: #a9c1ca; }.system-benefit-anchor { height: 1px; margin-top: 84px; scroll-margin-top: 110px; }.system-overview-block { scroll-margin-top: 110px; }.system-benefit-heading { margin-top: 0!important; }
.system-photo-story { margin-top: 55px; display: grid; grid-template-columns: minmax(240px,.78fr) minmax(0,1.22fr); color: var(--white); background: var(--navy); }
.system-photo-story-copy { padding: clamp(28px,4vw,54px); display: flex; flex-direction: column; justify-content: end; }.system-photo-story-copy p { margin: 0; color: var(--blue-bright); font-size: .72rem; font-weight: 800; letter-spacing: .15em; }.system-photo-story-copy strong { margin-top: 22px; font-size: clamp(1.85rem,3.2vw,3rem); line-height: 1.25; letter-spacing: -.04em; }.system-photo-story-copy span { margin-top: 24px; color: #c7d9df; font-size: .9rem; line-height: 1.85; }.system-photo-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: repeat(2, minmax(0,1fr)); min-height: 335px; }.system-photo-story-grid figure { min-width: 0; min-height: 0; margin: 0; overflow: hidden; border-left: 1px solid rgba(255,255,255,.23); border-bottom: 1px solid rgba(255,255,255,.23); background: #174556; }.system-photo-story-grid figure:nth-child(2n+1) { border-left: 0; }.system-photo-story-grid figure:nth-last-child(-n+2) { border-bottom: 0; }.system-photo-story-grid img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; transition: transform .4s ease; }.system-photo-story:hover img { transform: scale(1.03); }
@media(max-width:760px){.system-overview-nav{grid-template-columns:1fr}.system-overview-nav a{min-height:105px;padding:23px}.system-overview-block{margin-top:55px;grid-template-columns:1fr;padding:34px 25px}.system-overview-copy li{grid-template-columns:1fr;gap:7px}.system-benefit-anchor{margin-top:58px}.system-photo-story{grid-template-columns:1fr}.system-photo-story-grid{min-height:360px}}

/* Instagram: posts are managed on Instagram and displayed here automatically. */
.instagram-hero{padding:125px 28px 110px;color:var(--white);background:radial-gradient(circle at 82% 23%,rgba(229,117,93,.65),transparent 24%),radial-gradient(circle at 62% 78%,rgba(116,52,164,.8),transparent 34%),#071e2a}.instagram-hero .breadcrumbs{margin-bottom:68px}.instagram-hero h1{max-width:820px;margin:0;font-size:clamp(3rem,6.2vw,6.1rem);line-height:1.08;letter-spacing:-.055em}.instagram-hero h1 span{color:#ffbf72}.instagram-hero>div>p:not(.eyebrow){max-width:650px;margin:30px 0;color:#d4e4e8;font-weight:600;line-height:1.9}.instagram-hero .button{margin-top:14px}.instagram-feed-section{padding:115px 28px;background:var(--paper)}.instagram-feed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.instagram-feed-grid>a{min-width:0;color:var(--ink);text-decoration:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}.instagram-feed-grid figure{aspect-ratio:1;margin:0;overflow:hidden;background:#dce5e8}.instagram-feed-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .35s ease}.instagram-feed-grid>a:hover img{transform:scale(1.05)}.instagram-feed-grid>a>div{padding:23px}.instagram-feed-grid time{color:var(--blue);font-size:.74rem;font-weight:800;letter-spacing:.1em}.instagram-feed-grid p{min-height:3.6em;margin:17px 0;color:var(--muted);line-height:1.8}.instagram-feed-grid strong{color:var(--blue);font-size:.82rem}.instagram-empty{padding:55px;text-align:center;background:var(--white);border:1px solid var(--line)}.home-instagram-news{margin-top:56px;padding:clamp(30px,5vw,58px);display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:40px;color:var(--white);background:var(--navy)}.home-instagram-news h3{margin:15px 0 25px;font-size:clamp(1.5rem,2.8vw,2.4rem);line-height:1.45}.home-instagram-news .arrow-link{color:var(--blue-bright)}.home-instagram-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-instagram-photos a{aspect-ratio:1;overflow:hidden;background:#224959}.home-instagram-photos img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s ease}.home-instagram-photos a:hover img{transform:scale(1.05)}
.instagram-hero h1{max-width:900px;font-size:clamp(3rem,5.5vw,5.2rem)}
@media(max-width:760px){.instagram-hero{padding:85px 20px 75px}.instagram-hero .breadcrumbs{margin-bottom:45px}.instagram-feed-section{padding:78px 20px}.instagram-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-instagram-news{grid-template-columns:1fr}.home-instagram-photos{max-width:500px}}@media(max-width:460px){.instagram-feed-grid{grid-template-columns:1fr}.instagram-feed-grid p{min-height:0}}
@media (max-width: 760px) {
	.concern-archive-hero, .concern-detail-hero { min-height: 440px; }
	.concern-archive-hero-inner, .concern-detail-hero-inner { width: min(var(--content), calc(100% - 40px)); padding: 65px 0; }
	.concern-archive-section, .concern-detail-content, .concern-related-works { padding: 76px 20px; }
	.concern-card-grid { grid-template-columns: 1fr; }
	.concern-card { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); }
	.concern-card figure { min-height: 180px; }
	.concern-card > div { padding: 24px 20px; }
	.concern-other { margin-top: 52px; }
	.concern-other-form .button { width: 100%; justify-self: stretch; }
	.concern-detail-content-inner { grid-template-columns: 1fr; gap: 38px; }
	.concern-contact { padding: 75px 20px; }
	.concern-contact .section-inner { display: block; }
	.concern-contact .button { margin-top: 28px; }
}
@media (max-width: 460px) {
	.concern-card { grid-template-columns: 1fr; }
	.concern-card figure { min-height: 210px; }
}

/* Stable home Instagram panel, including the not-yet-connected state. */
.home-instagram-news{padding:0;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);gap:0;min-height:330px;overflow:hidden}
.home-instagram-copy{padding:clamp(32px,4.5vw,58px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.home-instagram-news h3{margin:15px 0 17px;font-size:clamp(1.65rem,2.8vw,2.55rem)}
.home-instagram-copy>p:not(.eyebrow){margin:0 0 25px;color:#c7d9df;font-size:.9rem;line-height:1.8}
.home-instagram-photos{max-width:none;gap:2px;background:rgba(255,255,255,.18)}
.home-instagram-photos a{min-width:0;aspect-ratio:auto}
.home-instagram-photos img{height:100%;min-height:330px;object-position:center}
.home-instagram-fallback{position:relative;min-height:330px;padding:35px;display:flex;flex-direction:column;justify-content:space-between;color:var(--white);text-decoration:none;overflow:hidden;background:radial-gradient(circle at 78% 22%,rgba(255,187,86,.95),transparent 25%),radial-gradient(circle at 22% 85%,rgba(130,56,180,.95),transparent 34%),linear-gradient(135deg,#405de6,#c13584 55%,#fd1d1d)}
.home-instagram-fallback::after{content:"";position:absolute;width:230px;height:230px;right:-52px;bottom:-68px;border:2px solid rgba(255,255,255,.4);border-radius:50%}
.home-instagram-fallback>span{font-size:3rem;line-height:1}
.home-instagram-fallback>strong{position:relative;z-index:1;font-size:clamp(2.4rem,5vw,4.8rem);line-height:.92;letter-spacing:-.06em}
.home-instagram-fallback>small{position:relative;z-index:1;font-weight:800;letter-spacing:.15em}
@media(max-width:760px){.home-instagram-news{grid-template-columns:1fr}.home-instagram-photos{min-height:220px}.home-instagram-photos img{min-height:220px}.home-instagram-fallback{min-height:260px}}
@media(max-width:460px){.home-instagram-photos{grid-template-columns:repeat(3,minmax(115px,1fr));overflow-x:auto}.home-instagram-photos img{min-height:180px}}

/* Rental experience refresh v1.63.4: clear comparison with a warmer, tactile UI. */
.rental-page{--rental-soft-blue:#eef8fb;--rental-warm:#f7f4ed;--rental-shadow:0 14px 38px rgba(11,41,56,.09)}
.rental-uses,.rental-price-list,.rental-rooms,.rental-booking-flow{position:relative;overflow:hidden}
.rental-uses::before,.rental-rooms::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;pointer-events:none;background:rgba(0,118,168,.045)}
.rental-uses::before{right:-190px;top:-210px}.rental-rooms::before{left:-220px;bottom:-230px}
.rental-use-grid{gap:24px}
.rental-use-grid article{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 7px 24px rgba(11,41,56,.06);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.rental-use-grid article:hover{transform:translateY(-5px);border-color:#a8d3e2;box-shadow:var(--rental-shadow)}
.rental-use-visual{position:relative;overflow:hidden}
.rental-use-grid .rental-use-visual img{transition:transform .4s ease}
.rental-use-grid article:hover .rental-use-visual img{transform:scale(1.035)}
.rental-use-visual>span{position:absolute;right:16px;bottom:16px;width:39px;height:39px;display:grid;place-items:center;border-radius:50%;color:#fff;background:rgba(11,41,56,.82);font-size:.7rem;font-weight:800;letter-spacing:.08em;backdrop-filter:blur(4px)}
.rental-use-grid article>div:last-child{display:flex;min-height:220px;flex-direction:column}
.rental-use-grid article>div:last-child>a{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:22px;color:var(--blue);font-size:.82rem;font-weight:800;text-decoration:none}
.rental-use-grid article>div:last-child>a span{font-size:1.05rem;transition:transform .2s ease}.rental-use-grid article:hover a span{transform:translateX(4px)}
.rental-price-list{background:linear-gradient(145deg,var(--paper),#eef4f6)}
.rental-price-guide{margin:0 0 28px;padding:22px 24px;display:grid;grid-template-columns:50px minmax(0,1fr);gap:18px;align-items:start;border:1px solid #d3e6ed;border-radius:10px;background:linear-gradient(135deg,#fff,var(--rental-soft-blue));box-shadow:0 6px 20px rgba(11,41,56,.05)}
.rental-price-guide-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#dff1f7}.rental-price-guide-icon svg{width:24px;height:24px}
.rental-price-guide strong{display:block;margin:1px 0 7px;font-size:1rem}.rental-price-guide p{margin:0;color:var(--ink);line-height:1.7}.rental-price-guide small{display:block;margin-top:6px;color:var(--muted);line-height:1.7}
.rental-price-table-wrap{border:0;border-radius:10px;box-shadow:var(--rental-shadow)}
.rental-price-list table{min-width:720px}
.rental-price-list thead th{padding-top:17px;padding-bottom:17px;background:#143746;border-right-color:rgba(255,255,255,.14)}
.rental-price-list tbody tr{transition:background-color .18s ease}.rental-price-list tbody tr:nth-child(even){background:#f8fafb}.rental-price-list tbody tr:hover{background:#edf7fa}
.rental-price-list tbody td strong{font-size:1.18rem;letter-spacing:.01em}
.rental-price-list tbody td:nth-child(3),.rental-price-list tbody td:nth-child(4){white-space:nowrap}
.rental-room-list{gap:42px}
.rental-room{overflow:hidden;border:0;border-radius:12px;background:var(--white);box-shadow:var(--rental-shadow);transition:transform .25s ease,box-shadow .25s ease}
.rental-room:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(11,41,56,.14)}
.rental-room-visual{position:relative}.rental-room-visual img{transition:transform .45s ease}.rental-room:hover .rental-room-visual img{transform:scale(1.035)}
.rental-room-visual>small{position:absolute;left:22px;top:22px;padding:8px 12px;border-radius:999px;color:#fff;background:rgba(11,41,56,.78);font-size:.68rem;font-weight:800;letter-spacing:.12em;backdrop-filter:blur(5px)}
.rental-room-copy{display:flex;flex-direction:column;padding:clamp(32px,4.5vw,58px)}
.rental-room-copy h3{margin-top:0}.rental-room-copy>p{margin-bottom:0}
.rental-room-copy dl{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff}
.rental-room-copy dl>div{min-height:82px;border-color:var(--line)}
.rental-room-copy .rental-room-rate{background:#f8fafb}.rental-room-copy .rental-room-rate dd{font-size:1.12rem;letter-spacing:.01em}
.rental-room-booking{margin-top:24px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--blue);border-radius:7px;color:#fff;background:var(--blue);text-decoration:none;box-shadow:0 8px 20px rgba(0,118,168,.18);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.rental-room-booking:hover{color:#fff;background:var(--navy);border-color:var(--navy);transform:translateY(-2px);box-shadow:0 12px 26px rgba(11,41,56,.2)}
.rental-room-booking b{font-size:1.15rem;transition:transform .2s ease}.rental-room-booking:hover b{transform:translateX(4px)}
.rental-booking-flow ol{gap:14px;border:0}.rental-booking-flow li{border:1px solid var(--line);border-radius:9px;box-shadow:0 6px 20px rgba(11,41,56,.05);transition:transform .2s ease,box-shadow .2s ease}.rental-booking-flow li:hover{transform:translateY(-4px);box-shadow:var(--rental-shadow)}
.rental-booking-flow li>.uematsu-icon{border:0;border-radius:50%;background:var(--rental-soft-blue)}
@media(max-width:900px){.rental-room-list{gap:30px}.rental-room{grid-template-columns:1fr}.rental-room-visual{min-height:330px}.rental-room:nth-child(even) .rental-room-visual{order:initial}}
@media(max-width:620px){.rental-use-grid article>div:last-child{min-height:0}.rental-price-guide{grid-template-columns:42px minmax(0,1fr);padding:19px 17px;gap:13px}.rental-price-guide-icon{width:40px;height:40px}.rental-price-guide-icon svg{width:21px;height:21px}.rental-price-table-wrap{margin-right:-20px;border-radius:9px 0 0 9px}.rental-price-list table{min-width:670px}.rental-room-list{gap:24px}.rental-room{border-radius:10px}.rental-room-visual{min-height:260px}.rental-room-copy{padding:27px 22px}.rental-room-copy dl{grid-template-columns:repeat(2,minmax(0,1fr))}.rental-room-copy dl>div{min-height:78px;padding:12px}.rental-room-copy .rental-room-rate dd{font-size:1rem}.rental-room-booking{width:100%;min-height:52px}.rental-room-gallery{padding:0 22px 22px}.rental-booking-flow ol{gap:10px}.rental-booking-flow li{border-radius:8px}}
@media(prefers-reduced-motion:reduce){.rental-use-grid article,.rental-use-grid img,.rental-room,.rental-room img,.rental-room-booking,.rental-booking-flow li{transition:none!important}}

/* Contact router Phase B-1 */
.inquiry-gateway{margin-top:34px}.inquiry-gateway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inquiry-gateway-grid>a,.inquiry-gateway-card{min-height:160px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--white);text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.inquiry-gateway-grid>a:hover,.inquiry-gateway-grid>a:focus-visible,.inquiry-gateway-card:focus-within{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 12px 28px rgba(11,41,56,.1)}.inquiry-gateway-grid span{color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.12em}.inquiry-gateway-grid strong{font-size:1.02rem;line-height:1.6}.inquiry-gateway-grid small{color:var(--muted);line-height:1.6}.inquiry-gateway-card>a{margin-top:auto;color:var(--blue);font-size:.82rem;font-weight:800}.inquiry-gateway-card>a+a{margin-top:2px}.inquiry-gateway-card .inquiry-gateway-primary{padding:9px 12px;border-radius:4px;color:#fff;background:var(--blue);text-decoration:none}
.inquiry-form-stage{margin-top:28px}.inquiry-selected{margin-bottom:24px;padding:18px 20px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border-left:4px solid var(--blue);background:#edf6f9}.inquiry-selected span{color:var(--muted);font-size:.75rem;font-weight:800}.inquiry-selected strong{font-size:1rem}.inquiry-selected button{padding:0;border:0;border-bottom:1px solid currentColor;color:var(--blue);background:transparent;cursor:pointer;font:inherit;font-size:.78rem;font-weight:800}.uematsu-inquiry-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;padding:22px;border:1px solid #d9e6eb;border-radius:7px;background:#f8fbfc}.uematsu-inquiry-fields[hidden]{display:none}.uematsu-contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.uematsu-form-field[data-phone-field].is-required{padding-left:12px;border-left:3px solid #b43b31}
@media(max-width:700px){.inquiry-gateway-grid{grid-template-columns:1fr}.inquiry-gateway-grid>a,.inquiry-gateway-card{min-height:0;padding:20px}.inquiry-selected{grid-template-columns:1fr;gap:5px}.inquiry-selected button{justify-self:start;margin-top:7px}.uematsu-inquiry-fields{grid-template-columns:1fr;padding:17px;gap:18px}}

/* Processing warranty: vary section structure instead of repeating a document-like two-column pattern. */
.processing-warranty-page section[aria-labelledby="warranty-about-title"] .processing-warranty-two-column,.processing-warranty-page section[aria-labelledby="warranty-requirements-title"] .processing-warranty-two-column{grid-template-columns:1fr;gap:30px}.processing-warranty-page section[aria-labelledby="warranty-about-title"] h2,.processing-warranty-page section[aria-labelledby="warranty-requirements-title"] h2{max-width:19em}.processing-warranty-page section[aria-labelledby="warranty-about-title"] .processing-warranty-prose,.processing-warranty-page section[aria-labelledby="warranty-requirements-title"] .processing-warranty-prose{max-width:920px}.processing-warranty-page section[aria-labelledby="warranty-audience-title"] .processing-warranty-two-column{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(36px,5vw,72px)}.processing-warranty-page section[aria-labelledby="warranty-audience-title"] .processing-warranty-relationship{margin-top:42px}.processing-warranty-page section[aria-labelledby="warranty-difference-title"] .processing-warranty-section-heading{max-width:980px;margin-bottom:40px}.processing-warranty-page #warranty-difference-title{max-width:18em}.processing-warranty-compare{gap:1px;background:#cad9de}.processing-warranty-compare article{min-height:0;padding:28px 30px;border:0}.processing-warranty-compare strong{margin:25px 0 10px}.processing-warranty-table-wrap{border-color:#cad9de}.processing-warranty-flow{gap:0;border:0;border-top:1px solid #cad9de;border-bottom:1px solid #cad9de}.processing-warranty-flow li{min-height:205px;padding:25px 22px;border:0;background:transparent}.processing-warranty-flow li+li{border-left:1px solid #cad9de}.processing-warranty-flow li:not(:last-child)::after{top:26px;right:-11px;width:22px;height:22px;background:var(--navy);font-size:.8rem}.processing-warranty-flow strong{margin-top:32px;font-size:1.05rem}.processing-warranty-flow p{margin-top:14px}.processing-warranty-quality{padding-top:140px;padding-bottom:140px}.processing-warranty-quality .processing-warranty-two-column{gap:clamp(50px,8vw,130px)}.processing-warranty-page section[aria-labelledby="warranty-product-label-title"] .processing-warranty-label-layout{gap:clamp(42px,6vw,88px)}.processing-warranty-page section[aria-labelledby="warranty-product-label-title"] .processing-warranty-label-mark{min-height:255px}.processing-warranty-page section[aria-labelledby="warranty-faq-title"] .processing-warranty-section-heading{max-width:none;margin-bottom:34px}.processing-warranty-page #warranty-faq-title{max-width:17em;font-size:clamp(1.9rem,3.1vw,3.15rem)}
@media(min-width:981px){.processing-warranty-page section[aria-labelledby="warranty-about-title"],.processing-warranty-page section[aria-labelledby="warranty-requirements-title"]{padding-top:105px;padding-bottom:105px}.processing-warranty-page section[aria-labelledby="warranty-audience-title"]{padding-top:100px;padding-bottom:100px}.processing-warranty-page section[aria-labelledby="warranty-difference-title"]{padding-top:100px;padding-bottom:100px}}
@media(max-width:680px){.processing-warranty-page section[aria-labelledby="warranty-audience-title"] .processing-warranty-two-column{grid-template-columns:1fr;gap:28px}.processing-warranty-page section[aria-labelledby="warranty-about-title"] h2,.processing-warranty-page section[aria-labelledby="warranty-requirements-title"] h2,.processing-warranty-page #warranty-difference-title,.processing-warranty-page #warranty-faq-title{max-width:none}.processing-warranty-flow{border-left:1px solid #cad9de}.processing-warranty-flow li{padding:22px 20px}.processing-warranty-flow li+li{border-top:1px solid #cad9de;border-left:0}.processing-warranty-flow li:not(:last-child)::after{top:auto;right:50%;bottom:-11px}.processing-warranty-quality{padding-top:90px;padding-bottom:90px}}
.page-template-page-about-php .president-message{display:none}.page-template-page-about-php .company-profile,.page-template-page-about-php .company-organization,.page-template-page-about-php .company-sdgs{scroll-margin-top:110px}.page-template-page-about-php .company-grid article{min-height:0;padding-bottom:24px}.page-template-page-about-php .company-grid .company-card-details{display:none}.page-template-page-about-php .company-grid p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.page-template-page-about-php .group-value-grid article{min-height:0}.page-template-page-about-php .company-history{padding-top:80px;padding-bottom:80px}.page-template-page-about-php .history-list{margin-top:34px}@media(max-width:680px){.page-template-page-about-php .company-history{padding-top:60px;padding-bottom:60px}.page-template-page-about-php .group-companies,.page-template-page-about-php .connected-expertise{padding-top:70px;padding-bottom:70px}}
.history-digest-action{margin:38px 0 0}.history-page .company-history{padding-top:85px}.history-decade-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}.history-decade-nav a{padding:9px 12px;border:1px solid var(--line);color:var(--blue);font-size:.82rem;font-weight:800;text-decoration:none}.history-decade-nav a:hover{color:#fff;background:var(--navy)}.history-page .history-copy h2{margin:0 0 7px;font-size:1.12rem;line-height:1.5}.history-related-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:45px}.history-digest-action .uematsu-dark-button,.history-digest-action .uematsu-dark-button:visited,.history-related-links .uematsu-dark-button,.history-related-links .uematsu-dark-button:visited{color:var(--navy);border-color:var(--navy);background:var(--white)}.history-digest-action .uematsu-dark-button:hover,.history-digest-action .uematsu-dark-button:focus-visible,.history-related-links .uematsu-dark-button:hover,.history-related-links .uematsu-dark-button:focus-visible{color:var(--white);border-color:var(--navy);background:var(--navy)}.history-digest-action .uematsu-dark-button:focus-visible,.history-related-links .uematsu-dark-button:focus-visible{outline:3px solid var(--blue-bright);outline-offset:3px}@media(max-width:520px){.history-page .company-history{padding-top:64px}.history-related-links .button{width:100%}}

/* Pre-launch entry-page polish: compact controls and visual explanations. */
.recruit-page-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;max-width:980px;margin:0 auto;padding:0 28px;border-top:1px solid rgba(202,212,216,.72);border-bottom:1px solid rgba(202,212,216,.72);overflow:visible;background:var(--white);white-space:normal}
.recruit-page-nav a{min-height:60px;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;border:0;color:var(--ink);background:transparent;font-size:.9rem;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.recruit-page-nav a+a{border-left:1px solid rgba(202,212,216,.72)}.recruit-page-nav a span{color:var(--blue);font-size:1.2rem;transition:transform .2s ease}.recruit-page-nav a:hover,.recruit-page-nav a:focus-visible{color:var(--blue);background:#eef6f8}.recruit-page-nav a:hover span,.recruit-page-nav a:focus-visible span{transform:translateX(3px)}
.recruit-entry-page .recruit-paths{padding-top:80px;padding-bottom:78px}.recruit-entry-page .recruit-jobs{padding-top:80px;padding-bottom:80px}.recruit-entry-page .recruit-features{padding-top:78px;padding-bottom:78px}.recruit-entry-page .recruit-environment{padding-top:80px;padding-bottom:80px}.recruit-entry-page .recruit-voices{padding-top:80px;padding-bottom:80px}.recruit-entry-page .recruit-flow,.recruit-entry-page .recruit-faq-summary{padding-top:78px;padding-bottom:78px}.recruit-entry-page .recruit-entry-heading{margin-bottom:38px}.recruit-entry-page .recruit-section-action{margin-top:26px}.recruit-entry-page .recruit-faq-actions{margin-top:22px}.recruit-entry-page .recruit-entry{padding-top:76px;padding-bottom:76px}
.recruit-job-grid.count-1{max-width:620px;margin-inline:auto;grid-template-columns:1fr}.recruit-job-grid.count-2{max-width:920px;margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.recruit-job-grid.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.recruit-job-grid.count-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.factory-issue-grid>a{overflow:hidden;transition:transform .22s ease,background-color .22s ease,box-shadow .22s ease}.factory-issue-grid>a::before{content:"";position:absolute;right:21px;top:20px;width:28px;height:28px;border:1px solid #b8d2dc;border-radius:50%;background:linear-gradient(135deg,#fff,#eef6f8)}.factory-issue-grid>a::after{content:"↗";position:absolute;right:29px;top:24px;color:var(--blue);font-size:.8rem;font-weight:800;transition:transform .22s ease}.factory-issue-grid>a:hover,.factory-issue-grid>a:focus-visible{transform:translateY(-4px);box-shadow:0 12px 26px rgba(11,41,56,.13)}.factory-issue-grid>a:hover::after,.factory-issue-grid>a:focus-visible::after{color:var(--blue-bright);transform:translate(2px,-2px)}
.factory-scope-diagram{display:grid;grid-template-columns:minmax(200px,.68fr) 40px minmax(0,1.32fr);gap:18px;align-items:center;margin-top:35px}.factory-scope-origin{min-height:174px;padding:28px;display:flex;flex-direction:column;justify-content:center;color:#fff;background:var(--navy)}.factory-scope-origin span{color:var(--blue-bright);font-size:.7rem;font-weight:800;letter-spacing:.13em}.factory-scope-origin strong{margin-top:18px;font-size:1.55rem;line-height:1.25}.factory-scope-origin small{margin-top:8px;color:#c9dbe1;line-height:1.6}.factory-scope-arrow,.factory-management-arrow{display:grid;place-items:center;width:36px;height:36px;border:1px solid #a8cbd8;border-radius:50%;color:var(--blue);background:#fff;font-size:1.2rem;font-weight:800}.factory-scope-list{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border:0;background:transparent;gap:10px}.factory-scope-list li{min-height:82px;padding:17px;display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);font-size:.88rem}.factory-scope-list li span{color:var(--blue-bright);font-size:.68rem;letter-spacing:.08em}.factory-solutions-action{margin:25px 0 0}
.factory-operation-inner{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:clamp(36px,6vw,80px);align-items:stretch}.factory-operation-copy{display:flex;flex-direction:column}.factory-operation-image{margin:30px 0 0;aspect-ratio:16/7;overflow:hidden}.factory-operation-image img{width:100%;height:100%;object-fit:cover}.factory-operation-points{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:0!important;background:transparent!important}.factory-operation-points li{min-height:0!important;padding:24px 20px!important;display:flex!important;align-items:flex-start!important;gap:14px;border:1px solid var(--line)!important;background:#fff!important}.factory-operation-points li:last-child{grid-column:auto!important}.factory-operation-points li>span{color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.09em}.factory-operation-points strong{display:block;font-size:1rem;line-height:1.45}.factory-operation-points p{margin:6px 0 0;color:var(--muted);font-size:.85rem;line-height:1.65}
.factory-management-diagram{grid-template-columns:minmax(150px,.7fr) 42px minmax(220px,1fr) 42px minmax(220px,1fr);gap:12px}.factory-management-arrow{align-self:center}.factory-management-diagram ul{padding-left:40px}.factory-management-diagram li::marker{color:var(--blue)}
@media(max-width:900px){.factory-scope-diagram{grid-template-columns:1fr;gap:15px}.factory-scope-arrow{margin:auto;transform:rotate(90deg)}.factory-scope-list{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-operation-inner{grid-template-columns:1fr;gap:28px}.factory-operation-image{max-width:680px}.factory-management-diagram{grid-template-columns:1fr;gap:12px}.factory-management-arrow{margin:auto;transform:rotate(90deg)}}
@media(max-width:1100px){.recruit-feature-list,.recruit-job-grid.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.recruit-page-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 20px}.recruit-page-nav a{min-height:56px;padding:11px 14px;font-size:.86rem}.recruit-page-nav a:nth-child(odd){border-left:0}.recruit-page-nav a:nth-child(3){border-top:1px solid rgba(202,212,216,.72)}.recruit-page-nav a:nth-child(4){border-top:1px solid rgba(202,212,216,.72)}.recruit-entry-page .recruit-paths,.recruit-entry-page .recruit-jobs,.recruit-entry-page .recruit-features,.recruit-entry-page .recruit-environment,.recruit-entry-page .recruit-voices,.recruit-entry-page .recruit-flow,.recruit-entry-page .recruit-faq-summary{padding-top:64px;padding-bottom:64px}.recruit-entry-page .recruit-entry{padding-top:64px;padding-bottom:64px}.recruit-entry-page .recruit-entry-heading{margin-bottom:30px}.recruit-job-grid.count-1,.recruit-job-grid.count-2,.recruit-job-grid.count-3{max-width:none;grid-template-columns:1fr}.factory-issue-grid>a::before{right:17px;top:16px}.factory-issue-grid>a::after{right:25px;top:20px}.factory-scope-origin{min-height:0;padding:24px}.factory-scope-list{grid-template-columns:1fr}.factory-scope-list li{min-height:0;padding:16px}.factory-operation-points{grid-template-columns:1fr!important}.factory-operation-points li{padding:20px!important}.factory-operation-image{margin-top:24px;aspect-ratio:16/9}}
@media(max-width:780px){.recruit-feature-list,.recruit-job-grid.count-4{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.recruit-page-nav a,.recruit-page-nav a span,.factory-issue-grid>a,.factory-issue-grid>a::after{transition:none!important}}

/* Stable layouts for the factory entry diagrams after real-device QA. */
.recruit-entry-page .recruit-paths{padding-top:72px;padding-bottom:70px}.recruit-entry-page .recruit-jobs{padding-top:72px;padding-bottom:72px}.recruit-entry-page .recruit-features{padding-top:70px;padding-bottom:70px}.recruit-entry-page .recruit-environment{padding-top:72px;padding-bottom:72px}.recruit-entry-page .recruit-voices{padding-top:72px;padding-bottom:72px}.recruit-entry-page .recruit-flow,.recruit-entry-page .recruit-faq-summary{padding-top:70px;padding-bottom:70px}.recruit-entry-page .recruit-entry-heading{margin-bottom:31px}.recruit-entry-page .recruit-entry{padding-top:70px;padding-bottom:70px}
.factory-scope-diagram{display:flex;flex-direction:column;gap:16px;align-items:stretch;margin-top:30px}.factory-scope-origin{width:min(360px,100%);min-height:0;margin:0 auto;padding:24px 28px;text-align:center}.factory-scope-origin strong{margin-top:11px}.factory-scope-origin small{margin-top:5px}.factory-scope-arrow{margin:0 auto;transform:rotate(90deg)}.factory-scope-list{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.factory-scope-list li{min-height:94px;padding:16px 14px;flex-direction:column;gap:7px;border:1px solid rgba(255,255,255,.35);font-size:.84rem;line-height:1.5}.factory-scope-list li span{font-size:.65rem}.factory-operation-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:start;gap:48px}.factory-operation-copy{min-width:0}.factory-operation-image{width:100%;margin:25px 0 0}.factory-operation-points{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-self:stretch;margin:0!important;padding:0!important;gap:12px!important;list-style:none!important}.factory-operation-points>li{min-width:0;min-height:150px!important;margin:0!important;padding:24px 20px!important;display:flex!important;align-items:flex-start!important;gap:13px!important;border:1px solid var(--line)!important;background:var(--white)!important}.factory-operation-points li>div{min-width:0}.factory-operation-points p{display:block!important;margin:7px 0 0!important;padding:0!important;background:transparent!important}.factory-management-diagram{display:grid;grid-template-columns:minmax(190px,.82fr) minmax(250px,1fr) minmax(280px,1.18fr);align-items:stretch;gap:20px}.factory-management-client,.factory-management-center,.factory-management-diagram ul{position:relative;min-width:0;min-height:182px;margin:0!important;padding:28px!important;border:1px solid var(--line);list-style:none!important}.factory-management-client,.factory-management-center{display:flex!important;flex-direction:column!important;justify-content:center!important}.factory-management-client{background:var(--navy)}.factory-management-client span,.factory-management-center span{margin-bottom:16px;font-size:.68rem;font-weight:800;letter-spacing:.1em}.factory-management-client strong{font-size:1.1rem;line-height:1.6}.factory-management-center{border-color:var(--blue);background:var(--paper)}.factory-management-center strong{font-size:1.2rem;line-height:1.45}.factory-management-center small{margin-top:9px;color:var(--muted);font-size:.86rem;line-height:1.65}.factory-management-diagram ul{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:11px;padding-left:44px!important;background:var(--white)}.factory-management-diagram ul::before{content:"03 / SUPPORT";margin-left:-17px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.1em}.factory-management-diagram li{padding:0!important;font-size:.9rem;line-height:1.55}.factory-management-client::after,.factory-management-center::after{content:"→";position:absolute;z-index:1;right:-31px;top:50%;width:40px;height:40px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid #a8cbd8;border-radius:50%;color:var(--blue);background:var(--white);font-size:1.2rem;font-weight:800}
@media(max-width:900px){.factory-scope-list{grid-template-columns:repeat(3,minmax(0,1fr))}.factory-operation-inner{grid-template-columns:1fr;gap:28px}.factory-operation-image{max-width:760px}.factory-management-diagram{grid-template-columns:1fr;gap:14px}.factory-management-client,.factory-management-center,.factory-management-diagram ul{min-height:0}.factory-management-client::after,.factory-management-center::after{right:auto;left:50%;top:auto;bottom:-31px;transform:translateX(-50%) rotate(90deg)}}
@media(max-width:780px){.recruit-page-nav a span{font-size:1.1rem}.recruit-entry-page .recruit-paths,.recruit-entry-page .recruit-jobs,.recruit-entry-page .recruit-features,.recruit-entry-page .recruit-environment,.recruit-entry-page .recruit-voices,.recruit-entry-page .recruit-flow,.recruit-entry-page .recruit-faq-summary{padding-top:58px;padding-bottom:58px}.recruit-entry-page .recruit-entry{padding-top:58px;padding-bottom:58px}.recruit-entry-page .recruit-entry-heading{margin-bottom:27px}.factory-scope-list{grid-template-columns:1fr}.factory-scope-list li{min-height:0;flex-direction:row;align-items:center}.factory-operation-points{grid-template-columns:1fr!important}.factory-operation-points>li{min-height:0!important;padding:20px!important}.factory-management-client,.factory-management-center,.factory-management-diagram ul{padding:23px!important}}


/* Factory page final typography and density adjustments on restored components. */
.factory-entry-hero h1{max-width:1050px;font-size:clamp(3rem,4.6vw,4.4rem);letter-spacing:-.045em}
.factory-entry-heading{margin-bottom:30px}
.factory-issue-grid>a{min-height:168px;padding:22px 24px;border-top:3px solid #c9e4ed;background:linear-gradient(180deg,#f5fafc 0,#fff 38%)}
.factory-issue-grid h3{margin:22px 0 8px;font-size:1.18rem;line-height:1.45}
.factory-issue-grid p{font-size:.93rem;line-height:1.72}
.factory-issue-grid b{padding-top:13px;font-size:.82rem}
.factory-direct-grid{gap:12px;border-left:0}
.factory-direct-grid article{min-height:0;padding:28px;border:1px solid var(--line);background:linear-gradient(145deg,var(--paper),#fff)}
.factory-direct-grid h3{margin:25px 0 11px;font-size:1.28rem;line-height:1.5}
.factory-direct-grid p{font-size:.96rem;line-height:1.75}
.factory-process-grid li{min-height:150px;padding:22px}
.factory-process-grid strong{margin-top:28px;font-size:1.12rem;line-height:1.45}
.factory-process-grid p{margin:10px 0 0;color:var(--muted);font-size:.92rem;line-height:1.65}
.factory-process-grid small{margin-top:auto;padding-top:13px;font-size:.78rem}
.factory-trade-cards>a,.factory-trade-cards>article{min-height:150px;padding:22px 24px}
.factory-trade-cards>article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-top:3px solid #dcebef;background:linear-gradient(180deg,#f8fbfc 0,#fff 42%)}
.factory-trade-cards h3,.factory-trade-cards>article h3{margin:20px 0 8px;font-size:1.16rem;line-height:1.45}
.factory-trade-cards p{font-size:.93rem;line-height:1.7}
.factory-zeb-section .factory-operation-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:center}
.factory-zeb-section .factory-operation-image{height:360px;margin:0;aspect-ratio:auto}
.factory-zeb-section .factory-operation-copy h3{margin:24px 0 10px;font-size:1.08rem;line-height:1.55}
.factory-zeb-section .factory-operation-copy .arrow-link{display:inline-block;margin-top:24px}
.factory-conditions-section .factory-operation-inner{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:48px;align-items:start}
.factory-conditions-section .factory-operation-image{height:300px;margin:0;aspect-ratio:auto}
.factory-conditions-section .factory-operation-points>li{min-height:144px!important;padding:20px!important}
.factory-conditions-section .factory-operation-points strong{font-size:1.08rem}
.factory-conditions-section .factory-operation-points p{font-size:.92rem;line-height:1.7}
.factory-entry-contact .factory-contact-inner{grid-template-columns:minmax(0,1.6fr) minmax(280px,.6fr);gap:50px}
.factory-entry-contact h2{max-width:850px;font-size:clamp(2.15rem,3vw,3.35rem);line-height:1.25}
@media(min-width:901px){
	.factory-concern-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
	.factory-concern-grid.count-1{max-width:390px;margin-inline:auto;grid-template-columns:1fr}
	.factory-concern-grid.count-2{max-width:800px;margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
	.factory-concern-grid.count-4{max-width:820px;margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
	.factory-concern-grid.count-5{grid-template-columns:repeat(6,minmax(0,1fr))}
	.factory-concern-grid.count-5>a{grid-column:span 2}
	.factory-concern-grid.count-5>a:nth-child(4){grid-column:2/span 2}
}
@media(max-width:900px){
	.factory-zeb-section .factory-operation-inner,.factory-conditions-section .factory-operation-inner{grid-template-columns:1fr;gap:28px}
	.factory-zeb-section .factory-operation-image,.factory-conditions-section .factory-operation-image{width:min(680px,100%);height:320px}
	.factory-entry-contact .factory-contact-inner{grid-template-columns:1fr;gap:36px}
}
@media(max-width:620px){
	.factory-concern-grid{grid-template-columns:1fr}
	.factory-entry-hero h1{font-size:clamp(2.65rem,11.5vw,2.9rem)}
	.factory-entry-hero h1 br,.factory-entry-contact h2 br{display:none}
	.factory-entry-hero h1 span{margin-left:.15em}
	.factory-entry-heading{margin-bottom:26px}
	.factory-issue-grid>a,.factory-trade-cards>a,.factory-trade-cards>article{min-height:0;padding:20px}
	.factory-issue-grid h3,.factory-trade-cards h3,.factory-trade-cards>article h3{margin-top:17px;font-size:1.1rem}
	.factory-direct-grid{gap:8px}
	.factory-direct-grid article{padding:24px 22px}
	.factory-process-grid li{min-height:0;padding:20px}
	.factory-process-grid strong{margin-top:18px}
	.factory-zeb-section .factory-operation-image,.factory-conditions-section .factory-operation-image{height:240px}
	.factory-conditions-section .factory-operation-points>li{min-height:0!important;padding:18px!important}
}

/* Prefer Japanese phrase boundaries where the browser supports them. */
@supports (word-break: auto-phrase) {
	.concern-detail-content .concern-intro-heading,
	.recruit-voice-card h3,
	.voice-question-copy h2,
	.voice-archive-list .recruit-voice-card h2,
	.recruit-program h2,
	.recruit-entry h2,
	.recruit-news-hero h1,
	.voice-hero h1,
	.parents-intro h2,
	.system-hero h1,
	.recruit-menu-card h3,
	.recruit-content-card h2,
	.company-grid h3,
	.policy-hero h1,
	.policy-principle h2,
	.motto-card-copy h3,
	.rental-hero h1,
	.rental-room-copy h3,
	.rental-hero-actions .button,
	.rental-cta .button,
	.processing-warranty-page h1,
	.processing-warranty-page h2,
	.company-history .history-copy h3 { word-break: auto-phrase; }
}

/* Shared icon scale and restrained interaction language. */
.uematsu-icon--small{width:20px;height:20px}.uematsu-icon--small svg{width:16px;height:16px}
.uematsu-icon--card{width:44px;height:44px;border:0;background:transparent}.uematsu-icon--card svg{width:34px;height:34px}
.uematsu-icon--feature{width:54px;height:54px;border:0;background:transparent}.uematsu-icon--feature svg{width:44px;height:44px}
.uematsu-icon--large{width:64px;height:64px}.uematsu-icon--large svg{width:36px;height:36px}

/* Fixed semantic flows: icons aid scanning without making static cards look clickable. */
.products-entry-flow .products-flow-icon{flex:0 0 auto;margin-top:3px;color:var(--blue-bright);border:0;background:transparent}
.products-entry-flow li>span:not(.uematsu-icon){font-size:.94rem;font-weight:800;line-height:1.5}
.zeb-story-flow li{justify-content:flex-start;gap:10px}
.zeb-story-flow .zeb-flow-icon{flex:0 0 auto;margin:2px 0 4px;border:0;background:#e8f5f9}
.zeb-story-flow strong{margin-top:auto}
.recruit-flow-grid .recruit-flow-icon{flex:0 0 auto;margin:2px 0 0;border:0;background:#e8f5f9}
.factory-card-icon{flex:0 0 auto;color:var(--blue);border:0;background:#e8f5f9}
.factory-direct-grid .factory-card-icon{margin-top:17px}.factory-direct-grid h3{margin-top:13px}
.factory-process-grid .factory-card-icon{margin-top:16px}.factory-process-grid strong{margin-top:13px}
.factory-trade-cards .factory-card-icon{margin-top:0}.factory-trade-cards h3,.factory-trade-cards>article h3{margin-top:13px}
.inquiry-gateway-grid .inquiry-gateway-icon{flex:0 0 auto;margin:3px 0;color:var(--blue);border:0;background:#e8f5f9;font-size:inherit;letter-spacing:normal}

/* About and recruitment: shared icons carry meaning without adding decorative boxes. */
.connected-expertise.has-no-heading{padding-top:72px}
.about-scope-icon{width:48px;height:48px;margin-bottom:18px;color:var(--blue-bright);border:0;background:transparent}.about-scope-icon svg{width:40px;height:40px}.about-scope-more .about-scope-icon{color:var(--blue)}
.group-flow-icon{width:48px;height:48px;margin-top:24px;color:var(--blue-bright);border:0;background:transparent}.group-flow-icon svg{width:40px;height:40px}.group-flow li strong{margin-top:16px}
.recruit-feature-icon{width:52px;height:52px;margin-top:24px;color:var(--white);border:0;background:transparent}.recruit-feature-icon svg{width:44px;height:44px}.recruit-feature-list h3{margin-top:17px}

/* Only links react: static explanatory cards remain visually still. */
.roof-guide-grid a .uematsu-icon,.factory-trade-cards>a .uematsu-icon,.inquiry-gateway-grid>a .uematsu-icon{transition:transform .22s ease,color .22s ease,background-color .22s ease}
.roof-guide-grid a:hover .uematsu-icon,.roof-guide-grid a:focus-visible .uematsu-icon,.factory-trade-cards>a:hover .uematsu-icon,.factory-trade-cards>a:focus-visible .uematsu-icon,.inquiry-gateway-grid>a:hover .uematsu-icon,.inquiry-gateway-grid>a:focus-visible .uematsu-icon{transform:translateY(-2px);color:var(--white);background:transparent}
.arrow-link span[aria-hidden="true"],.factory-issue-grid b i,.products-works-grid b i{display:inline-block;transition:transform .22s ease}
.arrow-link:hover span[aria-hidden="true"],.arrow-link:focus-visible span[aria-hidden="true"],.factory-issue-grid>a:hover b i,.factory-issue-grid>a:focus-visible b i,.products-works-grid>a:hover b i,.products-works-grid>a:focus-visible b i{transform:translateX(4px)}

@media(max-width:800px){
	.zeb-story-flow li{min-height:0;display:grid;grid-template-columns:36px 32px minmax(0,1fr);gap:12px;align-items:center}
	.zeb-story-flow .zeb-flow-icon{grid-column:1;grid-row:1;margin:0}
	.zeb-story-flow li>span:not(.uematsu-icon){grid-column:2;grid-row:1}
	.zeb-story-flow strong{grid-column:3;grid-row:1;margin:0}
}
@media(max-width:620px){
	.products-entry-flow .products-flow-icon{margin-top:0}
	.recruit-flow-grid .recruit-flow-icon{margin-top:0}
	.connected-expertise.has-no-heading{padding-top:48px}
	.group-flow-icon{width:44px;height:44px;margin-top:18px}.group-flow-icon svg{width:36px;height:36px}
	.recruit-feature-icon{width:46px;height:46px;margin-top:18px}.recruit-feature-icon svg{width:38px;height:38px}
}
@media(hover:none){
	.roof-guide-grid a:hover .uematsu-icon,.factory-trade-cards>a:hover .uematsu-icon,.inquiry-gateway-grid>a:hover .uematsu-icon{transform:none;color:var(--blue);background:transparent}
	.company-section-nav a:hover{color:var(--ink);border-color:var(--line);background:#f8fafb;transform:none}.company-section-nav a:hover .about-nav-icon,.company-section-nav a:hover>span:last-child{color:var(--blue);transform:none}
}
@media(prefers-reduced-motion:reduce){
	.roof-guide-grid a .uematsu-icon,.factory-trade-cards>a .uematsu-icon,.inquiry-gateway-grid>a .uematsu-icon,.company-section-nav a,.company-section-nav .about-nav-icon,.company-section-nav a>span:last-child,.arrow-link span[aria-hidden="true"],.factory-issue-grid b i,.products-works-grid b i{transition:none!important;transform:none!important}
}

/* Keep photographic internal-page heroes on the same visual scale as the About page. */
.zeb-hero,
.factory-hero,
.professional-hero,
.home-hero,
.works-archive-hero,
.concern-archive-hero,
.concern-detail-hero,
.inquiry-hero,
.products-hero,
.about-hero,
.roof-hero,
.recruit-hero,
.recruit-sub-hero,
.voice-hero,
.system-hero,
.policy-hero,
.rental-hero {
	min-height: 570px;
}

.zeb-hero-inner,
.factory-hero-inner,
.professional-hero-inner,
.home-hero-inner,
.works-archive-hero-inner,
.concern-archive-hero-inner,
.concern-detail-hero-inner,
.inquiry-hero-inner,
.products-hero-inner,
.roof-hero-inner,
.recruit-hero-inner,
.recruit-sub-hero-inner,
.system-hero-inner,
.policy-hero-inner,
.rental-hero-inner {
	padding-top: 64px;
	padding-bottom: 64px;
}

@media(max-width:768px) {
	.zeb-hero,
	.factory-hero,
	.professional-hero,
	.home-hero,
	.works-archive-hero,
	.concern-archive-hero,
	.concern-detail-hero,
	.inquiry-hero,
	.products-hero,
	.about-hero,
	.roof-hero,
	.recruit-hero,
	.recruit-sub-hero,
	.voice-hero,
	.system-hero,
	.policy-hero,
	.rental-hero {
		min-height: 0;
	}

	.zeb-hero-inner,
	.factory-hero-inner,
	.professional-hero-inner,
	.home-hero-inner,
	.works-archive-hero-inner,
	.concern-archive-hero-inner,
	.concern-detail-hero-inner,
	.inquiry-hero-inner,
	.products-hero-inner,
	.roof-hero-inner,
	.recruit-hero-inner,
	.recruit-sub-hero-inner,
	.voice-hero-inner,
	.system-hero-inner,
	.policy-hero-inner,
	.rental-hero-inner {
		padding-top: 56px;
		padding-bottom: 60px;
	}

	.page-template-page-about-php .about-hero-inner {
		padding-top: 56px;
		padding-bottom: 60px;
	}

	/* Keep the full interview portrait visible instead of cropping a wide source into a tall hero. */
	.voice-hero {
		display: block;
		min-height: 0;
		overflow: visible;
		background: var(--navy);
	}

	.voice-hero > img {
		position: relative;
		inset: auto;
		display: block;
		width: 100%;
		height: auto;
		object-fit: contain;
		object-position: center;
	}

	.voice-hero-overlay {
		display: none;
	}

	.voice-hero-inner {
		width: calc(100% - 40px);
		padding-top: 42px;
		padding-bottom: 52px;
	}
}

/* Recruit entry cards fill the row for the categories currently available. */
.recruit-environment-grid.count-1 { grid-template-columns: 1fr; }
.recruit-environment-grid.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.recruit-environment-grid.count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.recruit-environment-grid > a { min-width: 0; text-decoration: none; }
.recruit-environment-grid > a:hover,
.recruit-environment-grid > a:focus-visible { background: #f4f8f9; }

@media(max-width:1023px) {
	.recruit-environment-grid.count-3,
	.recruit-environment-grid.count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width:780px) {
	.recruit-environment-grid > a { min-height: 212px; }
}
@media(max-width:620px) {
	.recruit-environment-grid.count-2,
	.recruit-environment-grid.count-3,
	.recruit-environment-grid.count-4 { grid-template-columns: 1fr; }
}

/* Shared quality-support section for product, roof and exterior pages. */
.quality-support { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(135deg, #f4f7f8 0%, #e9f1f4 100%); }
.quality-support-inner { max-width: 1040px; grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); gap: clamp(42px, 7vw, 88px); }
.quality-support-mark { min-height: 220px; display: grid; place-items: center; border: 1px solid #c6d6dc; border-top: 5px solid var(--blue); box-shadow: 0 16px 36px rgba(11, 41, 56, .08); }
.quality-support-mark img { width: 138px; max-width: 100%; }
.quality-support-copy { max-width: 720px; }
.quality-support-copy h2 { margin: 10px 0 18px; text-wrap: balance; }
.quality-support-copy > p:not(.eyebrow) { max-width: 680px; }
.warranty-related .arrow-link { display: inline-block; }

/* Recruit to ZEB workplace bridge. */
.recruit-workplace { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); min-height: 420px; background: #f0f5f6; }
.recruit-workplace-media { min-height: 400px; overflow: hidden; background: #dbe5e8; }
.recruit-workplace-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.recruit-workplace-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(48px, 5vw, 70px); }
.recruit-workplace-copy h2 { margin: 12px 0 22px; font-size: clamp(2rem, 3.7vw, 3.55rem); line-height: 1.35; letter-spacing: -.035em; }
.recruit-workplace-copy > p:not(.eyebrow) { margin: 0 0 26px; color: var(--muted); line-height: 1.95; }
.recruit-workplace-copy .arrow-link { align-self: flex-start; }
@media(min-width:901px) {
	.recruit-message-image, .recruit-workplace-media { min-height: 420px; }
	.recruit-workplace-copy { grid-column: 1; grid-row: 1; }
	.recruit-workplace-media { grid-column: 2; grid-row: 1; }
}

/* ZEB workplace visual library. */
#zeb-workplace { scroll-margin-top: 120px; }
.zeb-workplace { padding: 105px 28px; background: #f3f7f8; }
.zeb-workplace .split-heading > div:last-child { max-width: 590px; }
.zeb-workplace-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; margin-top: 48px; }
.zeb-workplace-grid > a, .zeb-workplace-grid > figure { position: relative; min-height: 0; aspect-ratio: 16 / 9; margin: 0; overflow: hidden; background: #dbe5e8; }
.zeb-workplace-grid > *:nth-child(4n+1), .zeb-workplace-grid > *:nth-child(4n+4) { grid-column: span 7; }
.zeb-workplace-grid > *:nth-child(4n+2), .zeb-workplace-grid > *:nth-child(4n+3) { grid-column: span 5; }
.zeb-workplace-grid.count-1 > * { grid-column: 1 / -1; }
.zeb-workplace-grid.count-2 > * { grid-column: span 6; }
.zeb-workplace-grid.count-3 > *:first-child,
.zeb-workplace-grid.count-5 > *:first-child,
.zeb-workplace-grid.count-7 > *:first-child { grid-column: 1 / -1; }
.zeb-workplace-grid.count-3 > *:not(:first-child),
.zeb-workplace-grid.count-5 > *:not(:first-child),
.zeb-workplace-grid.count-7 > *:not(:first-child) { grid-column: span 6; }
.zeb-workplace-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.zeb-workplace-grid a:hover img { transform: scale(1.025); }
.zeb-workplace-grid a > span { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px 22px 18px; background: linear-gradient(transparent, rgba(0,32,48,.82)); color: #fff; font-weight: 700; }
.zeb-workplace-grid a > b { position: absolute; top: 16px; right: 16px; padding: 7px 10px; background: var(--blue); color: #fff; font-size: .72rem; letter-spacing: .08em; }
.zeb-workplace-actions { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 34px; }
.zeb-workplace-actions > .button { color: var(--navy); border-color: var(--navy); background: transparent; }
.zeb-workplace-actions > p { display: flex; align-items: center; gap: 18px; margin: 0; color: var(--muted); }
.zeb-facility-grid.count-1 { grid-template-columns: minmax(0, 720px); justify-content: center; }
.zeb-facility-grid.count-1 figure { aspect-ratio: 16 / 10; }
.zeb-visit-cta { background: var(--white); }
.zeb-visit-cta .section-heading { margin-bottom: 34px; }
.zeb-facility-grid.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Visual library video presentation. */
.photo-card figure { position: relative; }
.photo-card-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #d8e4e8, #edf3f5); }
.photo-media-badge { position: absolute; top: 14px; right: 14px; padding: 8px 11px; color: #fff !important; background: rgba(0,55,80,.9); font-size: .72rem !important; letter-spacing: .1em; }
.photo-detail-video { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #061a24; }
.photo-detail-video video, .photo-detail-video iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.photo-works-bridge { padding: 64px 28px; color: #fff; background: var(--navy); }
.photo-works-bridge .section-inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.photo-works-bridge h2 { margin: 8px 0 12px; color: #fff; font-size: clamp(1.8rem, 3.2vw, 3rem); }
.photo-works-bridge p:not(.eyebrow) { max-width: 680px; margin: 0; color: #d5e4e9; line-height: 1.85; }
.photo-works-bridge .arrow-link { flex: 0 0 auto; color: #fff; }
.photo-related-cases { margin-top: 70px; padding-top: 55px; border-top: 1px solid var(--line); }
.photo-related-cases h2 { margin: 8px 0 28px; font-size: clamp(1.7rem, 3vw, 2.65rem); }
.photo-related-cases > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.photo-related-cases a { display: flex; min-width: 0; flex-direction: column; padding-bottom: 20px; color: var(--ink); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.photo-related-cases figure { margin: 0 0 18px; aspect-ratio: 16 / 10; overflow: hidden; }
.photo-related-cases img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-related-cases span, .photo-related-cases b { margin: 0 20px; }
.photo-related-cases span { font-weight: 800; line-height: 1.6; }
.photo-related-cases b { margin-top: 10px; color: var(--blue); font-size: .8rem; }
.work-related-visuals { padding: 90px 28px; background: #edf3f5; }
.work-related-visuals h2 { margin: 8px 0 30px; font-size: clamp(1.9rem, 3.4vw, 3.2rem); }
.work-related-visuals-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.work-related-visuals-grid a { min-width: 0; padding-bottom: 22px; color: var(--ink); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.work-related-visuals-grid figure { margin: 0 0 18px; aspect-ratio: 4 / 3; overflow: hidden; background: #dbe5e8; }
.work-related-visuals-grid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.work-related-visuals-grid span, .work-related-visuals-grid h3 { margin-right: 20px; margin-left: 20px; }
.work-related-visuals-grid span { color: var(--blue); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.work-related-visuals-grid h3 { margin-top: 8px; margin-bottom: 0; font-size: 1rem; line-height: 1.6; }

@media(max-width:900px) {
	.quality-support-inner { grid-template-columns: 130px minmax(0, 1fr); gap: 30px; }
	.recruit-workplace { grid-template-columns: 1fr; }
	.recruit-workplace-copy { order: 1; }
	.recruit-workplace-media { height: 360px; min-height: 0; order: 2; }
	.zeb-workplace-grid > * { grid-column: span 6 !important; }
	.zeb-workplace-grid.count-1 > * { grid-column: 1 / -1 !important; }
	.zeb-workplace-grid.count-3 > *:first-child,
	.zeb-workplace-grid.count-5 > *:first-child,
	.zeb-workplace-grid.count-7 > *:first-child { grid-column: 1 / -1 !important; }
	.zeb-workplace-actions { align-items: flex-start; flex-direction: column; }
}
@media(max-width:768px) {
	.quality-support-inner { grid-template-columns: 1fr; gap: 26px; }
	.quality-support-mark { width: 150px; min-height: 180px; padding: 18px; }
	.quality-support-mark img { width: 110px; }
	.recruit-workplace-media { height: 300px; }
	.recruit-workplace-copy { padding: 58px 22px; }
	.zeb-workplace { padding: 70px 20px; }
	.zeb-workplace-grid { margin-top: 34px; }
	.zeb-workplace-grid > *, .zeb-workplace-grid.count-1 > * { grid-column: 1 / -1 !important; min-height: 0; aspect-ratio: 16 / 10; }
	.zeb-facility-grid.count-2 { grid-template-columns: 1fr; }
	.photo-works-bridge .section-inner { align-items: flex-start; flex-direction: column; gap: 24px; }
	.photo-related-cases > div, .work-related-visuals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width:480px) {
	.recruit-workplace-copy h2 { font-size: 2rem; }
	.zeb-workplace-grid > *, .zeb-workplace-grid.count-1 > * { min-height: 0; }
	.photo-works-bridge { padding: 50px 20px; }
	.photo-related-cases > div, .work-related-visuals-grid { grid-template-columns: 1fr; }
	.work-related-visuals { padding: 64px 20px; }
}

/* Mobile Japanese line breaks: preserve short semantic units without locking prose. */
.u-semantic-name { display: inline; }
main span.u-nowrap,
main span.u-semantic-name {
	color: inherit !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-style: inherit !important;
	font-weight: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
	text-transform: inherit !important;
}
@media(max-width:700px) {
	br.u-pc-break { display: none; }
	.photo-detail-heading h1 .u-semantic-name,
	.photo-detail-heading h1 .u-nowrap {
		white-space: normal;
	}
	.photo-detail-heading h1 {
		overflow-wrap: anywhere;
	}
	.roof-capability-heading h2 {
		font-size: clamp(1.78rem, 7.5vw, 2rem);
		line-height: 1.34;
		letter-spacing: -.04em;
		text-wrap: balance;
	}
	.products-entry-hero h1 {
		font-size: clamp(1.95rem, 7.5vw, 2.25rem);
		line-height: 1.2;
		letter-spacing: -.045em;
	}
	.products-entry-hero h1 > span { white-space: nowrap; }
	.products-entry-contact h2 {
		font-size: clamp(1.72rem, 7vw, 2rem);
		line-height: 1.3;
	}
	.factory-entry-hero h1 {
		font-size: clamp(2rem, 8.5vw, 2.35rem);
		line-height: 1.2;
		letter-spacing: -.045em;
		text-wrap: balance;
	}
	.news-archive-hero h1,
	.instagram-hero h1 {
		font-size: clamp(2.15rem, 9vw, 2.45rem);
		line-height: 1.18;
		letter-spacing: -.045em;
		text-wrap: balance;
	}
	.page-template-page-about-php .about-hero h1 {
		font-size: clamp(2rem, 8.5vw, 2.35rem);
		line-height: 1.2;
		text-wrap: balance;
	}
	.page-template-page-about-php .about-hero h1:has(.u-group-company-title) {
		font-size: clamp(1.5rem, 6.5vw, 1.72rem);
	}
	.privacy-policy .news-archive-hero h1 {
		font-size: clamp(1.55rem, 6.8vw, 1.75rem);
	}
	.news-list strong .u-semantic-name {
		display: inline-block;
		max-width: 100%;
	}
	.news-archive-list > * { grid-template-columns: 86px 78px minmax(0, 1fr); gap: 12px; }
	.news-archive-list strong { grid-column: 1 / -1; min-width: 0; }
	.product-detail-hero h1 {
		font-size: clamp(2.05rem, 8.8vw, 2.35rem);
		line-height: 1.18;
	}
	.work-detail-header h1 {
		font-size: clamp(1.95rem, 8.5vw, 2.25rem);
		line-height: 1.2;
		text-wrap: balance;
	}
	.concern-detail-hero h1 {
		font-size: clamp(2rem, 8.7vw, 2.35rem);
		line-height: 1.2;
		text-wrap: balance;
	}
	#warranty-requirements-title {
		font-size: clamp(1.48rem, 6.4vw, 1.72rem);
		line-height: 1.38;
	}
	.product-resources > h2 {
		font-size: clamp(1.5rem, 6.5vw, 1.72rem);
		line-height: 1.35;
		letter-spacing: -.035em;
	}
	.rental-room-copy h3 {
		font-size: clamp(1.5rem, 6.4vw, 1.72rem);
		letter-spacing: -.025em;
	}
}
@media(min-width:701px) {
	.page-template-page-about-php .about-hero h1:has(.u-group-company-title) {
		font-size: clamp(3rem, 4.2vw, 4.2rem);
	}
}
