@charset "utf-8";

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    color: #000000;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

ul,
ol {
    list-style: none;
}

address {
    font-style: normal;
}

a {
    color: #000000;
    text-decoration: none;
    opacity: 1;
    transition: opacity 0.3s ease;
}

a:hover,
a:active {
    opacity: 0.9;
}

.sp-only {
    display: none;
}

/* フェードイン */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.active {
    opacity: 1;
    transform: translateY(0);
}

/* 各セクションの最大幅 */
.guidance,
.features,
.points,
.gallery,
.contact {
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
}

/* mv */
.mv {
    position: relative;
    font-family: "Noto Sans JP", san-serif;
    color: #ffffff;
}

.mv-img img {
    width: 100%;
    max-height: 900px;
    object-fit: cover;
}

.mv-img::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.15);
}

.mv-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: max-content;
    font-size: clamp(1.938rem, -0.021rem + 4.08vw, 4.875rem);
    line-height: 1.44;
    letter-spacing: 0.1em;
    text-align: center;
    z-index: 100;
}

.site-title {
    position: absolute;
    top: calc((77 / 1920) * 100%);
    left: calc((89 / 1920) * 100%);
    font-size: clamp(1.063rem, -0.021rem + 2.26vw, 2.688rem);
    letter-spacing: 0.1em;
    font-weight: 500;
    z-index: 100;
}

.site-title span {
    font-size: 0.63em;
    letter-spacing: 0;
}

/* guidance */
.guidance {
    padding: 80px 0 153px;
    text-align: center;
}

.guidance-title {
    font-size: 2.188em;
    line-height: 1.43;
    letter-spacing: 0.1em;
    font-weight: 600;
    margin-bottom: 1.688em;
}

.guidance-date,
.guidance-desc {
    font-size: 1.375em;
    line-height: 1.41;
    letter-spacing: 0.1em;
    margin-bottom: 1.063em;
}

.guidance-caution {
    display: inline-block;
    padding: 0.625em;
    border: 1px solid #000000;
    font-size: 1.25em;
    line-height: 1.41;
    letter-spacing: 0.1em;
    margin-bottom: 4em;
}

.guidance-desc {
    margin-bottom: 92px;
}

.campaign-title {
    font-size: 31px;
    line-height: 1.45;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-bottom: 51px;
}

.campaign-title span {
    display: inline-block;
    margin-bottom: 11px;
    font-size: 29px;
    line-height: 1.41;
    letter-spacing: 0.1em;
    color: #8F0000;
}

.campaign-desc {
    font-size: 22px;
    line-height: 1.82;
    letter-spacing: 0.1em;
    margin-bottom: 3.18em;
}

.buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 51px;
}

.button {
    display: inline-block;
    width: 260px;
    font-size: 22px;
    padding: 1em 0.5em;
    border: 1px solid #000000;
    border-radius: 10px;
    transition: background-color 0.3s ease;
}

.button-contact {
    color: #ffffff;
    background-color: #000000;
}

.button-instagram {
    color: #000000;
    background-color: #ffffff;
}

.button.button-contact:hover,
.button.button-contact:active {
    background-color: #333333;
}

.button.button-instagram:hover,
.button.button-instagram:active {
    background-color: #eeeeee;
}

.contact-tel {
    font-size: 22px;
    line-height: 1.82;
    letter-spacing: 0.1em;
    margin-bottom: 2.875em;
}

.contact-tel a {
    display: inline-block;
    margin-top: 1.188em;
    font-size: 31px;
    line-height: 1.45;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.contact-desc {
    display: inline-block;
    max-width: 653px;
    width: 100%;
    font-size: 22px;
    line-height: 1.82;
    letter-spacing: 0.1em;
    color: #ffffff;
    background-color: #535353;
}

/* features */
.feature {
    display: flex;
    margin-bottom: calc((145 / 1920) * 100%);
}

.feature:first-child {
    margin-bottom: calc((127 / 1920) * 100%);
}

.feature.reverse {
    flex-direction: row-reverse;
}

.feature:not(.reverse) .feature-text {
    padding-top: calc((149 / 960) * 100%);
    padding-left: calc((149 / 960) * 100%);
}

.feature.reverse .feature-text {
    padding-top: calc((149 / 960) * 100%);
    padding-left: calc((239 / 960) * 100%);
}

.feature-item {
    width: 50%;
}

.feature-title {
    font-size: min(36px, calc((36 / 960) * 50vw));
    line-height: 1.42;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-bottom: 1.39em;
}

.feature-desc {
    font-size: min(22px, calc((22 / 960) * 50vw));
    line-height: 2.27;
    letter-spacing: 0.1em;
}

/* points */
.points {
    margin-bottom: min(122px, calc((122 / 1920) * 100%));
}

.point {
    position: relative;
}

.point:not(:last-child) {
    margin-bottom: calc((35 / 1920) * 100%);
}

.point-text {
    width: calc((717 / 1920) * 100%);
    aspect-ratio: 717 / 664;
    background-color: rgba(255, 255, 255, 0.75);
}

.point:not(.reverse) .point-text {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc((125 / 1920) * 100%);
    padding-top: calc((50 / 1920) * 100%);
    padding-left: calc((100 / 1920) * 100%);
}

.point.reverse .point-text {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: calc((125 / 1920) * 100%);
    padding-top: calc((50 / 1920) * 100%);
    padding-left: calc((100 / 1920) * 100%);
}

.point-title {
    font-size: min(36px, calc((36 / 960) * 50vw));
    line-height: 1.42;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin-bottom: 0.9em;
}

.point-desc {
    font-size: min(22px, calc((22 / 960) * 50vw));
    line-height: 2.27;
    letter-spacing: 0.1em;
}

.point-button {
    padding-top: 6.5%;
    padding-left: 10%;
}

.point-button a {
    position: relative;
    display: inline-block;
    font-size: min(22px, calc((22 / 960) * 50vw));
    padding: 1em 2.7em 1em 1.5em;
    border-radius: 100vh;
    color: #ffffff;
    background-color: #301900;
}

.point-button a::after {
    content: "\25B6";
    position: absolute;
    top: 50%;
    right: 1.5em;
    transform: translateY(-50%);
    font-family: "Noto Serif JP", "Noto Sans", "Arial", sans-serif;
}

/* gallery */
.gallery2{
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
}

.gallery2 ul{
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: center
}

.gallery2 li{
  display: inline-block;
  width: 30%;
  padding: 10px;
  box-sizing: border-box;
}

.gallery2 img{
  width: 100%;
  height: auto
}

/* location */
.location {
    padding: 119px 0 134px;
    text-align: center;
}

.inner {
    max-width: 1000px;
    margin: auto;
}

.location .inner {
    box-sizing: content-box;
    padding-left: 5%;
    padding-right: 5%;
}

.location-title {
    display: inline-block;
    max-width: 525px;
    width: 100%;
    padding: 0.875em 0;
    margin-bottom: 2.5em;
    font-size: 23px;
    line-height: 1.44;
    letter-spacing: 0.1em;
    border: 1px solid #000000;
}

.location-name {
    font-size: 23px;
    line-height: 1.44;
    letter-spacing: 0.1em;
    margin-bottom: 1.25em;
}

.location-desc {
    font-size: 18px;
    line-height: 1.44;
    letter-spacing: 0.1em;
    margin-bottom: 1.813em;
}

.location-contact {
    display: inline-block;
    max-width: 525px;
    width: 100%;
    margin-bottom: 3.938em;
    padding: 0.688em 0;
    background-color: #E6E6E6;
}

.location-contact-desc {
    font-size: 18px;
    line-height: 1.44;
    letter-spacing: 0.1em;
    margin-bottom: 0.563em;
}

.location-contact-tel {
    font-size: 21px;
    line-height: 1.43;
    letter-spacing: 0.1em;
}

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

.location-visual-item {
    width: calc((466 / 1000) * 100%);
}

.location-visual-map iframe {
    aspect-ratio: 1 / 1;
    width: 100%;
    height: 100%;
}

/* footer */
.footer {
    font-size: 22px;
    line-height: 2.27;
    letter-spacing: 0.1em;
    padding: 7.625em 0 6.438em;
    background-color: #EFEFEF;
}

.footer .inner {
    box-sizing: content-box;
    display: flex;
    gap: 100px;
    padding-left: 5%;
    padding-right: 5%;
}

.footer-list {
    font-size: inherit;
    border-left: 1px solid #000000;
    padding-left: 2.188em;
}

@media screen and (max-width: 1079px) {

    /* guidance */
    .guidance-title {
        font-size: 27px;
    }

    .guidance-date {
        font-size: 16px;
    }

    .guidance-caution {
        font-size: 16px;
    }

    .guidance-desc {
        font-size: 18px;
    }

    .campaign-title {
        font-size: 27px;
    }

    .campaign-title span {
        font-size: 26px;
    }

    .campaign-desc {
        font-size: 19px;
        margin-bottom: 55px;
    }

    .buttons {
        gap: 10px;
    }

    .button {
        width: 230px;
        font-size: 19px;
    }

    /* contact */
    .contact-tel {
        font-size: 19px;
    }

    .contact-tel a {
        font-size: 28px;
    }

    .contact-desc {
        font-size: 19px;
        max-width: 600px;
    }

    /* location */
    .location-title {
        font-size: 19px;
        max-width: 500px;
    }

    .location-name {
        font-size: 19px;
    }

    .location-desc {
        font-size: 16px;
    }

    .location-contact-desc {
        font-size: 16px;
    }

    .location-contact-tel {
        font-size: 19px;
    }

    .location-visual-item {
        width: calc((480 / 1000) * 100%);
    }

    /* footer */
    .footer {
        font-size: 16px;
    }
}

@media (max-width: 767px) {
    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }

    body {
        font-size: 14px;
    }

    .mv-title {
        font-size: clamp(1.5rem, 5vw, 3rem);
    }

    .site-title {
        font-size: clamp(0.875rem, 4vw, 1.5rem);
    }

    .guidance {
        padding: 40px 3% 80px;
    }

    .guidance-title {
        font-size: 1.75em;
        margin-bottom: 1.25em;
    }

    .guidance-date,
    .guidance-desc {
        font-size: 1.125em;
        margin-bottom: 0.875em;
    }

    .guidance-desc {
        font-size: 16px;
        margin-bottom: 4em;
    }

    .guidance-caution {
        font-size: 1em;
        padding: 0.5em;
    }

    .campaign-title {
        font-size: 25px;
        margin-bottom: 40px;
    }

    .campaign-title span {
        font-size: 22px;
    }

    .campaign-desc {
        font-size: 16px;
        margin-bottom: 50px;
    }

    .buttons {
        gap: 15px;
        margin-bottom: 40px;
    }

    .button {
        width: 200px;
        font-size: 18px;
    }

    .contact-tel {
        font-size: 18px;
    }

    .contact-tel a {
        font-size: 24px;
        margin-top: 0.875em;
    }

    .contact-desc {
        font-size: 16px;
    }

    /* feature */
    .feature,
    .feature.reverse {
        flex-direction: column;
    }

    /* feature */
    .feature,
    .feature:first-child {
        margin-bottom: calc((90 / 425)* 100%);
    }

    .feature:not(.reverse) .feature-text,
    .feature.reverse .feature-text {
        padding-top: calc((60 / 425) * 100%);
        padding-left: calc((50 / 425) * 100%);
    }

    .feature-item {
        width: 100%;
    }

    .feature-title {
        font-size: 1.5rem;
    }

    .feature-desc {
        font-size: 1rem;
    }

    /* points */
    .point-text {
        width: 350px;
        padding-left: 20px;
        padding-top: 20px;
    }

    .point:not(.reverse) .point-text,
    .point.reverse .point-text {
        padding: 20px;
    }

    .point-title {
        font-size: 20px;
    }

    .point-desc {
        font-size: 12px;
    }

    /* gallery */
    .gallery2 li{
    width: 50%;
  }

    .point-img {
        height: 400px;
    }

    .point-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* points */
    .point-button {
        padding-top: 10px;
        padding-left: 0;
        text-align: center;
    }

    .point-button a {
        font-size: 12px;
    }

    /* location */
    .location {
        padding: 60px 3% 80px;
    }

    .location .inner {
        padding-left: 0;
        padding-right: 0;
    }

    .location-title {
        font-size: 18px;
        margin-bottom: 20px;
    }

    .location-contact {
        margin-bottom: 2em;
        padding: 0.5em 0;
    }

    .location-contact-desc {
        font-size: 14px;
    }

    .location-contact-tel {
        font-size: 16px;
    }

    .location-visual {
        flex-direction: column;
        gap: 20px;
    }

    .location-visual-item {
        width: 100%;
    }

    /* footer */
    .footer {
        font-size: 16px;
        padding: 60px 3%;
    }

    .footer-info p {
        line-height: 2.75;
    }

    .footer-info .address {
        line-height: 1.5;
        margin: 0.5em 0;
    }

    .footer .inner {
        flex-direction: column;
        gap: 35px;
    }

    .footer-list {
        padding-left: 20px;
    }
}

@media screen and (max-width: 389px) {

    /* points */
    .point-text {
        width: 90%;
    }

    .point-title {
        font-size: 18px;
    }

    .point-desc {
        font-size: 10px;
    }

    .point-button {
        padding-top: 15px;
    }
}