.page-hero {
    position:relative;
    margin-top:var(--header-h-m);
    background:linear-gradient(135deg,#1B5DAA 0%,#14478A 50%,#0E3566 100%);
    padding:56px 0 48px;
    overflow:hidden;
    text-align:center;
}
.page-hero-shapes {
    position:absolute;
    inset:0;
    pointer-events:none;
    overflow:hidden;
}
.ph-shape {
    position:absolute;
    border-radius:50%;
    opacity:.5;
}
.ph-s1 {
    width:250px;
    height:250px;
    border:1px solid rgba(255,255,255,.06);
    top:-60px;
    right:-40px;
}
.ph-s2 {
    width:160px;
    height:160px;
    background:rgba(255,255,255,.03);
    bottom:-30px;
    left:-30px;
}
.page-hero-content { position:relative; z-index:2; }
.page-hero-label {
    font-size:13px;
    color:rgba(255,255,255,.6);
    letter-spacing:.1em;
    margin-bottom:8px;
}
.page-hero-title {
    font-family:var(--font-serif);
    font-size:28px;
    font-weight:700;
    color:#fff;
    margin-bottom:6px;
}
.page-hero-sub { font-size:15px; color:rgba(255,255,255,.75); }
.breadcrumb {
    padding:12px 0;
    font-size:13px;
    color:var(--text-tertiary);
    border-bottom:1px solid var(--border);
    background:var(--bg-white);
}
.breadcrumb a { color:var(--text-secondary); }
.breadcrumb span { margin:0 6px; }
/* ── RECRUIT NAV ── */
.recruit-nav {
    background:var(--bg-white);
    border-bottom:1px solid var(--border);
    position:sticky;
    top:var(--header-h-m);
    z-index:99;
    overflow-x:auto;
    scrollbar-width:none;
}
.recruit-nav::-webkit-scrollbar { display:none; }
.recruit-nav-inner {
    display:flex;
    max-width:var(--max-w);
    margin:0 auto;
    padding:0 20px;
}
.recruit-nav a {
    flex-shrink:0;
    font-size:14px;
    font-weight:500;
    color:var(--text-secondary);
    padding:14px 18px;
    white-space:nowrap;
    border-bottom:3px solid transparent;
    transition:all .2s;
    text-decoration:none;
}
.recruit-nav a:hover { color:var(--primary); }
.recruit-nav a.active {
    color:var(--primary);
    border-bottom-color:var(--primary);
    font-weight:600;
}
/* ── INTRO ── */
.recruit-intro {
    padding:56px 0 48px;
    background:var(--bg-white);
    text-align:center;
}
.recruit-intro-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:80px;
    height:80px;
    border-radius:var(--radius-lg);
    background:var(--primary-light);
    margin-bottom:20px;
}
.recruit-intro-icon svg {
    width:40px;
    height:40px;
    display:block;
}
.recruit-intro h2 {
    font-family:var(--font-serif);
    font-size:24px;
    font-weight:700;
    color:var(--text-primary);
    margin-bottom:12px;
}
.recruit-intro p {
    font-size:15px;
    color:var(--text-secondary);
    max-width:640px;
    margin:0 auto;
    line-height:1.9;
}
/* ── JOB SECTION ── */
.job-section {
    padding:48px 0 56px;
    scroll-margin-top:140px;
    background:var(--bg-white);
}
.job-section.alt { background:var(--bg-light); }
.job-header {
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:32px;
}
.job-badge {
    width:48px;
    height:48px;
    border-radius:var(--radius-md);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.job-badge svg {
    width:24px;
    height:24px;
    display:block;
}
.job-badge.exp { background:var(--primary-light); }
.job-badge.new { background:linear-gradient(135deg,#FFF5E8,#F5EAD5); }
.job-title {
    font-family:var(--font-serif);
    font-size:22px;
    font-weight:700;
    color:var(--text-primary);
}
.job-subtitle { font-size:14px; color:var(--text-secondary); }
/* Job detail table */
.job-table {
    max-width:900px;
    border-top:2px solid var(--primary);
    margin-bottom:32px;
}
.job-row {
    display:flex;
    flex-direction:column;
    border-bottom:1px solid var(--border);
    padding:14px 0;
}
.job-label {
    font-size:13px;
    font-weight:600;
    color:var(--primary);
    margin-bottom:4px;
    letter-spacing:.03em;
}
.job-value {
    font-size:15px;
    color:var(--text-primary);
    line-height:1.8;
}
/* ── CONTACT CARD ── */
.recruit-contact {
    max-width:900px;
    background:var(--bg-white);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:28px 24px;
    margin-top:8px;
}
.recruit-contact h4 {
    font-size:17px;
    font-weight:600;
    color:var(--text-primary);
    margin-bottom:16px;
    display:flex;
    align-items:center;
    gap:8px;
}
.recruit-contact h4 svg {
    width:20px;
    height:20px;
    color:var(--primary);
}
.contact-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}
.contact-item {
    display:flex;
    align-items:flex-start;
    gap:10px;
}
.contact-item-icon {
    width:32px;
    height:32px;
    border-radius:var(--radius-full);
    background:var(--primary-light);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.contact-item-icon svg {
    width:16px;
    height:16px;
    color:var(--primary);
    display:block;
}
.contact-item-text {
    font-size:14px;
    color:var(--text-primary);
    line-height:1.7;
}
.contact-item-text strong {
    display:block;
    font-size:13px;
    color:var(--text-tertiary);
    font-weight:500;
    margin-bottom:2px;
}
.recruit-notes {
    max-width:900px;
    margin-top:16px;
    display:grid;
    gap:4px;
}
.recruit-note {
    font-size:13px;
    color:var(--text-secondary);
    line-height:1.7;
    padding-left:16px;
    position:relative;
}
.recruit-note::before {
    content:'※';
    position:absolute;
    left:0;
    color:var(--text-tertiary);
}
/* ── CTA ── */
.recruit-cta { background:var(--primary); padding:56px 0; }
.recruit-cta-inner {
    max-width:700px;
    margin:0 auto;
    text-align:center;
    color:#fff;
}
.recruit-cta-title {
    font-family:var(--font-serif);
    font-size:24px;
    font-weight:700;
    margin-bottom:12px;
}
.recruit-cta-sub {
    font-size:15px;
    opacity:.8;
    margin-bottom:28px;
}
.recruit-cta-buttons {
    display:flex;
    flex-direction:column;
    gap:12px;
    align-items:center;
}
.job-row { flex-direction:row; gap:0; }
.job-label {
    width:160px;
    flex-shrink:0;
    margin-bottom:0;
}
.contact-grid { grid-template-columns:repeat(2,1fr); }
.recruit-cta-buttons {
    flex-direction:row;
    justify-content:center;
    gap:16px;
}
.page-hero-title { font-size:34px; }
.page-hero { margin-top:var(--header-h-d); padding:64px 0 52px; }
.recruit-nav { top:var(--header-h-d); }
.job-section { padding:56px 0 64px; }
.job-label { width:200px; }
.recruit-intro { padding:72px 0 56px; }
.page-hero-title { font-size:38px; }