/* Layout only. Typography, titles, breadcrumbs and buttons use /css/style.css. */
.partner-page { background:#fff; }
.partner-page *, .partner-page *::before, .partner-page *::after { box-sizing:border-box; }
.partner-layout .wrapper { width:1200px; max-width:calc(100% - 40px); }
.partner-page .page-partner { background-image:linear-gradient(rgba(0,26,48,.48),rgba(0,26,48,.48)),url('/img/partner/hero.jpg'); background-position:center 48%; }
.partner-intro__roles { text-align:center; margin-bottom:25px; font-weight:600; }
.partner-intro__button { margin-top:35px; }
.partner-section { margin-bottom:90px; }
.partner-section__heading>span { display:block; text-align:center; margin-top:-15px; margin-bottom:40px; }
.partner-page .support-block .ttl { color:#0085b2; }
.partner-targets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.partner-target {border:0;background:#fff;box-shadow:0 8px 36px 6px rgba(75,135,175,.13);padding: 60px 30px 30px;border-radius: 20px;}
.partner-icon { display:block; width:48px; height:48px; margin:0 auto; color:inherit; }
.partner-icon svg { width:100%; height:100%; }
.partner-target .ttl { margin:25px 0 20px; }
.partner-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 50px; }
.partner-benefit { display:flex; align-items:flex-start; gap:25px; padding-top:25px; border-top:1px solid #cdcdcd; }
.partner-benefit .partner-icon { flex-shrink:0; margin:0; }
.partner-benefit .ttl { text-align:left; margin:0 0 20px; }
.partner-flow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:15px; margin:0; padding:0; list-style:none; }
.partner-flow li { border:1px solid #cdcdcd; background:#fff; }
.partner-flow__number { display:block; padding:16px 15px; background:#fafcfe; border-bottom:1px solid #cdcdcd; text-align:center; font-size:26px; font-weight:600; }
.partner-flow__number small { font-size:14px; font-weight:400; margin-right:8px; }
.partner-flow li>div { padding:22px 17px; }
.partner-flow h3 { font-weight:600; margin-bottom:18px; }
.partner-flow p { line-height:1.6; }
.partner-contact-wrap { width:900px!important; max-width:calc(100% - 40px)!important; }
#partner-contact { scroll-margin-top:110px; }
.partner-phone { text-align:center; padding:30px 20px; border:1px solid #cdcdcd; background:#fafcfe; margin-bottom:40px; }
.partner-phone>a { display:inline-flex; align-items:center; justify-content:center; gap:15px; margin:15px 0; font-size:48px; font-weight:600; color:inherit; }
.partner-phone svg { width:30px; height:30px; }
.partner-form-preview h3 { text-align:center; font-size:24px; font-weight:600; margin-bottom:25px; }
.partner-form-preview h3 svg { width:26px; height:26px; vertical-align:middle; margin-right:10px; }
.partner-form-preview__notice { background:#fafcfe; border:1px solid #cdcdcd; padding:20px; line-height:1.8; margin-bottom:30px; }
.partner-form-preview__notice strong { display:block; font-weight:600; margin-bottom:8px; }
.partner-form-preview fieldset { min-width:0; margin:0; padding:0; border:0; }
.partner-field { display:grid; grid-template-columns:230px minmax(0,1fr); border:1px solid #cdcdcd; border-bottom:0; }
.partner-field:last-of-type { border-bottom:1px solid #cdcdcd; }
.partner-field label { display:flex; align-items:center; padding:20px; background:#fafcfe; border-right:1px solid #cdcdcd; font-weight:600; }
.partner-field input,.partner-field textarea { display:block; box-sizing:border-box; width:calc(100% - 40px); margin:15px 20px; padding:12px; min-height:45px; font:inherit; color:inherit; background:#fff; border:1px solid #cdcdcd; border-radius:0; opacity:1; }
.partner-field textarea { resize:none; }
.partner-form-preview .btn { display:block; margin:35px auto 0; opacity:.45; cursor:not-allowed; }
.partner-mobile { display:none; }
@media(max-width:1000px) {
 .partner-targets { gap:20px; }
 .partner-target { padding:25px 20px; }
 .partner-benefits { gap:30px; }
 .partner-benefit { gap:18px; }
 .partner-flow { grid-template-columns:1fr; gap:0; }
 .partner-flow li { display:flex; border-bottom:0; }
 .partner-flow li:last-child { border-bottom:1px solid #cdcdcd; }
 .partner-flow__number { display:flex; flex-direction:column; justify-content:center; width:90px; flex-shrink:0; border-bottom:0; border-right:1px solid #cdcdcd; }
 .partner-flow__number small { margin:0 0 5px; }
 .partner-flow li>div { flex:1; }
 .partner-flow h3 { margin-bottom:10px; }
}
@media(max-width:767px) {
 .partner-layout .wrapper { width:90%; max-width:none; }
 .partner-intro { margin-bottom:50px; }
 .partner-intro__roles { line-height:1.8; }
 .partner-intro .txt br { display:none; }
 .partner-intro__button { margin-top:25px; }
 .partner-section { margin-bottom:50px; }
 .partner-section__heading>span { margin-top:-15px; margin-bottom:30px; }
 .partner-targets { display:block; }
 .partner-target { padding:25px 20px; margin-bottom:20px; }
 .partner-target:last-child { margin-bottom:0; }
 .partner-target .ttl { margin:20px 0; }
 .partner-benefits { grid-template-columns:1fr; gap:30px; }
 .partner-benefit { padding-top:25px; }
 .partner-benefit .partner-icon { width:34px; height:34px; }
 .partner-benefit .ttl { margin:0 0 15px; }
 .partner-flow li>div { padding:20px 15px; }
 .partner-flow__number { width:68px; padding:15px 10px; font-size:24px; }
 .partner-phone { padding:25px 12px; }
 .partner-phone>a { font-size:clamp(26px,7.5vw,36px); gap:9px; }
 .partner-phone svg { width:24px; height:24px; }
 .partner-form-preview h3 { font-size:20px; }
 .partner-form-preview__notice { padding:15px; }
 .partner-field { display:block; }
 .partner-field label { display:block; border-right:0; border-bottom:1px solid #cdcdcd; padding:15px; }
 .partner-field input,.partner-field textarea { width:calc(100% - 30px); margin:15px; }
 .partner-mobile { display:block; }
 .partner-desktop { display:none; }
}

/* Restore the photographic hero while inheriting the approved base font. */
.partner-hero { position:relative; overflow:hidden; color:#fff; background:#00649b; margin-bottom:0; }
.partner-hero__photo { position:absolute; inset:0 0 0 auto; width:70%; }
.partner-hero__photo img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:65% 50%; }
.partner-hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#00649b 0%,rgba(0,100,155,.98) 29%,rgba(0,100,155,.9) 43%,rgba(0,100,155,.55) 57%,rgba(0,100,155,.08) 73%,rgba(0,100,155,0) 84%); }
.partner-hero__inner { position:relative; z-index:2; padding-top:42px; padding-bottom:42px; }
.partner-hero__eyebrow {font-size:19px;font-weight:600;letter-spacing:.08em;margin-top: 45px;}
.partner-hero h1 {margin: 5px 0 18px;font-size:46px;font-weight:700;line-height:1.45;letter-spacing:.035em;color:#fff;}
.partner-hero h1 span { display:inline-block; color:#ffed3b; font-size:1.15em; }
.partner-hero__roles {display:flex;flex-wrap:wrap;gap:0;width:fit-content;max-width:100%;margin: 18px 0 -7px;padding: 11px 14px;border-top:1px solid rgba(255,255,255,.8);list-style:none;background:rgba(0,87,155,.72);font-size:20px;font-weight:700;}
.partner-hero__roles li { display:block; margin:0; padding:0; color:#fff; line-height:1.5; }
.partner-hero__roles li+li::before { content:"／"; margin:0 9px; }
.partner-hero__message { max-width:900px; margin:22px 0 0; font-size:16px; line-height:1.8; }
.partner-hero__message p+p { margin-top:7px; }
.partner-page>.wrapper:has(.breadcrumb) { margin-bottom:40px; }
/* Background rhythm separates benefits from the adjacent white sections. */
.partner-section--pale { background:#f3f7fa; padding:65px 0 75px; }
.partner-flow { gap:30px; }
.partner-flow li { position:relative; }
.partner-flow h3 { color:#00558c; }
.partner-flow li:not(:last-child)::after { content:""; position:absolute; top:50%; right:-20px; transform:translateY(-50%); width:0; height:0; border-top:8px solid transparent; border-bottom:8px solid transparent; border-left:10px solid #0085b2; }
@media(max-width:1000px) {
 .partner-hero h1 { font-size:39px; }
 .partner-hero__roles { font-size:18px; }
 .partner-flow { gap:26px; }
 .partner-flow li { border-bottom:1px solid #cdcdcd; }
 .partner-flow li:not(:last-child)::after { top:auto; right:auto; bottom:-19px; left:50%; transform:translateX(-50%); border-top:10px solid #0085b2; border-bottom:0; border-left:8px solid transparent; border-right:8px solid transparent; }
}
@media(max-width:767px) {
 .partner-hero { display:flex; flex-direction:column; }
 .partner-hero__photo { position:relative; inset:auto; order:2; width:100%; height:210px; }
 .partner-hero__photo img { object-position:65% 50%; }
 .partner-hero::before { content:none; }
 .partner-hero__inner { order:1; padding-top:30px; padding-bottom:30px; }
 .partner-hero__eyebrow { font-size:15px; letter-spacing:.04em; }
 .partner-hero h1 { font-size:clamp(25px,6.8vw,38px); margin:16px 0 20px; letter-spacing:0; }
 .partner-hero__roles { font-size:14px; gap:0; margin:20px 0; padding:7px 8px; }
 .partner-hero__roles li+li::before { margin:0 4px; }
 .partner-hero__roles li { padding:0; }
 .partner-hero__message { margin:20px 0 0; font-size:14px; }
 .partner-hero__message p+p { margin-top:12px; }
 .partner-section--pale { padding:40px 0 45px; }
 .partner-page>.wrapper:has(.breadcrumb) { margin-bottom:35px; }
}

/* The existing site uses a fixed desktop canvas on tablets. This page is fluid. */
.partner-layout>.container {
    min-width: 320px;
    width: auto;
}

.partner-layout #header {
    min-width: 320px;
}

.partner-layout footer .wrapper {
    width: min(1200px, calc(100% - 40px));
}

@media(min-width:768px) and (max-width:1260px) {
    .partner-layout #header .header-inner {
        display: flex;
        align-items: center;
        margin-top: 0;
        border-top: 0;
    }

    .partner-layout #header .logo {
        margin: 20px 0 20px 24px;
    }

    .partner-layout #header .logo img {
        width: 260px;
        height: auto;
    }

    .partner-layout #header .hamburger-btn {
        display: block !important;
        margin-left: auto;
        padding: 24px;
    }

    .partner-layout #header .navigation {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        float: none;
        background: #fff;
        overflow: auto;
    }

    .partner-layout #header .menu,
    .partner-layout #header .buttons {
        float: none;
        width: 100%;
    }

    .partner-layout #header .menu>li {
        float: none;
        width: 100%;
    }

    .partner-layout #header .menu>li>a {
        padding: 20px 24px !important;
        border-bottom: 1px solid #d9e4ed;
        font-size: 16px;
    }

    .partner-layout #header .buttons {
        display: flex;
        justify-content: flex-end;
        margin: 0;
    }

    .partner-layout footer .block-contact {
        flex-wrap: wrap;
    }

    .partner-layout footer .footer-nav .menu {
        flex-wrap: wrap;
    }
}

/* Keep the recruitment contact path unobstructed. */
.partner-layout .line-official-btn {
    display: none;
}
@media(min-width:768px) and (max-width:1100px) {
 .partner-hero::before { background:linear-gradient(90deg,#00649b 0%,rgba(0,100,155,.98) 29%,rgba(0,100,155,.9) 43%,rgba(0,100,155,.55) 57%,rgba(0,100,155,.08) 73%,rgba(0,100,155,0) 84%),linear-gradient(0deg,rgba(0,75,120,.9) 0%,rgba(0,75,120,0) 55%); }
}

/* Smartphone layout: preserve the attached desktop design and shared typography. */
@media(max-width:767px) {
 .partner-hero__inner { padding-top:30px; padding-bottom:28px; }
 .partner-hero__eyebrow { margin-top:0; font-size:14px; line-height:1.6; }
 .partner-hero h1 { margin:14px 0 18px; font-size:clamp(24px,7.1vw,32px); line-height:1.45; }
 .partner-hero__roles { display:flex; justify-content:space-between; width:100%; box-sizing:border-box; margin:20px 0; padding:10px; font-size:14px; line-height:1.5; }
 .partner-hero__roles li { flex:0 0 auto; padding:0 8px; white-space:nowrap; }
 .partner-hero__roles li:first-child { padding-left:0; }
 .partner-hero__roles li:last-child { padding-right:0; }
 .partner-hero__roles li+li { border-left:1px solid rgba(255,255,255,.55); }
 .partner-hero__roles li+li::before { content:none; }
 .partner-hero__message { margin-top:20px; line-height:1.8; }
 .partner-hero__message p+p { margin-top:12px; }
 .partner-hero__photo { height:clamp(180px,52vw,240px); }
 .partner-hero__photo img { object-position:65% 50%; }
 .partner-target { display:grid; grid-template-columns:40px minmax(0,1fr); column-gap:15px; padding:22px 18px; margin-bottom:16px; }
 .partner-target .partner-icon { grid-row:1 / 3; width:36px; height:36px; margin:2px 0 0; }
 .partner-target .ttl { text-align:left; margin:0 0 10px; }
 .partner-target .desc { grid-column:2; }
 .partner-benefit { gap:14px; }
 .partner-benefit .partner-icon { width:30px; height:30px; margin-top:2px; }
 .partner-benefit .ttl { margin-bottom:12px; }
 .partner-flow__number { width:62px; padding:14px 8px; }
 .partner-flow li>div { min-width:0; padding:18px 14px; }
 .partner-flow h3 { font-size:16px; line-height:1.5; margin-bottom:8px; }
 .partner-phone { padding:24px 12px; margin-bottom:30px; }
 .partner-phone>a { font-size:clamp(25px,7.6vw,36px); line-height:1.4; white-space:nowrap; margin:13px 0; }
 .partner-form-preview h3 { line-height:1.5; }
 .partner-form-preview__notice { padding:16px; }
 .partner-field label { padding:12px 14px; }
 .partner-field input,.partner-field textarea { width:calc(100% - 28px); margin:12px 14px; font-size:16px; }
 .partner-field textarea { min-height:150px; }
 .partner-form-preview .btn { width:100%; margin-top:26px; }
}
@media(max-width:375px) {
 .partner-hero__roles { font-size:13px; padding:9px 8px; }
 .partner-hero__roles li { padding-left:7px; padding-right:7px; }
 .partner-target { grid-template-columns:32px minmax(0,1fr); column-gap:12px; padding:20px 14px; }
 .partner-target .partner-icon { width:30px; height:30px; }
}

/* A restrained circular accent for recruitment targets only. */
.partner-target .partner-icon { display:flex; align-items:center; justify-content:center; width:80px; height:80px; margin:0 auto; border-radius:50%; border:1px solid #d9eaf4; background:#edf6fb; color:#00558c; }
.partner-target .partner-icon svg { width:40px; height:40px; flex-shrink:0; }
@media(max-width:767px) {
 .partner-target { grid-template-columns:56px minmax(0,1fr); }
 .partner-target .partner-icon { width:56px; height:56px; margin:0; }
 .partner-target .partner-icon svg { width:30px; height:30px; }
}
@media(max-width:375px) {
 .partner-target { grid-template-columns:48px minmax(0,1fr); }
 .partner-target .partner-icon { width:48px; height:48px; }
 .partner-target .partner-icon svg { width:28px; height:28px; }
}

/* Adapt the supplied rounded cards to the smaller smartphone layout. */
@media(max-width:767px) {
 .partner-target { padding:24px 18px; border-radius:14px; }
}
@media(max-width:375px) {
 .partner-target { padding:20px 14px; border-radius:12px; }
}
