/**
 * コラム詳細
 */
@import url('http://fonts.googleapis.com/earlyaccess/notosansjapanese.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.cdnfonts.com/css/mistral');
@import url('https://fonts.cdnfonts.com/css/myriad-pro');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+2:wght@100..900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

/**
 * #mv
 */
#mv .wrap {
    padding: 40px 0 0;
    margin-bottom: 70px;
    background: #FFEEF2;
}
#mv .inner {
    position: relative;
}
#mv .imgWrap {
    width: 100%;
    height: 360px;
}
#mv .imgWrap img {
    height: 100%;
}
#mv .textWrap {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: auto;
    height: 90px;
}
#mv .textWrap h1 {
    padding: 10px;
    font-size: 29px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    color: #FFFFFF;
}
@media screen and (min-width: 480px) {
    #mv .imgWrap {
        height: 465px;
    }
    #mv .textWrap h1 {
        padding: 10px 20px;
        font-size: 43px;
    }
}
@media screen and (min-width: 650px) {
    #mv .imgWrap {
        height: auto;
    }
    #mv .textWrap {
        left: 15px;
    }
    #mv .textWrap h1 {
        font-size: 56px;
    }
}
@media screen and (min-width: 768px) {
    #mv .wrap {
        margin-bottom: 75px;
    }
    #mv .textWrap {
        left: 0;
    }
    #mv .textWrap h1 {
        width: fit-content;
        margin: 0 auto;
        font-size: 38px;
    }
}
@media screen and (min-width: 950px) {
    #mv .textWrap h1 {
        font-size: 45px;
    }
}
@media screen and (min-width: 1366px) {
    #mv .textWrap h1 {
        font-size: 56px;
    }
}

/**
 * section
 */
section + section {
    margin-top: 65px;
}
section .inner {
    width: 95%;
    max-width: 750px;
    margin: 0 auto;
}
section h2 {
    padding-bottom: 12px;
    margin-bottom: 30px;
    font-size: 25px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    color: #454342;
    border-bottom: 3px solid #454342;
}
section .detail > p,
section .detail > ul li {
    font-size: 16px;
    letter-spacing: 0.075em;
    line-height: 1.75;
    color: #454342;
}
section .detail > p + p,
section .detail > p + ul,
section .detail > ul + p {
    margin-top: 15px;
}
section .detail > p + div {
    margin-top: 41px;
}
section .detail .imgWrap {
    margin-bottom: 38px;
}
section .detail > p.img_title{
    font-size: 18px;
}
section .detail > p.img_title + div{
    margin-top: 15px;
}
@media screen and (min-width: 375px) {
    section .inner {
        width: 90%;
    }
}
@media screen and (min-width: 750px) {
    section + section {
        margin-top: 185px;
    }
    section h2 {
        font-size: 36px;
        line-height: 1.75;
    }
    section .detail > p,
    section .detail > ul li {
        font-size: 18px;
    }
    section .detail > p + p,
    section .detail > p + ul,
    section .detail > ul + p {
        margin-top: 30px;
    }
}
@media screen and (min-width: 768px) {
    section h2 {
        letter-spacing: 0.05em;
    }
    section .detail > p + div {
        margin-top: 80px;
    }
    section .detail > p.img_title + div {
        margin-top: 30px;
    }
    section .detail > p.img_title{
        font-size: 20px;
    }
    section .detail .imgWrap {
        margin-bottom: 25px;
    }
    section .detail .imgWrap.type02 {
        width: 88%;
        margin: 20px auto 26px;
    }
}

/** ul.list */
section .detail ul.list li {
    padding-left: 2em;
    text-indent: -0.7em;
}

/** table (共通線) */
section .detail .tableWrap li p {
    border-top: 1px solid #444136;
    border-left: 1px solid #444136;
}
section .detail .tableWrap li p:last-of-type {
    border-right: 1px solid #444136;
}
section .detail .tableWrap li:last-of-type p {
    border-bottom: 1px solid #444136;
}

/** table type01 */
section .detail .tableWrap.type01 .title {
    margin-bottom: 21px;
    font-size: 13px;
    font-family: "Noto Sans JP", serif;
    letter-spacing: 0.074em;
    line-height: 1.2;
    color: #000000;
}
section .detail .tableWrap.type01 .source {
    margin-top: 16px;
    font-size: 13px;
    font-family: "Noto Sans JP", serif;
    letter-spacing: 0.075em;
    color: #454342;
    text-align: right;
}
section .detail .tableWrap.type01 li {
    display: flex;
    flex-direction: row;
}
section .detail .tableWrap.type01 li p {
    width: calc((100% - 44px) / 6);
    padding: 12px 2px;
    font-size: 13px;
    letter-spacing: 0.075em;
    color: #000000;
    border-top: 1px solid #444136;
    border-left: 1px solid #444136;
}
section .detail .tableWrap.type01 li.header p {
    padding: 13px 10px;
    font-weight: 500;
}
section .detail .tableWrap.type01 li.header p,
section .detail .tableWrap.type01 li p:nth-of-type(1) {
    background: #D9D9D9;
}
section .detail .tableWrap.type01 li p:nth-of-type(1) {
    width: 44px;
}
section .detail .tableWrap.type01 li p:last-of-type {
    border-right: 1px solid #444136;
}
section .detail .tableWrap.type01 li:last-of-type p {
    border-bottom: 1px solid #444136;
}
section .detail .tableWrap.type01 li:not(.header) p {
    font-family: "Noto Sans JP", serif;
}
section .detail .tableWrap.type01 li p.column3 {
    width: calc((100% - 44px) / 6 * 3);
}
@media screen and (min-width: 480px) {
    section .detail .tableWrap.type01 li p {
        width: calc((100% - 60px) / 6);
        padding: 12px 5px;
        font-size: 14px;
    }
    section .detail .tableWrap.type01 li p:nth-of-type(1) {
        width: 60px;
    }
    section .detail .tableWrap.type01 li p.column3 {
        width: calc((100% - 60px) / 6 * 3);
    }
}
@media screen and (min-width: 560px) {
    section .detail .tableWrap.type01 li p {
        width: calc((100% - 70px) / 6);
        padding: 12px 5px 12px 8px;
        font-size: 16px;
    }
    section .detail .tableWrap.type01 li p:nth-of-type(1) {
        width: 70px;
    }
    section .detail .tableWrap.type01 li p.column3 {
        width: calc((100% - 70px) / 6 * 3);
    }
}
@media screen and (min-width: 750px) {
    section .detail .tableWrap.type01 .title {
        font-size: 14px;
    }
    section .detail .tableWrap.type01 .source {
        font-size: 14px;
    }
    section .detail .tableWrap.type01 li p {
        width: calc(100% / 7);
        padding: 20px 5px 19px 15px;
        font-size: 18px;
    }
    section .detail .tableWrap.type01 li.header p {
        padding: 21px 5px 12px 16px;
    }
    section .detail .tableWrap.type01 li p:nth-of-type(1) {
        width: calc(100% / 7);
    }
    section .detail .tableWrap.type01 li p.column3 {
        width: calc((100% / 7) * 3);
    }
}
@media screen and (min-width: 768px) {
    section + section {
        margin-top: 90px;
    }
    section .detail .tableWrap.type01 .source {
        margin-top: 10px;
    }
    section .detail .tableWrap.type01 li p {
        padding: 22px 5px 21px 18px;
        font-size: 20px;
    }
    section .detail .tableWrap.type01 li.header p {
        padding: 23px 5px 15px 20px;
    }
}

/** table type02 */
section .detail .tableWrap.type02 .title {
    margin-bottom: 19px;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.075em;
    color: #000000;
}
section .detail .tableWrap.type02 li {
    display: flex;
    flex-direction: row;
}
section .detail .tableWrap.type02 li p {
    width: calc((100% - 50px) / 8);
    padding: 6px 0;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.075em;
    color: #000000;
}
section .detail .tableWrap.type02 li.header p {
    padding: 5px 0;
}
section .detail .tableWrap.type02 li p span {
    display: inline-block;
    font-size: 9px;
}
section .detail .tableWrap.type02 li p:first-of-type {
    width: 50px;
}
section .detail .tableWrap.type02 li p:not(:first-of-type) {
    display: flex;
    align-items: center;
    justify-content: center;
}
section .detail .tableWrap.type02 li p.column4 {
    width: calc((100% - 50px) / 8 * 4);
}
section .detail .tableWrap.type02 li.header p {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    background: #D9D9D9;
}
section .detail .tableWrap.type02 li:not(.header) p {
    text-align: center;
}
section .detail .tableWrap.type02 li:not(.header) p:not(:first-of-type) {
    font-family: '小塚ゴシック Pro','Kozuka Gothic Pro',sans-serif;
}
section .detail .tableWrap.type02 li p.diagonalLine {
    position: relative;
    width: calc((100% - 50px) / 8 * 4);
}
section .detail .tableWrap.type02 li p.diagonalLine.top::before {
    content: '';
    position: absolute;
    top: 32.5px;
    right: -5px;
    width: 107%;
    height: 1px;
    background: #000000;
    transform: rotate(-22deg);
}
section .detail .tableWrap.type02 li p.diagonalLine.bottom {
    border-top: 0;
}
section .detail .tableWrap.type02 .source {
    margin-top: 18px;
    font-size: 14px;
    font-family: "Noto Sans JP", serif;
    letter-spacing: 0.15em;
    line-height: 1.2;
    color: #454342;
    text-align: center;
}
@media screen and (min-width: 375px) {
    section .detail .tableWrap.type02 li p.diagonalLine.top::before {
        top: 32.5px;
        width: 105%;
        transform: rotate(-18deg);
    }
}
@media screen and (min-width: 480px) {
    section .detail .tableWrap.type02 li p {
        width: calc((100% - 71px) / 8);
        font-size: 13px;
    }
    section .detail .tableWrap.type02 li p span {
        font-size: inherit;
    }
    section .detail .tableWrap.type02 li p:first-of-type {
        width: 71px;
    }
    section .detail .tableWrap.type02 li p.column4 {
        width: calc((100% - 71px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine {
        width: calc((100% - 71px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine.top::before {
        top: 36.5px;
        transform: rotate(-20deg);
    }
}
@media screen and (min-width: 560px) {
    section .detail .tableWrap.type02 li p {
        width: calc((100% - 100px) / 8);
    }
    section .detail .tableWrap.type02 li p:first-of-type {
        width: 100px;
    }
    section .detail .tableWrap.type02 li p.column4 {
        width: calc((100% - 100px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine {
        width: calc((100% - 100px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine.top::before {
        top: 38.5px;
        transform: rotate(-17deg);
    }
}
@media screen and (min-width: 650px) {
    section .detail .tableWrap.type02 .title {
        font-size: 18px;
    }
    section .detail .tableWrap.type02 li p {
        width: calc((100% - 123px) / 8);
    }
    section .detail .tableWrap.type02 li p:first-of-type {
        width: 123px;
    }
    section .detail .tableWrap.type02 li p.column4 {
        width: calc((100% - 123px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine {
        width: calc((100% - 123px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine.top::before {
        top: 25px;
        right: -4px;
        width: 102%;
        transform: rotate(-10deg);
    }
    section .detail .tableWrap.type02 .source {
        line-height: 1.75;
    }
}
@media screen and (min-width: 768px) {
    section .detail .tableWrap.type02 li p {
        width: calc((100% - 135px) / 8);
        padding: 7px 0;
        font-size: 14px;
    }
    section .detail .tableWrap.type02 li.header p {
        padding: 6px 0;
    }
    section .detail .tableWrap.type02 li p:first-of-type {
        width: 135px;
    }
    section .detail .tableWrap.type02 li p.column4 {
        width: calc((100% - 135px) / 8 * 4 );
    }
    section .detail .tableWrap.type02 li p.diagonalLine {
        width: calc((100% - 135px) / 8 * 4);
    }
    section .detail .tableWrap.type02 li p.diagonalLine.top::before {
        top: 28px;
        width: 103%;
        transform: rotate(-10.5deg);
    }
}

/**
 * #link
 */
#link .wrap {
    padding: 60px 0 81px;
}
#link .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 90%;
    max-width: 750px;
    margin: 0 auto;
}
#link .inner.first {
    justify-content: flex-end;
}
#link .inner.only {
    justify-content: center;
}
#link a {
    display: inline-block;
}
#link a.mode_pc {
    display: none;
}
#link a.mode_sp {
    display: inline-block;
}
#link a.prev,
#link a.next {
    position: relative;
    width: 100%;
    max-width: 560px;
    letter-spacing: 0.075em;
    color: #000000;
    border: 1px solid #444136;
}
#link a.prev {
    position: relative;
    padding: 23px 30px 30px 25%;
}
#link a.prev p,
#link a.next p {
    display: flex;
    align-items: center;
    font-size: 14px;
    font-family: "Noto Sans JP", serif;
    line-height: 1.75;
}
#link a.prev p {
    position: relative;
}
#link a.prev .icon::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -21%;
    margin: auto 0;
    width: 30px;
    height: 1px;
    background: #444136;
}
#link a.prev .icon::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -23%;
    margin: auto 0;
    width:0;
    height:0;
    border-style:solid;
    border-width: 5px 8.7px 5px 0;
    border-color: transparent #444136 transparent transparent;
}
#link a.home.mode_pc {
    width: 50px;
    margin: 0 22px;
}
#link a.home.mode_pc p {
    font-size: 10px;
    color: #000000;
    text-align: center;
}
#link a.next {
    position: relative;
    padding: 20px 18% 30px 16%;
    margin-top: 30px;
}
#link .first a.next {
    margin-top: 0;
}
#link a.next .icon::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 16px;
    left: 0;
    right: -73%;
    margin: auto;
    width: 30px;
    height: 1px;
    background: #444136;
}
#link a.next .icon::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 16px;
    left: 0;
    right: -82%;
    margin: auto;
    width:0;
    height:0;
    border-style:solid;
    border-width: 5px 0 5px 8.7px;
    border-color: transparent transparent transparent #444136;
}
#link a.home.mode_sp {
    width: 45px;
    margin-top: 25px;
}
#link a.home.mode_sp p {
    font-size: 10px;
    color: #000000;
    text-align: center;
}
@media screen and (min-width: 480px) {
    #link a.prev {
        padding: 23px 30px 35px 31%;
    }
    #link a.prev .icon::before {
        width: 50px;
    }
    #link a.prev .icon::after {
        border-width: 7.5px 13px 7.5px 0;
    }
    #link a.next {
        padding: 20px 28% 35px 22%;
    }
    #link a.next .icon::before {
        right: -56%;
        width: 50px;
    }
    #link a.next .icon::after {
        right: -66%;
        border-width: 7.5px 0 7.5px 13px;
    }
}
@media screen and (min-width: 750px) {
    #link .wrap {
        padding: 76px 0 81px;
    }
    #link a.next {
        margin-top: 40px;
    }
    #link a.next .icon::before {
        left: inherit;
        right: 25%;
        margin: auto 0;
    }
    #link a.next .icon::after {
        left: inherit;
        right: 24%;
        margin: auto 0;
    }
    #link a.home.mode_sp {
        margin-top: 75px;
    }
}
@media screen and (min-width: 768px) {
    #link .wrap {
        padding: 88px 0 115px;
    }
    #link .inner {
        flex-direction: row;
    }
    #link a.mode_pc {
        display: inline-block;
    }
    #link a.mode_sp {
        display: none;
    }
    #link a.prev,
    #link a.next {
        width: calc((100% - 50px) / 2);
        max-width: initial;
    }
    #link a.prev {
        padding: 25px 10px 25px 9%;
    }
    #link a.prev .icon::before {
        left: -23%;
    }
    #link a.prev .icon::after {
        left: -24%;
    }
    #link a.next {
        padding: 25px 10% 25px 33px;
        margin-top: 0;
    }
    #link a.next .icon::before {
        bottom: 0;
        right: 7%;
    }
    #link a.next .icon::after {
        bottom: 0;
        right: 5%;
    }
}

/**
 * #profile
 */
 #profile .wrap {
    padding: 60px 0;
    background: #FFEEF2;
}
#profile .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 90%;
    max-width: 960px;
    padding: 30px 15px 45px;
    margin: 0 auto;
    background: #ffffff;
}
#profile .mainWrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 165px;
}
#profile .mainWrap .imgWrap {
    margin-bottom: 15px;
}
#profile .mainWrap .name {
    margin-bottom: 10px;
    font-size: 30px;
    letter-spacing: 0.15em;
    color: #454342;
}
#profile .mainWrap .title {
    font-size: 14px;
    letter-spacing: 0.04em;
    color: #454342;
}
#profile .textWrap {
    width: 100%;
    margin-top: 35px;
}
#profile .textWrap .title  {
    margin-bottom: 30px;
}
#profile .textWrap .title h3 {
    margin-bottom: 10px;
    font-size: 45px;
    font-family: 'Mistral', sans-serif;
    color: #444136;
}
#profile .textWrap .title p {
    font-size: 14px;
    font-weight: 500;
    font-family: "M PLUS 2", serif;
    color: #444136;
}
#profile .textWrap .detail p {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.75;
    color: #454342;
}
@media screen and (min-width: 480px) {
    #profile .inner {
        padding: 30px 25px 45px;
    }
}
@media screen and (min-width: 750px) {
    #profile .inner {
        padding: 48px 40px 54px;
    }
    #profile .mainWrap {
        width: 220px;
    }
    #profile .mainWrap .imgWrap {
        margin-bottom: 42px;
    }
    #profile .mainWrap .name {
        font-size: 38px;
    }
    #profile .mainWrap .title {
        font-size: 15px;
    }
    #profile .textWrap {
        margin-top: 56px;
    }
    #profile .textWrap .title h3 {
        font-size: 60px;
    }
    #profile .textWrap .title p {
        font-size: 16px;
    }
    #profile .textWrap .detail p {
        font-size: 18px;
    }
}
@media screen and (min-width: 768px) {
    #profile .wrap {
        padding: 64px 0;
    }
    #profile .inner {
        flex-direction: row;
        align-items: start;
        padding: 60px 42px 62px 57px;
    }
    #profile .textWrap {
        width: calc(100% - 220px);
        padding-left: 42px;
        margin-top: 20px;
    }
}
