@charset "UTF-8";
/* ===================================================================
CSS information
 file name  :  style.css
 style info : LPスタイル
=================================================================== */
/*------------------------------------
common
------------------------------------*/
body {
    width: 100%;
    background-color: #f2f2f2;
    font-family: 'Noto Sans JP',"Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
}


.wrapper {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    text-align: center;
    background-color: #fff;
    -webkit-box-shadow: 0 0 10px 2px #d6d6d6;
    -moz-box-shadow: 0 0 10px 2px #d6d6d6;
    box-shadow: 0 0 10px 2px #d6d6d6;
}

menu,
ol,
ul {
    margin: 0;
}

img {
    max-width: 100%;
    margin: 0 auto;
}

video {
    filter: drop-shadow(0px 0px rgb(255, 255, 255));
    outline: none;
    border: none;
}

input {
    max-width: 100%;
}
a {
    transition: .2s;
}

a:hover {
    opacity: 0.8;
}
/*------------------------------------
cv
------------------------------------*/
.cv {
    background-color: #ca1622;
    padding: calc(55/750 * 100vw) 0;
    margin-bottom: min(calc(100/750 * 100vw),100px);
}
.cv_inner {
    background: linear-gradient(to right, transparent 0,transparent calc(20/750 * 100vw),#ffffff calc(20/750 * 100vw),#ffffff calc(730/750 * 100vw),transparent calc(730/750 * 100vw),transparent 100%)
}
.cv .cv_ttl {
    color: #fff;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.05em;
}
.cv .cv_ttl_01 {
    font-size: calc(60/750 * 100vw);
    margin-bottom: calc(12/750 * 100vw);
}
.cv .cv_ttl_01 span{
    font-size: calc(32/750 * 100vw);
    display: block;
    font-weight: normal;
    letter-spacing: 0.04em;
}
.cv .cv_ttl_01 span sub {
    font-size: 0.4em;
    vertical-align: 1.2em;
}
.cv .cv_ttl_02 {
    font-size: calc(70/750 * 100vw);
    margin: calc(36/750 * 100vw) 0 calc(24/750 * 100vw);
    line-height: 1.5;
    letter-spacing: 0.06em;
}
.cv .cv_ttl_02 span{
    font-size: calc(34/750 * 100vw);
    display: block;
    letter-spacing: 0.05em;
}
.cv_btnarea {
    position: relative;
}
.cv_btnarea  .cv_btn {
    display: block;
    position: absolute;
    top: 0;
}
.cv_btnarea  .cv_btn:is(.cv_btn01, .cv_btn02) {
    width: calc(307/750 * 100vw);
    max-width: 307px;
}
.cv_btnarea  .cv_btn.cv_btn03 {
    width: calc(642/750 * 100vw);
    max-width: 642px;
}
.cv_btnarea  .cv_btn.cv_btn01 {
    left: calc(60/750 * 100vw);
    top: calc(60/750 * 100vw);
    animation: heartbeat 1s ease 0s infinite alternate;
}
.cv_btnarea  .cv_btn.cv_btn02 {
    right: calc(56/750 * 100vw);
    top: calc(60/750 * 100vw);
    animation: heartbeat 1s ease 0s infinite alternate;
}
.cv_btnarea  .cv_btn.cv_btn03 {
    left: 50%;
    transform-origin: left;
    animation: heartbeatWide 1s ease 0s infinite alternate;
}
@keyframes heartbeat {
    from {transform: scale(0.95,0.95);}
    to {transform: scale(1,1);}
}
@keyframes heartbeatWide {
    from {transform: scale(0.95,0.95) translateX(-50%);}
    to {transform: scale(1,1) translateX(-50%);}
}
@media only screen and (min-width: 750px) {
    .cv {
        padding: 55px 0;
    }
    .cv_inner {
        background: linear-gradient(to right, transparent 0,transparent 20px,#ffffff 20px,#ffffff 730px,transparent 730px,transparent 100%)
    }
    .cv .cv_ttl_01 {
        font-size: 60px;
        margin-bottom: 12px;
    }
    .cv .cv_ttl_01 span{
        font-size: 32px;
    }
    .cv .cv_ttl_02 {
        font-size: 70px;
        margin: 36px 0 24px;
    }
    .cv .cv_ttl_02 span{
        font-size: 34px;
    }
    .cv_btnarea  .cv_btn.cv_btn01 {
        left: 60px;
        top: 60px;
    }
    .cv_btnarea  .cv_btn.cv_btn02 {
        right: 56px;
        top: 60px;
    }
}
/*------------------------------------
header
------------------------------------*/
.h1_ttl01 {
    color: #fff;
    font-size: calc(34/750 * 100vw);
    background-color: #3e3a39;
    padding: calc(14/750 * 100vw) 0;
}
.h1_ttl01 span {
    font-weight: 300;
}
h1.h1_ttl {
    font-size: calc(48/750 * 100vw);
    font-feature-settings: "palt";
    padding: calc(36/750 * 100vw) 0;
    line-height: 1.65;
}
h1 .h1_ttl02 {
    font-size: calc(60/750 * 100vw);
    color: #ca1622;
    letter-spacing: 0.05em;
    background: linear-gradient(transparent 60%, #fef497 0);
}
.dottext {
    background-image: radial-gradient(circle at center, #ca1622 15%, transparent 15%);
    background-position: top right;
    background-repeat: repeat-x;
    background-size: 1.32em 0.4em;
    padding-top: .4em;
}
.dottext .h1_ttl02 {
    background: none;
}
h1 .h1_ttl03 {
    font-size: calc(56/750 * 100vw);
    color: #fff;
    letter-spacing: 0.01em;
    background:  #ca1622;
    padding: 0 calc(10/750 * 100vw);
    margin-right: calc(10/750 * 100vw);
}
h1 .h1_ttl04 {
    font-size: calc(62/750 * 100vw);
    color: #1d30e7;
}
h1 .h1_ttl05 {
    font-size: calc(48/750 * 100vw);
    color: #000;
}
@media only screen and (min-width: 750px) {
    .h1_ttl01 {
        font-size: 34px;
        padding: 14px 0;
    }
    h1.h1_ttl {
        font-size: 48px;
        padding: 36px 0;
    }
    h1 .h1_ttl02 {
        font-size: 60px;
    }
    h1 .h1_ttl03 {
        font-size: 56px;
        padding: 0 10px;
        margin-right: 10px;
    }
    h1 .h1_ttl04 {
        font-size: 62px;
    }
    h1 .h1_ttl05 {
        font-size: 48px;
    }
}
/*------------------------------------
article
------------------------------------*/
.pic01 {
    display: block;
    margin-bottom: min(calc(80/750 * 100vw),80px);
}
.pic02 {
    display: block;
    margin-bottom: min(calc(62/750 * 100vw),62px);
}
.pic03 {
    display: block;
    margin-bottom: min(calc(34/750 * 100vw),34px);
}
:is(.pic01, .pic02) img{
    width: calc(670/750 * 100vw);
    max-width: 670px;
    height: auto;
}
.contents :is(h2, p) {
    text-align: left;
    margin: 0 min(calc(40/750 * 100vw),40px);
}
.contents h2 {
    font-size: min(calc(44/750 * 100vw),44px);
    border-bottom: 1px solid #000;
    padding-left: min(calc(44/750 * 100vw),44px);
    padding-bottom: min(calc(26/750 * 100vw),26px);
    margin-bottom: min(calc(32/750 * 100vw),32px);
    letter-spacing: -0.02em;
    line-height: 1.65;
    position: relative;
}
.contents h2::before {
    content: "";
    display: block;
    background-color: #ca1622;
    width: min(calc(12/750 * 100vw),12px);
    height: 85%;
    position: absolute;
    left: 0;
    top: 0;
}
.contents h2.h2_mini {
    font-size: min(calc(36/750 * 100vw),36px);
}
.contents p {
    font-size: min(calc(28/750 * 100vw),28px);
    letter-spacing: 0.04em;
    line-height: 2.14;
    margin-bottom: min(calc(34/750 * 100vw),34px);
}
.contents p .red {
    color: #ca1622;
    border-bottom: 1px solid #ca1622;
    font-weight: bold;
}
.contents p sub {
    font-size: 0.5em;
    vertical-align: 1.2em;
    color: #000;
    line-height: 2;
    display: inline-block;
}
@media only screen and (min-width: 750px) {
}
/*------------------------------------
connection
------------------------------------*/
.connection {
    margin: 0 min(calc(40/750 * 100vw),40px);
    padding-bottom: min(calc(90/750 * 100vw), 90px);
}
.connection h3 {
    color: #fff;
    font-size: min(calc(36/750 * 100vw),36px);
    background-color: #3e3a39;
    padding: min(calc(4/750 * 100vw),4px) 0;
    margin-bottom: min(calc(38/750 * 100vw),38px);
    letter-spacing: 0.01em;
}
.connection_conts {
    display: flex;
    justify-content: space-between;
    text-align: left;
    /* margin-bottom: min(calc(90/750 * 100vw), 90px); */
}
.connection_conts li {
    width: min(calc(324/750 * 100vw),324px);
}
.connection_conts li .connection_pic {
    display: block;
    margin-bottom: min(calc(18/750 * 100vw),18px);
}
.connection_conts li h4 {
    font-size: min(calc(30/750 * 100vw),30px);
    color: #1592e6;
    min-height: 4em;
    letter-spacing: 0.06em;
    line-height: 1.7;
    margin-bottom: min(calc(8/750 * 100vw), 7px);
}
.connection_conts li h4 span {
    border-bottom: 1px solid #1592e6;
    padding-bottom: min(calc(7/750 * 100vw), 8px);
}
.connection_conts li p {
    font-size: min(calc(24/750 * 100vw),24px);
    letter-spacing: 0.08em;
    line-height: 1.9;
}
/*------------------------------------
cause
------------------------------------*/
.cause_list dt {
    display: flex;
    align-items: center;
    gap: min(calc(15/750 * 100vw), 15px);
    margin: 0 min(calc(40/750 * 100vw),40px) min(calc(14/750 * 100vw), 14px);
    text-align: left;
    counter-increment: causelist;
    font-size: min(calc(56/750 * 100vw),56px);
    color: #1d30e7;
    font-weight: bold;
}
.cause_list dt::before {
    content: "原因0"counter(causelist);
    font-size: min(calc(30/750 * 100vw),30px);
    font-weight: bold;
    color: #fff;
    letter-spacing: 0.1em;
    background: url(../img/cause_bg.png) no-repeat center center / 100%;
    display: inline-flex;
    align-items: center;
    width: min(calc(144/750 * 100vw),144px);
    margin-top: min(calc(6/750 * 100vw),6px);
    padding: min(calc(6/750 * 100vw),6px) 0;
    padding-left: min(calc(20/750 * 100vw), 20px);
}
.cause_list dd p {
    border-left: 1px solid #000;
    padding-left: 1em;
    letter-spacing: 0;
    margin-bottom: min(calc(42/750 * 100vw), 42px);
}
.cause_list dd p .blue {
    color: #1d30e7;
    font-weight: bold;
    background: linear-gradient(transparent 60%, #fef497 0);
}
/*------------------------------------
voice
------------------------------------*/
.voice {
    margin: 0 min(calc(40/750 * 100vw),40px) min(calc(18/750 * 100vw),18px);
}
.voice li {
    display: flex;
    gap: min(calc(27/750 * 100vw), 27px);
    
}
.voice li:not(:last-of-type) {
    border-bottom: 1px dashed #000;
    padding-bottom: min(calc(40/750 * 100vw), 40px);
    margin-bottom: min(calc(40/750 * 100vw), 40px);
}
.voice li p {
    margin: 0;
}
.voice li picture img{
    width: calc(177/750 * 100vw);
    max-width: 177px;
    margin-top: min(calc(10/750 * 100vw), 10px);
}
/*------------------------------------
matome
------------------------------------*/
.matome {
    margin-bottom:  min(calc(88/750 * 100vw), 88px);
}
/*------------------------------------
footer
------------------------------------*/
.p-footer__inner01 {
    padding: 6.9333333333% 0;
}
.p-footer__link01 {
    display: inline-block;
    font-size: min(3.2vw, 24px);
    line-height: 1.83;
}
.p-footer__item01 {
    text-align: center;
}
.p-footer__list01 {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0 2.8rem;
}
.p-footer__list01 > li + li {
    position: relative;
}
.p-footer__list01 > li + li::before {
    content: "";
    position: absolute;
    display: block;
    width: 1px;
    height: 1.65em;
    top: 50%;
    right: calc(100% + 1.4rem);
    bottom: auto;
    left: auto;
    background: #333;
    transform: translateY(-50%);
}
.p-footer__list01 > li:nth-child(4n)::before {
    content: none;
}
.p-footer__copyright {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    min-height: min(12.8vw, 96px);
    background: #e60012;
    color: #fff;
    font-size: min(2.80000003vw, 21px);
}
