/* Jobs AI 2026. Shared visual system for every public and application route. */
:root, html[data-ui="2"] { --ink:#17212b; --muted:#596773; --line:#dce0df; --canvas:#fbfaf8; --bg:#fbfaf8; --brand:#d9002b; --accent:#d9002b; --accent-dark:#b80024; --ai:#d9002b; --field:#267e72; --field-bg:#edf8f3; --v2-ai-grad:#d9002b; --v2-ink:#17212b; --v2-muted:#596773; }
body { background:var(--canvas); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif; font-size:16px; line-height:1.75; -webkit-font-smoothing:antialiased; }
body[data-vertical="kaigo"] { --field:#9b422d; --field-bg:#faf0e8; }
body[data-vertical="taxi"] { --field:#265ea6; --field-bg:#edf3fc; }
body[data-vertical="concept-cafe"] { --field:#874174; --field-bg:#faf0f7; }
*, *::before, *::after { box-sizing:border-box; }
img { max-width:100%; }
h1,h2,h3 { text-wrap:balance; letter-spacing:-.035em; color:var(--ink); }
p,li,dd { overflow-wrap:anywhere; }
a,button,input,select,textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #005fcc; outline-offset:4px; }
.skip-link { position:fixed; top:8px; left:16px; z-index:100; padding:12px 20px; background:#fff; color:var(--ink); border:2px solid #005fcc; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.shell { width:min(1220px,calc(100% - 64px)); margin-inline:auto; }
.site-header, html[data-ui="2"] .site-header, .bar { background:#fbfaf8; border-bottom:1px solid var(--line); box-shadow:none; backdrop-filter:none; }
.header-inner, html[data-ui="2"] .header-inner { min-height:88px; gap:24px; }
.brand { font-weight:850; letter-spacing:-.045em; font-size:1.35rem; white-space:nowrap; }
.header-inner nav a,.primary-nav a,.bar nav a { color:var(--muted); font-size:.85rem; font-weight:600; }
.header-inner nav a:hover,.primary-nav a:hover { color:var(--ink); }
.header-ai,.header-cta,html[data-ui="2"] .header-cta { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 22px; background:#d9002b; border:0; border-radius:12px; color:#fff; font-weight:750; box-shadow:none; }
.header-biz { border:1px solid #81909c; color:var(--ink); background:transparent; border-radius:12px; min-height:44px; }
.primary,.button-primary,html[data-ui="2"] .button-primary { color:#fff; background:#d9002b; border-color:#d9002b; box-shadow:none; border-radius:12px; }
.primary:hover,.button-primary:hover,html[data-ui="2"] .button-primary:hover,.header-ai:hover,.header-cta:hover,html[data-ui="2"] .header-cta:hover { color:#fff; background:#b80024; text-decoration:none; }
.secondary,.button-secondary,html[data-ui="2"] .button-secondary { background:#fff; color:var(--ink); border:1px solid #81909c; border-radius:12px; }
.primary,.secondary,.button,.text-link,button { min-height:44px; }
.text-link { display:inline-flex; align-items:center; color:var(--field); font-weight:700; }
.breadcrumbs { padding-block:24px; font-size:.78rem; color:var(--muted); }
.vertical-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:56px; padding:40px 0 56px; background:transparent; border:0; border-radius:0; }
.vertical-name,.eyebrow,.eyeline,.main-eyebrow,.main-kicker { color:var(--field); font-size:.72rem; font-weight:800; letter-spacing:.14em; }
.vertical-name span { display:block; margin-top:8px; color:var(--muted); letter-spacing:.02em; font-weight:500; }
.vertical-hero h1 { font-size:clamp(2.5rem,4.3vw,4.2rem); line-height:1.32; margin:20px 0; }
.vertical-hero .hero-lead { max-width:560px; margin:0 0 28px; color:var(--muted); font-size:1.02rem; line-height:1.9; }
.ai-top { display:flex; align-items:center; gap:16px; width:min(440px,100%); min-height:88px; padding:18px 24px; background:#d9002b; border:0; border-radius:16px; color:#fff; box-shadow:0 8px 24px #d9002b18; transition:background .18s,transform .18s; }
.ai-top:hover { background:#b80024; transform:translateY(-2px); text-decoration:none; }
.ai-top strong { color:#fff; display:block; font-size:1.2rem; }
.ai-top small { display:block; margin-top:2px; color:#fff; font-size:.76rem; font-weight:500; }
.ai-top-mark { display:grid; place-items:center; flex:0 0 42px; height:42px; border:1px solid #ffffff80; border-radius:12px; background:transparent; color:#fff; font-size:.9rem; }
.ai-top b { margin-left:auto; font-size:1.5rem; }
.vertical-hero .actions { display:flex; flex-wrap:wrap; gap:16px; margin:20px 0 0; }
.vh-chips { display:flex; gap:16px; margin:20px 0 0; padding:0; list-style:none; }
.vh-chips li { padding:0; border:0; border-radius:0; background:transparent; color:var(--muted); font-size:.76rem; }
.vh-chips li::before { content:"✓ "; color:var(--field); font-weight:800; }
.vh-art { position:relative; margin:0; min-width:0; padding:0; overflow:visible; background:transparent; }
.vh-art img { display:block; width:100%; height:480px; object-fit:cover; border-radius:28px 28px 100px 28px; }
.vh-art figcaption { margin-top:12px; color:var(--muted); font-size:.7rem; }
.vh-badge { position:absolute; right:20px; bottom:64px; background:#fbfaf8; color:var(--field); font-size:.7rem; letter-spacing:.12em; border-radius:8px; padding:12px 18px; box-shadow:none; }
.journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding:32px 0 40px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:40px; }
.journey span { font-size:.68rem; letter-spacing:.12em; color:var(--field); font-weight:800; }
.journey h2 { font-size:1.18rem; margin:12px 0 8px; }
.journey p { font-size:.85rem; color:var(--muted); margin:0; }
.section { padding-block:48px; border-bottom:1px solid var(--line); }
.section h2,.section-heading h2 { font-size:clamp(1.6rem,2.4vw,2rem); margin-bottom:24px; }
.pref-grid { gap:8px; }
.pref-grid a { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:12px 16px; border:1px solid var(--line); background:#fff; border-radius:10px; font-size:.85rem; }
.pref-grid a:hover { border-color:var(--field); background:var(--field-bg); text-decoration:none; }
.pref-grid small { color:var(--muted); }
.card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.job-card,.vertical-card,.job-row,.facility-row,html[data-ui="2"] .job-row,html[data-ui="2"] .facility-row { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:none; }
.job-card { transition:transform .18s,border-color .18s; }
.job-card:hover { transform:translateY(-3px); border-color:var(--field); }
.job-card-photo img { width:100%; height:210px; object-fit:cover; }
.job-card-body { padding:24px; }
.job-card h3 { font-size:1.13rem; line-height:1.65; }
.job-card-area,.job-card-employer { color:var(--muted); font-size:.82rem; }
.job-card-pay,.job-salary,html[data-ui="2"] .job-salary { color:var(--field); font-weight:800; font-size:1.15rem; }
.sample-badge,.data-label { color:#604923; background:#fff6df; font-size:.72rem; }
.sample-note,.sample-banner,.image-caption,.fact-note { color:var(--muted); font-size:.78rem; }
.biz-strip { margin:24px auto; padding:24px 28px; background:var(--field-bg); border:1px solid var(--line); border-radius:16px; box-shadow:none; }
.biz-strip span { color:var(--muted); }
.biz-strip .primary { background:#fff; border:1px solid #81909c; color:var(--ink); }
.biz-strip-actions { display:flex; flex-wrap:wrap; gap:12px; }
.page-head,.page-intro { padding:36px 0 40px; background:transparent; }
.page-head h1,.page-intro h1 { font-size:clamp(2rem,3.6vw,3rem); line-height:1.4; }
.page-head p,.page-intro p { color:var(--muted); max-width:760px; }
.detail,.job-detail,.facility-detail,.guide-page,.policy-page,.legal-body { max-width:920px; margin:24px auto 64px; }
.detail h1,.detail-heading h1 { font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.5; }
.detail-photo,.detail-image { width:100%; max-height:480px; object-fit:cover; border-radius:20px; }
.detail dl,.job-facts { border-top:1px solid var(--line); }
.detail dt,.detail dd { padding:16px; margin:0; border-bottom:1px solid var(--line); }
.detail dt { background:var(--field-bg); font-weight:700; }
.detail-section { padding-block:24px; }
.list { padding:0; list-style:none; }
.list li { padding:20px 24px; border:1px solid var(--line); border-radius:14px; background:#fff; margin-block:12px; }
.empty,.empty-state { padding:32px; border:1px dashed #81909c; background:#fff; border-radius:16px; color:var(--muted); }
.about { padding:40px; border-radius:24px; margin-block:48px; background:var(--field-bg); }
.ai-step,.match-list,.wizard { max-width:800px; margin:32px auto 64px; }
.ai-step { padding:40px; border:1px solid var(--line); border-radius:24px; background:#fff; }
.ai-step h1 { font-size:clamp(1.6rem,3vw,2.2rem); }
.ai-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:28px 0; }
.ai-option { min-height:60px; border:1px solid #81909c; border-radius:12px; padding:16px; background:#fff; color:var(--ink); }
.ai-option:has(input:checked),.choice-row:has(input:checked),html[data-ui="2"] .choice-row:has(input:checked) { border-color:#d9002b; background:#fff1f3; box-shadow:inset 0 0 0 1px #d9002b; }
.match-result,html[data-ui="2"] .match-result { padding:28px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:none; }
.match-score,.match-score strong,.match-score b,html[data-ui="2"] .match-score { background:none; color:var(--field); -webkit-text-fill-color:currentColor; }
.match-why,.match-reasons,html[data-ui="2"] .match-reasons { background:var(--field-bg); color:var(--ink); }
input,select,textarea { border-color:#81909c; border-radius:12px; accent-color:#d9002b; font:inherit; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select { min-height:48px; }
.site-footer,html[data-ui="2"] .site-footer { margin-top:64px; padding:48px 0; background:#17212b; color:#fff; border:0; }
.site-footer p,.site-footer small,.footer-bottom { color:#cbd1d5; }
.site-footer a,.site-footer .brand,.site-footer strong { color:#fff; }
.footer-fields { display:flex; gap:24px; flex-wrap:wrap; margin:24px 0; font-size:.85rem; }
.footer-fields a { min-height:44px; display:flex; align-items:center; }
/* Gateway: editorial introduction, immediately actionable field selection. */
.main-hero { background:#fbfaf8; min-height:0; }
.main-hero-inner { width:min(1220px,calc(100% - 64px)); min-height:590px; grid-template-columns:1.15fr .85fr; gap:64px; }
.main-hero h1 { font-size:clamp(3rem,4.5vw,4.5rem); letter-spacing:-.07em; }
.main-hero h1 span { color:#267e72; }
.main-hero-cta { background:#d9002b; border-radius:12px; box-shadow:none; }
.main-hero-cta:hover { background:#b80024; box-shadow:none; }
.main-hero-note,.main-hero-bottom { color:var(--muted); }
.gateway-selector { padding:32px; background:#edf8f3; border-radius:24px; }
.gateway-selector .eyeline { margin:0 0 20px; }
.gateway-choice { display:flex; align-items:center; gap:20px; padding:18px 0; border-top:1px solid #becfc7; }
.gateway-choice:hover { color:#267e72; text-decoration:none; }
.gateway-choice-no { color:#596773; font-size:.75rem; }
.gateway-choice strong { display:block; font-size:1.18rem; }
.gateway-choice small { display:block; font-size:.73rem; color:var(--muted); }
.gateway-choice > span:last-child { margin-left:auto; font-size:1.6rem; }
.main-verticals { width:min(1220px,calc(100% - 64px)); padding-block:64px; }
.main-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.main-card { border-radius:20px; border:1px solid var(--line); box-shadow:none; }
.main-card:hover { transform:translateY(-4px); box-shadow:none; }
.main-card-image { height:300px; }
.main-card-body { padding:28px; }
.main-card-body h3 { font-size:1.7rem; }
.main-about { background:#edf8f3; }
.main-photo-note,.main-card-body > p,.main-section-head > p:last-child { color:var(--muted); }
[data-reveal] { opacity:1; transform:none; }
/* Care: keep all specialized search/detail flows, use the same visual language. */
.care-page main { max-width:1220px; width:calc(100% - 64px); }
.care-page .hero,html[data-ui="2"] .care-page .hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:56px; padding:48px 0; background:transparent; border-radius:0; }
.care-page .hero h1,html[data-ui="2"] .care-page .hero h1 { font-size:clamp(2.5rem,4.3vw,4.2rem); line-height:1.32; }
.care-page .hero-image,html[data-ui="2"] .care-page .hero-image { display:block; margin:0; position:relative; }
.care-page .hero-image img { display:block; height:480px; width:100%; object-fit:cover; border-radius:28px 28px 100px 28px; }
.care-page .hero-image figcaption { font-size:.7rem; color:var(--muted); }
.care-page .ai-card,html[data-ui="2"] .care-page .ai-card { display:none; }
.care-page .hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.care-page .hero-actions .button-primary { min-height:76px; padding:18px 28px; width:min(440px,100%); justify-content:space-between; font-size:1.25rem; }
.care-page .hero-lead { color:var(--muted); font-size:1.02rem; }
.care-page .hero-note { font-size:.76rem; }
.care-page .search-panel,html[data-ui="2"] .care-page .search-panel { padding:32px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:none; }
.care-page .matching-intro { margin-block:56px; padding:40px; background:var(--field-bg); border-radius:24px; }
.care-page .pref-section,.care-page .job-section,.care-page .taxonomy-section { padding-block:32px; }
.care-page .fact-block { padding:28px; border:1px solid var(--line); background:#fff; border-radius:20px; }
.care-page .wizard,html[data-ui="2"] .care-page .wizard { background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:none; }
.care-page .wizard-top,html[data-ui="2"] .care-page .wizard-top { background:var(--field-bg); }
.care-page .progress-track > *,html[data-ui="2"] .care-page .progress-track > * { background:#d9002b; }
.care-page .employer-callout { background:var(--field-bg); border-radius:20px; }
/* Application, registration, pricing, employer, and administration pages. */
.console-page main { max-width:1220px; padding-top:48px; min-height:65vh; overflow-x:visible; }
.console-page .bar { gap:24px; min-height:88px; }
.console-page .bar .brand b { background:#17212b; color:#fff; }
.console-page .bar nav a { min-height:44px; display:inline-flex; align-items:center; border-radius:10px; }
.console-page .bar nav a[aria-current] { background:#edf8f3; color:#17212b; }
.console-page .card { padding:32px; border-radius:20px; border:1px solid var(--line); box-shadow:none; }
.console-page .cols { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.console-page .cols.wide { grid-template-columns:minmax(0,2fr) minmax(260px,1fr); }
.console-page h1 { font-size:clamp(2rem,3vw,2.8rem); line-height:1.4; }
.console-page h2 { font-size:1.15rem; }
.console-page .hero { padding:0 0 32px; }
.console-page .stats > div { padding:24px; border-radius:16px; }
.console-page .stats b { font-size:2.8rem; letter-spacing:-.06em; }
.console-page .s-hero::before { background:#edf8f3; inset:-24px -24px 0; border-radius:24px; }
.console-page .grad { color:#267e72; background:none; -webkit-text-fill-color:currentColor; }
.console-page .s-ai,.console-page .s-card { box-shadow:none; }
.console-page .plan.highlight { border-color:#d9002b; box-shadow:none; }
.console-page .score b { background:none; color:#267e72; -webkit-text-fill-color:currentColor; }
.console-page .f { margin-block:20px; }
.console-page .notice { background:#edf3fc; color:var(--ink); }
.console-page footer { background:#17212b; color:#cbd1d5; padding:32px; }
@media(min-width:1000px) { .care-page .header-inner { max-width:1360px; width:calc(100% - 64px); } }
@media(max-width:1100px) { .header-inner { flex-wrap:wrap; padding-block:16px; gap:12px; } .header-inner nav { gap:16px; } .header-ctas { gap:8px; } .vertical-hero,.care-page .hero,html[data-ui="2"] .care-page .hero { gap:32px; } .vh-art img,.care-page .hero-image img { height:400px; } }
@media(max-width:800px) {
 .shell,.care-page main { width:calc(100% - 32px); }
 .header-inner { min-height:72px; } .header-inner .brand { flex:1; font-size:1.1rem; } .header-inner nav { order:3; flex:0 0 100%; justify-content:flex-start; overflow-x:auto; }
 .header-biz { display:none; } .header-ai,.header-cta,html[data-ui="2"] .header-cta { padding:10px 16px; font-size:.8rem; }
 .vertical-hero,.care-page .hero,html[data-ui="2"] .care-page .hero { grid-template-columns:1fr; padding:24px 0 32px; gap:28px; }
 .vertical-hero h1,.care-page .hero h1,html[data-ui="2"] .care-page .hero h1 { font-size:clamp(2.2rem,7.5vw,3.2rem); }
 .vertical-name { margin:0; } .vh-art img,.care-page .hero-image img { height:300px; border-radius:20px 20px 64px 20px; }
 .journey { gap:16px; } .journey h2 { font-size:1rem; } .journey p { font-size:.78rem; }
 .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .section { padding-block:32px; } .biz-strip { padding:24px; } .biz-strip-actions { width:100%; }
 .main-hero-inner { grid-template-columns:1fr; width:calc(100% - 32px); gap:0; padding-bottom:32px; }
 .main-hero-copy { padding:40px 0 32px; } .main-hero h1 { font-size:clamp(2.6rem,8vw,3.6rem); }
 .gateway-selector { padding:24px; } .main-hero-bottom,.main-verticals { width:calc(100% - 32px); }
 .main-card-grid { gap:20px; } .main-card-image { height:230px; }
 .main-section-head h2,.main-about h2 { font-size:2.2rem; }
 .ai-step { padding:24px; } .care-page .matching-intro { padding:24px; }
 .console-page .cols,.console-page .cols.wide { grid-template-columns:1fr; }
 .console-page .bar { padding:16px; gap:12px; } .console-page .bar nav { order:3; width:100%; }
 .console-page .bar form { flex-wrap:wrap; margin-left:0; max-width:100%; } .who { overflow-wrap:anywhere; }
 .console-page .card { padding:24px; } .console-page main { padding:32px 16px 48px; }
 table { display:block; overflow-x:auto; max-width:100%; }
}
@media(max-width:520px) {
 .journey { grid-template-columns:1fr; gap:24px; } .journey h2 { margin-block:6px; font-size:1.15rem; }
 .card-grid,.main-card-grid,.ai-options { grid-template-columns:1fr; }
 .main-card-image { height:250px; } .main-card-body { padding:24px; }
 .ai-top { padding:16px; gap:12px; } .ai-top strong { font-size:1.05rem; }
 .vertical-hero .actions { gap:8px 16px; } .vh-chips { gap:12px; }
 .pref-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .pref-grid a { padding:10px; font-size:.8rem; }
 .footer-fields { gap:8px 20px; } .about { padding:24px; }
 .main-hero-cta { min-width:0; width:100%; gap:12px; padding:18px; font-size:.9rem; }
 .main-hero-bottom { font-size:.56rem; letter-spacing:.08em; }
 .console-page .inline input,.console-page .inline select { min-width:0; max-width:100%; }
 .console-page .s-hero { grid-template-columns:1fr; } .console-page .s-hero::before { inset:-16px -8px 0; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Remove legacy hero overrides and keep the AI action first on small screens. */
.vertical-hero { width:100%; margin:0; overflow:visible; box-shadow:none; }
.vertical-hero::before { content:none; }
.vertical-hero .vertical-name { color:var(--field); letter-spacing:.14em; }
.vertical-hero .actions a { border-radius:12px; font-weight:650; }
.vertical-hero .actions .text-link { padding-inline:0; border:0; background:transparent; }
@media(max-width:820px) { .vh-art { order:0; } }
.care-page .hero-copy,html[data-ui="2"] .care-page .hero-copy { display:block; }
.care-page .hero-actions,html[data-ui="2"] .care-page .hero-actions { order:0; margin:24px 0; align-items:flex-start; }
.care-page .hero-actions .button-primary,html[data-ui="2"] .care-page .hero-actions .button-primary { min-height:76px; font-size:1.2rem; background:#d9002b; box-shadow:none; }
@media(max-width:800px) { .care-page .hero h1,html[data-ui="2"] .care-page .hero h1 { font-size:clamp(2rem,7vw,2.7rem); text-wrap:initial; } }
.main-hero-inner { display:grid; }
.main-hero-copy { width:auto; text-align:left; }
.main-hero-lead { margin-inline:0; }
.gateway-choice > span:nth-child(2) { min-width:0; flex:1; }
.gateway-choice strong { font-size:1.08rem; line-height:1.5; }
@media(max-width:800px) { .main-hero-copy { width:100%; } }
.care-page .hero,html[data-ui="2"] .care-page .hero { width:100%; margin:0; min-height:0; overflow:visible; }
.care-page .hero-image,html[data-ui="2"] .care-page .hero-image { grid-column:auto; min-height:0; align-self:center; background:transparent; border-radius:0; box-shadow:none; overflow:visible; }
.care-page .hero-image::after { content:none; }
.care-page .hero-image img { position:static; }
.care-page .hero-image figcaption { position:static; padding:0; background:transparent; margin-top:12px; font-size:.7rem; color:#596773; }
.care-page main { margin-inline:auto; }
/* October 1 reference direction: photography first, an unmistakable matching action. */
:root { --paper:#fff; --line:#e9e7e9; --field:#287e39; --field-bg:#f1f8ef; }
body[data-vertical="kaigo"] { --field:#287e39; --field-bg:#f0f8ee; --accent:#287e39; }
body[data-vertical="ryoiku"] { --field:#b82d68; --field-bg:#fff2f6; --accent:#b82d68; }
body[data-vertical="taxi"] { --field:#80601e; --field-bg:#faf6e9; --accent:#80601e; }
body[data-vertical="concept-cafe"] { --field:#cf0755; --field-bg:#fff0f6; --accent:#cf0755; }
body { background:#fff; }
.site-header,html[data-ui="2"] .site-header { background:rgba(255,255,255,.96); border-bottom:1px solid #eeecee; }
.brand,html[data-ui="2"] .brand { color:#17212b; font-weight:900; letter-spacing:-.06em; }
.site-header .header-ai,html[data-ui="2"] .header-ai { background:var(--field); border-radius:999px; color:#fff; }
.site-header .header-biz,html[data-ui="2"] .header-biz { border-radius:999px; }
.photo-hero { position:relative; isolation:isolate; width:100vw; margin-left:calc(50% - 50vw); height:clamp(400px,36vw,530px); overflow:hidden; background:var(--field-bg); }
.photo-hero-image { width:100%; height:100%; object-fit:cover; object-position:center 44%; display:block; }
.photo-hero-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(255,255,255,.99),rgba(255,255,255,.91) 25%,rgba(255,255,255,.58) 42%,rgba(255,255,255,0) 66%); }
.photo-hero-copy { position:absolute; inset:0; z-index:2; width:min(1220px,calc(100% - 80px)); margin:auto; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; pointer-events:none; }
.photo-hero-copy > * { max-width:53%; pointer-events:auto; }
.photo-kicker { font-size:.67rem; font-weight:700; color:var(--field); letter-spacing:.17em; margin:0 0 20px; }
.photo-hero h1,html[data-ui="2"] .photo-hero h1 { font-size:clamp(2.1rem,3.4vw,3.6rem); line-height:1.48; letter-spacing:-.045em; font-weight:800; margin:0 0 18px; color:#17212b; }
.photo-hero h1 em { font-style:normal; color:var(--field); }
.photo-lead { font-size:.93rem; line-height:1.95; color:#26343a; margin:0; }
.hero-search-link { display:flex; gap:60px; align-items:center; margin-top:22px; padding:10px 24px; background:#fff; border:1px solid #dfdee1; border-radius:999px; font-size:.83rem; min-height:48px; }
.hero-search-link:hover { text-decoration:none; border-color:var(--field); }
.photo-script { position:absolute; z-index:2; right:4%; bottom:50px; text-align:right; font-family:Georgia,serif; font-style:italic; font-size:clamp(1.25rem,2.4vw,2.5rem); line-height:1.1; color:#fff; transform:rotate(-8deg); text-shadow:0 2px 12px #0008; }
.photo-caption { position:absolute; z-index:2; bottom:12px; right:24px; font-size:.66rem; color:#fff; background:#0008; border-radius:4px; padding:3px 9px; }
[data-vertical="taxi"] .photo-hero-shade { background:linear-gradient(90deg,#07111fe8,#07111fce 25%,#07111f76 45%,transparent 72%); }
[data-vertical="taxi"] .photo-hero h1,[data-vertical="taxi"] .photo-lead { color:#fff; }
[data-vertical="taxi"] .photo-hero h1 em,[data-vertical="taxi"] .photo-kicker,[data-vertical="taxi"] .photo-script { color:#ecd289; }
[data-vertical="ryoiku"] .photo-hero { border-bottom-right-radius:80px; }
[data-vertical="ryoiku"] .photo-hero h1 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:600; }
[data-vertical="concept-cafe"] .photo-hero h1 em { color:#cf0755; }
.hero-match { margin:0 auto; padding:20px 0 24px; max-width:1220px; }
.hero-match-button { display:flex; gap:24px; align-items:center; color:#fff; padding:18px 32px; min-height:100px; border-radius:999px; background:linear-gradient(105deg,var(--field),var(--field)); box-shadow:0 8px 24px color-mix(in srgb,var(--field) 18%,transparent); text-decoration:none; }
.hero-match-button:hover { color:#fff; text-decoration:none; filter:brightness(.92); }
.match-orb { display:grid; place-items:center; height:62px; width:62px; flex:0 0 62px; background:#fff; color:var(--field); border-radius:50%; font-size:1.8rem; font-weight:800; letter-spacing:-.1em; }
.hero-match-button strong { display:block; font-size:1.65rem; letter-spacing:.01em; }
.hero-match-button small { display:block; font-size:.8rem; opacity:.95; margin-top:3px; }
.match-arrow { margin-left:auto; background:#fff; color:var(--field); border-radius:50%; width:44px; height:44px; display:grid; place-items:center; font-size:1.5rem; flex-shrink:0; }
.category-section { margin:26px 0 52px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.section-heading h2 { margin:0; font-size:1.55rem; }
.section-heading .eyeline { margin:0 0 6px; color:var(--field); font-size:.68rem; }
.category-cards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.category-card { position:relative; min-height:204px; overflow:hidden; border-radius:14px; display:block; background:#17212b; color:#fff; }
.category-card img { width:100%; height:220px; object-fit:cover; opacity:.95; transition:transform .4s; }
.category-card::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 15%,#17212bda); }
.category-card > span { position:absolute; bottom:24px; left:18px; right:36px; z-index:1; }
.category-card small { font-size:.6rem; letter-spacing:.08em; }
.category-card strong { display:block; font-size:1.04rem; line-height:1.5; margin-top:8px; }
.category-card > b { position:absolute; bottom:20px; right:12px; z-index:1; border-radius:50%; width:28px; height:28px; background:#fff; color:var(--field); display:grid; place-items:center; font-weight:400; }
.category-card:hover { color:#fff; text-decoration:none; }
.category-card:hover img { transform:scale(1.04); }
.journey { margin:36px 0; padding:28px; border-radius:18px; background:linear-gradient(100deg,var(--field-bg),#f4f9fa); }
.journey div { background:transparent; border:0; }
.journey h2 { font-size:1.15rem; }
.journey p { font-size:.83rem; }
.region-section { padding:32px; border-radius:20px; background:linear-gradient(125deg,var(--field-bg),#f3f7fb); margin:44px 0; }
.region-section .section-heading p { color:#596773; font-size:.86rem; margin-bottom:0; }
.region-tablist { display:flex; overflow-x:auto; gap:8px; padding:4px 2px 12px; scrollbar-width:thin; }
.region-tablist button { appearance:none; flex:1 0 auto; border:1px solid #d5d8db; background:#fff; border-radius:999px; color:#26343a; padding:10px 18px; min-height:44px; cursor:pointer; font:inherit; font-size:.83rem; }
.region-tablist button[aria-selected="true"] { background:var(--field); border-color:var(--field); color:#fff; font-weight:700; }
.region-panel[hidden] { display:none !important; }
.region-panel { padding-top:14px; }
.region-panel h3 { font-size:.84rem; color:#596773; margin:0 0 10px; }
.region-panel .pref-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; gap:12px; }
.region-panel .pref-grid a { background:#fff; border:0; border-radius:10px; display:flex; gap:10px; min-height:54px; padding:14px 18px; }
.region-panel .pref-grid b { margin-left:auto; font-size:1.3rem; font-weight:400; }
.region-panel .pref-grid a:hover { box-shadow:inset 0 0 0 1px var(--field); }
.design-benefits { text-align:center; margin:70px 0; }
.design-benefits > .eyeline { color:var(--field); font-size:.68rem; letter-spacing:.18em; }
.design-benefits h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:1.75rem; margin:18px 0 36px; }
.design-benefits h2 em { color:var(--field); font-style:normal; }
.design-benefits > div { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.design-benefits article { padding-inline:16px; border-right:1px solid #eee; }
.design-benefits article:last-child { border:0; }
.benefit-icon { width:62px; height:62px; background:var(--field-bg); color:var(--field); border-radius:50%; display:grid; place-items:center; margin:0 auto 18px; font-size:2rem; }
.design-benefits h3 { font-size:.96rem; line-height:1.7; }
.design-benefits i { font-family:Georgia,serif; font-weight:400; }
.design-benefits p { font-size:.8rem; color:#596773; line-height:1.95; }
.page-head,.page-intro { border-bottom:1px solid var(--line); margin-bottom:32px; padding:36px 32px; border-radius:16px; background:linear-gradient(110deg,var(--field-bg),#fff); }
.page-head h1,.page-intro h1 { font-size:clamp(1.8rem,3.5vw,2.8rem); }
.primary,.button-primary,html[data-ui="2"] .button-primary { background:var(--field); color:#fff; border-radius:999px; }
.ai-option:has(input:checked),.choice-row:has(input:checked),html[data-ui="2"] .choice-row:has(input:checked) { border-color:var(--field); background:var(--field-bg); box-shadow:inset 0 0 0 1px var(--field); }
input,select,textarea { accent-color:var(--field); }
.biz-strip { background:#fafafa; }
.main-hero-cta { background:#287e39; border-radius:999px; }
.main-card,.job-card,.job-row,.facility-row { box-shadow:0 4px 20px #17212b06; }
@media(min-width:1600px) { .photo-hero-image { object-position:center 38%; } }
@media(max-width:1020px) { .photo-hero-copy { width:calc(100% - 48px); } .photo-hero-copy > * { max-width:57%; } .photo-hero h1 { font-size:2.25rem; } .photo-lead { font-size:.8rem; } .category-cards { gap:10px; } .category-card strong { font-size:.84rem; } .category-card > span { left:12px; right:30px; } .design-benefits > div { gap:8px; } .design-benefits article { padding:8px; } }
@media(max-width:700px) {
 .site-header .header-inner { padding-block:10px; gap:12px; }
 .photo-hero { height:430px; }
 .photo-hero-image { object-position:73% top; }
 .photo-hero-shade { background:linear-gradient(0deg,#fffffff5 0%,#fffffff0 24%,#ffffff9c 46%,transparent 70%); }
 .photo-hero-copy { justify-content:flex-end; padding-bottom:26px; width:calc(100% - 40px); }
 .photo-hero-copy > * { max-width:100%; }
 .photo-kicker { margin:0 0 8px; font-size:.57rem; }
 .photo-hero h1,html[data-ui="2"] .photo-hero h1 { font-size:1.8rem; line-height:1.4; margin-bottom:8px; }
 .photo-lead { font-size:.73rem; line-height:1.7; }
 .hero-search-link { display:none; }
 .photo-script { display:none; }
 .photo-caption { right:12px; bottom:5px; font-size:.5rem; }
 [data-vertical="ryoiku"] .photo-hero { border-bottom-right-radius:32px; }
 [data-vertical="taxi"] .photo-hero-shade { background:linear-gradient(0deg,#07111ff5,#07111fbc 36%,transparent 70%); }
 .hero-match { padding:14px 0 20px; }
 .hero-match-button { border-radius:20px; min-height:94px; padding:16px; gap:12px; }
 .hero-match-button strong { font-size:1.15rem; white-space:nowrap; }
 .hero-match-button small { font-size:.61rem; max-width:230px; }
 .match-orb { height:44px; width:44px; flex-basis:44px; font-size:1.35rem; }
 .match-arrow { height:30px; width:30px; font-size:1.2rem; }
 .category-section { margin:20px 0 36px; }
 .section-heading { align-items:flex-start; gap:14px; }
 .section-heading h2 { font-size:1.22rem; }
 .section-heading > .text-link { font-size:.69rem; flex-shrink:0; }
 .category-cards { display:flex; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:12px; gap:12px; }
 .category-card { flex:0 0 43%; min-height:180px; scroll-snap-align:start; }
 .category-card img { height:190px; }
 .category-card strong { font-size:.9rem; }
 .region-section { padding:20px; margin:32px 0; }
 .region-tablist button { flex:0 0 auto; padding:10px 16px; font-size:.76rem; }
 .region-panel .pref-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .region-panel .pref-grid a { font-size:.8rem; padding:12px; }
 .design-benefits { margin:44px 0; }
 .design-benefits h2 { font-size:1.2rem; }
 .design-benefits > div { grid-template-columns:1fr; gap:0; text-align:left; }
 .design-benefits article { position:relative; padding:18px 12px 18px 76px; border:0; border-bottom:1px solid #eee; }
 .benefit-icon { position:absolute; left:4px; top:22px; width:50px; height:50px; font-size:1.6rem; }
 .design-benefits h3 { margin:0 0 6px; }
 .design-benefits p { margin:0; }
 .page-head,.page-intro { padding:24px 18px; }
 .care-page main { width:calc(100% - 32px); }
}
@media(max-width:360px) { .hero-match-button { gap:8px; padding:12px; } .hero-match-button strong { font-size:1rem; } .match-orb { width:36px; height:36px; flex-basis:36px; } .photo-hero h1,html[data-ui="2"] .photo-hero h1 { font-size:1.65rem; } }
@media(prefers-reduced-motion:reduce) { .category-card img { transition:none; } }

.care-page .site-header .btn-ai,html[data-ui="2"] .care-page .site-header .btn-ai { background:var(--field); border-radius:999px; }
/* Review correction: preserve complete faces and use care green throughout. */
@media(min-width:701px) { .photo-hero-image { object-position:center 15%; } }
.care-page .site-header .header-cta,html[data-ui="2"] .care-page .site-header .header-cta { background:var(--field); border-radius:999px; }
.care-page .brand b,html[data-ui="2"] .care-page .brand b { background:var(--field); }
body[data-vertical="kaigo"] { --hero-image:url('/photos/heroes/kaigo.jpg'); }
body[data-vertical="ryoiku"] { --hero-image:url('/photos/heroes/ryoiku.jpg'); }
body[data-vertical="taxi"] { --hero-image:url('/photos/heroes/taxi.jpg'); }
body[data-vertical="concept-cafe"] { --hero-image:url('/photos/heroes/concept-cafe.jpg'); }
.page-head,.page-intro { position:relative; overflow:hidden; }
.page-head::after,.page-intro::after { content:""; position:absolute; inset:0 0 0 66%; background-image:linear-gradient(90deg,#fff,transparent),var(--hero-image); background-size:cover; background-position:center; opacity:.24; pointer-events:none; }
.page-head > *,.page-intro > * { position:relative; z-index:1; }
@media(max-width:700px) and (max-height:740px) { .photo-hero { height:350px; } .photo-hero h1,html[data-ui="2"] .photo-hero h1 { font-size:1.6rem; } .photo-lead { font-size:.68rem; } }
@media(max-width:700px) and (max-height:600px) { .photo-hero { height:270px; } .photo-hero h1,html[data-ui="2"] .photo-hero h1 { font-size:1.35rem; } .photo-kicker { font-size:.5rem; margin-bottom:4px; } .photo-lead { font-size:.6rem; } .photo-hero-copy { padding-bottom:22px; } }
main:has(> .photo-hero) > .breadcrumbs { display:none; }
.gateway-choice::before { content:""; flex:0 0 70px; height:56px; border-radius:8px; background-size:cover; background-position:70% center; }
.gateway-choice:nth-of-type(1)::before { background-image:url('/photos/heroes/kaigo.jpg'); }
.gateway-choice:nth-of-type(2)::before { background-image:url('/photos/heroes/ryoiku.jpg'); }
.gateway-choice:nth-of-type(3)::before { background-image:url('/photos/heroes/taxi.jpg'); }
.gateway-choice:nth-of-type(4)::before { background-image:url('/photos/heroes/concept-cafe.jpg'); }
.gateway-choice-no { display:none; }
@media(max-width:700px) { .gateway-choice::before { flex-basis:52px; height:46px; } }
