@charset "UTF-8";
@import "https://use.fontawesome.com/releases/v5.13.0/css/all.css";

*,
*:before,
*:after {
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}

html,
body {
    margin: 0;
    padding: 0;
    height: 100%;
    line-height: 2.0rem;
    font-family: sans-serif;
    font-feature-settings: "palt";
    /* background-image: url('../lp002/img/bg.png');
    background-size: cover;
    background-repeat: no-repeat; */
}

a {
    cursor: pointer;
    text-decoration: none;
}

ul {
    list-style: none;
}

h1,
h2,
h3,
h4,
h5,
p {
    margin: 0;
}

img {
    width: 100%;
}

@media screen and (max-width:520px) {
    .sp {
        display: none;
    }
}

@media screen and (min-width:960px) {
    .sp02 {
        display: none;
    }
}

@media screen and (max-width:960px) {
    .pc02 {
        display: none;
    }
}

@media screen and (min-width:960px) {
    .pc {
        display: none;
    }
}

.header {
    /* background-color: #00809A; */
    color: #ffffff;
    background-image: url('../lp002/img/bg.jpg');
    background-size: cover;
    background-position: right top;
    background-repeat: no-repeat;
    position: relative;
    z-index: 0;
    padding-bottom: 30px;
}

/* 背景画像にフィルター */
.header::after {
    content: "";
    background: rgba(0, 0, 0, .4);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.header h1 {
    text-align: left;
    font-size: 7vw;
    line-height: 2em;
}

.header_h1 {
    font-size: 8.5vw;
}

.header_h1.header_h2 {
    font-size: 5vw;
    display: block;
    line-height: 1.3em;
}

.header_h1.bg_color {
    background-color: #0E7B93;
    /* padding: 5px 15px 10px 15px; */
    padding: 0 15px;
}

/* 背景色をピッタリ合わせる */
/* .textFit {
    display: inline-flex;
    align-items: flex-start;
    height: 5.5rem;
    margin-right: 10px;
} */

@media screen and (max-width:650px) {
    .textFit {
        height: 4.5rem;
    }
}

/* フォントカラー黄色 */
.font_yellow {
    color: #FFE200;
}

.logo {
    text-align: right;
}

.logo img {
    margin: 30px 0;
    width: 20%;
}

.header_main_img {
    position: relative;
}

.header_main_img img {
    width: 85%;
    z-index: 1;
}

.header_main_img_add {
    text-align: center;
    position: absolute;
    top: 5vw;
    right: 0;
    z-index: 5;
    font-size: 4vw;
    line-height: 1.3em;
    transform: rotate(10deg);
    -moz-transform: rotate(10deg);
    -webkit-transform: rotate(10deg);
}

.ministry {
    text-align: center;
    position: absolute;
    top: 34vw;
    right: 0;
    border-radius: 10px;
    border: solid 1px #ffffff;
    padding: 1vw 2vw;
    font-size: 3vw;
    line-height: 1.5em;
    width: 30%;
}

.ministry img {
    width: 15%;
    transform: translateY(2px);
}

.patent {
    position: absolute;
    top: 26vw;
    left: 20vw;
    text-align: center;
}

.patent img {
    width: 60%;
}

.header_price_area {
    /* position: relative; */
}

.header_price_comment {
    position: absolute;
    top: -33vw;
    left: -7vw;
}

.header_price_comment img {
    width: 40%;
}

.header_price_box {
    display: flex;
    justify-content: space-around;
    line-height: 1.3em;
    margin: 30px 0 20px 0;
}

.header_icon {
    width: 40%;
    display: flex;
    justify-content: space-around;
}

.header_icon img {
    width: 100%;
    max-width: 8vw;
    max-height: 8vw;
    min-width: 120px;
    min-height: 120px;
    margin-right: 10px;
}

@media screen and (max-width:960px) {
    .header_icon img {
        min-width: 20vw;
        min-height: 20vw;
    }
}

.header_kakaku {
    text-align: center;
    font-size: 20px;
    transform: translateY(-2vw);
    margin-left: 10vw;
}

.header_price {
    font-size: 10vw;
    font-weight: bold;
    /* position: relative; */
    width: auto;
}

.header_price_wrap {
    text-align: right;
}

.header_price_wrap.wrap_sp {
    margin: 0 15% 0;
}

.header_price_wrap p {
    display: block;
    text-align: left;
}

.header_price_yen {
    font-size: 0.5em;
    line-height: 2em;
}

.header_price_small {
    font-size: 0.4em;
    line-height: 2em;
}

@media screen and (max-width:1110px) {
    .header_price_small02 {
        font-size: 70px;
    }

    .header_price_small {
        font-size: 0.3em;
    }
}

.header_nottax {
    font-size: 15px;
    font-weight: 300;
    position: absolute;
    top: -7vw;
    right: -1vw;
}

.header_price_attention {
    font-size: 3.5vw;
    line-height: 1.3em;
    text-align: right;
}

/* 商品詳細（SP） */
.sp_price {
    text-align: center;
}

.sp_price .header_main_img .sp_logo {
    width: 30%;
    position: absolute;
    top: 12%;
    left: 5%;
}

.sp_price .header_icon {
    width: 65%;
    text-align: center;
    margin: 0 auto;
}

.sp_price .header_price {
    color: #0E7B93;
    margin-top: 20px;
}

.sp_price .header_price_wrap {
    display: inline-block;
}

.header_octpass_area {
    position: relative;
}

.header_octpass {
    position: absolute;
    top: 7vw;
    left: 0;
}

.header_octpass img {
    width: 80%;
}

.header_octpass_comment {
    margin: 30px 0 30px 100px;
    position: relative;
    display: inline-block;
    padding: 7px 10px;
    min-width: 120px;
    max-width: 100%;
    font-size: 3.8vw;
    border: solid 2px #fff;
    border-radius: 20px;
    box-sizing: border-box;
}

.header_octpass_comment:before {
    content: "";
    position: absolute;
    top: 50%;
    left: -24px;
    margin-top: -12px;
    border: 12px solid transparent;
    border-right: 12px solid #00809A;
    z-index: 2;
}

.header_octpass_comment:after {
    content: "";
    position: absolute;
    top: 50%;
    left: -30px;
    margin-top: -14px;
    border: 14px solid transparent;
    border-right: 14px solid #fff;
    z-index: 1;
}

.header_octpass_comment p {
    margin: 0;
    padding: 0;
}

@media screen and (min-width:520px) {
    .ministry {
        text-align: center;
        position: absolute;
        top: 30vw;
        right: 0;
        border-radius: 10px;
        border: solid 1px #ffffff;
        padding: 1vw 2vw;
        font-size: 20px;
        line-height: 1.5em;
        width: 30%;
    }

    .ministry img {
        width: 15%;
        transform: translateY(5px);
    }

    .patent {
        position: absolute;
        top: -40px;
        right: 0;
    }

    .header_price_comment {
        position: absolute;
        top: -33vw;
        left: -8vw;
    }

    .header_price_comment img {
        width: 45%;
    }

    .header_price_box {
        margin: 8vw 0 30px 0;
    }

    .header_kakaku {
        font-size: 4vw;
        transform: translateY(-3vw);
        line-height: 1em;
    }

    .header_price {
        font-size: 10vw;
        /* position: relative; */
    }

    .header_price_yen {
        font-size: 0.5em;
        line-height: 2em;
    }

    .header_nottax {
        font-size: 2vw;
        position: absolute;
        top: -4vw;
        right: 0vw;
    }

    .header_price_attention {
        font-size: 18px;
        line-height: 1.3em;
    }

    .header_octpass_area {
        position: relative;
    }

    .header_octpass {
        position: absolute;
        top: 1vw;
        left: 0;
    }

    .header_octpass img {
        width: 80%;
    }

    .header_octpass_comment {
        margin: 30px 0 30px 100px;
        padding: 7px 10px;
        max-width: 100%;
        font-size: 25px;
        border: solid 2px #fff;
        border-radius: 20px;
        box-sizing: border-box;
    }

    .header_octpass_comment:before {
        content: "";
        position: absolute;
        top: 50%;
        left: -24px;
        margin-top: -12px;
        border: 12px solid transparent;
        border-right: 12px solid #00809A;
        z-index: 2;
    }

    .header_octpass_comment:after {
        content: "";
        position: absolute;
        top: 50%;
        left: -30px;
        margin-top: -14px;
        border: 14px solid transparent;
        border-right: 14px solid #fff;
        z-index: 1;
    }

    .header_octpass_comment p {
        margin: 0;
        padding: 0;
    }
}

@media screen and (min-width:960px) {
    .logo img {
        margin: 30px 0;
        width: 15%;
    }

    .header {
        padding-bottom: 60px;
        padding-top: 60px;
    }

    .header h1 {
        text-align: left;
        font-size: 55px;
        line-height: 2em;
    }

    .header_h1 {
        font-size: 82px;
    }

    .header_h1.header_h2 {
        font-size: 53px;
    }

    .header_flex {
        display: flex;
        justify-content: space-around;
    }

    .header_flex_left {
        width: 80%;
        transform: translateY(30px);
    }

    .header_flex_right {
        transform: translateY(-30px);
    }

    .header_main_img {
        /* text-align: right; */
    }

    .header_main_img img {
        width: 60%;
    }

    .header_main_img_add {
        top: 220px;
        left: -45%;
        font-size: 20px;
        transform: rotate(0);
        -moz-transform: rotate(0);
        -webkit-transform: rotate(0);
    }

    .ministry {
        width: 40%;
        font-size: 14px;
        top: 225px;
        right: 30px;
        border-radius: 10px;
        border: solid 1px #ffffff;
        padding: 10px 5px;
        line-height: 1.5em;
    }

    .ministry img {
        width: 8%;
        transform: translateY(2px);
    }

    .header_price_comment {
        position: absolute;
        top: -220px;
        left: -37%;
    }

    .header_price_comment img {
        width: 40%;
    }

    .header_price_box {
        margin: 10px 0 30px 0;
    }

    .header_kakaku {
        font-size: 18px;
        transform: translateY(-10px);
        line-height: 1em;
        margin-left: 0;
    }

    .header_price_area {
        /* transform: translateY(10px); */
    }

    .header_price {
        font-size: 80px;
        /* position: relative; */
    }

    .header_price_yen {
        font-size: 0.5em;
        line-height: 2em;
    }

    .header_nottax {
        font-size: 15px;
        position: absolute;
        top: -30px;
        right: 0vw;
    }

    .header_price_attention {
        font-size: 12px;
        line-height: 1.3em;
    }

    .header_octpass_area {
        position: relative;
        transform: translateY(-10px);
    }

    .header_octpass {
        position: absolute;
        top: 1vw;
        left: 0;
    }

    .header_octpass img {
        width: 80%;
    }

    .header_octpass_comment {
        width: 90%;
        margin: 30px 0 30px 100px;
        padding: 7px 20px;
        max-width: 100%;
        font-size: 25px;
        border: solid 2px #fff;
        border-radius: 8px;
        box-sizing: border-box;
        transform: translateY(20px);
    }

    .header_octpass_comment:before {
        content: "";
        position: absolute;
        top: 50%;
        left: -24px;
        margin-top: -12px;
        border: 12px solid transparent;
        border-right: 12px solid #00809A;
        z-index: 2;
    }

    .header_octpass_comment:after {
        content: "";
        position: absolute;
        top: 50%;
        left: -30px;
        margin-top: -14px;
        border: 14px solid transparent;
        border-right: 14px solid #fff;
        z-index: 1;
    }

    .header_octpass_comment p {
        margin: 0;
        padding: 0;
        font-size: 18px;
    }
}

.main {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 50px 0;
}

.container {
    width: 95%;
    max-width: 1200px;
    margin: 0 auto;
}

@media screen and (min-width:520px) {
    .container {
        width: 90%;
    }
}

@media screen and (min-width:1100px) {
    .sp {
        display: none;
    }
}

.t_right {
    text-align: right;
    font-size: 0.7rem;
}

.hl2 {
    position: relative;
}

.hl_logo {
    position: absolute;
    top: 0;
    left: 0;
}

h2 {
    margin-left: 30px;
    font-size: 5.2vw;
    position: relative;
    padding: 0 0 0 1rem;
    border-bottom: 6px solid #333;
}

h2:before {
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 20%;
    height: 6px;
    content: '';
    background: #00809A;
}

.feature_box {
    margin: 30px 10px;
}

h3 {
    text-align: center;
    color: #ffffff;
    background-color: #00809A;
    border-radius: 15px;
}

@media screen and (min-width:520px) {
    .hl2 {
        margin: 0;
    }

    .hl_logo {
        top: 1.5vw;
    }

    h2 {
        line-height: 1.3em
    }
}

@media screen and (min-width:960px) {
    .hl2 {
        margin: 50px 0;
    }

    h2 {
        font-size: 60px;
        padding-bottom: 5px
    }

    .feature_flex {
        display: flex;
        justify-content: space-between;
    }

    .feature_box {
        width: 33%;
    }

    .feature_img {
        height: 250px;
    }

    .feature_img img {
        display: flex
    }
}

.function {
    padding: 20px;
}

.function_flex {
    display: flex;
    justify-content: space-between;
}

.function_img {
    width: 30%;
    height: 18vw;
    border-radius: 5px;
    border: solid 1px #00809A;
    margin: 3px;
}

@media screen and (min-width:520px) {
    .function {
        padding: 0;
    }

    .function_img {
        height: 20.5vw;
    }
}

@media screen and (min-width:960px) {
    .function {
        padding: 0;
    }

    .function_img {
        height: 190px;
    }
}

.user_voice {
    margin: 30px 0;
}

.user_voice h3 {
    font-size: 1.5em;
    padding: 10px 0;
}

.user_voice_txt {
    margin: 20px 0;
}

.price {
    padding-bottom: 50px;
}

.price table {
    margin: 20px 0 10px 30px;
    border: 3px solid #00809A;
    padding: 0;
    width: 90%;
    text-align: center;
}

.price td {
    border: 1px solid #83b2fc;
    padding: 10px;
    font-size: 8.5vw;
    font-weight: bold;
}

.up {
    background-color: #f0f8ff;
    font-size: 5vw !important;
    font-weight: 200 !important;
}

.price_small {
    font-size: 0.7em;
}

.price p {
    font-size: 4vw;
    line-height: 1em;
}

.mini {
    font-size: 0.4em;
}

@media screen and (min-width:520px) {
    .price table {
        margin: 20px 0 10px 30px;
    }

    .price td {
        border: 1px solid #f0f8ff;
        padding: 25px 10px;
        font-size: 70px;
        font-weight: bold;
    }

    .up {
        font-size: 30px !important;
        font-weight: 200 !important;
    }

    .price_small {
        font-size: 0.7em;
    }

    .price p {
        font-size: 20px;
    }
}

.detail table {
    margin: 20px 0 10px 30px;
    border: 3px solid #00809A;
    padding: 0;
    width: 90%;
    text-align: center;
}

.detail td {
    padding: 1vw;
    border: 1px solid #00809A;
    line-height: 1.2em;
}

.detail_small {
    font-size: 0.8em;
}

.detail img {
    width: 7%;
}

.left {
    background-color: #f0f8ff;
}

@media screen and (min-width:520px) {
    .detail_small {
        font-size: 1em;
    }

    .detail td {
        padding: 15px;
        border: 1px solid #00809A;
        line-height: 1.2em;
    }

    .detail img {
        width: 4%;
    }
}

.btn,
a.btn,
button.btn {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    position: relative;
    display: inline-block;
    padding: 1rem 4rem;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    letter-spacing: 0.1em;
    color: #212529;
    border-radius: 0.5rem;
}

.btn-wrap {
    margin: 30px 0;
}

a.btn-c {
    font-size: 2.2rem;
    position: relative;
    padding: 0.25rem 2rem 1.5rem 3.5rem;
    color: #fff;
    background: #32b16c;
    -webkit-box-shadow: 0 5px 0 #2c9d60;
    box-shadow: 0 5px 0 #2c9d60;
}

a.btn-c span {
    font-size: 1.5rem;
    position: absolute;
    top: -10px;
    left: calc(50% - 150px);
    display: block;
    width: 300px;
    padding: 0.2rem 0;
    color: #32b16c;
    border: 2px solid #32b16c;
    border-radius: 0.5rem;
    background: #fff;
    -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
}

a.btn-c:hover {
    -webkit-transform: translate(0, 3px);
    transform: translate(0, 3px);

    color: #fff;
    background: #30a967;
    -webkit-box-shadow: 0 2px 0 #2c9d60;
    box-shadow: 0 2px 0 #2c9d60;
}

a.btn-c:hover:before {
    left: 2rem;
}

.cv_img {
    text-align: center;
    margin: 0 auto 50px auto;
    width: 100%;
    height: auto;
    animation: scale 1.2s infinite;
}

.cv_img a {
    font-size: 5.5vw;
}

@media screen and (min-width:520px) {
    .btn {
        padding: 40px;
    }

    .cv_img {
        margin: 30px auto 60px auto;
        width: 100%;
    }

    .cv_img a {
        font-size: 25px;
    }
}

@keyframes scale {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(0.95);
    }

    100% {
        transform: scale(1);
    }
}

.footer {
    background-color: #00809A;
    padding: 30px 0;
}

.foot_inner {
    display: flex;
    justify-content: space-around;
    text-align: center;
}

.footer p {
    color: #fff;
    font-size: 15px;
}

.footer_bottom {
    background-color: #333;
    padding: 10px 0;
}

.footer_bottom p {
    text-align: center;
    color: #fff;
    font-size: 15px;
}
