.service { color: inherit; }
.header { grid-template-columns:auto 1fr }
.header .nav { justify-self:end;gap:clamp(14px,1.8vw,28px) }
.header .header-contact { display:none }
.text-link { display:inline-flex;gap:14px;margin-top:32px;padding-bottom:8px;border-bottom:1px solid #222;font-size:13px;font-weight:600;letter-spacing:.08em }
.text-link span,.page-kicker { color:var(--brand-pink) }
.subpage { padding-top:82px }
.page-hero { min-height:58vh;display:flex;flex-direction:column;justify-content:flex-end;padding:90px 8vw 70px;background:var(--brand-ink);color:#fff }
.page-hero .page-kicker { margin:0 0 20px;font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.3em }
.page-hero h1 { max-width:1050px;margin:0;font-family:var(--font-display);font-size:clamp(52px,7vw,108px);font-weight:500;line-height:1.05;letter-spacing:-.05em;text-wrap:balance }
.page-hero p:last-child { max-width:680px;margin:36px 0 0;color:#aaa;font-size:17px }
.page-section { padding:110px 8vw }
.page-section.soft { background:var(--soft) }
.page-section.dark { background:var(--brand-ink);color:#fff }
.page-section h2 { margin:0 0 52px;font-family:var(--font-display);font-size:clamp(34px,4.5vw,66px);font-weight:500;line-height:1.2;letter-spacing:-.04em;text-wrap:balance }
.page-section>p { max-width:760px;color:#555;font-size:17px }
.page-section.dark>p { color:#aaa }
.company-table { max-width:980px;margin-top:50px;border-top:1px solid #bbb }
.company-table div { display:grid;grid-template-columns:210px 1fr;gap:28px;padding:22px 0;border-bottom:1px solid #ddd }
.company-table dt { color:#777;font-size:12px }
.company-table dd { margin:0;font-weight:500 }
.page-cards { display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bbb }
.page-card { min-height:310px;padding:36px 28px;border-right:1px solid #ccc }
.page-card:last-child { border-right:0 }
.page-card span { color:var(--brand-pink);font-family:var(--font-display);font-size:10px;letter-spacing:.2em }
.page-card h3 { margin:70px 0 22px;font-family:var(--font-display);font-size:27px;font-weight:500;line-height:1.35 }
.page-card p { color:#666;font-size:14px }
.message-wrap { display:grid;grid-template-columns:220px 1fr;gap:8vw;max-width:1100px }
.message-name { font-weight:600 }
.message-body { max-width:720px;font-size:17px }
.message-body p { margin-bottom:1.8em }
.news-list { border-top:1px solid #aaa }
.news-item { display:grid;grid-template-columns:150px 150px 1fr;gap:24px;padding:25px 0;border-bottom:1px solid #ddd }
.news-item time,.news-item span { color:#777;font-size:12px }
.recruit-note { max-width:850px;padding:50px;border:1px solid #bbb;background:#fff }
.contact-layout { display:grid;grid-template-columns:.75fr 1fr;gap:9vw }
.contact-form { display:grid;gap:18px }
.contact-form label { display:grid;gap:8px;font-size:12px;font-weight:600 }
.contact-form input,.contact-form select,.contact-form textarea { width:100%;padding:15px 4px;border:0;border-bottom:1px solid #999;border-radius:0;background:transparent;color:inherit;font:inherit }
.contact-form textarea { min-height:130px;resize:vertical }
.contact-form button { justify-self:start;margin-top:16px;padding:15px 30px;border:0;background:var(--brand-ink);color:#fff;font:inherit;font-size:13px;cursor:pointer }
.form-note { color:#666;font-size:12px }
@media(max-width:900px){.subpage{padding-top:68px}.page-hero{min-height:48vh;padding:75px 6vw 58px}.page-section{padding:85px 6vw}.page-cards{grid-template-columns:1fr}.page-card{min-height:auto;border-right:0;border-bottom:1px solid #ccc}.page-card h3{margin-top:42px}.message-wrap,.contact-layout{grid-template-columns:1fr}.news-item{grid-template-columns:110px 1fr}.news-item span{display:none}}
@media(max-width:560px){.page-hero h1{font-size:48px}.company-table div{grid-template-columns:1fr;gap:6px}.recruit-note{padding:30px 24px}}
