:root { --surface: #f7f9fb; --surface-warm: #fff6f1; --card-border: #e5e9ee; }
.page-hero { position: relative; min-height: 288px; display: grid; align-items: center; overflow: hidden; color: #fff; background: var(--navy); }
.page-hero__image { position: absolute; inset: 0; background: center/cover no-repeat; }
.page-hero__image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,17,32,.88),rgba(7,17,32,.62) 55%,rgba(7,17,32,.38)); }
.page-hero--plain { min-height: 255px; background: linear-gradient(120deg, #0c172c 0%, #1c2d49 100%); }
.page-hero--plain::after { content:""; position:absolute; right:-7%; top:-55%; width:53%; height:210%; border:1px solid rgba(255,255,255,.08); transform:rotate(21deg); }
.page-hero__content { position: relative; padding: 45px 0; }
.page-hero h1 { margin:0; font-family:var(--heading); font-size:clamp(38px,4.5vw,57px); font-weight:900; letter-spacing:-.055em; line-height:1; }
.page-hero__sub { margin:13px 0 0; font-size:14px; letter-spacing:.07em; line-height:1.9; }
.page-main { overflow:hidden; }
.page-section { padding:76px 0; }
.page-section--soft { background:var(--surface); }
.page-section--compact { padding:57px 0; }
.page-reading { width:min(100%, 900px); margin-inline:auto; }
.section-title { display:flex; align-items:center; gap:14px; margin:0 0 25px; color:var(--navy); font-size:clamp(23px,2.5vw,31px); line-height:1.35; letter-spacing:.03em; }
.section-title::before { content:""; width:4px; height:1.16em; background:var(--accent); }
.section-title--center { justify-content:center; }
.section-title--center::before { display:none; }
.section-intro { color:#566173; font-size:13px; line-height:2; }
.section-intro p { margin:0 0 14px; }
.detail-grid { display:grid; gap:22px; }
.detail-grid--2 { grid-template-columns:repeat(2,1fr); }
.detail-grid--3 { grid-template-columns:repeat(3,1fr); }
.feature-card { padding:26px 25px; background:#fff; border:1px solid #3f6aa3; box-shadow:0 8px 18px rgba(20,37,59,.055); }
.feature-card__icon { width:37px; height:37px; display:grid; place-items:center; margin-bottom:14px; border:1px solid #ffbd91; border-radius:50%; color:var(--accent); font-size:15px; font-weight:800; }
.feature-card h3 { margin:0; color:var(--navy); font-size:15px; letter-spacing:.03em; }
.feature-card p { margin:8px 0 0; color:#687383; font-size:12px; line-height:1.8; }
.price-table-wrap { overflow-x:auto; border:1px solid var(--card-border); box-shadow:0 8px 20px rgba(20,37,59,.05); background:#fff; }
.price-table { width:100%; min-width:600px; border-collapse:collapse; text-align:left; font-size:12px; }
.price-table th { padding:13px 18px; background:var(--navy); color:#fff; font-size:12px; font-weight:700; }
.price-table td { padding:14px 18px; border-bottom:1px solid var(--card-border); color:#566172; }
.price-table tr:last-child td { border-bottom:0; }
.price-table td:nth-child(2) { color:var(--navy); font-weight:800; }
.price-note { margin:13px 0 0; color:#7a8492; font-size:11px; text-align:center; }
.campaign { margin:8px 0 0; color:var(--accent); font-size:14px; font-weight:900; letter-spacing:.03em; text-align:center; }
.case-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.case-card { overflow:hidden; border:1px solid var(--card-border); background:#fff; box-shadow:0 8px 20px rgba(20,37,59,.06); }
.case-card img { width:100%; height:315px; object-fit:cover; }
.case-card:nth-child(1) img { object-position:center 33%; }
.case-card__body { padding:18px 21px 20px; }
.case-card__body h3 { margin:0; font-size:15px; color:var(--navy); }
.case-card__body p { margin:7px 0 0; color:#667181; font-size:12px; line-height:1.8; }
.process { width:min(100%,850px); margin:0 auto; }
.process-row { display:grid; grid-template-columns:43px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--card-border); }
.process-row:last-child { border-bottom:0; }
.process-num { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--accent); color:#fff; font-family:var(--heading); font-weight:900; font-size:13px; }
.process-row h3 { margin:1px 0 3px; color:var(--navy); font-size:14px; }
.process-row p { margin:0; color:#667181; font-size:12px; line-height:1.8; }
.faq { border-top:1px solid var(--card-border); }
.faq-item { border-bottom:1px solid var(--card-border); }
.faq-trigger { width:100%; min-height:59px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 4px; border:0; background:transparent; color:var(--navy); cursor:pointer; text-align:left; font-family:var(--body); font-size:13px; font-weight:700; }
.faq-trigger::before { content:"Q"; flex:0 0 24px; color:var(--accent); font-family:var(--heading); font-size:16px; }
.faq-trigger span { flex:1; }
.faq-trigger svg { flex:0 0 16px; width:16px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .2s; }
.faq-trigger[aria-expanded="true"] svg { transform:rotate(180deg); }
.faq-answer { display:none; padding:0 40px 17px; color:#667181; font-size:12px; line-height:1.85; }
.faq-answer.is-open { display:block; }
.detail-cta { padding:61px 0; color:#fff; background:var(--navy); text-align:center; }
.detail-cta h2 { margin:0; font-size:clamp(23px,2.6vw,32px); letter-spacing:.04em; }
.detail-cta p { margin:7px 0 20px; color:#d6dde8; font-size:13px; }
.detail-cta__buttons { display:flex; justify-content:center; flex-wrap:wrap; gap:11px; }
.detail-cta .button--ghost { border-color:#8e99a9; }
.info-figure { margin:31px 0 0; border:1px solid var(--card-border); background:#fff; box-shadow:0 8px 20px rgba(20,37,59,.055); }
.info-figure img { width:100%; max-height:470px; object-fit:cover; }
.info-figure figcaption { padding:18px 21px; color:#5f6b7b; font-size:12px; line-height:1.8; }
.info-figure figcaption strong { display:block; margin-bottom:4px; color:var(--navy); font-size:14px; }
.media-split { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.media-split__media img { width:100%; min-height:340px; object-fit:cover; }
.media-split__content h2 { margin:0 0 13px; color:var(--navy); font-size:22px; line-height:1.5; }
.media-split__content p { margin:0 0 16px; color:#5f6b7a; font-size:13px; line-height:2; }
.check-list { margin:19px 0 0; padding:17px 20px; background:var(--surface-warm); color:#596373; font-size:12px; line-height:2; }
.check-list li { list-style:none; }
.check-list li::before { content:"✓"; display:inline-block; margin-right:9px; color:var(--accent); font-weight:900; }
.check-list ul { margin:0; padding:0; }
.inspection-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.inspection-card { border:1px solid #3f6aa3; background:#fff; }
.inspection-card h3 { margin:0; padding:13px 18px; border-bottom:1px solid #b7bcc1; background:#f0f3f6; color:var(--navy); font-size:14px; }
.inspection-card__body { padding:16px 18px; }
.inspection-card h4 { margin:0 0 5px; color:#5e6877; font-size:11px; }
.inspection-card ul { margin:0 0 13px; padding-left:1.2em; color:#667181; font-size:11px; line-height:1.9; }
.inspection-card ul:last-child { margin-bottom:0; }
.inspection-card--wide { grid-column:1 / -1; }
.coating-list { display:grid; gap:17px; }
.coating-card { border:1px solid var(--card-border); background:#fff; box-shadow:0 6px 17px rgba(20,37,59,.045); }
.coating-card__top { display:grid; grid-template-columns:1.5fr .7fr .65fr; gap:20px; align-items:start; padding:23px 27px 18px; }
.coating-card h3 { margin:0 0 8px; color:var(--navy); font-size:16px; }
.coating-card p { margin:0; color:#687383; font-size:12px; line-height:1.8; }
.coating-meta { padding:3px 0; border-left:1px solid var(--card-border); text-align:center; }
.coating-meta span { display:block; color:#8a94a1; font-size:10px; }
.coating-meta strong { display:block; margin-top:4px; color:var(--navy); font-size:14px; }
.coating-card__benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:11px 27px; border-top:1px solid var(--card-border); background:#fbfcfd; color:#687383; font-size:10px; }
.coating-card__benefits span::before { content:"○"; margin-right:5px; color:var(--accent); font-weight:900; }
.benefit-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.benefit-card { padding:19px 20px; border:1px solid var(--card-border); background:#fff; }
.benefit-card h3 { margin:0 0 4px; color:var(--navy); font-size:14px; }
.benefit-card h3::before { content:"○"; margin-right:8px; color:var(--accent); }
.benefit-card p { margin:0; color:#6b7584; font-size:12px; line-height:1.75; }
.aftercare { padding:27px 30px; border:1px solid var(--card-border); background:#fff; }
.aftercare + .aftercare { margin-top:14px; }
.aftercare h3 { margin:0 0 7px; color:var(--navy); font-size:15px; }
.aftercare p { margin:0 0 9px; color:#657080; font-size:12px; line-height:1.8; }
.aftercare ul { display:grid; grid-template-columns:repeat(3,1fr); gap:8px 15px; margin:0; padding:0; color:#657080; font-size:11px; }
.aftercare li { list-style:none; }.aftercare li::before { content:"✓"; margin-right:5px; color:var(--accent); }
.company-table { width:100%; border-collapse:collapse; border:1px solid #b7b7b7; font-size:12px; }
.company-table th,.company-table td { padding:15px 20px; border:1px solid #b7b7b7; text-align:left; vertical-align:top; line-height:1.8; }
.company-table th { width:25%; background:#f4f7f9; color:var(--navy); font-weight:800; }
.company-table td { color:#5f6b7a; }.company-table td ul { margin:0; padding-left:1.3em; }
.photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.photo-card { margin:0; }.photo-card img { width:100%; aspect-ratio:1.5; object-fit:cover; border-radius:6px; box-shadow:0 8px 20px rgba(20,37,59,.09); }.photo-card figcaption { margin-top:8px; color:#6f7987; font-size:11px; text-align:center; }
.photo-card--facility img { aspect-ratio:32 / 15; }
.recruit-location-photo { margin:32px 0 0; }.recruit-location-photo img { width:100%; aspect-ratio:1725 / 836; object-fit:cover; border-radius:6px; box-shadow:0 8px 20px rgba(20,37,59,.09); }.recruit-location-photo figcaption { margin-top:8px; color:#6f7987; font-size:11px; text-align:center; }
.access-band { background:#f5f8fa; }.access-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:45px; align-items:center; }.access-list { margin:0; }.access-list div { display:grid; grid-template-columns:145px 1fr; gap:10px; padding:14px 0; border-bottom:1px solid var(--card-border); }.access-list dt { color:var(--navy); font-size:12px; font-weight:800; }.access-list dt::before { content:"●"; margin-right:8px; color:var(--accent); font-size:9px; }.access-list dd { margin:0; color:#647080; font-size:12px; line-height:1.8; }.recruit-intro { max-width:810px; margin:auto; text-align:center; }.recruit-intro p { color:#5f6b7b; font-size:13px; line-height:2; }.job-card { max-width:840px; margin:auto; border:1px solid var(--card-border); background:#fff; box-shadow:0 8px 22px rgba(20,37,59,.06); }.job-card__title { padding:14px 22px; background:var(--navy); color:#fff; font-size:15px; font-weight:800; }.job-card__title::before { content:"●"; margin-right:9px; color:var(--accent); }.job-table { width:100%; border-collapse:collapse; font-size:12px; }.job-table th,.job-table td { padding:13px 18px; border-bottom:1px solid var(--card-border); text-align:left; vertical-align:top; line-height:1.8; }.job-table th { width:24%; background:#f1f4f6; color:var(--navy); }.job-table td { color:#616c7a; }.job-table ul { margin:0; padding-left:1.25em; }.apply-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:760px; margin:24px auto 0; }.apply-card { padding:25px 20px; border:1px solid var(--card-border); background:#fff; text-align:center; }.apply-card__symbol { width:35px; height:35px; display:grid; place-items:center; margin:0 auto 10px; border:1px solid #ffbd91; border-radius:50%; color:var(--accent); font-weight:900; }.apply-card h3 { margin:0; color:var(--navy); font-size:14px; }.apply-card a { display:block; margin:5px 0; color:var(--accent); font-family:var(--heading); font-size:18px; font-weight:900; }.apply-card p { margin:0; color:#77818e; font-size:11px; }.nav-contact--current { background:var(--accent-dark); }
@media (max-width:760px) { .page-hero { min-height:220px; }.page-hero__content { padding:36px 0; }.page-hero h1 { font-size:36px; }.page-hero__sub { font-size:12px; }.page-section { padding:57px 0; }.detail-grid--2,.detail-grid--3,.media-split,.case-grid,.photo-grid,.access-grid,.inspection-grid,.apply-cards { grid-template-columns:1fr; }.feature-card { padding:22px 20px; }.media-split { gap:24px; }.media-split__media img { min-height:0; max-height:360px; }.media-split__content { order:-1; }.case-card img { height:260px; }.inspection-card--wide { grid-column:auto; }.coating-card__top { grid-template-columns:1fr; gap:13px; padding:21px 19px 16px; }.coating-meta { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-top:1px solid var(--card-border); border-left:0; text-align:left; }.coating-meta strong { margin:0; }.coating-card__benefits { grid-template-columns:1fr 1fr; padding:11px 19px; }.benefit-grid { grid-template-columns:1fr; }.aftercare { padding:22px 19px; }.aftercare ul { grid-template-columns:1fr; }.company-table { font-size:11px; }.company-table th,.company-table td { padding:12px 10px; }.company-table th { width:30%; }.access-list div { grid-template-columns:1fr; gap:3px; }.job-table th,.job-table td { padding:11px 10px; }.job-table th { width:30%; }.detail-cta { padding:52px 0; }.faq-answer { padding-left:28px; }.price-table th,.price-table td { padding:12px 14px; } }

.price-contact { padding:31px 28px; border:1px solid var(--card-border); background:var(--surface-warm); text-align:center; }
.price-contact p { margin:0 0 17px; color:#5f6b7b; font-size:14px; }


/* Readability and interaction refinement — 2026-09-15 */
.page-hero h1 { font-family:var(--heading); font-size:clamp(40px,4.7vw,60px); font-weight:700; letter-spacing:-.025em; }
.page-hero__sub { color:#f4f7fb; font-size:16px; line-height:1.95; }
.page-section { padding:82px 0; }
.section-title { color:#14243a; font-family:var(--heading); font-size:clamp(26px,2.7vw,34px); font-weight:700; letter-spacing:.01em; }
.section-intro { color:#3e4e63; font-size:15px; line-height:2; }
.feature-card { transition:border-color .32s var(--ease-out), box-shadow .32s var(--ease-spring), transform .32s var(--ease-spring); }
.feature-card:hover { border-color:#ffc19b; box-shadow:0 16px 31px rgba(20,37,59,.11); transform:translateY(-4px); }
.feature-card h3 { font-size:17px; font-weight:700; }
.feature-card p { color:#405065; font-size:14px; line-height:1.9; }
.price-table { font-size:14px; }
.price-table th { font-size:14px; font-weight:700; }
.price-table td { color:#3d4d61; }
.price-note { color:#5b6a7c; font-size:12px; }
.campaign { font-size:15px; font-weight:700; }
.case-card { transition:box-shadow .35s var(--ease-spring), transform .35s var(--ease-spring); }
.case-card:hover { box-shadow:0 18px 35px rgba(20,37,59,.13); transform:translateY(-4px); }
.case-card img { transition:transform .55s var(--ease-out), filter .55s var(--ease-out); }
.case-card:hover img { transform:scale(1.04); filter:saturate(1.04); }
.case-card__body h3 { font-size:17px; font-weight:700; }
.case-card__body p { color:#405065; font-size:14px; line-height:1.9; }
.process-row { transition:background .3s var(--ease-out), transform .3s var(--ease-spring); }
.process-row:hover { background:#f8fafc; transform:translateX(4px); }
.process-row h3 { font-size:16px; font-weight:700; }
.process-row p { color:#405065; font-size:14px; line-height:1.9; }
.faq-trigger { color:#1f3047; font-size:15px; font-weight:700; transition:color .3s var(--ease-out), background .3s var(--ease-out), padding .3s var(--ease-out); }
.faq-trigger:hover { padding-inline:10px; background:#fafcfd; color:var(--accent-dark); }
.faq-trigger svg { transition:transform .32s var(--ease-spring); }
.faq-answer { color:#405065; font-size:14px; line-height:1.9; }
.detail-cta h2 { font-family:var(--heading); font-size:clamp(26px,2.8vw,34px); font-weight:700; }
.detail-cta p { color:#eef3f8; font-size:15px; line-height:1.9; }
.info-figure { transition:box-shadow .34s var(--ease-out), transform .34s var(--ease-spring); }
.info-figure:hover { box-shadow:0 17px 33px rgba(20,37,59,.12); transform:translateY(-3px); }
.info-figure figcaption { color:#405065; font-size:14px; line-height:1.9; }
.info-figure figcaption strong { font-size:16px; font-weight:700; }
.media-split__content h2 { font-family:var(--heading); color:#14243a; font-size:25px; font-weight:700; }
.media-split__content p { color:#405065; font-size:15px; line-height:2; }
.check-list { color:#3d4d61; font-size:14px; line-height:2; }
.inspection-card { transition:box-shadow .32s var(--ease-out), transform .32s var(--ease-spring); }
.inspection-card:hover { box-shadow:0 13px 26px rgba(20,37,59,.1); transform:translateY(-3px); }
.inspection-card h3 { font-size:16px; font-weight:700; }
.inspection-card h4 { color:#405065; font-size:13px; }
.inspection-card ul { color:#405065; font-size:13px; line-height:1.95; }
.coating-card { transition:box-shadow .32s var(--ease-out), transform .32s var(--ease-spring); }
.coating-card:hover { box-shadow:0 15px 30px rgba(20,37,59,.11); transform:translateY(-3px); }
.coating-card h3 { font-size:18px; font-weight:700; }
.coating-card p { color:#405065; font-size:14px; line-height:1.9; }
.coating-meta span { color:#5b697a; font-size:12px; }
.coating-meta strong { font-size:16px; font-weight:700; }
.coating-card__benefits { color:#405065; font-size:12px; }
.benefit-card { transition:border-color .32s var(--ease-out), box-shadow .32s var(--ease-out), transform .32s var(--ease-spring); }
.benefit-card:hover { border-color:#ffc19b; box-shadow:0 12px 24px rgba(20,37,59,.1); transform:translateY(-3px); }
.benefit-card h3 { font-size:16px; font-weight:700; }
.benefit-card p { color:#405065; font-size:14px; line-height:1.9; }
.aftercare { transition:box-shadow .32s var(--ease-out), transform .32s var(--ease-spring); }
.aftercare:hover { box-shadow:0 12px 24px rgba(20,37,59,.1); transform:translateY(-3px); }
.aftercare h3 { font-size:17px; font-weight:700; }
.aftercare p, .aftercare ul { color:#405065; font-size:14px; line-height:1.9; }
.company-table { font-size:14px; }
.company-table th { font-weight:700; }
.company-table td { color:#3e4e63; }
.photo-card { transition:transform .36s var(--ease-spring); }
.photo-card:hover { transform:translateY(-4px); }
.photo-card img { transition:box-shadow .36s var(--ease-out), filter .5s var(--ease-out); }
.photo-card:hover img { box-shadow:0 16px 30px rgba(20,37,59,.15); filter:saturate(1.04); }
.photo-card figcaption, .recruit-location-photo figcaption { color:#4d5d70; font-size:12px; }
.access-list dt { font-size:14px; font-weight:700; }
.access-list dd { color:#405065; font-size:14px; line-height:1.9; }
.recruit-intro p { color:#405065; font-size:15px; line-height:2; }
.job-card { transition:box-shadow .34s var(--ease-out), transform .34s var(--ease-spring); }
.job-card:hover { box-shadow:0 17px 33px rgba(20,37,59,.12); transform:translateY(-3px); }
.job-card__title { font-size:17px; font-weight:700; }
.job-table { font-size:14px; }
.job-table th { color:#1f3047; font-weight:700; }
.job-table td { color:#405065; }
.apply-card { transition:border-color .32s var(--ease-out), box-shadow .32s var(--ease-out), transform .32s var(--ease-spring); }
.apply-card:hover { border-color:#ffc19b; box-shadow:0 13px 27px rgba(20,37,59,.11); transform:translateY(-4px); }
.apply-card h3 { font-size:16px; font-weight:700; }
.apply-card a { font-size:20px; font-weight:700; transition:color .3s var(--ease-out), transform .3s var(--ease-spring); }
.apply-card a:hover { color:var(--accent-dark); transform:translateY(-1px); }
.apply-card p { color:#506073; font-size:12px; }
.price-contact p { color:#3e4e63; font-size:16px; }

@media (max-width:760px) {
  .page-section { padding:64px 0; }
  .page-hero h1 { font-size:38px; }
  .page-hero__sub, .section-intro, .media-split__content p, .recruit-intro p { font-size:14px; }
  .feature-card p, .case-card__body p, .process-row p, .faq-answer, .info-figure figcaption, .benefit-card p, .aftercare p, .aftercare ul, .access-list dd { font-size:13px; }
  .feature-card:hover, .case-card:hover, .inspection-card:hover, .coating-card:hover, .benefit-card:hover, .aftercare:hover, .job-card:hover, .apply-card:hover, .photo-card:hover, .info-figure:hover { transform:none; }
  .process-row:hover { transform:none; }
}


/* Detail body copy readability refinement — 2026-09-15 */
.section-intro { color:#2d3d52; font-size:16px; line-height:2; }
.feature-card p { color:#2d3d52; font-size:16px; line-height:1.95; }
.price-table, .price-table th { font-size:16px; }
.price-table td { color:#2d3d52; }
.price-note { color:#405168; font-size:14px; }
.case-card__body p { color:#2d3d52; font-size:16px; line-height:1.95; }
.process-row p { color:#2d3d52; font-size:16px; line-height:1.95; }
.faq-trigger { font-size:16px; }
.faq-answer { color:#2d3d52; font-size:16px; line-height:1.95; }
.detail-cta p { color:#f6f8fb; font-size:16px; line-height:1.95; }
.info-figure figcaption { color:#2d3d52; font-size:16px; line-height:1.95; }
.media-split__content p { color:#2d3d52; font-size:16px; line-height:2; }
.check-list { color:#2d3d52; font-size:16px; line-height:2; }
.inspection-card h4 { color:#2d3d52; font-size:15px; }
.inspection-card ul { color:#2d3d52; font-size:16px; line-height:1.95; }
.coating-card p { color:#2d3d52; font-size:16px; line-height:1.95; }
.coating-card__benefits { color:#2d3d52; font-size:15px; }
.benefit-card p { color:#2d3d52; font-size:16px; line-height:1.95; }
.aftercare p, .aftercare ul { color:#2d3d52; font-size:16px; line-height:1.95; }
.company-table { font-size:16px; }
.company-table td { color:#2d3d52; }
.photo-card figcaption, .recruit-location-photo figcaption { color:#405168; font-size:14px; }
.access-list dd { color:#2d3d52; font-size:16px; line-height:1.95; }
.recruit-intro p { color:#2d3d52; font-size:16px; line-height:2; }
.job-table { font-size:16px; }
.job-table td { color:#2d3d52; }
.apply-card p { color:#405168; font-size:14px; }
.price-contact p { color:#2d3d52; font-size:16px; }

@media (max-width:760px) {
  .page-hero__sub, .section-intro, .media-split__content p, .recruit-intro p, .feature-card p, .case-card__body p, .process-row p, .faq-answer, .info-figure figcaption, .benefit-card p, .aftercare p, .aftercare ul, .access-list dd, .inspection-card ul, .coating-card p { font-size:16px; }
}


/* Smooth FAQ accordion transition — 2026-09-15 */
.faq-answer {
  display:block;
  max-height:0;
  overflow:hidden;
  padding:0 40px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-7px);
  transition:max-height .52s var(--ease-spring), padding .52s var(--ease-spring), opacity .28s var(--ease-out), transform .44s var(--ease-spring), visibility 0s linear .52s;
}
.faq-answer.is-open {
  max-height:20rem;
  padding:0 40px 20px;
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:max-height .52s var(--ease-spring), padding .52s var(--ease-spring), opacity .3s var(--ease-out) .08s, transform .44s var(--ease-spring), visibility 0s;
}
.faq-trigger { transition:color .3s var(--ease-out), background .3s var(--ease-out), padding .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.faq-trigger[aria-expanded="true"] { color:var(--accent-dark); background:#fff8f2; box-shadow:inset 3px 0 0 var(--accent); }
.faq-trigger[aria-expanded="true"]::before { transform:scale(1.08); }
.faq-trigger::before { transition:transform .35s var(--ease-spring); }

@media (max-width:760px) {
  .faq-answer { padding-inline:28px; }
  .faq-answer.is-open { padding:0 28px 19px; }
}


/* Maintenance pricing disclosure — 2026-09-16 */
.maintenance-pricing-section { background:linear-gradient(180deg, #fff 0%, #f7fafc 100%); }
.maintenance-pricing__intro { margin:0 0 24px; color:#2d3d52; font-size:16px; line-height:1.95; }
.price-disclosure { border:1px solid #d6dee7; background:#fff; box-shadow:0 10px 26px rgba(20,37,59,.08); }
.price-disclosure__trigger { width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; border:0; background:#162b43; color:#fff; cursor:pointer; font-family:var(--body); font-size:18px; font-weight:700; letter-spacing:.03em; text-align:left; transition:background .32s var(--ease-out), color .32s var(--ease-out), box-shadow .32s var(--ease-out); }
.price-disclosure__trigger:hover { background:#203a58; }
.price-disclosure__trigger[aria-expanded="true"] { background:#f06400; box-shadow:inset 4px 0 0 #acd55a; }
.price-disclosure__icon { width:31px; height:31px; display:grid; flex:0 0 31px; place-items:center; border:1px solid rgba(255,255,255,.68); border-radius:50%; font-family:Arial, sans-serif; font-size:25px; font-weight:400; line-height:1; transition:transform .42s var(--ease-spring), background .3s var(--ease-out); }
.price-disclosure__trigger:hover .price-disclosure__icon { background:rgba(255,255,255,.12); }
.price-disclosure__trigger[aria-expanded="true"] .price-disclosure__icon { transform:rotate(180deg); background:rgba(255,255,255,.18); }
.price-disclosure__panel { display:grid; grid-template-rows:0fr; overflow:hidden; opacity:.12; transition:grid-template-rows .58s var(--ease-spring), opacity .32s var(--ease-out); }
.price-disclosure__panel > * { min-height:0; overflow:hidden; }
.price-disclosure__panel.is-open { grid-template-rows:1fr; opacity:1; }
.maintenance-pricing { padding:30px 27px 34px; }
.maintenance-pricing__title { margin:36px 0 13px; padding-bottom:10px; border-bottom:3px solid var(--accent); color:#162b43; font-family:var(--heading); font-size:24px; font-weight:700; letter-spacing:.02em; }
.maintenance-pricing__title:first-child { margin-top:0; }
.maintenance-pricing__tax-note { margin:-4px 0 10px; color:#405168; font-size:14px; text-align:right; }
.maintenance-pricing__table-wrap { width:100%; overflow-x:auto; margin-bottom:24px; border:1px solid #cbd5df; border-radius:3px; box-shadow:0 5px 15px rgba(20,37,59,.07); }
.maintenance-pricing__table { width:100%; min-width:660px; border-collapse:collapse; background:#fff; color:#2d3d52; font-size:15px; line-height:1.55; text-align:center; }
.maintenance-pricing__table th, .maintenance-pricing__table td { padding:13px 10px; border:1px solid #cbd5df; vertical-align:middle; }
.maintenance-pricing__table thead th { background:#162b43; color:#fff; font-weight:700; }
.maintenance-pricing__table .maintenance-pricing__sub-header th { background:#e8eef4; color:#2d3d52; font-size:13px; font-weight:600; }
.maintenance-pricing__table tbody th { width:23%; background:#f2f6f9; color:#20354d; font-weight:700; text-align:left; }
.maintenance-pricing__table td { color:#2d3d52; }
.maintenance-pricing__price { color:#183116 !important; font-weight:800; white-space:nowrap; }
.maintenance-pricing__highlight th, .maintenance-pricing__highlight td { background:#fff3e8; color:#8f3600; font-weight:800; }
.maintenance-pricing__highlight .maintenance-pricing__price { color:#8f3600 !important; }
.maintenance-pricing__privilege { margin:30px 0 38px; padding:25px; border:2px dashed #f06400; background:#fffaf6; }
.maintenance-pricing__privilege h4 { margin:0 0 17px; padding-bottom:10px; border-bottom:1px solid #f5c9ad; color:#c94e00; font-size:20px; font-weight:700; }
.maintenance-pricing__privilege-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:13px; margin-bottom:15px; }
.maintenance-pricing__privilege-grid > div { display:flex; flex-direction:column; gap:5px; padding:14px 15px; border:1px solid #f0d5c4; background:#fff; color:#2d3d52; }
.maintenance-pricing__privilege-grid strong { font-size:16px; }
.maintenance-pricing__privilege-grid span { color:#c94e00; font-size:18px; font-weight:800; }
.maintenance-pricing__privilege-grid small { color:#405168; font-size:13px; }
.maintenance-pricing__privilege ul, .maintenance-pricing__notes { margin:0; padding-left:1.35em; color:#2d3d52; font-size:15px; line-height:1.9; }
.maintenance-pricing__subtitle { margin:27px 0 11px; color:#20354d; font-size:19px; font-weight:700; }
.maintenance-pricing__table-wrap--narrow { width:min(100%, 610px); }
.maintenance-pricing__table--battery { min-width:460px; }
.maintenance-pricing__table--battery tbody th { width:auto; text-align:center; }
.maintenance-pricing__notes { margin:-5px 0 34px; }

@media (max-width:760px) {
  .maintenance-pricing__intro { font-size:16px; }
  .price-disclosure__trigger { padding:18px 16px; font-size:17px; }
  .price-disclosure__icon { width:28px; height:28px; flex-basis:28px; font-size:23px; }
  .maintenance-pricing { padding:24px 13px 27px; }
  .maintenance-pricing__title { margin:31px 0 12px; font-size:21px; }
  .maintenance-pricing__tax-note { font-size:13px; }
  .maintenance-pricing__table-wrap { margin-bottom:21px; }
  .maintenance-pricing__table { min-width:620px; font-size:14px; }
  .maintenance-pricing__table th, .maintenance-pricing__table td { padding:11px 8px; }
  .maintenance-pricing__table .maintenance-pricing__sub-header th { font-size:12px; }
  .maintenance-pricing__privilege { padding:19px 14px; margin:25px 0 32px; }
  .maintenance-pricing__privilege h4 { font-size:19px; }
  .maintenance-pricing__privilege-grid { grid-template-columns:1fr; }
  .maintenance-pricing__privilege-grid strong { font-size:16px; }
  .maintenance-pricing__privilege ul, .maintenance-pricing__notes { font-size:15px; }
  .maintenance-pricing__subtitle { font-size:18px; }
}


/* Recruitment hero crop: displays mouth/chin and workwear without the upper face. */
.page-hero--recruit .page-hero__image { background-position:center bottom; }

/* Recruitment work description formatting — 2026-10-04 */
.job-description p { margin:0; }
.job-description p + p { margin-top:13px; }

/* Recruitment salary formatting — 2026-10-04 */
.job-salary p { margin:0; }
.job-salary p + p { margin-top:10px; }

/* Recruitment qualification formatting — 2026-10-04 */
.job-qualifications p { margin:0; }
.job-qualifications p + p { margin-top:10px; }

/* Recruitment qualification remarks — 2026-10-04 */
.job-qualification-remarks { margin-top:12px; padding:10px 12px; border:1px solid #b7bcc1; background:#f7f9fb; }
.job-qualification-remarks__title { margin:0 0 4px; color:#1f3047; font-size:13px; font-weight:700; letter-spacing:.06em; }
.job-qualification-remarks__body { margin:0; color:#405168; font-size:14px; line-height:1.75; }
@media (max-width:760px) { .job-qualification-remarks { padding:9px 10px; } .job-qualification-remarks__body { font-size:13px; } }
