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

/* ========================================
ISHIGAKI NAVI / RECRUITMENT ARCHIVE
======================================== */

.inRecruitmentArchive{
    --rec-navy:#102943;
    --rec-navy-soft:#1c3557;
    --rec-ivory:#f7f3ec;
    --rec-ivory-light:#fbfaf7;
    --rec-gold:#c2a878;
    --rec-text:#24384c;
    --rec-muted:#6f7b84;
    --rec-line:rgba(16,41,67,.14);
    --rec-serif:"Noto Serif JP","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
    --rec-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
    width:100%;
    margin:0!important;
    background:var(--rec-ivory);
    color:var(--rec-text);
    font-family:var(--rec-sans);
}

.inRecruitmentArchive *,
.inRecruitmentArchive *::before,
.inRecruitmentArchive *::after{
    box-sizing:border-box;
}

.inRecruitmentArchive a,
.inRecruitmentArchive a:visited{
    text-decoration:none!important;
}

/* ========================================
FV
======================================== */

.inRecruitmentHero{
    padding:118px 32px 100px;
    background:var(--rec-navy);
    color:#fff;
}

.inRecruitmentHero__inner{
    width:min(1180px,100%);
    margin:0 auto;
}

.inRecruitmentHero__en,
.inRecruitmentIntro__en,
.inRecruitmentList__en,
.inRecruitmentNotice__en,
.inRecruitmentBusiness__en{
    margin:0 0 15px;
    color:var(--rec-gold);
    font-family:var(--rec-serif)!important;
    font-size:.68rem;
    font-weight:400;
    line-height:1.4;
    letter-spacing:.18em;
}

.inRecruitmentHero__title{
    max-width:1000px;
    margin:0;
    color:#fff;
    font-family:var(--rec-serif)!important;
    font-size:clamp(2.25rem,4vw,4rem);
    font-weight:400!important;
    line-height:1.58;
    letter-spacing:.03em;
    word-break:keep-all;
    overflow-wrap:normal;
}

.inRecruitmentHero__lead{
    max-width:780px;
    margin:31px 0 0;
    color:rgba(255,255,255,.72);
    font-size:.88rem;
    font-weight:400;
    line-height:2;
    letter-spacing:.025em;
}

/* ========================================
導入
======================================== */

.inRecruitmentIntro{
    padding:98px 32px 94px;
    background:var(--rec-ivory-light);
}

.inRecruitmentIntro__inner{
    display:grid;
    grid-template-columns:minmax(310px,.82fr) minmax(440px,1.18fr);
    gap:clamp(65px,8vw,120px);
    width:min(1180px,100%);
    margin:0 auto;
}

.inRecruitmentIntro__title,
.inRecruitmentList__title,
.inRecruitmentNotice__title,
.inRecruitmentBusiness__title{
    margin:0;
    color:var(--rec-navy);
    font-family:var(--rec-serif)!important;
    font-size:clamp(1.8rem,2.6vw,2.75rem);
    font-weight:400!important;
    line-height:1.65;
    letter-spacing:.025em;
    word-break:keep-all;
}

.inRecruitmentIntro__body p,
.inRecruitmentNotice__body p{
    margin:0;
    color:var(--rec-muted);
    font-size:.9rem;
    line-height:2.15;
    letter-spacing:.02em;
}

.inRecruitmentIntro__body p+p,
.inRecruitmentNotice__body p+p{
    margin-top:17px;
}

/* ========================================
求人一覧
======================================== */

.inRecruitmentList{
    padding:105px 32px 118px;
}

.inRecruitmentList__inner{
    width:min(1320px,100%);
    margin:0 auto;
}

.inRecruitmentList__header{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:52px;
    padding-bottom:25px;
    border-bottom:1px solid var(--rec-line);
}

.inRecruitmentList__count{
    margin:0;
    color:var(--rec-gold);
    font-family:var(--rec-serif)!important;
    font-size:.66rem;
    letter-spacing:.15em;
}

.inRecruitmentGrid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:32px 27px;
}

.inRecruitmentCard{
    min-width:0;
}

.inRecruitmentCard__link,
.inRecruitmentCard__link:visited{
    display:flex;
    height:100%;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--rec-line);
    background:#fff;
    color:var(--rec-navy)!important;
    transition:transform .4s ease,box-shadow .4s ease,border-color .3s ease;
}

.inRecruitmentCard__media{
    position:relative;
    aspect-ratio:16/10;
    margin:0;
    overflow:hidden;
    background:#e8e3da;
}

.inRecruitmentCard__image{
    display:block;
    width:100%!important;
    height:100%!important;
    margin:0!important;
    object-fit:cover;
    transition:transform .8s cubic-bezier(.22,1,.36,1);
}

.inRecruitmentCard__placeholder{
    display:grid;
    width:100%;
    height:100%;
    place-items:center;
    background:linear-gradient(135deg,#e9e4dc,#f7f3ec);
    color:rgba(16,41,67,.28);
    font-family:var(--rec-serif);
    font-size:.7rem;
    letter-spacing:.2em;
}

.inRecruitmentCard__label{
    position:absolute;
    right:14px;
    bottom:14px;
    padding:7px 10px;
    background:rgba(255,255,255,.94);
    color:var(--rec-navy);
    font-family:var(--rec-serif);
    font-size:.55rem;
    letter-spacing:.13em;
}

.inRecruitmentCard__content{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:27px 25px 23px;
}

.inRecruitmentCard__company{
    margin:0 0 9px;
    color:var(--rec-gold);
    font-size:.65rem;
    letter-spacing:.08em;
}

.inRecruitmentCard__title{
    margin:0;
    color:var(--rec-navy);
    font-family:var(--rec-serif)!important;
    font-size:clamp(1.15rem,1.4vw,1.45rem);
    font-weight:400!important;
    line-height:1.65;
}

.inRecruitmentCard__meta{
    margin:20px 0 0;
    padding:14px 0;
    border-top:1px solid var(--rec-line);
    border-bottom:1px solid var(--rec-line);
}

.inRecruitmentCard__meta>div{
    display:grid;
    grid-template-columns:68px 1fr;
    gap:12px;
}

.inRecruitmentCard__meta>div+div{
    margin-top:7px;
}

.inRecruitmentCard__meta dt{
    color:var(--rec-muted);
    font-size:.64rem;
}

.inRecruitmentCard__meta dd{
    margin:0;
    color:var(--rec-text);
    font-size:.7rem;
}

.inRecruitmentCard__excerpt{
    margin:18px 0 0;
    color:var(--rec-muted);
    font-size:.76rem;
    line-height:1.9;
}

.inRecruitmentCard__more{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:auto;
    padding-top:24px;
    color:var(--rec-navy);
    font-family:var(--rec-serif);
    font-size:.7rem;
}

.inRecruitmentCard__more i{
    width:30px;
    height:1px;
    background:var(--rec-gold);
    transition:width .3s ease;
}

@media(hover:hover){
    .inRecruitmentCard__link:hover{
        transform:translateY(-6px);
        border-color:rgba(194,168,120,.55);
        box-shadow:0 20px 44px rgba(16,41,67,.09);
    }

    .inRecruitmentCard__link:hover .inRecruitmentCard__image{
        transform:scale(1.05);
    }

    .inRecruitmentCard__link:hover .inRecruitmentCard__more i{
        width:44px;
    }
}

/* ========================================
求人なし
======================================== */

.inRecruitmentEmpty{
    padding:82px 30px;
    border-top:1px solid var(--rec-line);
    border-bottom:1px solid var(--rec-line);
    text-align:center;
}

.inRecruitmentEmpty__en{
    margin:0 0 16px;
    color:var(--rec-gold);
    font-family:var(--rec-serif);
    font-size:.65rem;
    letter-spacing:.17em;
}

.inRecruitmentEmpty__title{
    margin:0;
    color:var(--rec-navy);
    font-family:var(--rec-serif)!important;
    font-size:clamp(1.45rem,2.4vw,2.2rem);
    font-weight:400!important;
    line-height:1.65;
}

.inRecruitmentEmpty__text{
    margin:21px 0 0;
    color:var(--rec-muted);
    font-size:.84rem;
    line-height:2;
}

/* ========================================
ページネーション
======================================== */

.inRecruitmentPagination{
    margin-top:60px;
}

.inRecruitmentPagination .page-numbers{
    display:flex;
    justify-content:center;
    gap:9px;
    margin:0;
    padding:0;
    list-style:none;
}

.inRecruitmentPagination a,
.inRecruitmentPagination span{
    display:grid;
    min-width:42px;
    height:42px;
    place-items:center;
    border:1px solid var(--rec-line);
    color:var(--rec-navy)!important;
    font-size:.7rem;
}

.inRecruitmentPagination .current{
    border-color:var(--rec-navy);
    background:var(--rec-navy);
    color:#fff!important;
}

/* ========================================
注意事項
======================================== */

.inRecruitmentNotice{
    padding:92px 32px;
    background:var(--rec-ivory-light);
}

.inRecruitmentNotice__inner{
    display:grid;
    grid-template-columns:minmax(300px,.8fr) minmax(440px,1.2fr);
    gap:clamp(65px,8vw,120px);
    width:min(1180px,100%);
    margin:0 auto;
}

/* ========================================
事業者向けCTA
======================================== */

.inRecruitmentBusiness{
    padding:92px 32px;
    background:var(--rec-navy);
}

.inRecruitmentBusiness__inner{
    display:grid;
    grid-template-columns:minmax(300px,.8fr) minmax(430px,1.2fr);
    align-items:center;
    gap:80px;
    width:min(1180px,100%);
    margin:0 auto;
}

.inRecruitmentBusiness__title{
    color:#fff;
}

.inRecruitmentBusiness__body p{
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:.86rem;
    line-height:2;
}

.inRecruitmentBusiness__button{
    display:inline-flex;
    width:min(390px,100%);
    min-height:58px;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    margin-top:28px;
    padding:15px 21px 15px 24px;
    border:1px solid var(--rec-gold);
    background:transparent;
    color:#fff!important;
    font-family:var(--rec-serif)!important;
    font-size:.8rem;
    transition:background-color .3s ease,color .3s ease,border-color .3s ease;
}

.inRecruitmentBusiness__button i{
    width:38px;
    height:1px;
    background:var(--rec-gold);
    transition:width .3s ease;
}

@media(hover:hover){
    .inRecruitmentBusiness__button:hover{
        background:var(--rec-gold);
        color:var(--rec-navy)!important;
    }

    .inRecruitmentBusiness__button:hover i{
        width:50px;
        background:var(--rec-navy);
    }
}

/* ========================================
レスポンシブ
======================================== */

@media(max-width:1024px){
    .inRecruitmentGrid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:767px){
    .inRecruitmentHero{
        padding:88px 20px 72px;
    }

    .inRecruitmentHero__title{
        font-size:2rem;
        word-break:normal;
        overflow-wrap:anywhere;
    }

    .inRecruitmentHero__lead{
        font-size:.82rem;
    }

    .inRecruitmentIntro,
    .inRecruitmentList,
    .inRecruitmentNotice,
    .inRecruitmentBusiness{
        padding-right:20px;
        padding-left:20px;
    }

    .inRecruitmentIntro{
        padding-top:72px;
        padding-bottom:68px;
    }

    .inRecruitmentIntro__inner,
    .inRecruitmentNotice__inner,
    .inRecruitmentBusiness__inner{
        grid-template-columns:1fr;
        gap:34px;
    }

    .inRecruitmentIntro__title,
    .inRecruitmentList__title,
    .inRecruitmentNotice__title,
    .inRecruitmentBusiness__title{
        word-break:normal;
        overflow-wrap:anywhere;
    }

    .inRecruitmentList{
        padding-top:78px;
        padding-bottom:85px;
    }

    .inRecruitmentList__header{
        align-items:flex-start;
    }

    .inRecruitmentGrid{
        grid-template-columns:1fr;
        gap:24px;
    }

    .inRecruitmentNotice{
        padding-top:70px;
        padding-bottom:70px;
    }

    .inRecruitmentBusiness{
        padding-top:70px;
        padding-bottom:70px;
    }

    .inRecruitmentBusiness__button{
        width:100%;
    }
}

/* ========================================
テーマ・Elementor干渉対策
======================================== */

body.post-type-archive-recruitment .site-main,
body.post-type-archive-recruitment main{
    margin:0!important;
    padding:0!important;
}

body.post-type-archive-recruitment .page-header,
body.post-type-archive-recruitment .entry-header,
body.post-type-archive-recruitment .archive-title{
    display:none!important;
}


/* ========================================
LAYOUT FIX v2
テーマ側の幅・余白・文字組み干渉を無効化
======================================== */

.inRecruitmentArchive{
    overflow:hidden!important;
}

.inRecruitmentArchive section{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
}

.inRecruitmentArchive .inRecruitmentHero__inner,
.inRecruitmentArchive .inRecruitmentIntro__inner,
.inRecruitmentArchive .inRecruitmentList__inner,
.inRecruitmentArchive .inRecruitmentNotice__inner,
.inRecruitmentArchive .inRecruitmentBusiness__inner{
    width:calc(100% - 64px)!important;
    max-width:1180px!important;
    margin-right:auto!important;
    margin-left:auto!important;
}

.inRecruitmentArchive .inRecruitmentList__inner{
    max-width:1320px!important;
}

/* 応募前の注意事項 */
.inRecruitmentArchive .inRecruitmentNotice{
    padding:76px 32px!important;
    background:var(--rec-ivory-light)!important;
}

.inRecruitmentArchive .inRecruitmentNotice__inner{
    display:grid!important;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)!important;
    align-items:start!important;
    gap:72px!important;
}

.inRecruitmentArchive .inRecruitmentNotice__heading,
.inRecruitmentArchive .inRecruitmentNotice__body{
    min-width:0!important;
    margin:0!important;
    padding:0!important;
}

.inRecruitmentArchive .inRecruitmentNotice__title{
    max-width:100%!important;
    margin:0!important;
    font-size:clamp(1.65rem,2.2vw,2.35rem)!important;
    line-height:1.55!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
}

.inRecruitmentArchive .inRecruitmentNotice__body p{
    max-width:none!important;
    margin:0!important;
    padding:0!important;
}

/* 事業者向けCTA */
.inRecruitmentArchive .inRecruitmentBusiness{
    padding:76px 32px!important;
    background:var(--rec-navy)!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(380px,.9fr)!important;
    align-items:center!important;
    gap:72px!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__text,
.inRecruitmentArchive .inRecruitmentBusiness__body{
    min-width:0!important;
    margin:0!important;
    padding:0!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__title{
    max-width:620px!important;
    margin:0!important;
    font-size:clamp(1.75rem,2.4vw,2.6rem)!important;
    line-height:1.55!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__body p{
    margin:0!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__button{
    margin-top:26px!important;
}

/* テーマ由来の不要な余白 */
body.post-type-archive-recruitment .site-content,
body.post-type-archive-recruitment .content-area,
body.post-type-archive-recruitment .site-main,
body.post-type-archive-recruitment .entry-content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
}

@media(max-width:767px){
    .inRecruitmentArchive .inRecruitmentHero__inner,
    .inRecruitmentArchive .inRecruitmentIntro__inner,
    .inRecruitmentArchive .inRecruitmentList__inner,
    .inRecruitmentArchive .inRecruitmentNotice__inner,
    .inRecruitmentArchive .inRecruitmentBusiness__inner{
        width:100%!important;
    }

    .inRecruitmentArchive .inRecruitmentNotice,
    .inRecruitmentArchive .inRecruitmentBusiness{
        padding:64px 20px!important;
    }

    .inRecruitmentArchive .inRecruitmentNotice__inner,
    .inRecruitmentArchive .inRecruitmentBusiness__inner{
        grid-template-columns:1fr!important;
        gap:30px!important;
    }

    .inRecruitmentArchive .inRecruitmentNotice__title,
    .inRecruitmentArchive .inRecruitmentBusiness__title{
        word-break:normal!important;
        overflow-wrap:anywhere!important;
    }
}


/* ========================================
CTA OVERLAP FIX v3
======================================== */

.inRecruitmentArchive .inRecruitmentBusiness__inner{
    grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr)!important;
    align-items:center!important;
    gap:clamp(54px,6vw,90px)!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__text{
    min-width:0!important;
    max-width:100%!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__title{
    max-width:100%!important;
    font-size:clamp(1.7rem,2.35vw,2.5rem)!important;
    line-height:1.58!important;
    letter-spacing:.02em!important;
    white-space:normal!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__title span{
    display:block!important;
    white-space:nowrap!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__body{
    min-width:0!important;
    max-width:520px!important;
    justify-self:end!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__body p{
    max-width:480px!important;
    line-height:1.95!important;
}

.inRecruitmentArchive .inRecruitmentBusiness__button{
    width:min(390px,100%)!important;
}

@media(max-width:900px){
    .inRecruitmentArchive .inRecruitmentBusiness__inner{
        grid-template-columns:1fr!important;
        gap:32px!important;
    }

    .inRecruitmentArchive .inRecruitmentBusiness__body{
        max-width:none!important;
        justify-self:stretch!important;
    }

    .inRecruitmentArchive .inRecruitmentBusiness__title span{
        white-space:normal!important;
    }
}

@media(max-width:767px){
    .inRecruitmentArchive .inRecruitmentBusiness__title{
        font-size:1.8rem!important;
    }
}
