@charset "UTF-8";

/* =========================================================
   日興リカ 採用サイト  インタビュー詳細  -  interview-detail.css
   （共通トークン・ヘッダー・フッターは style.css を参照）
   デザイン: 00nikkorica202604_10interview_02.ai（1920幅・コンテンツ1200）
   実測:
     ヒーロー写真 1920x700 / 青帯 #0077EE 452px
     プロフィール板 431x319 #0077EE 枠#008CFF（写真右下に重なる）
     キャッチ = 白帯70px・青文字33px Bold
     本文帯 #E9EBF5 / Q&A写真 548x450 / 本文 600幅 20px/30
     メッセージ帯 rgba(0,119,238,.75) + パネル810x700 #0077EE 枠#008CFF
     タイムライン: カード448x153・時刻チップ81x37 #007EE8・中央線15px
     関連カード 430x568（写真430x415）横スクロール
   ========================================================= */

.ivd {
    position: relative;
    padding-top: 80px;
    /* 固定ヘッダー分 */
    background: #fff;
    color: #464646;
    overflow-x: clip;
}

/* =========================================================
   HERO（全幅写真＋プロフィール板）
   ========================================================= */
.ivd-hero {
    position: relative;
}

.ivd-hero-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1920 / 700;
    object-fit: cover;
}

/* 装飾：右上の泡 */
.ivd-hero::before {
    content: "";
    position: absolute;
    top: 546px;
    right: -47px;
    width: 202px;
    height: 202px;
    background: url("../images/creed-deco-flask.png") center / contain no-repeat;
    pointer-events: none;
    z-index: 2;
}

/* プロフィール板：写真右下に重ねる（青帯側へ約30%はみ出す） */
.ivd-profile {
    position: absolute;
    right: 14.5%;
    bottom: -15%;
    width: min(350px, 36vw);
    padding: 24px;
    background: url("../images/motto-band-bg.png") center / cover no-repeat;
    background-color: #0077ee;
    border: 2px solid #008cff;
    border-radius: 14px;
    color: #fff;
    text-align: center;
    z-index: 3;
}

.ivd-profile-name {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .1em;
}

.ivd-profile-since {
    margin: 12px 0 0;
    font-size: 17px;
    font-weight: 500;
}

.ivd-profile-dept {
    margin: 4px 0 0;
    font-size: 20px;
    font-weight: 500;
}

/* =========================================================
   青帯（キャッチコピー＋リード）
   ========================================================= */
.ivd-lead {
    position: relative;
    background: #0077ee;
    padding: 54px 0 47px;
    color: #fff;
}

.ivd-catch {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 42px;
}

/* 白帯・青文字のキャッチ行 */
.ivd-catch-line {
    display: inline-block;
    background: #fff;
    color: #0077ee;
    font-size: 33px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1;
    padding: 18px 25px 19px;
}

.ivd-lead-text {
    margin: 0;
    max-width: 1200px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.5;
}

/* =========================================================
   本文（Q&Aブロック）
   ========================================================= */
.ivd-story {
    position: relative;
    background: #e9ebf5;
    padding: 149px 0 130px;
}

/* 装飾：左上の分子 */
.ivd-story::before {
    content: "";
    position: absolute;
    top: -90px;
    left: -41px;
    width: 397px;
    height: 319px;
    background: url("../images/creed-deco-mol.png") center / contain no-repeat;
    pointer-events: none;
    z-index: 0;
}

/* 装飾：左の泡 */
.ivd-story::after {
    content: "";
    position: absolute;
    top: 1455px;
    left: -44px;
    width: 202px;
    height: 202px;
    background: url("../images/creed-deco-flask.png") center / contain no-repeat;
    pointer-events: none;
    z-index: 0;
}

.ivd-story .container-rica {
    position: relative;
    z-index: 1;
}

/* 装飾：右下の細胞（env-icon） 実測: 細胞ペア 右63px・下235px付近（コンテナ右端1560基準） */
.ivd-story .container-rica::after {
    content: "";
    position: absolute;
    right: -297px;
    bottom: 105px;
    width: 204px;
    height: 218px;
    background: url("../images/env-icon.png") center / contain no-repeat;
    pointer-events: none;
    z-index: -1;
}

.ivd-block {
    /* flow-root: 内部floatの高さを親に内包させる（clearfix） */
    display: flow-root;
}

.ivd-block+.ivd-block {
    margin-top: 88px;
}

.ivd-block-img {
    float: left;
    width: 45.7%;
    margin-right: 52px;
    aspect-ratio: 548 / 450;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 40px;
}

/* 反転：写真右・テキスト左 */
.ivd-block--rev .ivd-block-img {
    float: right;
    margin-right: 0;
    margin-left: 52px;
}

.ivd-block-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* pが3つ以上ある場合、3つ目以降は画像の回り込みを解除して横幅いっぱいに広げる */
.ivd-block .ivd-text p:nth-of-type(n+3) {
    clear: both;
}

.ivd-block-title {
    margin: 0 0 22px;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
    /* .1em だと3ブロック目の1行目（19文字）が600px幅に収まらず3行になるため詰める */
    letter-spacing: .05em;
    /* イラレ同様に約物を詰めて折り返しを合わせる */
    font-feature-settings: "palt" 1;
    color: #0077ee;
}

.ivd-text p {
    margin: 0 0 30px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
    color: #464646;
}

.ivd-text p:last-child {
    margin-bottom: 0;
}

.ivd-text--white p {
    color: #fff;
}

/* 全幅写真 */
.ivd-photo-band {
    margin: 139px 0 148px;
    position: relative;
    z-index: 1;
}

.ivd-photo-band img {
    display: block;
    width: 100%;
    aspect-ratio: 1920 / 800;
    object-fit: cover;
}

/* =========================================================
   メッセージバンド（半透明青帯＋濃青パネル）
   ========================================================= */
.ivd-message {
    /* flow-root: パネルの負マージンが親と相殺するのを防ぐ */
    display: flow-root;
    /* --ivd-mv: 各ページの<section>にインラインstyleでページ固有のMV画像を指定する */
    background:
        linear-gradient(rgba(0, 119, 238, .75)),
        var(--ivd-mv, url("../images/interview/interview01-mv.jpg"))no-repeat top right 100% / 150%;
    padding-bottom: 100px;
}

.ivd-message .container-rica {
    position: relative;
}

/* 装飾：パネル左下から背面にのぞく細胞（entry-icon02）
   実測: 細胞クラスタ x103 y4423 359x380（コンテナ左端360基準・パネルが前面） */
.ivd-message .container-rica::before {
    content: "";
    position: absolute;
    left: -257px;
    bottom: 33px;
    width: 359px;
    height: 380px;
    background: url("../images/entry-icon02.png") center / contain no-repeat;
    pointer-events: none;
    z-index: 0;
}

.ivd-message-panel {
    width: 810px;
    max-width: 100%;
    margin-top: -90px;
    margin-left: -40px;
    background: url("../images/motto-band-bg.png") center / cover no-repeat;
    background-color: #0077ee;
    border: 2px solid #008cff;
    border-radius: 14px;
    padding: 40px 40px 60px;
    position: relative;
    z-index: 1;
}

.ivd-message-title {
    margin: 0 0 22px;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .1em;
    color: #fff;
}

/* =========================================================
   1日の仕事の流れ（センターライン・タイムライン）
   ========================================================= */
.ivd-schedule {
    position: relative;
    background: #e9ebf5;
    padding: 151px 0 143px;
}

/* 装飾：右下の分子 */
.ivd-schedule::after {
    content: "";
    position: absolute;
    top: 746px;
    right: -133px;
    width: 397px;
    height: 319px;
    background: url("../images/creed-deco-mol.png") center / contain no-repeat;
    pointer-events: none;
    z-index: 0;
}

.ivd-schedule .container-rica {
    position: relative;
    z-index: 1;
}

.ivd-schedule-title {
    margin: 0 0 46px;
    font-size: 40px;
    font-weight: 700;
    letter-spacing: .1em;
    text-align: center;
    color: #464646;
}

.ivd-timeline {
    position: relative;
    max-width: 1012px;
    margin-inline: auto;
    padding: 10px 0 30px;
}

/* センターライン */
.ivd-timeline::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 40px;
    bottom: 40px;
    width: 15px;
    border-radius: 8px;
    background: #b3e2f8;
}

.tl-item {
    position: relative;
    display: flex;
    /* 時計まわりの寸法（SPではメディアクエリで上書き） */
    --clock-size: 64px;
    /* 文字盤の中心 */
    --clock-cx: 50%;
    --clock-cy: 46px;
    --hand-m: 23px;
    --hand-h: 16px;
    --hand-w: 4px;
}

.tl-item--right {
    justify-content: flex-end;
}

.tl-item+.tl-item {
    margin-top: -58px;
}

/* ライン上の時計・文字盤（実測: 64px白丸・#007EE8の4px枠） */
.tl-item::before {
    content: "";
    position: absolute;
    left: var(--clock-cx);
    top: calc(var(--clock-cy) - var(--clock-size) / 2);
    transform: translateX(-50%);
    width: var(--clock-size);
    height: var(--clock-size);
    border-radius: 50%;
    background: #fff;
    border: 4px solid #007ee8;
    z-index: 1;
}

/* 時計の針（長針=分・短針=時、--deg はPHPが時刻から算出して付与） */
.tl-hand {
    position: absolute;
    left: calc(var(--clock-cx) - var(--hand-w) / 2);
    width: var(--hand-w);
    border-radius: calc(var(--hand-w) / 2);
    background: #007ee8;
    transform-origin: 50% 100%;
    transform: rotate(var(--deg, 0deg));
    pointer-events: none;
    z-index: 2;
}

.tl-hand--m {
    height: var(--hand-m);
    top: calc(var(--clock-cy) - var(--hand-m));
}

.tl-hand--h {
    height: var(--hand-h);
    top: calc(var(--clock-cy) - var(--hand-h));
}

.tl-card {
    position: relative;
    width: 44.3%;
    background: #fff;
    border: 4px solid #008cff;
    padding: 26px 28px;
    box-shadow: 0 10px 24px rgba(0, 30, 90, .08);
    z-index: 1;
}

/* センターラインへ向く三角（::beforeが枠色・::afterが白の二層で枠線を表現） */
.tl-card::before,
.tl-card::after {
    content: "";
    position: absolute;
    top: 32px;
    border: 12px solid transparent;
}

.tl-item--left .tl-card::before {
    right: -25px;
    border-left-color: #008cff;
}

.tl-item--left .tl-card::after {
    right: -20px;
    border-left-color: #fff;
}

.tl-item--right .tl-card::before {
    left: -25px;
    border-right-color: #008cff;
}

.tl-item--right .tl-card::after {
    left: -20px;
    border-right-color: #fff;
}

.tl-head {
    display: flex;
    align-items: center;
    gap: 14px;
}

.tl-time {
    flex: 0 0 auto;
    min-width: 81px;
    height: 37px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #007ee8;
    border-radius: 6px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
}

.tl-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #464646;
}

.tl-text {
    margin: 10px 0 0 95px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.625;
    color: #464646;
}

/* =========================================================
   人を知る（横スクロールカード＋一覧に戻る）
   ========================================================= */
.ivd-related {
    background: #fff;
    padding: 154px 0 150px;
}

.ivd-related-head {
    position: relative;
    margin-bottom: 24px;
}

.ivd-related-title {
    margin: 0;
    font-size: 40px;
    font-weight: 700;
    letter-spacing: .1em;
    text-align: center;
    color: #464646;
}

/* PREV / NEXT */
.ivd-related-nav {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    gap: 14px;
}

.ivd-nav-btn {
    position: relative;
    width: 60px;
    height: 60px;
    background: #fff;
    border: 1px solid #c9cdd6;
    border-radius: 8px;
    cursor: pointer;
    transition: background .2s;
}

.ivd-nav-btn:hover {
    background: #eef5fe;
}

.ivd-nav-btn::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    border-top: 2px solid #0077ee;
    border-right: 2px solid #0077ee;
}

.ivd-nav-btn--prev::before {
    transform: translate(-30%, -50%) rotate(-135deg);
}

.ivd-nav-btn--next::before {
    transform: translate(-70%, -50%) rotate(45deg);
}

/* 横スクロール（右端は画面端まで） */
.ivd-related-scroll {
    display: flex;
    gap: 30px;
    overflow-x: auto;
    margin-right: calc(50% - 50vw);
    padding: 10px 24px 30px 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
}

.ivd-related-scroll::-webkit-scrollbar {
    display: none;
}

.related-card {
    flex: 0 0 430px;
    scroll-snap-align: start;
    display: block;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(0, 30, 90, .15);
    color: inherit;
    text-decoration: none;
    transition: transform .25s ease;
}

.related-card:hover {
    transform: translateY(-6px);
    color: inherit;
}

.related-card-img {
    aspect-ratio: 430 / 415;
    overflow: hidden;
}

.related-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.related-card-name {
    margin: 26px 34px 0;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .04em;
    color: #464646;
}

.related-card-since {
    margin: 4px 34px 0;
    font-size: 14px;
    font-weight: 500;
    color: #009fe8;
}

.related-card-role {
    margin: 2px 34px 24px;
    font-size: 16px;
    font-weight: 700;
    color: #464646;
}

/* 一覧に戻る */
.ivd-back {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 300px;
    height: 80px;
    margin: 120px auto 0;
    background: #fff;
    border: 1px solid #0077ee;
    border-radius: 40px;
    color: #0077ee;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .06em;
    text-decoration: none;
    transition: background .2s, color .2s;
}

.ivd-back:hover {
    background: #0077ee;
    color: #fff;
}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width: 1199px) {
    .ivd-profile {
        width: min(330px, 90%);
        margin: -40px auto 0;
        padding: 24px;
        z-index: 10;
        right: 5%;
        bottom: -23%;
    }
}

@media (max-width: 991px) {
    .ivd-hero::before {
        display: none;
    }

    /* プロフィール板は写真の下に通常配置 */
    .ivd-profile {
        position: relative;
        left: 0;
        width: min(431px, 90%);
        margin: -40px auto 0;
        padding: 30px 24px;
        z-index: 10;
    }

    .ivd-hero {
        background: #0077ee;
        padding-bottom: 40px;
    }

    .ivd-lead {
        padding: 30px 0 50px;
    }

    .ivd-catch-line {
        font-size: 24px;
        padding: 14px 18px;
    }

    .ivd-lead-text {
        font-size: 17px;
        line-height: 1.7;
    }

    .ivd-story {
        padding: 80px 0 80px;
    }

    .ivd-block+.ivd-block {
        margin-top: 60px;
    }

    .ivd-block-img,
    .ivd-block--rev .ivd-block-img {
        float: none;
        width: 100%;
        margin: 0 0 24px;
        aspect-ratio: 16 / 10;
    }

    .ivd-block-title {
        font-size: 24px;
    }

    .ivd-text p {
        font-size: 16px;
        line-height: 1.75;
        margin-bottom: 22px;
    }

    .ivd-photo-band {
        margin: 70px 0;
    }

    .ivd-message {
        background-size: cover;
        padding-bottom: 50px;
    }

    .ivd-message-panel {
        width: 100%;
        margin-left: 0;
        margin-top: -60px;
        padding: 44px 32px 50px;
    }

    /* 細胞装飾はタブレット以下で非表示 */
    .ivd-message .container-rica::before,
    .ivd-story .container-rica::after {
        display: none;
    }

    .ivd-message-title {
        font-size: 24px;
    }

    .ivd-schedule {
        padding: 80px 0;
    }

    .ivd-schedule-title {
        font-size: 30px;
        margin-bottom: 36px;
    }

    .ivd-schedule::after {
        display: none;
    }

    /* タイムラインは左ライン1列 */
    .ivd-timeline::before {
        left: 20px;
        transform: none;
        top: 20px;
        bottom: 20px;
        width: 10px;
    }

    .tl-item,
    .tl-item--right {
        justify-content: flex-start;
        padding-left: 60px;
    }

    .tl-item+.tl-item {
        margin-top: 24px;
    }

    /* SPは左ライン上に小さめの時計 */
    .tl-item,
    .tl-item--right,
    .tl-item--left {
        --clock-size: 40px;
        --clock-cx: 25px;
        --clock-cy: 40px;
        --hand-m: 15px;
        --hand-h: 11px;
        --hand-w: 3px;
    }

    /* 文字盤を size/3 基準に下げる（中心が size/6 下がる） */
    .tl-item::before {
        border-width: 3px;
        top: calc(var(--clock-cy) - var(--clock-size) / 3);
    }

    /* 針も文字盤の中心（+size/6）に追従 */
    .tl-hand--m {
        top: calc(var(--clock-cy) + var(--clock-size) / 6 - var(--hand-m));
    }

    .tl-hand--h {
        top: calc(var(--clock-cy) + var(--clock-size) / 6 - var(--hand-h));
    }

    .tl-card {
        width: 100%;
        padding: 1rem;
    }

    .tl-item--left .tl-card::before,
    .tl-item--right .tl-card::before {
        left: -27px;
        right: auto;
        border-left-color: transparent;
        border-right-color: #008cff;
    }

    .tl-item--left .tl-card::after,
    .tl-item--right .tl-card::after {
        left: -21px;
        right: auto;
        border-left-color: transparent;
        border-right-color: #fff;
    }

    .tl-text {
        margin-left: 0;
    }

    .ivd-related {
        padding: 80px 0;
    }

    .ivd-related-title {
        font-size: 30px;
    }

    .ivd-nav-btn {
        width: 48px;
        height: 48px;
    }

    .related-card {
        flex-basis: 320px;
    }

    .ivd-back {
        margin-top: 60px;
    }
}

@media (max-width: 767px) {
    .ivd-hero-photo img {
        aspect-ratio: 4 / 3;
    }

    .ivd-profile-name {
        font-size: 20px;
    }

    .ivd-profile-since {
        font-size: 14px;
    }

    .ivd-profile-dept {
        font-size: 16px;
    }

    .ivd-catch-line {
        font-size: 19px;
        padding: 12px 14px;
    }

    .ivd-story::before,
    .ivd-story::after {
        display: none;
    }

    .ivd-story,
    .ivd-schedule,
    .ivd-related {
        padding: 60px 0 100px;
    }

    .ivd-block-title {
        font-size: 21px;
    }

    .ivd-text p {
        font-size: 15px;
        line-height: 1.8;
    }

    .ivd-photo-band img {
        aspect-ratio: 3 / 2;
    }

    .ivd-message-title {
        font-size: 21px;
    }

    .ivd-schedule-title,
    .ivd-related-title {
        font-size: 24px;
    }

    /* ナビはタイトル下・中央 */
    .ivd-related-head {
        margin-bottom: 16px;
    }

    .ivd-related-nav {
        position: static;
        transform: none;
        justify-content: center;
        margin-top: 16px;
    }

    .tl-time {
        min-width: 66px;
        height: 32px;
        font-size: 16px;
    }

    .tl-title {
        font-size: 17px;
    }

    .tl-text {
        font-size: 14px;
    }

    .related-card {
        flex-basis: 280px;
    }

    .related-card-name {
        margin: 20px 24px 0;
    }

    .related-card-since {
        margin: 4px 24px 0;
    }

    .related-card-role {
        margin: 2px 24px 20px;
    }

    .ivd-back {
        width: 250px;
        height: 64px;
        font-size: 17px;
    }
}