/*
Theme Name: PSI Engineworks
Theme URI: https://psi.ats-project.net/
Author: POWER SERVICE IMAZU
Description: パワーサービスイマズ専用のオリジナルWordPressテーマ。
Version: 1.0.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: psi-engineworks
*/

:root {
  --ink: #101314;
  --ink-2: #181c1d;
  --steel: #262c2e;
  --paper: #f2f0e9;
  --white: #fff;
  --muted: #a9afb0;
  --line: rgba(255,255,255,.14);
  --accent: #1268c4;
  --accent-dark: #084481;
  --lime: #a9c9e9;
  --max: 1180px;
  --shadow: 0 20px 60px rgba(0,0,0,.24);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
::selection { color: var(--white); background: var(--accent); }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.narrow { width: min(calc(100% - 40px), 840px); margin-inline: auto; }
.skip-link { position: fixed; left: 12px; top: -80px; z-index: 999; padding: 10px 16px; background: var(--white); }
.skip-link:focus { top: 12px; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 100;
  color: var(--white); border-bottom: 1px solid transparent;
  transition: background .25s, border-color .25s;
}
.site-header.is-scrolled, body:not(.home) .site-header { background: rgba(16,19,20,.96); border-color: var(--line); backdrop-filter: blur(14px); }
.header-inner { min-height: 84px; display: flex; align-items: center; gap: 28px; }
.site-brand { display: flex; align-items: center; gap: 12px; margin-right: auto; line-height: 1; }
.brand-mark { display: grid; place-items: center; width: 50px; height: 50px; color: var(--white); background: var(--accent); font: 900 23px/1 Arial,sans-serif; transform: skew(-8deg); }
.brand-copy strong { display: block; font: 800 clamp(14px,1.5vw,18px)/1.1 Arial,sans-serif; letter-spacing: .04em; }
.brand-copy small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; letter-spacing: .18em; }
.site-nav { display: flex; align-items: center; gap: 24px; }
.site-nav a { position: relative; font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.site-nav a:not(.nav-cta)::after { content:""; position:absolute; right:0; bottom:-8px; left:0; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { transform:scaleX(1); }
.nav-cta { padding: 11px 18px; color: var(--white); background: var(--accent); }
.menu-toggle { display:none; width:48px; height:48px; padding:0; color:inherit; background:transparent; border:1px solid var(--line); }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content:""; display:block; width:22px; height:2px; margin:5px auto; background:currentColor; transition:.2s; }

.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; color: var(--accent); font: 800 12px/1.2 Arial,sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content:""; width: 34px; height: 2px; background: currentColor; }
.section-title { margin: 0; font-size: clamp(32px,5vw,62px); line-height: 1.12; letter-spacing: -.04em; }
.section-title .outline { color: transparent; -webkit-text-stroke: 1px currentColor; }
.section-lead { max-width: 650px; margin: 24px 0 0; color: #4e5557; font-size: 17px; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:48px; }
.section-head .section-lead { margin:0; }
.section-pad { padding: 110px 0; }
.section-dark { color: var(--white); background: var(--ink); }
.section-dark .section-lead { color: var(--muted); }
.grid-noise { background-image: linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px); background-size:34px 34px; }

.hero { position:relative; min-height: 780px; color:var(--white); background:var(--ink); overflow:hidden; }
.hero-media { position:absolute; inset:0; }
.hero-media img { width:100%; height:100%; object-fit:cover; filter:grayscale(12%) contrast(1.06); }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,10,10,.96) 0%,rgba(8,10,10,.73) 48%,rgba(8,10,10,.20) 100%),linear-gradient(0deg,rgba(8,10,10,.78),transparent 55%); }
.hero-inner { position:relative; z-index:1; min-height:780px; padding-top:180px; padding-bottom:90px; display:flex; flex-direction:column; justify-content:center; }
.hero h1 { max-width:900px; margin:0; font-size:clamp(52px,8.6vw,116px); line-height:.9; letter-spacing:-.065em; }
.hero h1 em { display:block; margin-top:18px; color:var(--accent); font-style:normal; }
.hero-copy { max-width:650px; margin:34px 0; color:#e5e5e1; font-size:clamp(16px,2vw,20px); font-weight:600; line-height:1.8; }
.button-row { display:flex; flex-wrap:wrap; gap:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:13px 24px; font-size:14px; font-weight:800; letter-spacing:.04em; border:1px solid transparent; transition:transform .2s,background .2s,color .2s; }
.button::after { content:"→"; font-size:20px; font-weight:400; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--white); background:var(--accent); }
.button-primary:hover { background:#287fdc; }
.button-ghost { color:var(--white); border-color:rgba(255,255,255,.45); }
.button-ghost:hover { color:var(--ink); background:var(--white); }
.button-dark { color:var(--white); background:var(--ink); }
.hero-tag { position:absolute; right:0; bottom:0; padding:18px 28px; color:var(--white); background:var(--accent-dark); border:1px solid rgba(255,255,255,.3); font:800 12px/1.4 Arial,sans-serif; letter-spacing:.12em; transform:translateY(1px); }

.intro-strip { color:var(--white); background:var(--steel); }
.intro-grid { display:grid; grid-template-columns:1.6fr repeat(3,1fr); }
.intro-cell { min-height:130px; padding:26px 30px; display:flex; flex-direction:column; justify-content:center; border-right:1px solid var(--line); }
.intro-cell:first-child { padding-left:0; }
.intro-cell:last-child { border-right:0; }
.intro-cell strong { display:block; font-size:22px; line-height:1.35; }
.intro-cell small { color:var(--muted); font-size:11px; letter-spacing:.1em; }
.intro-cell .num { color:var(--accent); font:900 36px/1 Arial,sans-serif; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#c9c8c2; border:1px solid #c9c8c2; }
.service-card { position:relative; min-height:310px; padding:38px; background:var(--paper); overflow:hidden; transition:background .25s,color .25s; }
.service-card::before { content:attr(data-index); position:absolute; right:24px; top:18px; color:#d2d0c9; font:900 54px/1 Arial,sans-serif; }
.service-card:hover { color:var(--white); background:var(--ink-2); }
.service-card .icon { width:52px; height:52px; margin-bottom:52px; color:var(--accent); }
.service-card h3 { margin:0 0 12px; font-size:23px; line-height:1.35; }
.service-card p { margin:0; color:#596063; font-size:14px; }
.service-card:hover p { color:var(--muted); }
.card-link { display:inline-block; margin-top:20px; color:var(--accent); font-size:12px; font-weight:800; }

.feature { display:grid; grid-template-columns:1.05fr .95fr; min-height:690px; }
.feature-media { position:relative; min-height:560px; }
.feature-media img { width:100%; height:100%; object-fit:cover; }
.feature-badge { position:absolute; left:0; bottom:0; width:180px; padding:23px; color:var(--ink); background:var(--accent); }
.feature-badge strong { display:block; font:900 32px/1 Arial,sans-serif; }
.feature-badge span { font-size:11px; font-weight:700; }
.feature-copy { padding:90px clamp(40px,7vw,110px); display:flex; flex-direction:column; justify-content:center; }
.feature-copy h2 { margin:0 0 25px; font-size:clamp(38px,6vw,76px); line-height:.95; letter-spacing:-.05em; }
.feature-copy h2 span { display:block; color:var(--accent); }
.feature-copy p { color:var(--muted); }
.check-list { margin:24px 0 32px; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 22px; }
.check-list li { padding-left:18px; position:relative; font-size:13px; font-weight:700; }
.check-list li::before { content:""; position:absolute; left:0; top:.75em; width:7px; height:7px; background:var(--accent); }

.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; counter-reset:step; }
.process-card { counter-increment:step; padding-top:24px; border-top:3px solid var(--ink); }
.process-card::before { content:"0" counter(step); display:block; margin-bottom:35px; color:var(--accent); font:900 16px/1 Arial,sans-serif; }
.process-card h3 { margin:0 0 12px; font-size:20px; }
.process-card p { margin:0; color:#606669; font-size:14px; }
.quality-mosaic { margin-top:64px; display:grid; grid-template-columns:1.4fr .8fr .8fr; grid-template-rows:220px 220px; gap:10px; }
.quality-mosaic figure { position:relative; margin:0; overflow:hidden; background:var(--steel); }
.quality-mosaic figure:first-child { grid-row:1/3; }
.quality-mosaic img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.quality-mosaic figure:hover img { transform:scale(1.04); }
.quality-mosaic figcaption { position:absolute; right:0; bottom:0; left:0; padding:30px 18px 12px; color:var(--white); background:linear-gradient(transparent,rgba(0,0,0,.8)); font-size:12px; }

.parts-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.part-card { color:var(--white); background:var(--steel); }
.part-card img { width:100%; height:260px; object-fit:cover; }
.part-card-body { padding:28px; }
.part-card h3 { margin:0 0 10px; font-size:21px; }
.part-card p { margin:0; color:var(--muted); font-size:14px; }

.news-list { border-top:1px solid #c9c8c2; }
.news-item { display:grid; grid-template-columns:130px 1fr auto; align-items:center; gap:20px; padding:24px 0; border-bottom:1px solid #c9c8c2; }
.news-item time { color:#6c7274; font:700 12px/1 Arial,sans-serif; }
.news-item h3 { margin:0; font-size:17px; }
.news-item span { color:var(--accent); font-size:22px; }

.contact-band { position:relative; color:var(--white); background:var(--accent-dark); overflow:hidden; }
.contact-band::before { content:"PSI"; position:absolute; right:-20px; top:-90px; color:rgba(255,255,255,.08); font:900 310px/1 Arial,sans-serif; }
.contact-band-inner { position:relative; padding:80px 0; display:flex; align-items:center; justify-content:space-between; gap:50px; }
.contact-band h2 { margin:0 0 10px; font-size:clamp(34px,5vw,58px); line-height:1.15; }
.contact-band p { margin:0; color:#ffd9ce; }
.phone-link { white-space:nowrap; font:900 clamp(28px,4vw,48px)/1 Arial,sans-serif; }
.phone-link small { display:block; margin-bottom:8px; font:700 11px/1.4 Arial,sans-serif; letter-spacing:.14em; }

.page-hero { padding:190px 0 80px; color:var(--white); background:var(--ink); }
.page-hero h1 { margin:0; font-size:clamp(44px,8vw,92px); line-height:1; letter-spacing:-.05em; }
.page-hero p { max-width:700px; margin:25px 0 0; color:var(--muted); font-size:18px; }
.content-section { padding:90px 0; }
.content-section + .content-section { padding-top:0; }
.content-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.content-grid.reverse .content-media { order:2; }
.content-media img { width:100%; max-height:560px; object-fit:cover; box-shadow:var(--shadow); }
.content-copy h2 { margin:0 0 22px; font-size:clamp(30px,4vw,48px); line-height:1.25; }
.content-copy h3 { margin:30px 0 8px; font-size:20px; }
.content-copy p { color:#505759; }
.plain-list { padding:0; list-style:none; border-top:1px solid #c8c7c0; }
.plain-list li { padding:12px 4px; border-bottom:1px solid #c8c7c0; }
.spec-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.spec { padding:24px; background:var(--white); border-left:4px solid var(--accent); }
.spec h3 { margin:0 0 8px; font-size:18px; }
.spec p { margin:0; color:#62686a; font-size:14px; }
.note-box { padding:24px 28px; background:#fff7e6; border:1px solid #e2c985; }

.map-wrap { aspect-ratio:16/8; min-height:360px; background:#ddd; }
.map-wrap iframe { width:100%; height:100%; border:0; }
.info-table { width:100%; border-collapse:collapse; }
.info-table th,.info-table td { padding:18px 14px; text-align:left; border-bottom:1px solid #c8c7c0; vertical-align:top; }
.info-table th { width:150px; font-size:13px; }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; }
.contact-details { padding:36px; color:var(--white); background:var(--ink); }
.contact-details h2 { margin-top:0; }
.contact-details a { color:var(--accent); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-field { margin-bottom:18px; }
.form-field label { display:block; margin-bottom:6px; font-size:13px; font-weight:800; }
.form-field input,.form-field textarea,.form-field select { width:100%; padding:13px 14px; background:var(--white); border:1px solid #b8b8b4; border-radius:0; }
.form-field input:focus,.form-field textarea:focus { outline:2px solid var(--accent); outline-offset:1px; }
.form-field textarea { min-height:180px; resize:vertical; }
.form-notice { padding:16px 20px; margin-bottom:24px; background:#e6f3dd; border-left:4px solid #5d8d43; }
.hp-field { position:absolute !important; left:-9999px !important; }

/* Bulletin board: deliberately large, high-contrast, and simple. */
.board-shell { font-size:18px; }
.board-shell a:focus-visible,.board-shell button:focus-visible,.board-shell input:focus,.board-shell textarea:focus,.board-shell select:focus { outline:4px solid #ffcf33; outline-offset:3px; }
.board-toolbar { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; padding:18px 22px; color:var(--white); background:#17212b; border-left:7px solid var(--accent); }
.board-toolbar strong { display:block; font-size:18px; }
.board-toolbar span { display:block; color:#d3dce5; font-size:14px; }
.board-size-controls { display:flex; gap:8px; }
.board-size-controls button { min-width:92px; min-height:52px; padding:8px 16px; color:var(--white); background:#344657; border:2px solid #8ea3b6; font-weight:800; cursor:pointer; }
.board-size-controls button[aria-pressed="true"] { color:#071b30; background:#fff; border-color:#fff; box-shadow:inset 0 -5px 0 var(--accent); }
.board-notice { margin:0 0 28px; padding:20px 24px; color:#102619; background:#e6f6e8; border:3px solid #419054; font-size:18px; font-weight:800; }
.board-notice-invalid,.board-notice-error,.board-notice-wait { color:#491313; background:#fff1ed; border-color:#bd4538; }
.board-guide { display:grid; grid-template-columns:auto 1fr auto 1fr; gap:16px; align-items:center; margin-bottom:50px; padding:24px; background:#e2e9ef; border:1px solid #b7c4cf; }
.board-guide-number { display:grid; place-items:center; width:54px; height:54px; color:var(--white); background:var(--accent); border-radius:50%; font:900 24px/1 Arial,sans-serif; }
.board-guide strong,.board-guide span { display:block; }
.board-guide strong { font-size:18px; }
.board-guide span { color:#4b5965; font-size:14px; }
.board-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:40px; align-items:start; }
.board-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.board-heading h2 { margin:0; font-size:36px; line-height:1.2; }
.board-topic-list { display:grid; gap:18px; }
.board-topic { padding:28px; background:var(--white); border:2px solid #b8c2cb; border-left:8px solid var(--accent); box-shadow:0 5px 18px rgba(14,35,55,.08); }
.board-topic:hover { border-color:var(--accent); }
.board-topic-meta { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:13px; }
.board-category { display:inline-block; padding:4px 12px; color:var(--white); background:var(--accent-dark); border-radius:3px; font-size:14px; font-weight:800; }
.board-topic time { color:#42505c; font-size:14px; font-weight:700; }
.board-topic h3 { margin:0 0 12px; font-size:25px; line-height:1.45; }
.board-topic h3 a { color:#064f99; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.board-topic p { margin:0; color:#29343d; line-height:1.9; }
.board-topic-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:22px; padding-top:17px; border-top:1px solid #cbd2d8; font-size:15px; }
.board-topic-footer a { color:#064f99; font-weight:900; text-decoration:underline; }
.board-rules { position:sticky; top:110px; padding:28px; color:var(--white); background:#142536; border-top:8px solid var(--accent); }
.board-rules h2 { margin:0 0 18px; font-size:23px; }
.board-rules ul { margin:0; padding-left:1.25em; }
.board-rules li { margin-bottom:13px; }
.board-rules p { color:#c9d4de; font-size:14px; }
.board-rules a { display:block; margin-top:24px; padding:14px; color:#081c2f; background:var(--white); font-weight:900; text-align:center; }
.board-empty { padding:36px; text-align:center; background:#e7edf2; border:2px dashed #8da0b1; }
.board-empty strong { font-size:22px; }
.board-form-section { margin-top:85px; padding:44px; background:#dfe8f0; border:3px solid #9fb1c1; scroll-margin-top:110px; }
.board-form-intro { margin-bottom:28px; }
.board-form-intro h2 { margin:0 0 12px; font-size:36px; }
.board-form-intro p { margin:0; }
.board-form .form-field { margin-bottom:25px; }
.board-form .form-field label { margin-bottom:9px; font-size:18px; }
.board-form .form-field label span { display:inline-block; margin-left:8px; padding:1px 8px; color:var(--white); background:#a22c23; font-size:12px; vertical-align:middle; }
.board-form .form-field input,.board-form .form-field textarea,.board-form .form-field select { min-height:60px; padding:14px 16px; color:#111; background:#fff; border:3px solid #63798b; font-size:18px; }
.board-form .form-field textarea { min-height:240px; line-height:1.8; }
.board-submit-note { margin-bottom:18px; padding:14px 18px; color:#263747; background:#fff; border-left:5px solid var(--accent); font-weight:800; }
.board-submit { width:100%; min-height:70px; font-size:20px; }
.board-back { display:inline-block; margin:0 0 24px; color:#064f99; font-weight:900; text-decoration:underline; }
.board-topic-detail { padding:38px; }
.board-topic-detail h1 { margin:0 0 24px; font-size:clamp(30px,5vw,46px); line-height:1.35; }
.board-message { color:#15212b; font-size:20px; line-height:2; }
.board-replies { margin-top:56px; }
.board-replies h2 { margin-bottom:20px; padding-bottom:14px; font-size:30px; border-bottom:4px solid var(--accent); }
.board-replies h2 span { color:#435363; font-size:17px; }
.board-reply { margin-bottom:16px; padding:25px 28px; background:#fff; border:2px solid #bcc7d0; }
.board-reply-head { display:flex; justify-content:space-between; gap:18px; margin-bottom:15px; padding-bottom:12px; border-bottom:1px solid #ccd4da; }
.board-reply-head strong { color:#064f99; font-size:19px; }
.board-reply-head time { color:#4f5c67; font-size:14px; }
.board-reply p { margin:0; }
.board-reply-form { margin-top:60px; }
.board-shell .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:50px; min-height:50px; margin:25px 3px 0; padding:8px 13px; color:#064f99; background:#fff; border:2px solid #668096; font-weight:900; }
.board-shell .page-numbers.current { color:#fff; background:var(--accent-dark); }
.board-text-large { font-size:21px; }
.board-text-large .board-topic h3 { font-size:29px; }
.board-text-large .board-topic p,.board-text-large .board-message,.board-text-large .board-reply { font-size:22px; }
.board-text-large .board-topic time,.board-text-large .board-topic-footer,.board-text-large .board-category { font-size:17px; }
.board-text-large .board-form input,.board-text-large .board-form textarea,.board-text-large .board-form select { font-size:21px; }

.site-footer { color:var(--white); background:#0b0d0e; }
.footer-main { padding:70px 0 50px; display:grid; grid-template-columns:1.3fr .8fr .9fr; gap:60px; }
.footer-brand p { color:var(--muted); font-size:14px; }
.footer-title { margin:0 0 18px; color:#777e80; font:800 11px/1 Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.footer-links { display:grid; gap:9px; }
.footer-links a { color:#d5d7d7; font-size:14px; }
.footer-links a:hover { color:var(--accent); }
.footer-bottom { padding:20px 0; color:#777e80; border-top:1px solid var(--line); font-size:11px; }
.footer-bottom .container { display:flex; justify-content:space-between; gap:20px; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.button,.quality-mosaic img{transition:none} }

@media (max-width: 1000px) {
  .menu-toggle { display:block; }
  .site-nav { position:fixed; inset:84px 0 0; padding:42px 30px; display:flex; flex-direction:column; align-items:flex-start; gap:22px; color:var(--white); background:rgba(8,68,129,.94); transform:translateX(100%); transition:transform .25s; }
  body.menu-open .site-header { backdrop-filter:none; -webkit-backdrop-filter:none; }
  body.menu-open .site-nav { background:rgba(8,68,129,.94); transform:none; }
  .site-nav a { font-size:18px; }
  .intro-grid { grid-template-columns:1fr 1fr; }
  .intro-cell:first-child { padding-left:30px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .feature { grid-template-columns:1fr; }
  .feature-copy { padding:75px 40px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .content-grid,.contact-layout { gap:42px; }
  .board-layout { grid-template-columns:1fr; }
  .board-rules { position:static; }
}

@media (max-width: 700px) {
  .container,.narrow { width:min(calc(100% - 28px),var(--max)); }
  .header-inner { min-height:70px; }
  .site-brand { min-width:0; }
  .brand-mark { width:42px;height:42px;font-size:19px; }
  .brand-copy strong { font-size:13px; white-space:nowrap; }
  .brand-copy small { display:none; }
  .menu-toggle { display:block !important; position:absolute; z-index:2; top:11px; right:14px; flex:0 0 48px; color:var(--white); background:rgba(16,19,20,.65); }
  .site-nav { inset-top:70px; }
  .hero,.hero-inner { min-height:700px; }
  .hero-inner { padding-top:145px; }
  .hero-media::after { background:linear-gradient(90deg,rgba(8,10,10,.93),rgba(8,10,10,.52)),linear-gradient(0deg,rgba(8,10,10,.9),transparent); }
  .hero h1 { font-size:clamp(48px,17vw,72px); }
  .hero-copy { max-width:100%; font-size:15px; }
  .hero .button-row { display:grid; grid-template-columns:1fr; width:100%; }
  .hero .button { width:100%; }
  .hero-tag { display:none; }
  .intro-grid,.service-grid,.parts-row,.content-grid,.contact-layout { grid-template-columns:1fr; }
  .intro-cell { min-height:105px; padding:22px 18px !important; border-bottom:1px solid var(--line); }
  .section-pad,.content-section { padding:75px 0; }
  .section-head { display:block; margin-bottom:34px; }
  .section-head .section-lead { margin-top:20px; }
  .service-card { min-height:270px; padding:30px; }
  .feature-media { min-height:400px; }
  .feature-copy { padding:65px 20px; }
  .process-grid,.spec-grid { grid-template-columns:1fr; }
  .quality-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:280px 180px; }
  .quality-mosaic figure:first-child { grid-column:1/3; grid-row:auto; }
  .news-item { grid-template-columns:1fr auto; gap:7px; }
  .news-item time { grid-column:1/3; }
  .contact-band-inner { display:block; }
  .phone-link { display:block; margin-top:32px; }
  .page-hero { padding:145px 0 60px; }
  .content-grid.reverse .content-media { order:0; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .footer-main { grid-template-columns:1fr; gap:35px; }
  .footer-bottom .container { display:block; }
  .board-shell { font-size:17px; }
  .board-toolbar { align-items:stretch; flex-direction:column; }
  .board-size-controls button { flex:1; }
  .board-guide { grid-template-columns:auto 1fr; }
  .board-heading { align-items:stretch; flex-direction:column; }
  .board-topic,.board-topic-detail { padding:22px 18px; }
  .board-topic-footer { align-items:flex-start; flex-direction:column; }
  .board-form-section { margin-top:60px; padding:28px 18px; }
  .board-form .form-field input,.board-form .form-field textarea,.board-form .form-field select { font-size:16px; }
  .board-message { font-size:18px; }
  .board-reply-head { flex-direction:column; gap:4px; }
}
