:root { --width: 1px; }
@media (max-width: 750px) { :root { --width: 1 / 375 * 100vw; } }
.pc{display: block;} .sp{display: none;}
@media (max-width: 750px) {.pc{display: none;} .sp{display: block;}}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}
header, main, footer { max-width: 375px; margin: 0 auto; }
@media (max-width: 750px) {
    header, main, footer { max-width: 750px; }
}
img {
    width: 100%;
    height: auto;
    display: block;
}
.fv-bottom {
    position: relative;
    margin-top: calc(-177.5 * var(--width));
    overflow: hidden;
    height: calc(450 * var(--width));
}
.fv-bottom .btn01 {
    position: absolute;
    bottom: calc(90 * var(--width));
    left: 50%;
    transform: translateX(-50%);
    width: calc(345 * var(--width));
}
.features {
    position: relative;
    margin-top: calc(-30 * var(--width));
    z-index: 2;
}
.features .btn02 {
    position: absolute;
    bottom: calc(25 * var(--width));
    left: 50%;
    transform: translateX(-50%);
    width: calc(345 * var(--width));
}
.img01 {
    margin-top: calc(60 * var(--width));
    margin-bottom: calc(60 * var(--width));
}
.img01 img {
    width: calc(325 * var(--width));
    margin: 0 auto;
}
.img03 {
    margin-top: calc(60 * var(--width));
    margin-bottom: calc(60 * var(--width));
}
.img09 {
    position: relative;
    background: linear-gradient(to right, #93181C, #D22D32);
    padding-top: calc(80 * var(--width));
    padding-bottom: calc(60 * var(--width));
}
.img09-title {
    width: calc(240 * var(--width));
    margin: 0 auto calc(16 * var(--width));
}
.img09-wrapper {
    position: relative;
    margin-bottom: calc(20 * var(--width));
}
.img09 .swiper-slide {
    background-color: #fff;
    width: 100%;
    padding: calc(23 * var(--width)) calc(15 * var(--width));
    box-shadow: calc(2 * var(--width)) calc(4 * var(--width)) calc(4 * var(--width)) 0 rgba(0, 0, 0, 0.25);
}
.img09 .swiper {
    width: calc(305 * var(--width));
}
.img09 .swiper01 img:last-of-type,
.img09 .swiper02 img:last-of-type,
.img09 .swiper03 img:last-of-type {
    width: 100%;
    margin: calc(10 * var(--width)) auto 0;
}
.img09-arrow01,
.img09-arrow02 {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: calc(32 * var(--width));
    cursor: pointer; 
}
.img09-arrow01 { left: 0; }
.img09-arrow02 { right: 0; }
.img09-arrow01 img,
.img09-arrow02 img {
    width: 100%;
    height: auto;
}
.img10 {
    margin-top: calc(60 * var(--width));
    margin-bottom: calc(100 * var(--width));
}
.img10 img {
    width: calc(355 * var(--width));
    margin: 0 auto;
}
.img13 {
    margin-top: calc(-25 * var(--width));
}
.img14 {
    margin-top: calc(-20 * var(--width));
}
.img15 {
    margin-top: calc(60 * var(--width));
    margin-bottom: calc(60 * var(--width));
}
.img15-title {
    width: calc(140 * var(--width));
    margin: 0 auto calc(20 * var(--width));
}
.img15-img {
    width: calc(345 * var(--width));
    margin: 0 auto calc(20 * var(--width));
    box-shadow: 0 calc(2 * var(--width)) calc(9 * var(--width)) 0 rgba(0, 0, 0, 0.25);
    cursor: pointer;
    overflow: hidden;
    max-height: calc(35 * var(--width));
    object-fit: cover;
    object-position: top;
    transition: max-height 0.3s ease-in-out;
}
.img15-img.open {
    max-height: calc(500 * var(--width));
}
footer {
    position: relative;
    background-color: #323232;
    padding-bottom: calc(100 * var(--width));
}
footer a {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    height: calc(14 * var(--width));
}
.footer-link01 {
    top: calc(80 * var(--width));
    width: calc(50 * var(--width));
}
.footer-link02 {
    top: calc(95 * var(--width));
    width: calc(110 * var(--width));
}
.footer-link03 {
    top: calc(110 * var(--width));
    width: calc(90 * var(--width));
}
.footer-link04 {
    top: calc(125 * var(--width));
    width: calc(140 * var(--width));
}
.banner {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: calc(345 * var(--width));
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}
.banner.active {
    opacity: 1;
    visibility: visible;
}
.banner .btn01 {
    width: 100%;
}