@charset "utf-8";

/* ====================================================================
 訪問レポート（visit-report）一覧・個別
 1rem = 10px（html が 62.5%）。
==================================================================== */

/* デザイン実測値 */
:root {
    --vr-red: #e60012;        /* 赤 */
    --vr-bg: #ecf6f2;         /* 地色 */
    --vr-text: #333;
    --vr-text-sub: #545147;   /* サブコピー */
    --vr-gray-box: #eeeeed;   /* グレーボックス */
    --vr-label: #9b7c7c;      /* ラベル帯 */
    --vr-line: #a3aaa7;       /* 区切り線 */
    --vr-cat-volusapo: #c288a9;
    --vr-cat-kikin: #71a2f0;
    --vr-tab: #5DB2FF;        /* ページタブ・罫線 */
}

/* 横スクロール防止 */
body.post-type-archive-visit-report,
body.single-visit-report {
    overflow-x: hidden;
}

/* 太字対策 */
#contents.visit_report {
    color: var(--vr-text);
    font-family: "Hiragino Sans", "ヒラギノ角ゴシック", "メイリオ", Meiryo,
                 "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
}

/* main.css の見出し装飾を打消 */
#contents.visit_report h1,
#contents.visit_report h2 {
    clear: none;
    margin: 0;
    padding: 0;
    background: none;
    border-bottom: 0 none;
    font-size: inherit;
    font-weight: 700;
    text-align: left;
    line-height: 1.5;
}

#contents.visit_report h1::after,
#contents.visit_report h2::after {
    display: none;
    content: none;
}

/* 本文カラム 1000px */
#contents.visit_report .vr_body,
#contents.visit_report .vr_main {
    position: relative;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 20px;
}


/* 共通：ページタブ（罫線＋タブ見出し）
--------------------------------------------------------- */
#contents.visit_report .vr_pagetab {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    max-width: 1040px;
    margin: 0 auto 30px;
    padding: 0 ;
    border-bottom: 2px solid var(--vr-tab);
}

#contents.visit_report .vr_pagetab_label {
    position: relative;
    z-index: 0;
    margin: 0;
    padding: 8px 20px 8px 46px;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

/* タブの塗り。左端は水平から75度の斜め */
#contents.visit_report .vr_pagetab_label::before {
    position: absolute;
    z-index: -1;
    inset: 0 0 -2px 16px;
    background: var(--vr-tab);
    clip-path: polygon(12px 0, 100% 0, 100% 100%, 0 100%);
    content: "";
}

/* 塗りの外側にもう1本、同じ角度の斜め線 */
#contents.visit_report .vr_pagetab_label::after {
    position: absolute;
    bottom: -2px;
    left: 2px;
    width: 2px;
    height: calc(100% + 2px);
    background: var(--vr-tab);
    transform: rotate(15deg);
    transform-origin: bottom center;
    content: "";
}


/* 一覧：ヒーロー
--------------------------------------------------------- */
#contents.visit_report .vr_hero {
    position: relative;
    /* 全幅にする */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 20px 20px 120px;
    text-align: center;
}


#contents.visit_report .vr_hero_inner {
    position: relative;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: left;
}

#contents.visit_report .vr_hero_title {
    margin: 0 0 30px;
}

/* 原寸920px・左寄せ */
#contents.visit_report .vr_hero_title img {
    width: 100%;
    max-width: 920px;
    height: auto;
}

#contents.visit_report .vr_hero_lead {
    margin: 0;
    padding-left: 14px;
    border-left: 2px solid var(--vr-text);
    text-align: left;
}

#contents.visit_report .vr_hero_lead p {
    margin: 0;
    font-size: 1.8rem;
    line-height: 2;
}

#contents.visit_report .vr_hero_person {
    position: absolute;
    right: 0;
    bottom: -50px;
    width: 150px;
    margin: 0;
}

#contents.visit_report .vr_hero_person img {
    width: 100%;
    height: auto;
}


/* 一覧：カード
--------------------------------------------------------- */
#contents.visit_report .vr_body {
    padding-top: 60px;
    padding-bottom: 60px;
}

/* 地色（全幅） */
#contents.visit_report .vr_body::before,
#contents.visit_report .vr_main::before {
    content: "";
    position: absolute;
    top: -13vw;
    bottom: -90px;
    left: calc(50% - 50vw);
    width: 100vw;
    background: var(--vr-bg);
    z-index: -2;
}

/* 上端の白カーブ。比率固定 */
#contents.visit_report .vr_body::after,
#contents.visit_report .vr_main::after {
    content: "";
    position: absolute;
    top: -16.45vw;
    left: calc(50% - 50vw);
    width: 100vw;
    height: 25.47vw;
    background: url("/assets/img/visit_report/bg_head.svg") center top / 100% 100% no-repeat;
    z-index: -1;
}

#contents.visit_report .vr_list {
    margin: 0 0 50px;
}

#contents.visit_report .vr_card {
    display: flex;
    gap: 24px;
    padding: 30px 0;
    border-bottom: 1px solid var(--vr-line);
}

#contents.visit_report .vr_card:first-child {
    padding-top: 0;
}

#contents.visit_report .vr_card_thumb {
    flex: 0 0 353px;
    width: 353px;
}

#contents.visit_report .vr_card_thumb img {
    display: block;
    width: 100%;
    height: auto;
}

/* アイキャッチ無し時 */
#contents.visit_report .vr_card_thumb_none {
    display: block;
    width: 100%;
    padding-top: 66%;
    background: #e2ddd0;
}

#contents.visit_report .vr_card_body {
    flex: 1 1 auto;
    min-width: 0;
}

#contents.visit_report .vr_card_meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
}

#contents.visit_report .vr_card_title {
    margin: 0 0 10px;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--vr-line);
    font-size: 2.16rem;
    font-weight: 700;
    line-height: 1.5;
}

#contents.visit_report .vr_card_title a {
    color: #000;
    text-decoration: none;
}

#contents.visit_report .vr_card_title a:hover {
    text-decoration: underline;
}

/* 一覧は vr_title_red があっても黒 */
#contents.visit_report .vr_card_title .vr_title_red {
    color: #000;
}

#contents.visit_report .vr_card_org {
    margin: 0 0 10px;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--vr-line);
    font-size: 1.68rem;
}

/* 3行で打ち切る */
#contents.visit_report .vr_card_lead {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin: 0 0 14px;
    font-size: 1.68rem;
    line-height: 1.9;
}

#contents.visit_report .vr_card_more {
    margin: 0;
    text-align: right;
}

#contents.visit_report .vr_card_more a {
    display: inline-block;
    padding: 6px 26px;
    background: var(--vr-red);
    color: #fff;
    font-size: 1.56rem;
    text-decoration: none;
    border-radius: 2px;
}

#contents.visit_report .vr_card_more a:hover {
    opacity: .85;
}

#contents.visit_report .vr_empty {
    padding: 60px 0;
    text-align: center;
}


/* バッジ（NEW・カテゴリ）
--------------------------------------------------------- */
#contents.visit_report .vr_new {
    color: var(--vr-red);
    font-size: 1.68rem;
    font-weight: 700;
    letter-spacing: .05em;
}

#contents.visit_report .vr_cat {
    display: inline-block;
    padding: 2px 8px;
    background: var(--vr-cat-volusapo);
    border-radius: 2px;
    color: #fff;
    font-size: 1.44rem;
    line-height: 1.5;
    white-space: nowrap;
}

/* ターム別の色 */
#contents.visit_report .vr_cat--volusapo {
    background: var(--vr-cat-volusapo);
}

#contents.visit_report .vr_cat--fukushi-kikin {
    background: var(--vr-cat-kikin);
}


/* 個別：見出し
--------------------------------------------------------- */
#contents.visit_report--single .vr_head {
    max-width: 1040px;
    margin: 0 auto;
    padding: 10px 20px 0;
}

#contents.visit_report .vr_head_cat {
    margin: 0 0 12px;
}

/* 個別のバッジだけ1.2倍（一覧はそのまま） */
#contents.visit_report .vr_head_cat .vr_cat {
    padding: 2.4px 9.6px;
    border-radius: 2.4px;
    font-size: 1.73rem;
}

#contents.visit_report .vr_head_title {
    margin: 0 0 16px;
    padding: 0 0 16px;
    border-bottom: 1px solid #333;
    color: #000;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.8;
}

/* タイトルの一部を赤に */
#contents.visit_report .vr_title_red {
    color: var(--vr-red);
}

#contents.visit_report .vr_head_org {
    margin: 0 0 30px;
    padding: 0 0 16px;
    border-bottom: 1px solid #333;
    font-size: 1.8rem;
}


/* 個別：助成プログラムのグレーボックス
--------------------------------------------------------- */
/* 幅は本文カラムに揃える */
#contents.visit_report .vr_program {
    max-width: 1000px;
    margin: 0 auto 80px;
    padding: 24px 48px;
    background: var(--vr-gray-box);
    /* 角丸5px（実測） */
    border-radius: 5px;
}

#contents.visit_report .vr_program_label {
    display: inline-block;
    margin: 0 0 14px;
    padding: 4px 20px;
    background: var(--vr-label);
    color: #fff;
    font-size: 1.56rem;
    border-radius: 12px;
}

#contents.visit_report .vr_program_body p {
    margin: 0 0 1em;
    font-size: 1.68rem;
    line-height: 1.9;
}

#contents.visit_report .vr_program_body p:last-child {
    margin-bottom: 0;
}

#contents.visit_report .vr_program_link {
    margin: 14px 0 0;
    font-size: 1.68rem;
}


/* 個別：本文
--------------------------------------------------------- */
#contents.visit_report .vr_main {
    padding-bottom: 80px;
    padding-top: 80px;
}

#contents.visit_report .vr_lead {
    margin: 0 0 30px;
    padding-left: 14px;
    border-left: 3px solid var(--vr-red);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.9;
}

#contents.visit_report .vr_content p {
    margin: 0 0 2.4em;
    font-size: 1.68rem;
    line-height: 2;
}


/* 本文・こぼれ話の画像
--------------------------------------------------------- */
#contents.visit_report .vr_content img,
#contents.visit_report .vr_kobore_body img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border: 4px solid var(--vr-red);
    border-radius: 10px;
    box-shadow: 5px 6px 12px rgba(0, 0, 0, .18);
    box-sizing: border-box;
}

/* 左右寄せも中央に */
#contents.visit_report .vr_content .alignleft,
#contents.visit_report .vr_content .alignright,
#contents.visit_report .vr_content .aligncenter,
#contents.visit_report .vr_content .alignnone,
#contents.visit_report .vr_kobore_body .alignleft,
#contents.visit_report .vr_kobore_body .alignright,
#contents.visit_report .vr_kobore_body .aligncenter,
#contents.visit_report .vr_kobore_body .alignnone {
    display: block;
    float: none;
    margin-right: auto;
    margin-left: auto;
}

/* [caption] 付き */
#contents.visit_report .vr_content .wp-caption,
#contents.visit_report .vr_kobore_body .wp-caption {
    max-width: 100%;
    margin: 0 auto 2em;
    text-align: center;
}

#contents.visit_report .vr_content .wp-caption img,
#contents.visit_report .vr_kobore_body .wp-caption img {
    margin-bottom: 10px;
}

#contents.visit_report .vr_content .wp-caption-text,
#contents.visit_report .vr_kobore_body .wp-caption-text {
    margin: 0;
    font-size: 1.56rem;
    line-height: 1.7;
    text-align: center;
}

/* <p> 直下の画像 */
#contents.visit_report .vr_content p > img,
#contents.visit_report .vr_kobore_body p > img {
    margin-bottom: 10px;
}


/* 個別：こぼれ話
--------------------------------------------------------- */
#contents.visit_report .vr_kobore {
    position: relative;
    margin: 160px 0 0;
    padding: 120px 60px 40px;
    background: #fff;
    border: 2px dashed var(--vr-red);
    /* 角丸16px（実測） */
    border-radius: 16px;
}

#contents.visit_report .vr_kobore_title {
    position: absolute;
    top: -4px;
    left: -8px;
    width: 195px;
    margin: 0;
    line-height: 1;
}

#contents.visit_report .vr_kobore_title img {
    display: block;
    width: 100%;
    height: auto;
}

#contents.visit_report .vr_kobore_body p {
    margin: 0 0 1.6em;
    font-size: 1.68rem;
    line-height: 2;
}

#contents.visit_report .vr_kobore_body > *:last-child {
    margin-bottom: 0;
}


/* ページャ
--------------------------------------------------------- */
#contents.visit_report .vr_pager ul {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#contents.visit_report .vr_pager a,
#contents.visit_report .vr_pager span {
    display: block;
    min-width: 34px;
    padding: 6px 10px;
    border: 1px solid var(--vr-line);
    color: var(--vr-text);
    font-size: 1.68rem;
    text-align: center;
    text-decoration: none;
}

#contents.visit_report .vr_pager .current {
    background: var(--vr-red);
    border-color: var(--vr-red);
    color: #fff;
}


/* 左の装飾・ご寄付バナー
--------------------------------------------------------- */

/* 装飾は背景画像。リピートなし */
#contents.visit_report .vr_deco {
    position: absolute;
    top: 30px;
    /* 地色と同じくフッター手前まで伸ばす */
    bottom: -90px;
    left: calc(50% - 50vw);
    width: 100vw;
    pointer-events: none;
    background-image: url("/assets/img/visit_report/deco_left.svg");
    background-repeat: no-repeat;
    /*background-position: calc(50% - 738px) 0;*/
    background-position: calc(50% - 620px) 0;
    /* 幅だけ指定して高さは原寸比（117.01 : 2952.22）に任せる */
    background-size: 117px auto;
}

#contents.visit_report .vr_donate {
    position: absolute;
    top: -40px;
    right: -160px;
    width: 152px;
    margin: 0;
    z-index: 2;
}

/* 記事末尾の寄付導線 */
#contents.visit_report .vr_donate_bottom {
    width: 152px;
    margin: 70px auto 0;
}

#contents.visit_report .vr_donate_bottom img {
    display: block;
    width: 100%;
    height: auto;
}

#contents.visit_report .vr_donate img {
    display: block;
    width: 100%;
    height: auto;
}

/* 狭い画面では中央へ */
@media screen and (max-width: 1299px) {
    #contents.visit_report .vr_donate {
        position: static;
        right: auto;
        margin: 0 auto 30px;
    }
}


/* SP（デザイン未支給・暫定）
--------------------------------------------------------- */
@media print, screen and (max-width: 959px) {
    #contents.visit_report .vr_pagetab {
        margin-bottom: 20px;
        padding: 0 15px;
    }

    #contents.visit_report .vr_pagetab_label {
        padding: 6px 16px 6px 38px;
        font-size: 1.6rem;
    }

    #contents.visit_report .vr_pagetab_label::before {
        inset: 0 0 -2px 14px;
        clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%);
    }

    #contents.visit_report .vr_hero {
        padding-bottom: 60px;
    }

    #contents.visit_report .vr_hero_person {
        position: static;
        width: 90px;
        margin: 20px auto 0;
    }

    #contents.visit_report .vr_hero_lead p {
        font-size: 1.68rem;
    }

    #contents.visit_report--single .vr_head {
        padding: 10px 15px 0;
    }

    #contents.visit_report .vr_body,
    #contents.visit_report .vr_main {
        padding: 0 15px;
    }

    #contents.visit_report .vr_program {
        max-width: calc(100% - 30px);
        padding: 20px;
    }

    /* サムネは比率指定 */
    #contents.visit_report .vr_card_thumb {
        flex: 0 0 40%;
        width: 40%;
    }

    #contents.visit_report .vr_head_title {
        font-size: 2.64rem;
    }
}

@media print, screen and (max-width: 599px) {
    #contents.visit_report .vr_card {
        display: block;
    }

    #contents.visit_report .vr_card_thumb {
        width: 100%;
        margin: 0 0 14px;
    }

    #contents.visit_report .vr_card_thumb img {
        margin: 0 auto;
    }

    #contents.visit_report .vr_hero_lead {
        padding-left: 10px;
    }

    /* SPは改行を解除 */
    #contents.visit_report .vr_hero_lead br {
        display: none;
    }

    #contents.visit_report .vr_kobore {
        padding: 40px 16px 20px;
    }

    #contents.visit_report .vr_kobore_title {
        top: -28px;
        left: 14px;
        width: 160px;
    }

    #contents.visit_report .vr_content img,
    #contents.visit_report .vr_kobore_body img {
        border-width: 3px;
    }
}
