@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap");

:root { --ink:#151a19; --muted:#667077; --line:#d9ddda; --paper:#f5f5f1; --surface:#fffefa; --accent:#b8d84b; --accent-deep:#789b1f; --deep:#182322; --side:70px; font-family:"Noto Sans JP", sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
.honeypot { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(1px,1px,1px,1px) !important; white-space:nowrap !important; }.form-error { margin:0; padding:16px; color:#7b2323; background:#fae9e8; font-size:14px; line-height:1.7; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; min-height:100vh; background:var(--paper); }
button, input, select, textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.site-header { height:80px; position:sticky; top:0; z-index:20; display:flex; align-items:stretch; padding-left:var(--side); background:rgba(255,254,250,.93); border-bottom:1px solid rgba(21,26,25,.1); backdrop-filter:blur(14px); }
.brand { position:absolute; left:0; top:0; display:flex; align-items:center; gap:14px; height:80px; padding-right:24px; background:var(--surface); font-size:20px; font-weight:700; }
.brand-mark { width:80px; height:80px; display:grid; place-items:center; background:var(--deep); }
.brand-mark img { content:url("../images/core-logo-mark.png"); width:40px; height:40px; object-fit:contain; }
.brand > span:last-child { display:inline; }
.primary-nav { flex:1; display:flex; align-items:stretch; justify-content:flex-end; }
.nav-link, .contact-link { min-width:105px; padding:0 13px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-left:1px solid #edf0ef; font-family:Outfit,"Noto Sans JP",sans-serif; font-weight:600; font-size:12px; letter-spacing:.04em; }
.nav-link small, .contact-link small { font-family:"Noto Sans JP",sans-serif; font-weight:500; font-size:12px; letter-spacing:0; white-space:nowrap; }
.nav-link:hover, .nav-link.is-active { color:var(--accent-deep); }
.contact-link { min-width:142px; padding-inline:22px; background:var(--accent); }
.menu-button { display:none; }

.hero { min-height:calc(100vh - 80px); max-height:880px; position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; padding:100px clamp(42px,10vw,168px); background:#f6f6f2; }
.hero::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(250,250,247,.98) 0%,rgba(250,250,247,.9) 29%,rgba(250,250,247,.18) 56%,rgba(250,250,247,0) 76%); }
.hero-art { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-copy { position:relative; z-index:1; max-width:600px; padding-left:clamp(18px,3vw,48px); border-left:1px solid rgba(21,26,25,.22); }
.hero-kicker { margin:0 0 24px; color:var(--accent-deep); font-family:Outfit,"Noto Sans JP",sans-serif; font-size:11px; font-weight:600; letter-spacing:.16em; }
.hero-rule { position:absolute; left:clamp(42px,10vw,168px); bottom:0; width:min(50vw,710px); height:6px; background:var(--accent); }
.eyebrow { margin:0 0 18px; color:var(--accent-deep); font-family:Outfit,"Noto Sans JP",sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; }
.eyebrow::before { content:""; display:inline-block; width:16px; height:2px; margin:0 10px 3px 0; background:var(--accent); }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:25px; font-size:clamp(48px,5.3vw,86px); line-height:1.12; letter-spacing:-.06em; }.hero-copy h1 { letter-spacing:3px; }.page-heading h1 { font-size:clamp(48px,3.3vw,86px); }
h2 { margin-bottom:22px; font-size:clamp(31px,3.15vw,52px); line-height:1.28; letter-spacing:-.05em; }
h3 { margin-bottom:14px; font-size:28px; line-height:1.25; letter-spacing:-.04em; }
.hero-copy > p:not(.eyebrow), .page-heading > p:not(.eyebrow) { color:#404a4d; font-size:15px; line-height:2; }
.button { display:inline-flex; justify-content:center; align-items:center; min-width:174px; min-height:52px; margin-top:23px; padding:12px 20px; color:#162000; background:var(--accent); border:1px solid var(--accent); cursor:pointer; font-weight:600; transition:.2s; }
.button:hover, .button:focus-visible { color:#fff; background:var(--deep); border-color:var(--deep); }
.scroll-note { position:absolute; left:20px; bottom:46px; z-index:2; margin:0; color:#4b5456; font-family:Outfit,sans-serif; font-size:11px; writing-mode:vertical-rl; letter-spacing:.16em; }

.section { padding:clamp(72px,9vw,150px) clamp(28px,9vw,152px); }
.home-statement { display:grid; grid-template-columns:minmax(150px,.42fr) minmax(0,1fr); gap:clamp(36px,8vw,128px); align-items:start; max-width:1280px; margin:0 auto; padding:clamp(75px,10vw,150px) clamp(28px,9vw,152px); }
.home-statement h2 { max-width:780px; margin-bottom:26px; font-size:clamp(34px,4.1vw,60px); }
.home-statement div > p { max-width:600px; margin:0; color:#4c575a; font-size:15px; line-height:2.05; }
.business-overview { position:relative; background:#e9ece6; }
.section-title { max-width:1240px; margin:0 auto 70px; }
.section-title > p { max-width:520px; color:#4c575a; line-height:2; }
.business-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:1240px; margin:auto; }
.business-card { display:flex; flex-direction:column; overflow:hidden; background:var(--surface); box-shadow:0 20px 60px rgba(24,35,34,.07); }
.business-card:first-child { grid-row:auto; min-height:0; }
.business-card > img { width:100%; aspect-ratio:3 / 2; object-fit:cover; }
.business-card::after { content:none; }
.business-card__copy { flex:1; padding:32px; background:var(--surface); }
.business-card:first-child .business-card__copy { color:var(--ink); background:var(--surface); }
.business-card__copy > span { display:block; margin-bottom:14px; color:#85ae1b; font-family:Outfit,sans-serif; font-size:16px; }
.business-card__copy p { max-width:400px; color:inherit; font-size:14px; line-height:1.85; }
.business-card__copy a, .text-link { display:inline-block; margin-top:5px; color:#6f9314; font-size:14px; font-weight:600; border-bottom:1px solid currentColor; padding-bottom:4px; }
.business-card:first-child .business-card__copy a { color:#6f9314; }
.kuchikomi-banner { display:flex; align-items:center; justify-content:space-between; gap:38px; max-width:1238px; margin:0 auto; padding:clamp(52px,6vw,86px) clamp(28px,7vw,98px); background:linear-gradient(135deg,#162120,#22322e); color:#fff; }
.kuchikomi-banner .eyebrow { color:#c4e96c; }.kuchikomi-banner h2 { margin-bottom:10px; font-size:clamp(25px,2.7vw,42px); }.kuchikomi-banner p:not(.eyebrow) { margin-bottom:0; color:#d2dcda; }.kuchikomi-button { flex:0 0 auto; background:#fff; border-color:#fff; }.kuchikomi-button:hover,.kuchikomi-button:focus-visible { background:var(--accent); border-color:var(--accent); color:var(--ink); }

.message-promo { display:grid; grid-template-columns:42% 58%; align-items:stretch; padding-block:0; background:var(--surface); }
.message-promo > div { padding:clamp(70px,9vw,140px) clamp(28px,7vw,115px); padding-left:max(0px,calc((100vw - 1240px)/2 - clamp(28px,9vw,152px))); }
.message-promo > div > p:not(.eyebrow) { max-width:360px; color:#536064; line-height:2; }
.message-promo > img { width:100%; height:100%; min-height:420px; object-fit:cover; object-position:80% center; filter:saturate(.82) contrast(.98); }
.contact-promo { padding:clamp(80px,10vw,160px) max(28px,calc((100% - 1240px)/2)); color:#fff; background:linear-gradient(120deg,#15201f,#20322d); }
.contact-promo h2 { margin-bottom:9px; }.contact-promo p:not(.eyebrow) { color:#c5ccca; }.button--light { color:var(--ink); background:#fff; border-color:#fff; }

.page { min-height:calc(100vh - 80px); background:var(--paper); }.page-heading { padding:clamp(90px,12vw,170px) clamp(28px,10vw,170px) 70px; border-bottom:1px solid var(--line); background:#fff; }.page-heading > p:last-child { max-width:650px; margin-bottom:0; }
.page-business { padding-top:60px; }.related-service { margin:0 clamp(28px,9vw,152px) clamp(72px,9vw,150px); padding:46px; background:var(--deep); color:#fff; }.related-service p:not(.eyebrow) { color:#d1d9d7; }
.long-copy { max-width:780px; padding:clamp(70px,10vw,145px) clamp(28px,10vw,170px); font-size:18px; line-height:2.2; }.signature { margin-top:56px; font-size:15px; font-weight:600; text-align:right; }.notice { margin-top:42px; padding:18px 20px; color:#566064; background:#eaeee9; font-size:14px; line-height:1.8; }
.company-grid, .contact-layout, .split-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:clamp(35px,8vw,120px); max-width:1280px; margin:auto; }.company-list { margin:0; }.company-list div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:22px 0; border-top:1px solid var(--line); }.company-list div:last-child { border-bottom:1px solid var(--line); }.company-list dt { color:#687176; }.company-list dd { margin:0; font-weight:500; line-height:1.8; }.company-aside { padding:42px; background:#fff; }.company-aside h2 { font-size:34px; }.company-aside p:not(.eyebrow) { line-height:2; }
.company-history { display:grid; grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr); gap:clamp(36px,9vw,150px); max-width:1280px; margin:auto; padding-top:0; }.company-history ol { margin:0; padding:0; list-style:none; }.company-history li { display:grid; grid-template-columns:110px 1fr; gap:24px; padding:20px 0; border-top:1px solid var(--line); }.company-history li:last-child { border-bottom:1px solid var(--line); }.company-history time { color:#6b8d0e; font-family:Outfit,sans-serif; font-size:20px; font-weight:600; }.company-history li p { margin:0; line-height:1.8; }
.partner-page { background:#fff; }.split-content { align-items:start; }.split-content > div:last-child { color:#4c5659; line-height:2.1; }.split-content .button { margin-top:15px; }
.partner-skills { max-width:1280px; margin:auto; padding-top:0; }.partner-skills h2 { font-size:36px; }.partner-skills ul { margin:32px 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }.partner-skills li { padding:20px 0 20px 24px; border-bottom:1px solid var(--line); position:relative; line-height:1.8; }.partner-skills li::before { content:""; position:absolute; width:7px; height:7px; left:2px; top:31px; background:var(--accent); }
.contact-page { background:#fff; }.contact-layout { align-items:start; }.contact-layout form { display:grid; gap:20px; }.contact-layout label { display:grid; gap:8px; color:#4f595b; font-size:14px; font-weight:600; }.contact-layout input,.contact-layout select,.contact-layout textarea { width:100%; padding:13px 14px; color:var(--ink); border:1px solid #cbd3d1; border-radius:0; background:#fff; font-weight:400; }.contact-layout input:focus,.contact-layout select:focus,.contact-layout textarea:focus { outline:2px solid #85ad19; outline-offset:2px; }.form-note { margin:0; color:#667176; font-size:14px; }.form-success { margin:0; padding:16px; background:#eaf2d9; color:#2f4b08; font-size:14px; line-height:1.7; }.contact-layout aside { padding:42px; color:#fff; background:var(--deep); }.contact-layout aside h2 { font-family:Outfit,"Noto Sans JP",sans-serif; font-size:30px; letter-spacing:0; }.contact-layout aside p:not(.eyebrow) { color:#d3dcda; line-height:2; }
.site-footer { display:grid; grid-template-columns:1fr auto; gap:28px; padding:48px max(28px,calc((100vw - 1100px)/2)); color:#dce4e2; background:#101516; }.site-footer > div:first-child { position:relative; min-height:44px; padding-left:58px; }.site-footer > div:first-child::before { content:""; position:absolute; top:0; left:0; width:42px; height:42px; background:url("../images/core-logo-mark.png") center / contain no-repeat; }.site-footer .eyebrow { margin-bottom:8px; color:#a8d43a; }.site-footer p:not(.eyebrow) { margin:0; }.footer-links { display:flex; gap:24px; align-items:start; font-size:14px; }.footer-links a:hover { color:var(--accent); }.site-footer small { grid-column:1/-1; color:#788281; }

@media (max-width:1050px) { :root { --side:58px; }.nav-link { min-width:100px; padding-inline:8px; font-size:12px; }.contact-link { min-width:112px; padding-inline:8px; }.brand { font-size:12px; }.hero { min-height:650px; }.business-card:first-child { min-height:660px; }.message-promo { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { :root { --side:0; }.site-header { height:63px; padding-left:0; }.brand { position:static; flex:1; height:63px; font-size:13px; }.brand-mark { width:63px; height:63px; }.menu-button { display:block; width:84px; border:0; color:#fff; background:var(--deep); font-size:12px; font-weight:600; }.primary-nav { display:none; position:absolute; top:63px; left:0; right:0; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 12px 24px rgba(0,0,0,.08); }.primary-nav.is-open { display:block; }.nav-link,.contact-link { min-height:56px; padding:10px 22px; display:flex; align-items:flex-start; border-left:0; border-bottom:1px solid var(--line); }.contact-link { background:var(--accent); }.hero { min-height:650px; padding:92px 28px 115px; align-items:flex-start; }.hero::after { background:linear-gradient(180deg,rgba(250,250,247,.98),rgba(250,250,247,.74) 60%,rgba(250,250,247,.2)); }.hero-art { object-position:68% center; opacity:.86; }.hero-copy { max-width:355px; padding-left:18px; }.hero-kicker { margin-bottom:20px; font-size:11px; }.hero-copy > p:not(.eyebrow) { font-size:14px; }.hero-copy > p br { display:none; }.hero-rule { left:28px; width:calc(100% - 56px); height:4px; }.scroll-note { left:auto; right:18px; bottom:26px; }.home-statement { grid-template-columns:1fr; gap:8px; padding:74px 28px; }.home-statement h2 { font-size:34px; }.home-statement div > p br { display:none; }.section { padding:74px 28px; }.section-title { margin-bottom:38px; }.business-grid { grid-template-columns:1fr; }.business-card,.business-card:first-child { min-height:450px; grid-row:auto; }.business-card__copy { padding:28px; min-height:185px; }.kuchikomi-banner { flex-direction:column; align-items:flex-start; margin:0; padding:58px 28px; }.message-promo { grid-template-columns:1fr; padding:0; }.message-promo > div { padding:76px 28px; }.message-promo > img { min-height:260px; }.company-grid,.contact-layout,.split-content,.company-history { grid-template-columns:1fr; }.company-list div { grid-template-columns:1fr; gap:8px; }.company-aside,.contact-layout aside { padding:30px; }.company-history { padding-top:0; }.company-history li { grid-template-columns:70px 1fr; gap:16px; }.site-footer { grid-template-columns:1fr; padding:42px 28px; }.footer-links { flex-wrap:wrap; gap:14px 22px; }.site-footer small { grid-column:auto; } }

@media (max-width:760px) { .business-grid { gap:18px; }.business-card,.business-card:first-child { min-height:0; }.business-card__copy { min-height:0; } }

@media (max-width:760px) { .site-header { height:72px; }.brand { gap:10px; height:72px; padding-right:18px; font-size:20px; }.brand-mark { width:72px; height:72px; }.brand-mark img { width:40px; height:40px; }.brand > span:last-child { display:inline; }.primary-nav { top:72px; }.page { min-height:calc(100vh - 72px); } }
