/*
Theme Name: KIBACO Corporate
Theme URI: https://example.com/kibaco-corporate
Author: Demo Studio
Description: 地域に根ざす建設会社・工務店向けの企業ブランディングサイトテーマです。
Version: 2.1.1
Text Domain: kibaco-corporate
*/

:root {
	--blue: #0867df;
	--blue-dark: #0556bb;
	--navy: #092854;
	--navy-deep: #061d42;
	--paper: #f3f5f5;
	--line: #d7e0e5;
	--text: #18304f;
	--muted: #708098;
	--white: #fff;
	--mono: "DM Mono", monospace;
	--sans: "DM Sans", "Noto Sans JP", sans-serif;
	--serif: "Noto Serif JP", serif;
}

@media (max-width: 980px) {
	.recruit-sitebar { grid-template-columns: 166px minmax(0,1fr); }
	.recruit-sitebar__links { overflow-x: auto; justify-content: flex-start; }
	.recruit-sitebar__links a { min-width: 103px; }
	.recruit-sitebar__corporate { display: none; }
	.recruit-work-style > div:last-child { padding-right: 7vw; padding-left: 7vw; }
	.recruit-interviews > div { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 800px) {
	.recruit-sitebar { position: relative; display: block; min-height: 0; }
	.recruit-sitebar__brand { min-height: 62px; padding: 13px 25px; }
	.recruit-sitebar__links { border-top: 1px solid rgba(3,34,75,.1); }
	.recruit-sitebar__links a { min-width: 93px; min-height: 52px; padding: 0 11px; font-size: 10px; }
	.recruit-home-hero, .recruit-page-hero { min-height: 500px; padding: 85px 25px; }
	.recruit-home-hero h1 { font-size: 43px; }
	.recruit-page-hero h1, .recruit-entry-hero h1 { font-size: 39px; }
	.recruit-scroll-cue { right: 25px; bottom: 28px; }
	.recruit-home-news { grid-template-columns: 1fr; width: calc(100% - 50px); }
	.recruit-home-news > p { min-height: 52px; }
	.recruit-home-news a { grid-template-columns: 76px 1fr 17px; min-height: 76px; gap: 9px; border-top: 1px solid var(--line); border-left: 0; font-size: 11px; }
	.recruit-message, .recruit-vision, .recruit-entry-panel { grid-template-columns: 1fr; width: calc(100% - 50px); padding: 80px 0; gap: 18px; }
	.recruit-message > div:last-child, .recruit-vision > p { padding-top: 0; margin-top: 8px; }
	.recruit-message h2, .recruit-work-style h2, .recruit-vision h2, .recruit-career h2, .recruit-entry-panel h2 { font-size: 31px; }
	.recruit-explore, .recruit-home-people, .recruit-mission, .recruit-numbers, .recruit-interviews { padding: 77px 25px; }
	.recruit-explore__grid { grid-template-columns: 1fr; }
	.recruit-explore__grid a { min-height: 255px; }
	.recruit-work-style { grid-template-columns: 1fr; min-height: 0; }
	.recruit-work-style__image { min-height: 275px; }
	.recruit-work-style > div:last-child { padding: 76px 25px; }
	.recruit-home-people > div { grid-template-columns: 1fr; }
	.recruit-home-people a { min-height: 285px; padding: 28px; }
	.recruit-home-people a strong { font-size: 24px; }
	.recruit-flow .recruit-section-heading { margin-bottom: 34px; }
	.recruit-page-hero { min-height: 380px; }
	.recruit-page-hero nav { right: 25px; bottom: 23px; font-size: 8px; }
	.recruit-intro-copy { width: calc(100% - 50px); padding: 70px 0; font-size: 15px; text-align: left; }
	.recruit-mission > div { grid-template-columns: 1fr; }
	.recruit-mission article { min-height: 225px; padding: 29px; }
	.recruit-mission article > p { margin-bottom: 29px; }
	.recruit-mission h3 { font-size: 25px; }
	.recruit-numbers > div { grid-template-columns: repeat(2,1fr); }
	.recruit-numbers article { padding: 25px 13px; border-bottom: 1px solid rgba(255,255,255,.22); }
	.recruit-numbers b { font-size: 42px; }
	.recruit-role-list, .recruit-requirements { width: calc(100% - 50px); padding: 76px 0; }
	.recruit-role-list article { grid-template-columns: 48px 1fr; gap: 12px; padding: 27px 0; }
	.recruit-role-list article a { grid-column: 2; width: 145px; }
	.recruit-role-list h3 { font-size: 22px; }
	.recruit-career { grid-template-columns: 1fr; padding: 76px 25px; gap: 37px; }
	.recruit-career li { min-height: 104px; padding: 17px; }
	.recruit-interviews > div { grid-template-columns: 1fr; }
	.recruit-interviews article { min-height: 290px; }
	.recruit-filter-tabs { overflow-x: auto; }
	.recruit-filter-tabs button { min-width: 110px; padding-right: 13px; padding-left: 13px; white-space: nowrap; }
	.recruit-job-list article { grid-template-columns: 1fr; gap: 13px; padding: 24px 0; }
	.recruit-job-list p { grid-template-columns: max-content max-content; align-items: center; }
	.recruit-job-list a { width: 160px; }
	.recruit-entry-hero { padding: 95px 25px 85px; text-align: left; }
	.recruit-entry-panel__actions { margin-top: 16px; }
	.recruit-entry-panel__actions a { grid-template-columns: 40px minmax(0,1fr) 18px; gap: 10px; }
	.recruit-entry-panel__actions b { font-size: 13px; }
	.recruit-entry-banner { min-height: 0; padding: 65px 25px; align-items: flex-start; flex-direction: column; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--text); font-family: var(--sans); font-feature-settings: "palt" 1; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin-top: 0; }
.site-shell { overflow: clip; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Header */
.site-header { position: fixed; z-index: 30; inset: 0 0 auto; display: flex; align-items: center; height: 104px; padding: 0 4.95vw; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .2); transition: background .35s ease, color .35s ease, height .35s ease, box-shadow .35s ease; }
.site-header.is-scrolled { height: 88px; color: var(--navy); background: rgba(255, 255, 255, .95); border-color: transparent; box-shadow: 0 5px 20px rgba(8, 38, 79, .07); backdrop-filter: blur(10px); }
.brand { display: inline-flex; align-items: center; gap: 10px; min-width: 224px; }
.brand-mark { display: grid; width: 31px; height: 31px; place-items: center; border: 2px solid currentColor; font-size: 16px; font-weight: 800; line-height: 1; }
.brand-text { display: flex; flex-direction: column; gap: 4px; line-height: 1; }
.brand-name { font-size: 15px; font-weight: 800; letter-spacing: .07em; }
.brand-sub { font: 600 7px/1 var(--sans); letter-spacing: .16em; opacity: .94; }
.desktop-nav { display: flex; gap: clamp(19px, 2vw, 31px); margin-left: auto; margin-right: 28px; font: 700 11px/1 var(--sans); letter-spacing: .15em; }
.desktop-nav a { position: relative; padding: 8px 0; }
.desktop-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-cta { display: inline-flex; align-items: center; justify-content: space-between; width: 176px; padding: 17px 24px; border-radius: 999px; background: var(--blue); color: #fff; font: 700 11px/1 var(--sans); letter-spacing: .16em; transition: background .2s ease, transform .2s ease; }
.header-cta:hover, .header-cta:focus-visible { background: var(--blue-dark); transform: translateY(-2px); }
.header-cta span { font-size: 15px; }
.menu-button, .mobile-menu { display: none; }

/* Hero */
.hero { position: relative; height: min(70vw, 970px); min-height: 700px; overflow: hidden; color: #fff; background: var(--navy); }
.hero-slides, .hero-slide, .hero-wash { position: absolute; inset: 0; }
.hero-slide { background-position: center; background-size: cover; opacity: 0; transform: scale(1.04); transition: opacity 1.2s ease, transform 7s ease; }
.hero-slide.is-active { opacity: 1; transform: scale(1); }
.hero-wash { background: linear-gradient(90deg, rgba(236, 244, 244, .28), rgba(236, 244, 244, .02) 52%, rgba(3, 31, 73, .2)), linear-gradient(0deg, rgba(3, 24, 58, .22), transparent 45%); }
.hero-content { position: absolute; z-index: 2; bottom: 21.8%; left: 12.7vw; }
.hero h1 { margin: 0; font: 400 clamp(48px, 5.35vw, 78px)/1.57 var(--serif); letter-spacing: .18em; text-shadow: 0 2px 18px rgba(2, 27, 57, .18); }
.hero-side-copy { position: absolute; z-index: 2; top: 20%; right: 9.8%; margin: 0; color: rgba(255, 255, 255, .98); font: 400 clamp(18px, 1.95vw, 28px)/1.75 var(--serif); letter-spacing: .16em; text-shadow: 0 2px 12px rgba(2, 27, 57, .2); writing-mode: vertical-rl; }
.hero-side-copy span { display: block; margin: 0 0 0 17px; font: 600 8px/1.5 var(--mono); letter-spacing: .16em; opacity: .8; }
.hero-scroll { position: absolute; z-index: 2; bottom: 17%; left: 4.95vw; display: flex; align-items: center; gap: 15px; font: 600 9px/1 var(--mono); letter-spacing: .15em; writing-mode: vertical-rl; }
.hero-scroll span { display: block; width: 1px; height: 73px; background: #fff; animation: scroll-line 1.7s ease-in-out infinite; }
.hero-dots { position: absolute; z-index: 2; right: 4.95vw; bottom: 16.4%; display: grid; gap: 12px; }
.hero-dots button { width: 26px; height: 2px; padding: 0; border: 0; background: rgba(255, 255, 255, .45); cursor: pointer; transition: width .25s ease, background .25s ease; }
.hero-dots button.is-active { width: 45px; background: #fff; }
.hero-news { position: absolute; z-index: 3; right: 0; bottom: 48px; left: 12.7vw; display: grid; grid-template-columns: 98px minmax(0, 1fr) 180px; min-height: 81px; background: rgba(255, 255, 255, .96); color: var(--text); box-shadow: 0 14px 30px rgba(2, 25, 58, .16); }
.hero-news strong { display: grid; place-items: center; background: var(--blue); color: #fff; font: 700 11px/1 var(--sans); letter-spacing: .16em; }
.hero-news-items { display: grid; grid-template-columns: 1fr 1fr; }
.hero-news-items a { display: grid; grid-template-columns: 85px minmax(0, 1fr) 17px; gap: 10px; align-items: center; padding: 0 17px; border-right: 1px solid var(--line); font-size: 11px; transition: background .2s ease; }
.hero-news-items a:hover { background: #f2f6fa; }
.hero-news time { color: var(--blue); font: 700 9px/1 var(--mono); }
.hero-news-items span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hero-news i, .news-list i { color: var(--blue); font-size: 15px; font-style: normal; }
.hero-recruit-link { display: flex; align-items: center; justify-content: space-between; padding: 0 27px; background: var(--navy); color: #fff; font: 700 10px/1 var(--sans); letter-spacing: .15em; transition: background .2s ease; }
.hero-recruit-link:hover { background: var(--blue); }
.hero-recruit-link span { font-size: 17px; }

/* Shared headings and buttons */
.section-space { padding: 118px 9.8vw; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.section-label { margin: 0 0 12px; color: var(--blue); font: 700 22px/1 var(--sans); letter-spacing: .21em; }
.section-jp { margin: 0; color: #9ba8b7; font-size: 10px; letter-spacing: .13em; }
.section-heading > p { margin: 0 0 1px; color: var(--muted); font-size: 13px; line-height: 2; text-align: right; }
.more-link, .pill-link, .white-link { display: inline-flex; align-items: center; gap: 18px; font: 700 10px/1 var(--mono); letter-spacing: .14em; }
.more-link { margin-top: 31px; padding-bottom: 8px; border-bottom: 1px solid currentColor; color: var(--blue); }
.more-link span, .white-link span { font: 18px/1 var(--sans); }
.pill-link { justify-content: space-between; min-width: 230px; margin-top: 30px; padding: 18px 25px; border-radius: 30px; background: var(--blue); color: #fff; transition: background .2s ease, transform .2s ease; }
.pill-link:hover, .pill-link:focus-visible { background: var(--blue-dark); transform: translateY(-2px); }

/* Message and manifesto */
.message-section { min-height: 1129px; padding: 100px 4.95vw 320px; background: var(--paper); }
.message-wrap { position: relative; width: 100%; max-width: 1420px; height: 709px; margin: 0 auto; }
.message-card { position: relative; z-index: 2; width: min(40%, 455px); min-height: 709px; padding: 57px; background: #fff; box-shadow: 0 10px 33px rgba(5, 30, 65, .025); }
.title-line { display: block; width: 38px; height: 1px; margin: 22px 0 30px; background: #bbdfe4; }
.message-card h2 { margin: 0 0 24px; font: 400 clamp(25px, 2.35vw, 35px)/1.68 var(--serif); letter-spacing: .1em; }
.message-card > p:last-of-type { margin-bottom: 0; color: #40516a; font-size: 12px; line-height: 2.15; }
.message-photo { position: absolute; top: 124px; right: 0; width: 70%; height: 800px; margin: 0; overflow: hidden; transform: translate3d(0, var(--parallax-y, 0), 0); }
.message-photo::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6, 38, 87, .1), transparent 56%); content: ""; }
.message-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.72) brightness(1.04); }
.message-photo span { position: absolute; z-index: 1; top: 18px; left: 17px; color: #fff; font: 600 8px/1 var(--mono); letter-spacing: .16em; writing-mode: vertical-rl; }
.manifesto { position: relative; display: grid; height: min(57.7vw, 730px); min-height: 520px; place-items: center; overflow: hidden; background: var(--blue); color: #fff; text-align: center; }
.manifesto::before, .manifesto::after { position: absolute; border: 1px solid rgba(255, 255, 255, .22); border-radius: 50%; content: ""; }
.manifesto::before { width: min(60vw, 760px); height: min(60vw, 760px); }
.manifesto::after { width: min(43vw, 545px); height: min(43vw, 545px); }
.manifesto-en { position: absolute; top: 44px; left: 5vw; margin: 0; font: 600 9px/1.55 var(--mono); letter-spacing: .15em; text-align: left; }
.manifesto-jp { position: relative; z-index: 1; margin: 0; font: 400 clamp(35px, 4.5vw, 65px)/1.55 var(--serif); letter-spacing: .13em; }
.manifesto-jp em { color: #d3f3f1; font-style: normal; }
.manifesto-note { position: absolute; right: 7vw; bottom: 44px; color: #d8f5f5; font: 600 8px/1.65 var(--mono); letter-spacing: .15em; writing-mode: vertical-rl; }

/* Services */
.services-section { min-height: 778px; padding-top: 119px; padding-bottom: 112px; background: #fff; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; margin-top: 62px; }
.service-card { position: relative; display: flex; min-height: 310px; padding: 25px; overflow: hidden; color: #fff; background-position: center; background-size: cover; }
.service-card::before { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(3, 26, 59, .86), rgba(3, 26, 59, .05) 72%); content: ""; transition: background .3s ease; }
.service-card::after { position: absolute; inset: 0; border: 1px solid rgba(255, 255, 255, .35); content: ""; opacity: 0; transform: scale(.96); transition: opacity .3s ease, transform .3s ease; }
.service-card:hover::before { background: linear-gradient(0deg, rgba(3, 26, 59, .64), rgba(3, 26, 59, .02)); }
.service-card:hover::after { opacity: 1; transform: scale(.93); }
.service-card--one { background-image: url("assets/images/hero-recruitment.png"); }
.service-card--two { background-image: url("assets/images/hero-town.png"); }
.service-card--three { background-image: url("assets/images/hero-recruitment.png"); background-position: 18% center; }
.service-card > span, .service-card > div, .service-card > b { position: relative; z-index: 1; }
.service-card > span { font: 600 10px/1 var(--mono); opacity: .84; }
.service-card > div { margin: auto 0 0; }
.service-card small { display: block; margin-bottom: 10px; font: 600 8px/1.45 var(--mono); letter-spacing: .09em; }
.service-card h3 { margin: 0; font: 500 22px/1.4 var(--serif); letter-spacing: .08em; }
.service-card > b { position: absolute; right: 24px; bottom: 24px; display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid rgba(255, 255, 255, .85); border-radius: 50%; font-weight: 400; }

/* Moving text and works carousel */
.scroll-banner { display: flex; height: 142px; align-items: center; overflow: hidden; background: #fff; color: #edf2f6; white-space: nowrap; }
.scroll-banner p { margin: 0; font: 700 clamp(62px, 10vw, 146px)/1 var(--sans); letter-spacing: .04em; animation: marquee 30s linear infinite; }
.scroll-banner--reverse { background: var(--paper); color: #e3ebef; }
.scroll-banner--reverse p { animation-direction: reverse; }
.works-section { min-height: 706px; padding: 112px 0 93px; overflow: hidden; background-color: #fff; background-image: linear-gradient(rgba(191, 210, 221, .22) 1px, transparent 1px), linear-gradient(90deg, rgba(191, 210, 221, .22) 1px, transparent 1px); background-size: 22px 22px; }
.works-heading { padding: 0 9.8vw; }
.carousel-controls { display: flex; gap: 10px; }
.carousel-button { display: grid; width: 37px; height: 37px; place-items: center; border: 1px solid #a9c9d3; border-radius: 50%; background: rgba(255, 255, 255, .75); color: var(--blue); cursor: pointer; transition: background .2s ease, color .2s ease; }
.carousel-button:hover, .carousel-button:focus-visible { background: var(--blue); color: #fff; }
.works-track { display: flex; gap: 5px; margin-top: 51px; padding: 0 max(0px, calc((100vw - 90.2vw) / 2)); overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; scroll-snap-type: x mandatory; }
.works-track::-webkit-scrollbar { display: none; }
.work-card { position: relative; flex: 0 0 clamp(260px, 22.2vw, 330px); scroll-snap-align: start; overflow: hidden; background: #fff; }
.work-card img { width: 100%; height: 200px; object-fit: cover; filter: saturate(.72); transition: transform .45s ease, filter .45s ease; }
.work-card:hover img { filter: saturate(1); transform: scale(1.055); }
.work-card div { min-height: 75px; padding: 13px 15px 18px; }
.work-card span { display: block; color: var(--blue); font: 600 9px/1 var(--mono); letter-spacing: .08em; }
.work-card h3 { margin: 9px 0 0; font: 500 14px/1.5 var(--serif); letter-spacing: .05em; }
.works-more { display: flex; width: max-content; margin: 31px auto 0; }

/* Company tiles */
.company-section { min-height: 1460px; padding: 145px 9.2vw 190px; background: radial-gradient(circle at 80% 10%, #fff 0, #f5f8f8 28%, #e9f1f2 100%); }
.company-title { max-width: 575px; }
.company-title h2 { margin: 29px 0 22px; font: 400 clamp(31px, 3.65vw, 52px)/1.55 var(--serif); letter-spacing: .1em; }
.company-title > p:last-child { max-width: 500px; margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 2; }
.company-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; width: min(100%, 1015px); margin: 110px 0 0 auto; }
.company-tile { position: relative; display: flex; min-height: 290px; padding: 30px; overflow: hidden; color: #fff; background-position: center; background-size: cover; }
.company-tile::before { position: absolute; inset: 0; background: rgba(3, 24, 53, .68); content: ""; transition: background .3s ease; }
.company-tile:hover::before { background: rgba(3, 24, 53, .48); }
.company-tile span, .company-tile h3, .company-tile i { position: relative; z-index: 1; }
.company-tile span { font: 600 10px/1 var(--mono); opacity: .86; }
.company-tile h3 { align-self: center; margin: auto; font: 400 clamp(22px, 2.2vw, 32px)/1.55 var(--serif); letter-spacing: .1em; text-align: center; }
.company-tile i { position: absolute; right: 29px; bottom: 27px; font-size: 19px; font-style: normal; }
.company-tile--one, .company-tile--four { background-image: url("assets/images/hero-town.png"); }
.company-tile--two, .company-tile--three { background-image: url("assets/images/hero-recruitment.png"); }
.company-tile--two { background-position: 66% center; }
.company-tile--three { background-position: 28% center; }

/* Recruit, news and footer */
.recruit-section { position: relative; min-height: 811px; overflow: hidden; color: #fff; }
.recruit-photo { position: absolute; inset: -45px 0; background-position: center 42%; background-size: cover; filter: saturate(.68); transform: translate3d(0, var(--parallax-y, 0), 0); }
.recruit-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 29, 69, .77), rgba(4, 29, 69, .47)); }
.recruit-copy { position: relative; z-index: 1; padding: 145px 12.7vw; }
.recruit-copy .section-label { color: #b7e8ef; }
.recruit-copy .section-jp { color: #d4dfeb; }
.recruit-copy h2 { margin: 34px 0 21px; font: 400 clamp(37px, 4.4vw, 64px)/1.55 var(--serif); letter-spacing: .12em; }
.recruit-copy > p:not(.section-label):not(.section-jp) { font-size: 13px; line-height: 2.1; }
.white-link { margin-top: 29px; padding-bottom: 8px; border-bottom: 1px solid currentColor; color: #fff; }
.recruit-side { position: absolute; z-index: 1; right: 8.4vw; bottom: 50px; font: 600 9px/1 var(--mono); letter-spacing: .15em; writing-mode: vertical-rl; }
.recruit-side::after { display: block; width: 1px; height: 59px; margin: 13px auto 0; background: #fff; content: ""; }
.news-section { min-height: 673px; padding: 100px 9.8vw 80px; background: #fff; }
.news-section .more-link { margin: 0; }
.news-list { margin-top: 55px; border-top: 1px solid var(--line); }
.news-list article { display: grid; grid-template-columns: 110px 92px 1fr 20px; gap: 20px; align-items: center; min-height: 72px; border-bottom: 1px solid var(--line); font-size: 12px; transition: padding .2s ease, background .2s ease; }
.news-list article:hover { padding-right: 12px; padding-left: 12px; background: #f5f8fa; }
.news-list time { color: var(--blue); font: 600 10px/1 var(--mono); }
.news-list span { color: var(--muted); font-size: 10px; }
.news-list a { font-size: 13px; }
.site-footer { display: grid; grid-template-columns: 1.15fr .8fr .9fr; min-height: 720px; gap: 5vw; padding: 112px 8.5vw 38px; background: var(--navy); color: #fff; }
.footer-contact { max-width: 385px; }
.footer-lead { margin-bottom: 20px; font: 400 26px/1.65 var(--serif); letter-spacing: .08em; }
.footer-en { color: #a9bbd1; font: 600 8px/1.65 var(--mono); letter-spacing: .12em; }
.footer-phone { display: block; margin-top: 37px; color: #b7e8ef; font: 600 26px/1 var(--mono); letter-spacing: .05em; }
.footer-button { display: flex; align-items: center; justify-content: space-between; width: 244px; margin-top: 26px; padding: 15px 21px; border: 1px solid #cde7ed; border-radius: 28px; font: 600 11px/1 var(--mono); letter-spacing: .15em; }
.footer-button span { font: 18px/1 var(--sans); }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 18px 28px; padding-top: 9px; font-size: 12px; font-weight: 600; }
.footer-branding { display: flex; flex-direction: column; align-items: flex-start; }
.footer-branding > p { margin: 29px 0 0; color: #a9bbd1; font-size: 11px; line-height: 1.8; }
.footer-branding small { margin-top: auto; color: #7d96b7; font: 8px/1.5 var(--mono); letter-spacing: .08em; }

/* Motion */
.motion-ready [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
@keyframes scroll-line { 0%, 100% { transform: scaleY(.35); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-48%); } }

/* Singular posts */
.single-main { min-height: 60vh; padding: 170px 12vw 110px; background: #fff; }
.single-main h1 { font: 400 44px/1.6 var(--serif); }
.single-main .entry-content { max-width: 740px; margin-top: 35px; line-height: 2; }

/* Internal pages and archives */
.internal-page, .archive-page { min-height: 60vh; background: #fff; }
.inner-hero { min-height: 390px; padding: 180px 12.7vw 90px; background: linear-gradient(125deg, rgba(4, 33, 78, .94), rgba(8, 103, 223, .74)), url("assets/images/hero-town.png") center/cover; color: #fff; }
.inner-hero .section-label { color: #c2efef; }
.inner-hero .section-jp { color: rgba(255, 255, 255, .73); }
.inner-hero h1 { margin: 27px 0 0; font: 400 clamp(38px, 4.5vw, 62px)/1.5 var(--serif); letter-spacing: .12em; }
.internal-section { max-width: 920px; margin: 0 auto; padding: 100px 25px; }
.internal-section--intro { max-width: 820px; color: var(--text); font: 400 clamp(22px, 2.35vw, 33px)/1.9 var(--serif); letter-spacing: .07em; }
.internal-section--intro > p { margin-bottom: 0; }
.info-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; max-width: 1080px; margin: 0 auto 130px; background: var(--line); }
.info-link-card { min-height: 250px; padding: 42px; background: #fff; scroll-margin-top: 105px; }
.info-link-card span, .service-detail > span { color: var(--blue); font: 600 10px/1 var(--mono); }
.info-link-card h2, .service-detail h2 { margin: 26px 0 17px; font: 400 29px/1.5 var(--serif); letter-spacing: .08em; }
.info-link-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 2; }
.service-detail-list { max-width: 1000px; margin: 0 auto 130px; }
.service-detail { display: grid; grid-template-columns: 80px 1fr; gap: 35px; padding: 55px 25px; border-top: 1px solid var(--line); scroll-margin-top: 105px; }
.service-detail:last-child { border-bottom: 1px solid var(--line); }
.service-detail div > p:first-child { margin-bottom: 14px; color: var(--blue); font: 600 10px/1.5 var(--mono); letter-spacing: .1em; }
.service-detail div > p:last-child { max-width: 610px; margin: 0; color: var(--muted); font-size: 14px; line-height: 2; }
.contact-panel { display: flex; max-width: 820px; min-height: 420px; flex-direction: column; justify-content: center; align-items: flex-start; }
.contact-panel > p { max-width: 650px; color: var(--text); font: 400 22px/1.9 var(--serif); }
.contact-phone { margin: 18px 0 14px; color: var(--blue); font: 600 clamp(25px, 3vw, 38px)/1 var(--mono); }
.archive-list-section { min-height: 500px; padding: 95px 9.8vw 130px; background: var(--paper); }
.archive-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; max-width: 1240px; margin: 0 auto; }
.archive-card { overflow: hidden; background: #fff; }
.archive-card img { width: 100%; height: 245px; object-fit: cover; filter: saturate(.72); transition: transform .35s ease, filter .35s ease; }
.archive-card:hover img { filter: saturate(1); transform: scale(1.04); }
.archive-card div { padding: 20px 22px 25px; }
.archive-card time { color: var(--blue); font: 600 10px/1 var(--mono); }
.archive-card h2 { margin: 12px 0 0; font: 400 18px/1.6 var(--serif); }
.archive-news-list { max-width: 1000px; margin: 0 auto; border-top: 1px solid var(--line); }
.archive-news-list article { display: grid; grid-template-columns: 150px 1fr; gap: 30px; align-items: center; min-height: 94px; border-bottom: 1px solid var(--line); }
.archive-news-list time { color: var(--blue); font: 600 10px/1 var(--mono); }
.archive-news-list a { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.archive-news-list h2 { margin: 0; font: 400 18px/1.6 var(--serif); }
.archive-news-list span { color: var(--blue); font-size: 20px; }
.archive-empty { max-width: 1000px; margin: 0 auto; color: var(--muted); text-align: center; }

@media (max-width: 920px) {
	.desktop-nav { gap: 16px; margin-right: 18px; font-size: 10px; }
	.header-cta { width: 146px; padding: 15px 19px; }
	.message-card { padding: 45px 37px; }
	.message-photo { width: 67%; }
	.company-section { min-height: 1320px; }
}

@media (max-width: 800px) {
	.site-header, .site-header.is-scrolled { height: 73px; padding: 0 21px; }
	.brand { min-width: 0; }
	.brand-mark { width: 27px; height: 27px; font-size: 14px; }
	.brand-name { font-size: 13px; }
	.brand-sub { font-size: 6px; }
	.desktop-nav, .header-cta { display: none; }
	.menu-button { position: relative; z-index: 40; display: flex; width: 42px; height: 42px; margin-left: auto; padding: 9px 5px; border: 0; background: transparent; color: currentColor; cursor: pointer; flex-direction: column; justify-content: center; gap: 8px; }
	.menu-button i { width: 100%; border-top: 1px solid currentColor; transition: transform .25s ease; }
	.menu-button.active { color: var(--navy); }
	.menu-button.active i:first-child { transform: translateY(4px) rotate(45deg); }
	.menu-button.active i:last-child { transform: translateY(-5px) rotate(-45deg); }
	.mobile-menu { position: fixed; z-index: 35; top: 0; right: 0; display: block; width: min(100%, 360px); height: 100vh; padding: 96px 31px 30px; background: #fff; color: var(--navy); transform: translateX(105%); transition: transform .3s ease; }
	.mobile-menu.open { transform: translateX(0); }
	.mobile-menu a { display: block; padding: 18px 0; border-bottom: 1px solid var(--line); font: 700 13px/1 var(--sans); letter-spacing: .14em; }
	.mobile-menu .mobile-entry { margin-top: 20px; border: 0; color: var(--blue); }
	.hero { height: 680px; min-height: 0; }
	.hero-slide:nth-child(2) { background-position: 58% center; }
	.hero-content { bottom: 24.5%; left: 18vw; }
	.hero h1 { font-size: 38px; line-height: 1.6; }
	.hero-side-copy { top: 16%; right: 8%; font-size: 17px; }
	.hero-side-copy span { font-size: 6px; }
	.hero-scroll { bottom: 25%; left: 6vw; gap: 9px; font-size: 7px; }
	.hero-scroll span { height: 48px; }
	.hero-dots { right: 5.5vw; bottom: 29%; gap: 9px; }
	.hero-dots button { width: 19px; }
	.hero-dots button.is-active { width: 31px; }
	.hero-news { right: 0; bottom: 0; left: 0; grid-template-columns: 68px 1fr; min-height: 84px; box-shadow: none; }
	.hero-news strong { font-size: 9px; }
	.hero-news-items { grid-template-columns: 1fr; }
	.hero-news-items a { grid-template-columns: 74px minmax(0, 1fr) 15px; min-height: 42px; gap: 6px; padding: 0 11px; font-size: 10px; }
	.hero-news-items a:nth-child(2) { display: none; }
	.hero-news time { font-size: 8px; }
	.hero-recruit-link { display: none; }
	.section-space { padding: 78px 25px; }
	.section-heading { align-items: flex-start; }
	.section-heading > p { display: none; }
	.section-label { font-size: 18px; }
	.message-section { min-height: 0; padding: 78px 25px; }
	.message-wrap { height: auto; }
	.message-card { width: calc(100% - 17px); min-height: 0; padding: 40px 28px 38px; }
	.message-card h2 { font-size: 25px; }
	.message-card > p:last-of-type { font-size: 11px; }
	.message-photo { position: relative; top: auto; right: auto; width: calc(100% - 17px); height: 240px; margin: -5px 0 0 17px; }
	.manifesto { height: 289px; min-height: 0; padding: 0 28px; }
	.manifesto::before { width: 320px; height: 320px; }
	.manifesto::after { width: 210px; height: 210px; }
	.manifesto-en { top: 22px; left: 25px; font-size: 7px; }
	.manifesto-jp { font-size: 31px; }
	.manifesto-note { right: 24px; bottom: 25px; font-size: 7px; }
	.services-section { min-height: 0; }
	.service-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 38px; }
	.service-card { min-height: 208px; }
	.service-card h3 { font-size: 20px; }
	.scroll-banner { height: 82px; }
	.scroll-banner p { font-size: 58px; }
	.works-section { min-height: 0; padding: 78px 0 73px; }
	.works-heading { padding: 0 25px; }
	.carousel-controls { gap: 7px; }
	.carousel-button { width: 33px; height: 33px; }
	.works-track { margin-top: 38px; padding: 0 25px; }
	.work-card { flex-basis: min(78vw, 310px); }
	.work-card img { height: 195px; }
	.company-section { min-height: 0; padding: 78px 25px; }
	.company-title h2 { font-size: 32px; }
	.company-tiles { width: 100%; margin-top: 48px; gap: 3px; }
	.company-tile { min-height: 180px; padding: 18px; }
	.company-tile h3 { font-size: 19px; }
	.company-tile i { right: 17px; bottom: 16px; }
	.recruit-section { min-height: 500px; }
	.recruit-copy { padding: 79px 25px; }
	.recruit-copy h2 { font-size: 36px; }
	.recruit-side { right: 25px; bottom: 35px; font-size: 7px; }
	.news-section { min-height: 0; padding: 78px 25px; }
	.news-section .more-link { margin-top: 3px; }
	.news-list { margin-top: 39px; }
	.news-list article { grid-template-columns: 78px 1fr 15px; gap: 10px; min-height: 80px; }
	.news-list span { display: none; }
	.news-list a { font-size: 12px; line-height: 1.6; }
	.site-footer { display: block; min-height: 0; padding: 62px 25px 27px; }
	.footer-lead { font-size: 22px; }
	.footer-phone { font-size: 22px; }
	.footer-links { margin: 52px 0; gap: 17px; }
	.footer-branding > p { margin-top: 22px; }
	.footer-branding small { margin-top: 25px; }
	.single-main { padding: 110px 25px 70px; }
	.single-main h1 { font-size: 32px; }
	.inner-hero { min-height: 290px; padding: 125px 25px 55px; }
	.inner-hero h1 { margin-top: 20px; font-size: 35px; }
	.internal-section { padding: 68px 25px; }
	.internal-section--intro { font-size: 22px; }
	.info-link-grid { grid-template-columns: 1fr; margin: 0 25px 76px; }
	.info-link-card { min-height: 0; padding: 32px 27px; }
	.info-link-card h2, .service-detail h2 { font-size: 24px; }
	.service-detail-list { margin-bottom: 76px; }
	.service-detail { grid-template-columns: 42px 1fr; gap: 17px; padding: 40px 25px; }
	.archive-list-section { padding: 68px 25px 80px; }
	.archive-card-grid { grid-template-columns: 1fr; gap: 15px; }
	.archive-card img { height: 220px; }
	.archive-news-list article { grid-template-columns: 1fr; gap: 8px; padding: 20px 0; }
	.archive-news-list h2 { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Directory pages: page-specific structures */
.directory-page { overflow: hidden; background: #fff; }
.directory-hero { position: relative; display: flex; min-height: min(48vw, 620px); align-items: flex-end; overflow: hidden; color: #fff; background-position: center; background-size: cover; }
.directory-hero__inner { width: min(100%, 1080px); margin: 0 auto; padding: 155px 0 88px; }
.directory-hero__eyebrow { margin: 0 0 12px; color: #c9f0f0; font: 700 12px/1 var(--mono); letter-spacing: .22em; }
.directory-hero__jp { margin: 0 0 22px; color: rgba(255,255,255,.75); font-size: 11px; letter-spacing: .16em; }
.directory-hero h1 { max-width: 800px; margin: 0; font: 400 clamp(37px,4.4vw,65px)/1.5 var(--serif); letter-spacing: .12em; }
.breadcrumb { position: absolute; right: 5vw; bottom: 38px; margin: 0; font: 600 9px/1.5 var(--mono); letter-spacing: .1em; }
.breadcrumb a { border-bottom: 1px solid rgba(255,255,255,.6); }
.breadcrumb span { margin: 0 8px; opacity: .6; }
.directory-kicker { margin: 0 0 18px; color: var(--blue); font: 700 10px/1.4 var(--mono); letter-spacing: .17em; }
.directory-content { width: min(100% - 50px, 1060px); margin: 0 auto; padding: 120px 0; }
.directory-section-title { margin-bottom: 48px; text-align: center; }
.directory-section-title p { margin: 0; color: var(--blue); font: 700 clamp(32px,4.5vw,60px)/1 var(--sans); letter-spacing: .17em; }
.directory-section-title span { display: block; margin-top: 15px; color: #a0abb6; font-size: 11px; letter-spacing: .14em; }
.directory-intro { display: grid; grid-template-columns: 1fr 1fr; width: min(100% - 50px, 1060px); gap: 11vw; margin: 0 auto; padding: 135px 0 120px; }
.directory-intro h2 { margin: 0; font: 400 clamp(31px,3.45vw,49px)/1.65 var(--serif); letter-spacing: .1em; }
.directory-intro > div:last-child { max-width: 440px; padding-top: 9px; color: #4e5d72; font-size: 13px; line-height: 2.1; }
.directory-intro > div:last-child p + p { margin-top: 22px; }
.directory-intro .signature { margin-top: 34px; color: var(--text); font: 500 13px/1.8 var(--serif); }
.directory-intro--center { display: block; max-width: 780px; padding-bottom: 98px; text-align: center; }
.directory-intro--center h2 { margin: 0 0 22px; }
.directory-intro--center > p:last-child { margin: 0; color: var(--muted); font-size: 14px; line-height: 2; }

/* Company */
.company-overview { position: relative; padding: 0 5vw 120px; background: linear-gradient(90deg,#d9f3f3 0 12%,#f0f8f8 12% 100%); scroll-margin-top: 86px; }
.company-overview__photo { height: 395px; max-width: 1160px; margin: 0 auto; background-position: center 37%; background-size: cover; filter: saturate(.72); }
.company-overview__card { position: relative; width: min(100% - 80px, 970px); margin: -112px auto 0; padding: 66px 78px 42px; background: #fff; box-shadow: 0 18px 42px rgba(8,35,72,.08); }
.overview-table { margin: 0; border-top: 1px solid #c9ced2; }
.overview-table > div { display: grid; grid-template-columns: 180px 1fr; gap: 25px; padding: 22px 0; border-bottom: 1px solid #c9ced2; }
.overview-table dt { color: var(--blue); font: 700 13px/1.7 var(--sans); letter-spacing: .07em; }
.overview-table dd { margin: 0; color: #303d4f; font-size: 13px; line-height: 1.8; }
.company-history { padding-bottom: 105px; }
.history-list { max-width: 840px; margin: 0 auto; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.history-list li { display: grid; grid-template-columns: 110px 1fr; gap: 40px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.history-list time { color: var(--blue); font: 600 13px/1.8 var(--mono); }
.history-list p { margin: 0; font: 400 16px/1.8 var(--serif); }
.company-policy { padding: 110px 25px; background: var(--navy); color: #fff; }
.company-policy__inner { width: min(100%,850px); margin: 0 auto; }
.company-policy .directory-section-title p { color: #c5eeee; }
.company-policy .directory-section-title span { color: rgba(255,255,255,.65); }
.company-policy__inner > p { margin: 0; font-size: 14px; line-height: 2.1; }
.company-policy ul { display: grid; gap: 12px; margin: 34px 0 0; padding: 0; list-style: none; }
.company-policy li { padding: 17px 18px; border-left: 2px solid #b9e8eb; background: rgba(255,255,255,.09); font-size: 13px; line-height: 1.8; }
.company-community { display: grid; grid-template-columns: 1fr 1fr; gap: 11vw; }
.company-community h2 { margin: 0; font: 400 clamp(30px,3.2vw,44px)/1.65 var(--serif); letter-spacing: .1em; }
.company-community > p { max-width: 440px; margin: 25px 0 0; color: var(--muted); font-size: 14px; line-height: 2.1; }
.company-access { padding-top: 0; }
.company-access > div { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--line); }
.company-access article { min-height: 220px; padding: 38px; background: #f7f9fa; }
.company-access h3 { margin: 0 0 22px; color: var(--blue); font: 500 24px/1.5 var(--serif); }
.company-access p { margin: 0; color: var(--muted); font-size: 13px; line-height: 2; }
.company-iso { padding: 120px 25px; background: #edf4f5; }
.company-iso > div { width: min(100%,850px); margin: 0 auto; }
.company-iso p { max-width: 710px; margin: 0 auto; color: #526278; font-size: 14px; line-height: 2.1; text-align: center; }

/* Services and works */
.service-directory-list { max-width: 1160px; margin: 0 auto; padding: 0 25px 125px; }
.service-directory-card { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 440px; background: #f4f7f7; scroll-margin-top: 86px; }
.service-directory-card + .service-directory-card { margin-top: 36px; }
.service-directory-card--reverse { grid-template-columns: .95fr 1.05fr; }
.service-directory-card--reverse figure { grid-column: 2; }
.service-directory-card--reverse > div { grid-column: 1; grid-row: 1; }
.service-directory-card figure { min-height: 100%; margin: 0; background-position: center; background-size: cover; filter: saturate(.75); }
.service-directory-card > div { display: flex; padding: 65px clamp(35px,5vw,82px); flex-direction: column; justify-content: center; }
.service-directory-card h2 { margin: 0 0 22px; font: 400 clamp(27px,3vw,40px)/1.55 var(--serif); letter-spacing: .1em; }
.service-directory-card > div > p:last-child { margin: 0; color: var(--muted); font-size: 13px; line-height: 2.1; }
.service-works-preview { padding: 120px 5vw; background: #f6f8f8; text-align: center; }
.service-works-preview > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; max-width: 1160px; margin: 0 auto; text-align: left; }
.service-works-preview figure { position: relative; min-height: 250px; margin: 0; overflow: hidden; background-position: center; background-size: cover; filter: saturate(.75); }
.service-works-preview figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 21px; background: linear-gradient(transparent,rgba(3,27,61,.84)); color: #fff; font: 400 16px/1.6 var(--serif); }
.service-works-preview .pill-link { margin-top: 42px; text-align: left; }
.directory-cta { display: flex; min-height: 265px; padding: 50px 12vw; align-items: center; justify-content: space-between; gap: 30px; background: var(--blue); color: #fff; }
.directory-cta p { margin: 0; font: 400 clamp(23px,2.6vw,36px)/1.65 var(--serif); letter-spacing: .08em; }
.directory-cta .pill-link { background: #fff; color: var(--blue); }
.archive-directory { background: #f4f7f7; }
.directory-archive { padding: 115px 5vw 130px; }
.archive-filter { display: flex; max-width: 1160px; gap: 24px; margin: 0 auto 42px; color: var(--muted); font-size: 12px; }
.archive-filter .is-current { color: var(--blue); font-weight: 700; }
.directory-work-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; max-width: 1160px; margin: 0 auto; }
.directory-work-grid article { overflow: hidden; background: #fff; }
.directory-work-grid figure { margin: 0; }
.directory-work-grid img { width: 100%; height: 245px; object-fit: cover; filter: saturate(.7); transition: transform .35s ease, filter .35s ease; }
.directory-work-grid article:hover img { filter: saturate(1); transform: scale(1.045); }
.directory-work-grid div, .directory-work-grid figcaption { display: block; min-height: 102px; padding: 18px 20px 23px; }
.directory-work-grid p { margin: 0 0 10px; color: var(--blue); font: 600 9px/1 var(--mono); }
.directory-work-grid h2 { margin: 0; font: 400 17px/1.6 var(--serif); }

/* News */
.directory-news { display: grid; grid-template-columns: minmax(0,1fr) 245px; width: min(100% - 50px,1100px); gap: 85px; margin: 0 auto; padding: 120px 0 140px; }
.directory-news .directory-section-title { text-align: left; }
.directory-news .directory-section-title p { font-size: clamp(30px,3.7vw,49px); }
.directory-news-list { border-top: 1px solid var(--line); }
.directory-news-list article { display: grid; grid-template-columns: 110px 92px 1fr; gap: 20px; align-items: center; min-height: 87px; border-bottom: 1px solid var(--line); }
.directory-news-list time { color: var(--blue); font: 600 10px/1 var(--mono); }
.directory-news-list article > p { margin: 0; color: var(--muted); font-size: 10px; }
.directory-news-list a, .directory-news-list article > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.directory-news-list h2 { margin: 0; font: 400 15px/1.6 var(--serif); }
.directory-news-list span { color: var(--blue); font-size: 17px; }
.directory-news__side { padding-top: 23px; border-top: 2px solid var(--blue); }
.directory-news__side h2 { margin: 0 0 21px; color: var(--blue); font: 700 16px/1 var(--sans); letter-spacing: .14em; }
.directory-news__side span { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; }

/* Recruit */
.recruit-subnav { display: flex; overflow-x: auto; justify-content: center; gap: 0; background: var(--navy); color: #fff; white-space: nowrap; }
.recruit-subnav a { padding: 20px 21px; border-right: 1px solid rgba(255,255,255,.14); font: 600 10px/1 var(--sans); letter-spacing: .1em; transition: background .2s ease; }
.recruit-subnav a:hover { background: var(--blue); }
.recruit-story { display: flex; min-height: 570px; padding: 105px 12.7vw; align-items: center; color: #fff; background-position: center; background-size: cover; }
.recruit-story > div { width: min(100%,660px); }
.recruit-story .directory-kicker { color: #c4f0ef; }
.recruit-story h2 { margin: 0 0 25px; font: 400 clamp(34px,4.2vw,60px)/1.55 var(--serif); letter-spacing: .1em; }
.recruit-story p:last-child { margin: 0; font-size: 14px; line-height: 2.1; }
.recruit-cards > div { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-cards article { min-height: 242px; padding: 33px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recruit-cards article span { color: var(--blue); font: 600 10px/1 var(--mono); }
.recruit-cards h3 { margin: 28px 0 15px; font: 400 23px/1.6 var(--serif); }
.recruit-cards article p { margin: 0; color: var(--muted); font-size: 12px; line-height: 2; }
.recruit-people { padding: 110px 9.8vw; background: #f1f6f6; }
.recruit-people > div { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; max-width: 1060px; margin: 0 auto; }
.recruit-people article { display: flex; min-height: 370px; padding: 36px; justify-content: flex-end; color: #fff; background-position: center; background-size: cover; flex-direction: column; }
.recruit-people article p { margin: 0 0 13px; font: 600 9px/1 var(--mono); letter-spacing: .1em; }
.recruit-people h3 { margin: 0; font: 400 29px/1.65 var(--serif); letter-spacing: .09em; }
.recruit-people .more-link { display: flex; width: max-content; margin: 38px auto 0; }
.recruit-flow { padding: 120px 9.8vw; background: var(--navy); color: #fff; text-align: center; }
.recruit-flow .directory-section-title p { color: #c7eeee; }
.recruit-flow .directory-section-title span { color: rgba(255,255,255,.64); }
.recruit-flow ol { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1000px; margin: 0 auto 42px; padding: 0; list-style: none; }
.recruit-flow li { display: grid; gap: 14px; padding: 20px; place-items: center; border-left: 1px solid rgba(255,255,255,.25); }
.recruit-flow li:last-child { border-right: 1px solid rgba(255,255,255,.25); }
.recruit-flow b { color: #bfecec; font: 600 16px/1 var(--mono); }
.recruit-flow span { font: 400 15px/1.6 var(--serif); }
.recruit-flow .pill-link { background: #fff; color: var(--blue); }
.recruit-child-hero { display: flex; min-height: 440px; padding: 80px 12.7vw; justify-content: center; color: #fff; background-position: center; background-size: cover; flex-direction: column; }
.recruit-child-hero > p { margin: 0 0 19px; color: #c5eeee; font: 700 11px/1 var(--mono); letter-spacing: .17em; }
.recruit-child-hero h2 { margin: 0 0 24px; font: 400 clamp(32px,4vw,54px)/1.55 var(--serif); letter-spacing: .1em; }
.recruit-child-hero span { max-width: 620px; font-size: 14px; line-height: 2; }
.recruit-child-copy { max-width: 720px; margin: 0 auto; color: var(--muted); font-size: 15px; line-height: 2.1; }
.recruit-child-copy p + p { margin-top: 25px; }
.recruit-child-copy .pill-link { margin-top: 25px; }

/* Recruitment microsite */
body:has(.recruit-site) .site-header,
body:has(.recruit-site) .mobile-menu { display: none; }
.recruit-site { overflow: hidden; background: #fff; }
.recruit-sitebar { display: grid; grid-template-columns: 185px minmax(0,1fr) 150px; min-height: 76px; align-items: stretch; border-bottom: 1px solid rgba(3,34,75,.13); background: #fff; color: var(--navy); }
.recruit-sitebar a { transition: color .2s ease, background .2s ease; }
.recruit-sitebar__brand { display: grid; padding: 15px 22px; align-content: center; background: var(--navy); color: #fff; }
.recruit-sitebar__brand b { font: 700 11px/1 var(--mono); letter-spacing: .13em; }
.recruit-sitebar__brand span { margin-top: 7px; font: 400 11px/1 var(--serif); letter-spacing: .09em; }
.recruit-sitebar__links { display: flex; min-width: 0; justify-content: center; }
.recruit-sitebar__links a { display: grid; min-width: 88px; padding: 0 13px; place-items: center; border-right: 1px solid rgba(3,34,75,.1); font: 500 11px/1 var(--sans); letter-spacing: .04em; }
.recruit-sitebar__links a:hover, .recruit-sitebar__links a.is-current { background: #eaf6f6; color: var(--blue); }
.recruit-sitebar__corporate { display: grid; padding: 0 20px; place-items: center; background: #edf6f6; color: var(--blue); font: 700 9px/1 var(--mono); letter-spacing: .08em; }
.recruit-sitebar__corporate span { margin-left: 7px; font-size: 15px; }
.recruit-home-hero, .recruit-page-hero { position: relative; display: flex; min-height: min(670px,calc(100vh - 76px)); padding: 90px 12.7vw; align-items: center; color: #fff; background-position: center; background-size: cover; }
.recruit-home-hero > div, .recruit-page-hero > div { position: relative; z-index: 1; }
.recruit-home-hero p, .recruit-page-hero > div > p, .recruit-entry-hero > p { margin: 0 0 22px; color: #c4eeee; font: 700 12px/1 var(--mono); letter-spacing: .19em; }
.recruit-home-hero h1 { margin: 0 0 26px; font: 400 clamp(46px,6vw,82px)/1.42 var(--serif); letter-spacing: .12em; }
.recruit-home-hero span, .recruit-page-hero > div > span, .recruit-entry-hero > span { font: 600 10px/1.6 var(--mono); letter-spacing: .16em; }
.recruit-scroll-cue { position: absolute; right: 5.5vw; bottom: 38px; display: flex; align-items: center; gap: 12px; color: #fff; font: 700 9px/1 var(--mono); letter-spacing: .16em; }
.recruit-scroll-cue i { display: block; width: 46px; height: 1px; background: currentColor; }
.recruit-home-news { display: grid; grid-template-columns: 210px minmax(0,1fr); width: min(100% - 50px,1100px); margin: -1px auto 0; border-top: 3px solid var(--blue); background: #fff; }
.recruit-home-news > p { display: grid; min-height: 86px; margin: 0; place-items: center start; color: var(--blue); font: 700 11px/1 var(--mono); letter-spacing: .13em; }
.recruit-home-news a { display: grid; grid-template-columns: 100px 1fr 20px; min-height: 86px; gap: 18px; align-items: center; border-left: 1px solid var(--line); color: var(--ink); font-size: 12px; }
.recruit-home-news time { color: var(--blue); font: 700 10px/1 var(--mono); }
.recruit-home-news b { color: var(--blue); font-size: 18px; }
.recruit-message { display: grid; grid-template-columns: minmax(260px,.92fr) minmax(290px,1.08fr); width: min(100% - 50px,1040px); padding: 145px 0; gap: 9vw; }
.recruit-eyebrow { margin: 0 0 21px; color: var(--blue); font: 700 10px/1 var(--mono); letter-spacing: .16em; }
.recruit-message h2, .recruit-work-style h2, .recruit-vision h2, .recruit-career h2, .recruit-entry-panel h2 { margin: 0; color: var(--navy); font: 400 clamp(30px,3.5vw,48px)/1.6 var(--serif); letter-spacing: .1em; }
.recruit-message > div:last-child { padding-top: 38px; color: var(--muted); font-size: 14px; line-height: 2.15; }
.recruit-message > div:last-child p { margin: 0 0 23px; }
.recruit-section-heading { margin-bottom: 50px; text-align: center; }
.recruit-section-heading p { margin: 0 0 15px; color: var(--blue); font: 700 10px/1 var(--mono); letter-spacing: .17em; }
.recruit-section-heading h2 { margin: 0; font: 400 clamp(22px,2.2vw,31px)/1.5 var(--serif); letter-spacing: .1em; }
.recruit-explore { padding: 124px 5vw; background: #f1f7f7; }
.recruit-explore__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; max-width: 1110px; margin: 0 auto; }
.recruit-explore__grid a { position: relative; display: flex; min-height: 340px; padding: 31px; justify-content: flex-end; overflow: hidden; color: #fff; background-position: center; background-size: cover; flex-direction: column; }
.recruit-explore__grid a::after { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.48); content: ''; opacity: 0; transform: scale(.94); transition: opacity .25s ease, transform .25s ease; }
.recruit-explore__grid a:hover::after { opacity: 1; transform: scale(.92); }
.recruit-explore__grid span { margin-bottom: 15px; font: 700 10px/1 var(--mono); letter-spacing: .12em; }
.recruit-explore__grid strong { font: 400 29px/1.5 var(--serif); letter-spacing: .1em; }
.recruit-explore__grid i { position: absolute; top: 28px; right: 30px; font-style: normal; font-size: 21px; }
.recruit-work-style { display: grid; grid-template-columns: 1fr 1fr; min-height: 610px; background: #fff; }
.recruit-work-style__image { min-height: 460px; background-position: center; background-size: cover; }
.recruit-work-style > div:last-child { display: flex; padding: 88px min(9vw,120px); justify-content: center; flex-direction: column; }
.recruit-work-style > div:last-child > p:last-of-type { max-width: 425px; margin: 25px 0 33px; color: var(--muted); font-size: 13px; line-height: 2.05; }
.recruit-work-style__links { display: flex; flex-wrap: wrap; gap: 11px; }
.recruit-work-style__links a { min-width: 158px; padding: 16px 0; border-bottom: 1px solid var(--blue); color: var(--blue); font: 700 10px/1 var(--sans); }
.recruit-work-style__links span { float: right; font-size: 17px; }
.recruit-home-people { padding: 124px 5vw; background: var(--navy); color: #fff; }
.recruit-home-people .recruit-section-heading p { color: #bde9e9; }
.recruit-home-people .recruit-section-heading h2 { color: #fff; }
.recruit-home-people > div { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; max-width: 1110px; margin: 0 auto; }
.recruit-home-people a { display: flex; min-height: 360px; padding: 37px; justify-content: flex-end; color: #fff; background-position: center; background-size: cover; flex-direction: column; }
.recruit-home-people a span { margin-bottom: 16px; color: #ceefef; font: 700 10px/1 var(--mono); letter-spacing: .13em; }
.recruit-home-people a strong { font: 400 28px/1.62 var(--serif); letter-spacing: .1em; }
.recruit-flow .recruit-section-heading h2 { color: #fff; }

.recruit-page-hero { min-height: 455px; }
.recruit-page-hero h1, .recruit-entry-hero h1 { margin: 0 0 24px; font: 400 clamp(42px,5.4vw,68px)/1.45 var(--serif); letter-spacing: .12em; }
.recruit-page-hero nav { position: absolute; right: 5.5vw; bottom: 34px; z-index: 1; color: rgba(255,255,255,.84); font: 600 9px/1 var(--mono); letter-spacing: .09em; }
.recruit-page-hero nav a { color: #fff; }
.recruit-page-hero nav span { margin: 0 8px; }
.recruit-intro-copy { width: min(100% - 50px,800px); margin: 0 auto; padding: 92px 0 82px; color: var(--muted); font: 400 17px/2.15 var(--serif); letter-spacing: .07em; text-align: center; }
.recruit-intro-copy p { margin: 0; }
.recruit-mission { padding: 118px 5vw; background: #f1f7f7; }
.recruit-mission > div { display: grid; grid-template-columns: repeat(2,1fr); max-width: 1030px; margin: 0 auto; gap: 17px; }
.recruit-mission article { min-height: 280px; padding: 38px; background: #fff; }
.recruit-mission article > p { margin: 0 0 42px; color: var(--blue); font: 700 10px/1 var(--mono); letter-spacing: .11em; }
.recruit-mission h3 { margin: 0 0 20px; color: var(--navy); font: 400 29px/1.55 var(--serif); letter-spacing: .09em; }
.recruit-mission article span { display: block; max-width: 350px; color: var(--muted); font-size: 12px; line-height: 2; }
.recruit-vision { display: grid; grid-template-columns: 1fr 1fr; width: min(100% - 50px,1040px); padding: 140px 0; gap: 9vw; }
.recruit-vision > p { margin: 45px 0 0; color: var(--muted); font-size: 14px; line-height: 2.1; }
.recruit-numbers { padding: 118px 5vw; background: var(--navy); color: #fff; }
.recruit-numbers .recruit-section-heading p { color: #c8efef; }
.recruit-numbers .recruit-section-heading h2 { color: #fff; }
.recruit-numbers > div { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1040px; margin: 0 auto; border-left: 1px solid rgba(255,255,255,.22); }
.recruit-numbers article { padding: 18px 24px; border-right: 1px solid rgba(255,255,255,.22); text-align: center; }
.recruit-numbers b { color: #b9e9e9; font: 400 53px/1 var(--serif); }
.recruit-numbers b span { margin-left: 3px; font-size: 16px; }
.recruit-numbers article p { margin: 17px 0 0; color: rgba(255,255,255,.7); font-size: 11px; }

.recruit-role-list { width: min(100% - 50px,1040px); margin: 0 auto; padding: 116px 0 128px; }
.recruit-role-list article { display: grid; grid-template-columns: 90px minmax(0,1fr) 155px; gap: 20px; align-items: center; padding: 36px 0; border-top: 1px solid var(--line); }
.recruit-role-list article:last-child { border-bottom: 1px solid var(--line); }
.recruit-role-list article > span { color: var(--blue); font: 700 13px/1 var(--mono); }
.recruit-role-list article div > p:first-child { margin: 0 0 10px; color: var(--blue); font: 700 9px/1 var(--mono); letter-spacing: .14em; }
.recruit-role-list h3 { margin: 0 0 13px; color: var(--navy); font: 400 25px/1.5 var(--serif); letter-spacing: .08em; }
.recruit-role-list article div > p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.9; }
.recruit-role-list article a { padding: 15px 0; border-bottom: 1px solid var(--blue); color: var(--blue); font: 700 10px/1 var(--sans); }
.recruit-role-list article a b { float: right; font-size: 17px; }
.recruit-career { display: grid; grid-template-columns: .88fr 1.12fr; padding: 118px 12.7vw; gap: 8vw; background: #f1f7f7; }
.recruit-career ol { display: grid; grid-template-columns: repeat(2,1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.recruit-career li { display: grid; min-height: 130px; padding: 23px; align-content: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recruit-career b { margin-bottom: 13px; color: var(--blue); font: 700 10px/1 var(--mono); }
.recruit-career li span { color: var(--navy); font: 400 16px/1.55 var(--serif); }

.recruit-interviews { padding: 117px 5vw 128px; background: #f1f7f7; }
.recruit-interviews > div { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1120px; margin: 0 auto; gap: 15px; }
.recruit-interviews article { display: flex; min-height: 356px; padding: 24px; justify-content: flex-end; color: #fff; background-position: center; background-size: cover; flex-direction: column; }
.recruit-interviews p { margin: 0 0 11px; font: 700 9px/1.5 var(--mono); letter-spacing: .05em; }
.recruit-interviews h3 { margin: 0 0 10px; font: 400 25px/1 var(--serif); letter-spacing: .05em; }
.recruit-interviews span { color: #d5f2f2; font: 700 8px/1 var(--mono); letter-spacing: .08em; }

.recruit-requirements { width: min(100% - 50px,1040px); margin: 0 auto; padding: 115px 0 138px; }
.recruit-filter-tabs { display: flex; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.recruit-filter-tabs button { min-width: 125px; padding: 14px 18px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); font: 600 12px/1 var(--sans); cursor: pointer; }
.recruit-filter-tabs button.is-current { border-color: var(--blue); color: var(--blue); }
.recruit-job-list { border-top: 1px solid var(--line); }
.recruit-job-list article { display: grid; grid-template-columns: 180px minmax(0,1fr) 170px; gap: 24px; align-items: center; padding: 28px 15px 28px 0; border-bottom: 1px solid var(--line); }
.recruit-job-list article[hidden] { display: none; }
.recruit-job-list p { display: grid; gap: 10px; margin: 0; }
.recruit-job-list p span { color: var(--blue); font: 700 10px/1 var(--mono); letter-spacing: .06em; }
.recruit-job-list p small { color: var(--muted); font-size: 10px; }
.recruit-job-list h3 { margin: 0; font: 400 18px/1.55 var(--serif); letter-spacing: .05em; }
.recruit-job-list a { padding: 15px 0; border-bottom: 1px solid var(--blue); color: var(--blue); font: 700 10px/1 var(--sans); }
.recruit-job-list a b { float: right; font-size: 17px; }

.recruit-entry-hero { padding: 132px 12.7vw 105px; background: var(--navy); color: #fff; text-align: center; }
.recruit-entry-hero h1 { margin-bottom: 22px; }
.recruit-entry-panel { display: grid; grid-template-columns: 1fr 1fr; width: min(100% - 50px,1040px); padding: 125px 0 145px; gap: 10vw; }
.recruit-entry-panel > div:first-child > p:last-child { max-width: 460px; margin: 25px 0 0; color: var(--muted); font-size: 13px; line-height: 2.1; }
.recruit-entry-panel__actions { display: grid; align-content: center; border-top: 1px solid var(--line); }
.recruit-entry-panel__actions a { display: grid; grid-template-columns: 50px minmax(0,1fr) 24px; gap: 15px; align-items: center; min-height: 82px; border-bottom: 1px solid var(--line); color: var(--blue); }
.recruit-entry-panel__actions span { font: 700 9px/1 var(--mono); letter-spacing: .1em; }
.recruit-entry-panel__actions b { font: 400 16px/1.5 var(--serif); overflow-wrap: anywhere; }
.recruit-entry-panel__actions i { font-size: 18px; font-style: normal; }
.recruit-entry-banner { display: flex; min-height: 270px; padding: 60px 12.7vw; align-items: center; justify-content: space-between; gap: 35px; background: var(--blue); color: #fff; }
.recruit-entry-banner p { margin: 0 0 15px; color: #d0f1f1; font: 700 10px/1 var(--mono); letter-spacing: .14em; }
.recruit-entry-banner h2 { margin: 0; font: 400 clamp(27px,3vw,41px)/1.55 var(--serif); letter-spacing: .1em; }
.recruit-entry-banner a { display: flex; min-width: 160px; padding: 18px 0; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.7); color: #fff; font: 700 10px/1 var(--mono); letter-spacing: .1em; }
.recruit-entry-banner a span { font-size: 18px; }

/* Contact */
.contact-directory { display: grid; grid-template-columns: 1fr 1fr; min-height: 570px; padding: 120px 12.7vw; gap: 8vw; align-items: center; background: #f2f7f7; }
.contact-directory h2 { margin: 0 0 25px; font: 400 clamp(31px,3.5vw,48px)/1.6 var(--serif); letter-spacing: .09em; }
.contact-directory > div:first-child > p:last-child { max-width: 440px; margin: 0; color: var(--muted); font-size: 13px; line-height: 2.1; }
.contact-directory__panel { padding: 52px; background: #fff; box-shadow: 0 18px 38px rgba(6,34,74,.06); }
.contact-directory__phone { display: block; margin-bottom: 17px; color: var(--blue); font: 600 clamp(24px,2.8vw,37px)/1 var(--mono); }
.contact-directory__panel p { margin: 0; color: var(--muted); font-size: 11px; }
.contact-directory__panel .pill-link { margin-top: 35px; }

@media (max-width: 800px) {
	.directory-hero { min-height: 420px; }
	.directory-hero__inner { padding: 135px 25px 62px; }
	.directory-hero h1 { font-size: 35px; }
	.breadcrumb { right: 25px; bottom: 25px; font-size: 8px; }
	.directory-content, .directory-intro { width: calc(100% - 50px); padding: 75px 0; }
	.directory-intro, .company-community { grid-template-columns: 1fr; gap: 34px; }
	.directory-intro--center { padding-bottom: 70px; }
	.directory-section-title { margin-bottom: 35px; }
	.directory-section-title p { font-size: 34px; }
	.company-overview { padding: 0 0 70px; }
	.company-overview__photo { height: 230px; }
	.company-overview__card { width: calc(100% - 34px); margin-top: -36px; padding: 44px 22px 25px; }
	.overview-table > div { grid-template-columns: 92px 1fr; gap: 13px; padding: 16px 0; }
	.overview-table dt, .overview-table dd { font-size: 11px; }
	.history-list li { grid-template-columns: 58px 1fr; gap: 17px; }
	.history-list time { font-size: 11px; }
	.history-list p { font-size: 14px; }
	.company-policy { padding: 75px 25px; }
	.company-access > div { grid-template-columns: 1fr; }
	.company-access article { min-height: 0; padding: 29px; }
	.company-iso { padding: 75px 25px; }
	.service-directory-list { padding: 0 25px 75px; }
	.service-directory-card, .service-directory-card--reverse { grid-template-columns: 1fr; }
	.service-directory-card--reverse figure, .service-directory-card--reverse > div { grid-column: auto; grid-row: auto; }
	.service-directory-card figure { min-height: 235px; }
	.service-directory-card > div { padding: 40px 28px; }
	.service-directory-card h2 { font-size: 27px; }
	.service-works-preview { padding: 75px 25px; }
	.service-works-preview > div { grid-template-columns: 1fr; }
	.service-works-preview figure { min-height: 205px; }
	.directory-cta { min-height: 0; padding: 63px 25px; align-items: flex-start; flex-direction: column; }
	.directory-work-grid { grid-template-columns: 1fr; }
	.directory-archive { padding: 75px 25px; }
	.archive-filter { overflow-x: auto; gap: 17px; font-size: 11px; white-space: nowrap; }
	.directory-news { grid-template-columns: 1fr; width: calc(100% - 50px); gap: 50px; padding: 75px 0; }
	.directory-news-list article { grid-template-columns: 78px 1fr; gap: 10px; padding: 18px 0; }
	.directory-news-list article > p { display: none; }
	.directory-news-list h2 { font-size: 14px; }
	.recruit-subnav { justify-content: flex-start; }
	.recruit-subnav a { padding: 17px 16px; font-size: 9px; }
	.recruit-story { min-height: 470px; padding: 75px 25px; }
	.recruit-story h2 { font-size: 35px; }
	.recruit-cards > div { grid-template-columns: 1fr; }
	.recruit-cards article { min-height: 0; }
	.recruit-people { padding: 75px 25px; }
	.recruit-people > div { grid-template-columns: 1fr; }
	.recruit-people article { min-height: 285px; }
	.recruit-flow { padding: 75px 25px; }
	.recruit-flow ol { grid-template-columns: repeat(2,1fr); }
	.recruit-flow li:nth-child(3) { border-top: 1px solid rgba(255,255,255,.25); }
	.recruit-flow li:last-child { border-top: 1px solid rgba(255,255,255,.25); }
	.recruit-child-hero { min-height: 380px; padding: 70px 25px; }
	.recruit-child-hero h2 { font-size: 34px; }
	.contact-directory { grid-template-columns: 1fr; min-height: 0; padding: 75px 25px; gap: 48px; }
	.contact-directory__panel { padding: 35px 27px; }
}

/* ============================================================
   SAMPLE demo additions (appended on top of KIBACO v2.1.1)
   — demo bar offset, teaser modal, record tables, lists
   ============================================================ */
.site-header { inset: auto; top: var(--demo-bar-h, 0); right: 0; left: 0; }
.mobile-menu { padding-top: calc(96px + var(--demo-bar-h, 0px)); }

/* front-page hero facts strip (kibaco hero-news repurposed) */
.hero-news strong { letter-spacing: .2em; }

/* reasons grid: kibaco recruit-cards reused on front page */
.reasons-cards > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); margin-top: 55px; }
.reasons-cards article { min-height: 242px; padding: 33px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.reasons-cards article span { color: var(--blue); font: 600 10px/1 var(--mono); }
.reasons-cards h3 { margin: 28px 0 15px; font: 400 23px/1.6 var(--serif); }
.reasons-cards article p { margin: 0; color: var(--muted); font-size: 12px; line-height: 2; }
@media (max-width: 800px) { .reasons-cards > div { grid-template-columns: 1fr; } }

/* front-page compact service detail rows */
.front-service-details { margin: 70px 0 0; }
.front-service-details .service-detail { padding: 42px 0; }
.front-service-details .service-detail div > p:last-child { max-width: none; }

/* record tables (company.html works-all) */
.record-section { padding-bottom: 40px; }
.record-note { max-width: 840px; margin: -28px auto 45px; color: var(--muted); font-size: 12px; line-height: 1.9; text-align: center; }
.record-group { max-width: 840px; margin: 0 auto 55px; }
.record-cat { display: flex; align-items: baseline; gap: 14px; margin: 0 0 18px; font: 400 22px/1.5 var(--serif); letter-spacing: .08em; }
.record-cat span { color: var(--blue); font: 600 10px/1 var(--mono); letter-spacing: .12em; }
.record-cat em { color: var(--muted); font-style: normal; font-size: 13px; }
.record-scroll { overflow-x: auto; }
.record-scroll table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--line); font-size: 13px; }
.record-scroll th { padding: 12px 14px; border-bottom: 1px solid var(--line); color: var(--blue); font: 700 11px/1.6 var(--sans); letter-spacing: .08em; text-align: left; }
.record-scroll td { padding: 13px 14px; border-bottom: 1px solid var(--line); color: #303d4f; line-height: 1.8; }
.record-scroll tr td:last-child { color: var(--muted); }

/* qualification / membership lists (company.html) */
.q-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.q-list li { padding: 15px 17px; border-left: 2px solid var(--blue); background: #f2f7f9; font-size: 13px; line-height: 1.8; }
.q-list--wide { grid-template-columns: 1fr 1fr; }
@media (max-width: 800px) { .q-list--wide { grid-template-columns: 1fr; } }

/* teaser modal (demo-only) */
.teaser-modal { position: fixed; inset: 0; z-index: 100001; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(6, 22, 46, .62); }
.teaser-modal.open { display: flex; }
.teaser-modal .tm-panel { position: relative; max-width: 540px; padding: 46px 42px; background: #fff; color: var(--text); box-shadow: 0 24px 60px rgba(2, 25, 58, .3); }
.teaser-modal .tm-en { margin: 0 0 18px; color: var(--blue); font: 600 10px/1.6 var(--mono); letter-spacing: .18em; }
.teaser-modal h2 { margin: 0 0 16px; font: 400 24px/1.7 var(--serif); letter-spacing: .08em; }
.teaser-modal p { margin: 0; color: var(--muted); font-size: 13px; line-height: 2; }
.teaser-modal .tm-close { margin-top: 24px; padding: 12px 34px; border: 1px solid var(--navy); border-radius: 999px; background: #fff; color: var(--navy); font: 600 12px/1 var(--sans); letter-spacing: .1em; cursor: pointer; }
.teaser-modal .tm-close:hover { background: var(--navy); color: #fff; }
@media (max-width: 800px) { .teaser-modal .tm-panel { padding: 36px 26px; } .teaser-modal h2 { font-size: 20px; } }
