
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
    background: #FBFBF8;
    overflow-x: hidden;
}

body {
    font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;
    color: #333;
    line-height: 1.8;
    background-color: #FBFBF8;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    width: 100%;
    max-width: none;
}

@supports (overflow: clip) {
    html,
    body {
        overflow-x: clip;
    }
}

a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

a:hover {
    opacity: 1;
}

ul,
ol {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}


.container {
    width: 100%;
    max-width: 100%;
    padding: 0 6%;
}


.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: #FBFBF8;
    
    border-bottom: clamp(0.535px, 0.069vw, 1.375px) solid transparent;
    transition: background 0.3s ease, border-color 0.3s ease;
}


.header.scrolled {
    background: rgba(251, 251, 248, 0.5);
    border-bottom: clamp(0.535px, 0.069vw, 1.375px) solid rgba(0, 0, 0, 0.06);
    backdrop-filter: blur(clamp(4.278px, 0.556vw, 11px));
    -webkit-backdrop-filter: blur(clamp(4.278px, 0.556vw, 11px));
}


.header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 12vh;
    padding: 0 clamp(43px, 5.63vw, 108px);
    width: 100%;
    box-sizing: border-box;
}


.header__logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.header__logo a {
    display: flex;
    align-items: center;
}


.header__logo-img {
    height: clamp(17.646px, 2.292vw, 45.375px);
    width: auto;
    display: block;
}


.header__nav {
    display: flex;
    align-items: center;
}


.header__nav-list {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    
    gap: clamp(22px, 4.23vw, 81px);
}


.header__nav-link {
    display: inline-flex;
    align-items: center;
    gap: clamp(2.139px, 0.278vw, 5.5px);
    
    font-size: clamp(7.486px, 0.972vw, 19.25px);
    
    font-family: 'Proxima Nova', 'Montserrat', 'Arial', sans-serif;
    
    font-weight: 600;
    color: #1a1a1a;
    text-decoration: none;
    letter-spacing: 0.05em;
    line-height: 1;
    white-space: nowrap;
    transition: opacity 0.2s ease;
}

.header__nav-link:hover {
    opacity: 0.6;
}


.header__nav-chevron {
    display: inline-flex;
    align-items: center;
    margin-left: clamp(1.604px, 0.208vw, 4.125px);
    opacity: 0.75;
    color: #A50C27;
}


.header__contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    
    width: clamp(83.951px, 10.903vw, 215.875px);
    height: clamp(25.667px, 3.333vw, 66px);
    
    background: #A50C27;
    
    color: #ffffff;
    
    border-radius: clamp(12.833px, 1.667vw, 33px);
    
    font-size: clamp(8.021px, 1.042vw, 20.625px);
    font-family: 'Proxima Nova', 'Montserrat', 'Arial', sans-serif;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.05em;
    
    margin-left: clamp(32.083px, 4.167vw, 82.5px);
    flex-shrink: 0;
    transition: background 0.2s ease;
}

.header__contact-btn:hover {
    background: #8a0a1f;
    opacity: 1;
}


.hero {
    position: relative;
    width: 100%;
    height: 90vh;
    margin-top: clamp(55px, 7.18vw, 138px);
    background: #FBFBF8;
    overflow: visible;
}


.hero__blob {
    position: absolute;
    left: 0;
    
    top: clamp(-140.25px, -7.083vw, -54.542px);
    
    width: 100%;
    
    pointer-events: none;
    opacity: 0.85;
    mix-blend-mode: multiply;
    z-index: 2000;
}

.home-page .hero__blob {
    z-index: 85000;
}

.hero__blob img {
    width: 100%;
    height: auto;
    display: block;
}

.hero__blob--sp-bottom {
    display: none;
}


.hero__headline {
    position: absolute;
    left: clamp(43px, 5.63vw, 108px);
    top: clamp(86px, 11.20vw, 216px);
    margin: 0;
    padding: 0;
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(64px, 8.333vw, 120px);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: clamp(64px, 8.333vw, 120px);
    color: #1a1a1a;
}

.hero__line {
    display: block;
    
    animation: hero-reveal-left 1.2s cubic-bezier(0.4, 0, 0.2, 1) 0.1s both;
}

@keyframes hero-reveal-left {
    0% {
        clip-path: inset(0 100% 0 0);
    }

    100% {
        clip-path: inset(0 0% 0 0);
    }
}


.hero__sub {
    position: absolute;
    left: clamp(43px, 5.63vw, 108px);
    top: clamp(297px, 38.73vw, 743px);
    margin: 0;
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 1.25vw, 18px);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: clamp(20px, 1.806vw, 26px);
    color: #1a1a1a;
    animation: hero-reveal-left 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.8s both;
}


.hero__scroll {
    position: absolute;
    right: clamp(43px, 5.63vw, 108px);
    bottom: clamp(22px, 2.82vw, 54px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(11px, 1.41vw, 27px);
}


.hero__scroll-text {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(7.486px, 0.972vw, 19.25px);
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #000;
    writing-mode: vertical-rl;
    white-space: nowrap;
}


.hero__scroll-circle {
    width: clamp(77px, 10.07vw, 193px);
    height: clamp(77px, 10.07vw, 193px);
    border: 1px solid #000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.hero__scroll-circle svg {
    width: clamp(13.903px, 1.806vw, 35.75px);
    height: clamp(18.181px, 2.361vw, 46.75px);
    transform: translateY(clamp(2.139px, 0.278vw, 5.5px));
}

@keyframes scroll-arrow-bounce {

    0%,
    100% {
        transform: translateY(0);
        opacity: 1;
    }

    50% {
        transform: translateY(clamp(3.208px, 0.417vw, 8.25px));
        opacity: 0.5;
    }
}




.photo-section {
    width: 100%;
    
    background: #FBFBF8;
}

.photo-section__inner {
    position: relative;
    margin-left: clamp(43px, 5.556vw, 107px);
    width: calc(100% - clamp(43px, 5.556vw, 107px));
    height: clamp(351px, 45vw, 864px);
    overflow: hidden;
}

.photo-section__inner picture {
    display: contents;
}

.photo-section__img {
    width: clamp(727.19px, 94.444vw, 1868.64px);
    height: clamp(460.91px, 59.861vw, 1184.39px);
    max-width: none;
    object-fit: cover;
    object-position: left center;
    
    display: block;
}


.photo-section__overlay {
    position: absolute;
    top: clamp(31px, 4.028vw, 77px);
    left: clamp(43px, 5.556vw, 107px);
    color: #ffffff;
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(12px, 1.042vw, 15px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(28px, 2.778vw, 40px);
    text-align: left;
}

.photo-section__overlay p {
    margin: 0 0 1.2em 0;
    
}

.photo-section__overlay p:last-child {
    margin-bottom: 0;
}

.photo-section__overlay br.pc {
    display: inline;
}

.photo-section__overlay br.sp {
    display: none;
}


.photo-section__overlay-img {
    position: absolute;
    top: 0;
    left: 0;
    width: clamp(727.19px, 94.444vw, 1868.64px);
    height: clamp(460.91px, 59.861vw, 1184.39px);
    object-fit: cover;
    object-position: left center;
    pointer-events: none;
}


.mission {
    position: relative;
    width: 100%;
    height: clamp(273px, 35.56vw, 682px);
    background: #FBFBF8;
    display: flex;
    align-items: flex-start;
    padding-top: clamp(70px, 9.15vw, 176px);
    overflow: hidden;
}


.mission__bg-text {
    position: absolute;
    top: clamp(173px, 22.54vw, 432px);
    left: 0;
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(119px, 15.49vw, 297px);
    font-weight: 900;
    letter-spacing: 0.06em;
    color: #ffffff;
    white-space: nowrap;
    line-height: 1;
    pointer-events: none;
    user-select: none;
    animation: marquee-scroll 110s linear infinite;
    animation-duration: 40000ms;
}

.mission__inner {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    text-align: center;
}

.mission__heading {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(22px, 2.222vw, 32px);
    font-weight: 500;
    letter-spacing: 0.15em;
    line-height: clamp(36px, 3.611vw, 52px);
    color: #1a1a1a;
    margin: 0;
    text-align: center;
}


.about {
    position: relative;
    width: 100%;
    height: clamp(620px, 58.68vw, 1127px);
    background: #FBFBF8;
    overflow: visible;
}


.about__upper {
    position: static;
    z-index: 3;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: flex-start;
    gap: clamp(36px, 4.17vw, 80px);
    max-width: none;
    margin: 0 auto;
    padding: clamp(110px, 12.71vw, 244px) clamp(72px, 8.33vw, 160px) 0;
    box-sizing: border-box;
}


.about__left {
    position: relative;
    z-index: 3;
    max-width: clamp(560px, 48vw, 920px);
    padding-left: 0;
}

.about__heading {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(22px, 2.222vw, 32px);
    font-weight: 500;
    line-height: clamp(42px, 4.167vw, 60px);
    letter-spacing: 0.05em;
    color: #ffffff;
    margin: 0 0 clamp(24px, 1.67vw, 32px);
}

.about__body {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: 500;
    line-height: clamp(28px, 2.778vw, 40px);
    letter-spacing: 0.05em;
    color: #ffffff;
    margin-bottom: clamp(24px, 1.67vw, 32px);
}

.about__body p {
    margin: 0 0 1.2em;
    .sp {
        display: none;
    }
}

.about__body p:last-child {
    margin-bottom: 0;
}


.about__right {
    position: relative;
    z-index: 3;
    text-align: left;
    flex-shrink: 0;
}

.about__eyebrow {
    display: block;
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(5.882px, 0.764vw, 15.125px);
    letter-spacing: 0.2em;
    color: #999;
    margin-bottom: clamp(1.069px, 0.139vw, 2.75px);
}

.about__title {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(25.667px, 3.333vw, 66px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(4.813px, 0.625vw, 12.375px);
    
    line-height: 1;
}

.about__subtitle-en {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(8.556px, 1.111vw, 22px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(12.817px, 1.667vw, 33.000px);
    
}

.about__subtitle-ja {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(8.556px, 1.111vw, 22px);
    font-weight: 500;
    color: #000000;
    letter-spacing: 0.05em;
    margin: 0;
}


.about__photo-wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    
    border-radius: clamp(42px, 5.56vw, 107px) clamp(42px, 5.56vw, 107px) 0 0;
    
    overflow: hidden;
}

.about__photo-wrap picture {
    display: block;
    width: 100%;
    height: 100%;
}

.about__photo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
}

.about__photo-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    pointer-events: none;
}

.about .about__link.arrow-link {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
    color: #ffffff;
}

.about__link .arrow-link__circle {
    border-color: #ffffff;
}

.about__link svg {
    stroke: #ffffff;
}




.arrow-link {
    display: inline-flex;
    align-items: center;
    gap: var(--top-14);
    font-size: 0.8rem;
    letter-spacing: 0.05em;
    color: #333;
    transition: gap 0.3s ease, opacity 0.3s ease;
}

.arrow-link:hover {
    gap: clamp(9.625px, 1.25vw, 24.75px);
    opacity: 1;
}

.arrow-link__circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(23.528px, 3.056vw, 60.5px);
    height: clamp(23.528px, 3.056vw, 60.5px);
    border: 1px solid #333;
    border-radius: 50%;
    transition: background 0.3s ease, color 0.3s ease;
}

.arrow-link__circle svg,
.arrow-link__circle img {
    width: clamp(8.556px, 1.111vw, 22px);
    height: clamp(8.556px, 1.111vw, 22px);
}

.arrow-link:hover .arrow-link__circle {
    background: #A50C27;
    border-color: #A50C27;
    color: #fff;
}

.arrow-link:hover .arrow-link__circle svg {
    stroke: #fff;
}

.about__link.arrow-link:hover,
.services__item-text .arrow-link:hover,
.news__view-all:hover {
    gap: var(--top-14);
    transform: none;
}

.about__link.arrow-link:hover .arrow-link__circle,
.services__item-text .arrow-link:hover .arrow-link__circle,
.news__view-all:hover .arrow-link__circle {
    background: transparent;
    border-color: #333;
    color: currentColor;
}

.about__link.arrow-link:hover .arrow-link__circle img,
.services__item-text .arrow-link:hover .arrow-link__circle img,
.news__view-all:hover .arrow-link__circle img,
.about__link.arrow-link:hover .arrow-link__circle svg,
.services__item-text .arrow-link:hover .arrow-link__circle svg,
.news__view-all:hover .arrow-link__circle svg {
    transform: none;
}

.about__link.arrow-link>span:last-child,
.services__item-text .arrow-link>span:first-child,
.news__view-all>span:last-child {
    position: relative;
    display: inline-block;
    width: max-content;
}

.about__link.arrow-link>span:last-child::after,
.services__item-text .arrow-link>span:first-child::after,
.news__view-all>span:last-child::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    bottom: -0.18em;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s ease;
    pointer-events: none;
}

.about__link.arrow-link:hover>span:last-child::after,
.services__item-text .arrow-link:hover>span:first-child::after,
.news__view-all:hover>span:last-child::after {
    transform: scaleX(1);
}

.about__link.arrow-link:hover .arrow-link__circle {
    border-color: #ffffff;
}

.services {
    position: relative;
    width: 100%;
    background: #FBFBF8;
    overflow: visible;
    
}


.services__sphere {
    position: absolute;
    bottom: clamp(-632.5px, -31.944vw, -245.972px);
    right: clamp(-618.75px, -31.25vw, -240.625px);
    width: clamp(802.083px, 104.167vw, 2062.5px);
    height: auto;
    pointer-events: none;
    z-index: 1101;
}

.services__inner {
    position: relative;
    max-width: none;
    margin: 0 auto;
    padding: clamp(58px, 5.28vw, 101px) 0 clamp(87px, 11.111vw, 216px);
    box-sizing: border-box;
}


.services__header {
    position: relative;
    display: flex;
    align-items: center;
    gap: clamp(17.111px, 2.222vw, 44px);
    margin: 0 0 clamp(100px, 9.31vw, 179px);
    padding-left: clamp(72px, 8.33vw, 160px);
}

.services__header-text {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.services__label {
    display: block;
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 1.111vw, 16px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
    color: #000000;
    margin-bottom: clamp(3.208px, 0.417vw, 8.25px);
}

.services__title {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(36px, 3.333vw, 48px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0;
    line-height: clamp(72px, 8.333vw, 120px);
}


.services__title-line {
    position: relative;
    z-index: 1;
    flex: 1;
    height: clamp(0.535px, 0.069vw, 1.375px);
    background: #000000;
    align-self: flex-end;
    margin-bottom: clamp(9.09px, 1.181vw, 23.375px);
    
    margin-right: 0;
}


.services__item {
    position: relative;
    display: grid;
    grid-template-columns: clamp(320px, 32vw, 540px) clamp(560px, 51vw, 980px);
    gap: clamp(32px, 4.5vw, 86px);
    align-items: center;
    justify-content: end;
    padding: 0 0 clamp(86px, 8.33vw, 160px);
}

.services__item:last-child {
    padding-bottom: clamp(32px, 3.33vw, 64px);
}


.services__item+.services__item {
    border-top: none;
}



.services__item--reverse {
    grid-template-columns: clamp(560px, 51vw, 980px) clamp(320px, 32vw, 540px);
    justify-content: start;
}

.services__item--reverse .services__item-text {
    margin-left: clamp(24px, 2.78vw, 53px);
}

.services__item--reverse .services__item-images {
    order: -1;
}


.services__item-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: clamp(224.583px, 29.167vw, 577.5px);
}

.services__item-title-en {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(28px, 2.5vw, 36px);
    font-weight: 700;
    line-height: clamp(72px, 8.333vw, 120px);
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(10.16px, 1.319vw, 26.125px);
    white-space: nowrap;
}

.services__item-name {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(15px, 1.25vw, 18px);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: clamp(42px, 4.167vw, 60px);
    color: #000000;
    margin: 0 0 clamp(21.389px, 2.778vw, 55px);
}

.services__item-desc {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: 500;
    line-height: clamp(22px, 1.806vw, 26px);
    color: #000000;
    letter-spacing: 0.05em;
    margin: 0 0 clamp(20.319px, 2.639vw, 52.25px);
}

.services__item-text .arrow-link {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
}


.services__item-images {
    position: relative;
    z-index: 4;
    
    width: clamp(342.222px, 44.444vw, 880px);
    overflow: hidden;
    flex-shrink: 0;
    justify-self: end;
    margin-left: auto;
    border-radius: clamp(8.556px, 1.111vw, 22px);
    background-color: #fbfbf8;
}


.services__item--reverse .services__item-images {
    justify-self: start;
    margin-left: 0;
    margin-right: auto;
}


.services__img-track {
    display: flex;
    gap: clamp(2.139px, 0.278vw, 5.5px);
    animation: services-img-scroll 45s linear infinite;
    width: max-content;
}

@keyframes services-img-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(calc(-4 * (clamp(93.576px, 12.153vw, 240.625px) + clamp(4.278px, 0.556vw, 11px))));
    }
}


.services__item-img {
    width: clamp(93.576px, 12.153vw, 240.625px);
    height: clamp(106.944px, 13.889vw, 275px);
    flex-shrink: 0;
    overflow: hidden;
    border-radius: clamp(1.069px, 0.139vw, 2.75px);
}

.services__item-img img {
    width: clamp(93.576px, 12.153vw, 240.625px);
    height: clamp(106.944px, 13.889vw, 275px);
    object-fit: cover;
    display: block;
}

.home-page .services__item-images {
    --services-slide-width: clamp(245px, 22.22vw, 427px);
    --services-gap: clamp(1.069px, 0.139vw, 2.75px);
    --services-scroll-offset: calc(-4 * (var(--services-slide-width) + var(--services-gap)));
    width: clamp(560px, 51vw, 980px);
    height: clamp(245px, 22.22vw, 427px);
    border-radius: clamp(5.347px, 0.694vw, 13.75px) 0 0 clamp(5.347px, 0.694vw, 13.75px);
    background-color: #ffffff;
}

.home-page .home-services-blob {
    position: absolute;
    z-index: 0;
    width: clamp(312.813px, 40.625vw, 804.375px);
    max-width: none;
    height: auto;
    opacity: 0.65;
    pointer-events: none;
}

.home-page .home-services-blob--header {
    top: clamp(-220px, -15.28vw, -88px);
    left: clamp(-680px, -35.42vw, -272px);
}

.home-page .home-services-blob--scroll-01 {
    right: clamp(-760px, -39.58vw, -304px);
    bottom: clamp(-240px, -16.67vw, -96px);
}

.home-page .home-services-blob--scroll-02 {
    left: clamp(-760px, -39.58vw, -304px);
    bottom: clamp(-240px, -16.67vw, -96px);
}

.home-page .home-services-blob--scroll-03 {
    right: clamp(-760px, -39.58vw, -304px);
    bottom: clamp(-240px, -16.67vw, -96px);
}

.home-page .home-services-blob--scroll-04 {
    left: clamp(-760px, -39.58vw, -304px);
    bottom: clamp(-240px, -16.67vw, -96px);
}

.home-page .services__item--reverse .services__item-images {
    border-radius: 0 clamp(5.347px, 0.694vw, 13.75px) clamp(5.347px, 0.694vw, 13.75px) 0;
}

.home-page .services__img-track {
    gap: var(--services-gap);
}

.home-page .services__img-track {
    animation-name: services-img-scroll-home;
}

@keyframes services-img-scroll-home {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(var(--services-scroll-offset));
    }
}

.home-page .services__item-img {
    width: var(--services-slide-width);
    height: clamp(255px, 23.22vw, 446px);
    border-radius: 0;
}

.home-page .services__item-img img {
    width: 100%;
    height: 100%;
}


.news {
    width: 100%;
    background: #FBFBF8;
    padding: 0 0 clamp(65px, 8.333vw, 120px) clamp(65px, 8.333vw, 120px);
    
    box-sizing: border-box;
}




.news__box {
    background: #ffffff;
    border-radius: clamp(17.111px, 2.222vw, 44px) 0 0 clamp(17.111px, 2.222vw, 44px);
    display: grid;
    grid-template-columns: 28% 1fr;
    gap: clamp(32.083px, 4.167vw, 82.5px);
    padding: clamp(32.083px, 4.167vw, 82.5px) clamp(64.167px, 8.333vw, 165px) clamp(32.083px, 4.167vw, 82.5px) clamp(42.778px, 5.556vw, 110px);
    box-sizing: border-box;
}


.news__left {
    display: flex;
    flex-direction: column;
    gap: clamp(14.972px, 1.944vw, 38.5px);
}

.news__label {
    display: block;
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 1.111vw, 16px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
    color: #000000;
    margin-bottom: clamp(-27.5px, -1.389vw, -10.694px);
    
}

.news__title {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(36px, 3.333vw, 48px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #000000;
    margin: 0 0 clamp(4.278px, 0.556vw, 11px);
    
    line-height: clamp(72px, 8.333vw, 120px);
}

.news__view-all {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(12px, 0.972vw, 14px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
}


.news__list {
    display: flex;
    flex-direction: column;
}


.news__item {
    display: flex;
    align-items: center;
    gap: clamp(10.694px, 1.389vw, 27.5px);
    padding: clamp(11.764px, 1.528vw, 30.25px) 0;
    border-bottom: clamp(0.535px, 0.069vw, 1.375px) solid #e8e8e8;
    text-decoration: none;
    transition: opacity 0.2s;
}

.news__item:first-child {
    border-top: clamp(0.535px, 0.069vw, 1.375px) solid #e8e8e8;
}




.news__badge {
    display: inline-block;
    background: #A50C27;
    color: #ffffff;
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(10px, 0.833vw, 12px);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: clamp(18px, 1.528vw, 22px);
    padding: clamp(2.139px, 0.278vw, 5.5px) clamp(7.486px, 0.972vw, 19.25px);
    border-radius: clamp(10.694px, 1.389vw, 27.5px);
    white-space: nowrap;
    flex-shrink: 0;
}


.news__date {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(10px, 0.833vw, 12px);
    font-weight: 500;
    color: #000000;
    white-space: nowrap;
    flex-shrink: 0;
    letter-spacing: 0.05em;
    line-height: clamp(24px, 2.222vw, 32px);
}


.news__text {
    font-family: 'Zen Kaku Gothic Antique', 'Noto Sans JP', sans-serif;
    font-size: clamp(10px, 0.833vw, 12px);
    font-weight: 500;
    color: #000000;
    flex: 1;
    letter-spacing: 0.05em;
    line-height: clamp(20px, 1.667vw, 24px);
}


.news__indicator {
    position: relative;
    width: clamp(17.111px, 2.222vw, 44px);
    height: clamp(17.111px, 2.222vw, 44px);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}


.news__dot {
    position: absolute;
    width: clamp(4.278px, 0.556vw, 11px);
    height: clamp(4.278px, 0.556vw, 11px);
    background: #A50C27;
    border-radius: 50%;
    opacity: 1;
    transition: opacity 0.2s ease;
}


.news__item-arrow {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(17.111px, 2.222vw, 44px);
    height: clamp(17.111px, 2.222vw, 44px);
    border: clamp(0.535px, 0.069vw, 1.375px) solid #A50C27;
    border-radius: 50%;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.news__item-arrow svg,
.news__item-arrow img {
    width: clamp(8.556px, 1.111vw, 22px);
    height: clamp(8.556px, 1.111vw, 22px);
    stroke: #A50C27;
}


.news__item:hover .news__dot {
    opacity: 0;
}

.news__item:hover .news__item-arrow {
    opacity: 1;
}


.cta {
    width: 100%;
    background: #FBFBF8;
    padding: clamp(65px, 8.45vw, 162px) 0;
    box-sizing: border-box;
}

.cta__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(22px, 2.82vw, 54px);
    max-width: clamp(1026.667px, 133.333vw, 2640px);
    margin: 0 auto;
    padding: 0 clamp(65px, 8.45vw, 162px);
    box-sizing: border-box;
    width: clamp(770.000px, 100.000vw, 1980.000px);
}


.cta__card {
    position: relative;
    overflow: hidden;
    display: block;
    text-decoration: none;
    aspect-ratio: 580 / 320;
}

.cta__card:hover {
    opacity: 1;
}

.cta__card:hover .cta__card-overlay {
    background: rgba(120, 15, 25, 0.7);
}


.cta__card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    line-height: 0;
}

.cta__card-bg picture {
    width: 100%;
    height: 100%;
    display: block;
}

.cta__card-bg img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(1.01);
    transform-origin: center;
}

.cta__card--recruit .cta__card-bg img {
    transform: scale(1.06);
}


.cta__card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    transition: background 0.35s ease;
    z-index: 1;
}


.cta__card-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(22px, 2.82vw, 54px) clamp(22px, 2.82vw, 54px) clamp(19px, 2.54vw, 49px);
    box-sizing: border-box;
}

.cta__card-top {
    display: flex;
    flex-direction: column;
    gap: clamp(6.417px, 0.833vw, 16.5px);
    max-width: 80%;
}

.cta__label {
    font-size: clamp(7.486px, 0.972vw, 19.25px);
    letter-spacing: 0.15em;
    color: #ffffff;
}

.cta__title {
    font-family: 'Proxima Nova', 'Montserrat', Arial, sans-serif;
    font-size: clamp(28px, 3.66vw, 70px);
    font-weight: 900;
    letter-spacing: 0.05em;
    color: #ffffff;
    margin: 0;
    line-height: 1;
    margin-bottom: clamp(11px, 1.41vw, 27px);
}

.cta__desc {
    font-size: clamp(7.486px, 0.972vw, 19.25px);
    line-height: 1.8;
    color: #ffffff;
    margin: 0;
    letter-spacing: 0.05em;
}


.cta__card-arrow {
    display: flex;
    justify-content: flex-end;
}

.cta__arrow-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(25.667px, 3.333vw, 66px);
    height: clamp(25.667px, 3.333vw, 66px);
    border: clamp(1.069px, 0.139vw, 2.75px) solid #ffffff;
    border-radius: 50%;
}

.cta__arrow-circle svg,
.cta__arrow-circle img {
    width: clamp(9.625px, 1.25vw, 24.75px);
    height: clamp(9.625px, 1.25vw, 24.75px);
    stroke: #ffffff;
}

.cta__arrow-img--hover {
    display: none;
}

.cta__card:hover .cta__arrow-img--default {
    display: none;
}

.cta__card:hover .cta__arrow-img--hover {
    display: block;
}


.news__more-arrow {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.news__more:hover .news__more-arrow {
    transform: translateX(clamp(2.139px, 0.278vw, 5.5px));
}



.footer {
    background: #8B1520;
    padding: clamp(42.778px, 5.556vw, 110px) clamp(42.778px, 5.556vw, 110px) clamp(21.389px, 2.778vw, 55px);
    box-sizing: border-box;
    border-radius: clamp(17.111px, 2.222vw, 44px) clamp(17.111px, 2.222vw, 44px) 0 0;
    
}


.footer__inner {
    display: flex;
    flex-direction: column;
}


.footer__inner-main {
    display: grid;
    grid-template-columns: clamp(289.285px, 37.569vw, 743.875px) 1fr;
    gap: 0;
    align-items: stretch;
}


.footer__left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0;
}

.footer__logo {
    display: block;
}

.footer__logo-img {
    width: clamp(176.458px, 22.917vw, 453.75px);
    height: auto;
}


.footer__left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(8.556px, 1.111vw, 22px);
}

.footer__sns {
    display: flex;
    align-items: center;
    gap: clamp(5.347px, 0.694vw, 13.75px);
}

.footer__sns-icon {
    width: clamp(10.694px, 1.389vw, 27.5px);
    height: clamp(10.694px, 1.389vw, 27.5px);
    stroke: #ffffff;
    flex-shrink: 0;
}

.footer__sns-link {
    font-size: clamp(6.951px, 0.903vw, 17.875px);
    color: #ffffff;
    letter-spacing: 0.05em;
}


.footer__nav {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: clamp(21.389px, 2.778vw, 55px);
    align-items: start;
    justify-self: end;
}


.footer__nav-row {
    display: contents;
}


.footer__nav-row--inline {
    display: flex;
    grid-column: 1 / -1;
    gap: clamp(26.736px, 3.472vw, 68.75px);
    align-items: center;
    padding: clamp(8.556px, 1.111vw, 22px) 0;
}


.footer__nav-row--inline .footer__nav-cat {
    padding-top: 0;
    padding-bottom: 0;
}


.footer__nav-row--inline .footer__nav-separator+.footer__nav-cat {
    padding-left: 0;
}


.footer__nav-separator {
    display: block;
    width: clamp(0.535px, 0.069vw, 1.375px);
    height: clamp(6.417px, 0.833vw, 16.5px);
    background: rgba(255, 255, 255, 0.5);
    flex-shrink: 0;
    align-self: center;
}




.footer__nav-cat--instagram {
    display: inline-flex;
    align-items: center;
    gap: clamp(4.278px, 0.556vw, 11px);
}

.footer__instagram-icon {
    width: clamp(8.556px, 1.111vw, 22px);
    height: clamp(8.556px, 1.111vw, 22px);
    flex-shrink: 0;
    color: #ffffff;
}


.footer__nav-cat {
    font-size: clamp(6.417px, 0.833vw, 16.5px);
    font-weight: 500;
    color: #ffffff;
    letter-spacing: 0.05em;
    text-decoration: none;
    white-space: nowrap;
    padding: clamp(8.556px, 1.111vw, 22px) 0 clamp(8.556px, 1.111vw, 22px) clamp(10.694px, 1.389vw, 27.5px);
}

.footer__nav-cat:hover {
    opacity: 0.75;
}


.footer__nav-links {
    display: flex;
    flex-direction: column;
    gap: clamp(3.208px, 0.417vw, 8.25px);
    padding: clamp(8.556px, 1.111vw, 22px) 0;
}


.footer__nav-link-col {
    display: flex;
    flex-direction: row;
    gap: clamp(26.736px, 3.472vw, 68.75px);
}


.footer__nav-links--align {
    display: grid;
    grid-template-columns: repeat(4, auto);
    justify-content: start;
    gap: clamp(3.208px, 0.417vw, 8.25px) clamp(21.389px, 2.778vw, 55px);
    padding-right: clamp(21.389px, 2.778vw, 55px);
}

.footer__nav-links--align .footer__nav-link-col {
    display: contents;
}


.footer__nav-link-col--section-end {
    margin-bottom: clamp(8.556px, 1.111vw, 22px);
}

.footer__nav-link-col a {
    font-size: clamp(6.417px, 0.833vw, 16.5px);
    color: #ffffff;
    letter-spacing: 0.05em;
    white-space: nowrap;
    text-decoration: none;
    transition: color 0.2s;
}


.footer__nav-subcat {
    font-size: clamp(6.417px, 0.833vw, 16.5px);
    color: #ffffff;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.footer__nav-link-col a:hover {
    color: #ffffff;
}


.footer__nav-divider {
    grid-column: 1 / -1;
    height: clamp(0.535px, 0.069vw, 1.375px);
    background: rgba(255, 255, 255, 0.2);
}


.footer__bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-top: clamp(12.833px, 1.667vw, 33px);
}

.footer__bottom-left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(3.208px, 0.417vw, 8.25px);
}


.footer__bottom-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(3.208px, 0.417vw, 8.25px);
    padding-top: clamp(17.111px, 2.222vw, 44px);
}

.footer__copyright {
    font-size: clamp(5.882px, 0.764vw, 15.125px);
    color: #ffffff;
    letter-spacing: 0.05em;
    margin: 0;
}

.footer__privacy {
    font-size: clamp(5.882px, 0.764vw, 15.125px);
    color: #ffffff;
    text-decoration: underline;
    letter-spacing: 0.03em;
    transition: color 0.2s;
}

.footer__privacy:hover {
    color: #ffffff;
}


.footer__totop {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(23.528px, 3.056vw, 60.5px);
    height: clamp(23.528px, 3.056vw, 60.5px);
    border: clamp(0.535px, 0.069vw, 1.375px) solid rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    transition: background 0.3s, border-color 0.3s;
}

.footer__totop:hover {
    background: rgba(255, 255, 255, 0.15);
    opacity: 1;
}

.footer__totop svg {
    width: clamp(8.556px, 1.111vw, 22px);
    height: clamp(8.556px, 1.111vw, 22px);
    stroke: #ffffff;
}

@media (min-width: 1281px) {
    .header__menu-btn {
        display: none;
    }

    .header__drawer,
    .header__drawer-overlay {
        display: none;
    }
}


:root {
    --top--1: clamp(-1.375px, -0.069vw, -0.534px);
    --top--2: clamp(-2.750px, -0.139vw, -1.068px);
    --top--3: clamp(-4.125px, -0.208vw, -1.602px);
    --top--4: clamp(-5.500px, -0.278vw, -2.136px);
    --top--5: clamp(-6.875px, -0.347vw, -2.670px);
    --top--6: clamp(-8.250px, -0.417vw, -3.204px);
    --top--7: clamp(-9.625px, -0.486vw, -3.738px);
    --top--8: clamp(-11.000px, -0.556vw, -4.272px);
    --top--9: clamp(-12.375px, -0.625vw, -4.806px);
    --top--10: clamp(-13.750px, -0.694vw, -5.340px);
    --top--11: clamp(-15.125px, -0.764vw, -5.874px);
    --top--12: clamp(-16.500px, -0.833vw, -6.408px);
    --top--13: clamp(-17.875px, -0.903vw, -6.942px);
    --top--14: clamp(-19.250px, -0.972vw, -7.476px);
    --top--15: clamp(-20.625px, -1.042vw, -8.010px);
    --top--16: clamp(-22.000px, -1.111vw, -8.544px);
    --top--17: clamp(-23.375px, -1.181vw, -9.080px);
    --top--18: clamp(-24.750px, -1.250vw, -9.612px);
    --top--19: clamp(-26.125px, -1.319vw, -10.146px);
    --top--20: clamp(-27.500px, -1.389vw, -10.680px);
    --top--21: clamp(-28.875px, -1.458vw, -11.214px);
    --top--22: clamp(-30.250px, -1.528vw, -11.748px);
    --top--23: clamp(-31.625px, -1.597vw, -12.282px);
    --top--24: clamp(-33.000px, -1.667vw, -12.816px);
    --top--25: clamp(-34.375px, -1.736vw, -13.351px);
    --top--26: clamp(-35.750px, -1.806vw, -13.884px);
    --top--27: clamp(-37.125px, -1.875vw, -14.418px);
    --top--28: clamp(-38.500px, -1.944vw, -14.952px);
    --top--29: clamp(-39.875px, -2.014vw, -15.486px);
    --top--30: clamp(-41.250px, -2.083vw, -16.020px);
    --top--31: clamp(-42.625px, -2.153vw, -16.554px);
    --top--32: clamp(-44.000px, -2.222vw, -17.088px);
    --top--33: clamp(-45.375px, -2.292vw, -17.622px);
    --top--34: clamp(-46.750px, -2.361vw, -18.156px);
    --top--35: clamp(-48.125px, -2.431vw, -18.690px);
    --top--36: clamp(-49.500px, -2.500vw, -19.224px);
    --top--37: clamp(-50.875px, -2.569vw, -19.758px);
    --top--38: clamp(-52.250px, -2.639vw, -20.292px);
    --top--39: clamp(-53.625px, -2.708vw, -20.826px);
    --top--40: clamp(-55.000px, -2.778vw, -21.360px);
    --top--41: clamp(-56.375px, -2.847vw, -21.894px);
    --top--42: clamp(-57.750px, -2.917vw, -22.428px);
    --top--43: clamp(-59.125px, -2.986vw, -22.962px);
    --top--44: clamp(-60.500px, -3.056vw, -23.496px);
    --top--45: clamp(-61.875px, -3.125vw, -24.030px);
    --top--46: clamp(-63.250px, -3.194vw, -24.564px);
    --top--47: clamp(-64.625px, -3.264vw, -25.098px);
    --top--48: clamp(-66.000px, -3.333vw, -25.632px);
    --top--49: clamp(-67.375px, -3.403vw, -26.166px);
    --top--50: clamp(-68.750px, -3.472vw, -26.700px);
    --top--51: clamp(-70.125px, -3.542vw, -27.234px);
    --top--52: clamp(-71.500px, -3.611vw, -27.768px);
    --top--53: clamp(-72.875px, -3.681vw, -28.302px);
    --top--54: clamp(-74.250px, -3.750vw, -28.836px);
    --top--55: clamp(-75.625px, -3.819vw, -29.370px);
    --top--56: clamp(-77.000px, -3.889vw, -29.904px);
    --top--57: clamp(-78.375px, -3.958vw, -30.438px);
    --top--58: clamp(-79.750px, -4.028vw, -30.972px);
    --top--59: clamp(-81.125px, -4.097vw, -31.506px);
    --top--60: clamp(-82.500px, -4.167vw, -32.040px);
    --top--61: clamp(-83.875px, -4.236vw, -32.574px);
    --top--62: clamp(-85.250px, -4.306vw, -33.108px);
    --top--63: clamp(-86.625px, -4.375vw, -33.642px);
    --top--64: clamp(-88.000px, -4.444vw, -34.176px);
    --top--65: clamp(-89.375px, -4.514vw, -34.710px);
    --top--66: clamp(-90.750px, -4.583vw, -35.244px);
    --top--67: clamp(-92.125px, -4.653vw, -35.778px);
    --top--68: clamp(-93.500px, -4.722vw, -36.312px);
    --top--69: clamp(-94.875px, -4.792vw, -36.846px);
    --top--70: clamp(-96.250px, -4.861vw, -37.380px);
    --top--71: clamp(-97.625px, -4.931vw, -37.914px);
    --top--72: clamp(-99.000px, -5.000vw, -38.448px);
    --top--73: clamp(-100.375px, -5.069vw, -38.982px);
    --top--74: clamp(-101.750px, -5.139vw, -39.516px);
    --top--75: clamp(-103.125px, -5.208vw, -40.050px);
    --top--76: clamp(-104.500px, -5.278vw, -40.584px);
    --top--77: clamp(-105.875px, -5.347vw, -41.118px);
    --top--78: clamp(-107.250px, -5.417vw, -41.652px);
    --top--79: clamp(-108.625px, -5.486vw, -42.186px);
    --top--80: clamp(-110.000px, -5.556vw, -42.720px);
    --top--81: clamp(-111.375px, -5.625vw, -43.254px);
    --top--82: clamp(-112.750px, -5.694vw, -43.788px);
    --top--83: clamp(-114.125px, -5.764vw, -44.322px);
    --top--84: clamp(-115.500px, -5.833vw, -44.856px);
    --top--85: clamp(-116.875px, -5.903vw, -45.390px);
    --top--86: clamp(-118.250px, -5.972vw, -45.924px);
    --top--87: clamp(-119.625px, -6.042vw, -46.458px);
    --top--88: clamp(-121.000px, -6.111vw, -46.992px);
    --top--89: clamp(-122.375px, -6.181vw, -47.526px);
    --top--90: clamp(-123.750px, -6.250vw, -48.060px);
    --top--91: clamp(-125.125px, -6.319vw, -48.594px);
    --top--92: clamp(-126.500px, -6.389vw, -49.128px);
    --top--93: clamp(-127.875px, -6.458vw, -49.662px);
    --top--94: clamp(-129.250px, -6.528vw, -50.196px);
    --top--95: clamp(-130.625px, -6.597vw, -50.730px);
    --top--96: clamp(-132.000px, -6.667vw, -51.264px);
    --top--97: clamp(-133.375px, -6.736vw, -51.798px);
    --top--98: clamp(-134.750px, -6.806vw, -52.332px);
    --top--99: clamp(-136.125px, -6.875vw, -52.866px);
    --top--100: clamp(-137.500px, -6.944vw, -53.400px);
    --top-1: clamp(0.534px, 0.069vw, 1.375px);
    --top-2: clamp(1.068px, 0.139vw, 2.750px);
    --top-3: clamp(1.602px, 0.208vw, 4.125px);
    --top-4: clamp(2.136px, 0.278vw, 5.500px);
    --top-5: clamp(2.670px, 0.347vw, 6.875px);
    --top-6: clamp(3.204px, 0.417vw, 8.250px);
    --top-7: clamp(3.738px, 0.486vw, 9.625px);
    --top-8: clamp(4.272px, 0.556vw, 11.000px);
    --top-9: clamp(4.806px, 0.625vw, 12.375px);
    --top-10: clamp(5.340px, 0.694vw, 13.750px);
    --top-11: clamp(5.874px, 0.764vw, 15.125px);
    --top-12: clamp(6.408px, 0.833vw, 16.500px);
    --top-13: clamp(6.942px, 0.903vw, 17.875px);
    --top-14: clamp(7.476px, 0.972vw, 19.250px);
    --top-15: clamp(8.010px, 1.042vw, 20.625px);
    --top-16: clamp(8.544px, 1.111vw, 22.000px);
    --top-17: clamp(9.080px, 1.181vw, 23.375px);
    --top-18: clamp(9.612px, 1.250vw, 24.750px);
    --top-19: clamp(10.146px, 1.319vw, 26.125px);
    --top-20: clamp(10.680px, 1.389vw, 27.500px);
    --top-21: clamp(11.214px, 1.458vw, 28.875px);
    --top-22: clamp(11.748px, 1.528vw, 30.250px);
    --top-23: clamp(12.282px, 1.597vw, 31.625px);
    --top-24: clamp(12.816px, 1.667vw, 33.000px);
    --top-25: clamp(13.351px, 1.736vw, 34.375px);
    --top-26: clamp(13.884px, 1.806vw, 35.750px);
    --top-27: clamp(14.418px, 1.875vw, 37.125px);
    --top-28: clamp(14.952px, 1.944vw, 38.500px);
    --top-29: clamp(15.486px, 2.014vw, 39.875px);
    --top-30: clamp(16.020px, 2.083vw, 41.250px);
    --top-31: clamp(16.554px, 2.153vw, 42.625px);
    --top-32: clamp(17.088px, 2.222vw, 44.000px);
    --top-33: clamp(17.622px, 2.292vw, 45.375px);
    --top-34: clamp(18.156px, 2.361vw, 46.750px);
    --top-35: clamp(18.690px, 2.431vw, 48.125px);
    --top-36: clamp(19.224px, 2.500vw, 49.500px);
    --top-37: clamp(19.758px, 2.569vw, 50.875px);
    --top-38: clamp(20.292px, 2.639vw, 52.250px);
    --top-39: clamp(20.826px, 2.708vw, 53.625px);
    --top-40: clamp(21.360px, 2.778vw, 55.000px);
    --top-41: clamp(21.894px, 2.847vw, 56.375px);
    --top-42: clamp(22.428px, 2.917vw, 57.750px);
    --top-43: clamp(22.962px, 2.986vw, 59.125px);
    --top-44: clamp(23.496px, 3.056vw, 60.500px);
    --top-45: clamp(24.030px, 3.125vw, 61.875px);
    --top-46: clamp(24.564px, 3.194vw, 63.250px);
    --top-47: clamp(25.098px, 3.264vw, 64.625px);
    --top-48: clamp(25.632px, 3.333vw, 66.000px);
    --top-49: clamp(26.166px, 3.403vw, 67.375px);
    --top-50: clamp(26.700px, 3.472vw, 68.750px);
    --top-51: clamp(27.234px, 3.542vw, 70.125px);
    --top-52: clamp(27.768px, 3.611vw, 71.500px);
    --top-53: clamp(28.302px, 3.681vw, 72.875px);
    --top-54: clamp(28.836px, 3.750vw, 74.250px);
    --top-55: clamp(29.370px, 3.819vw, 75.625px);
    --top-56: clamp(29.904px, 3.889vw, 77.000px);
    --top-57: clamp(30.438px, 3.958vw, 78.375px);
    --top-58: clamp(30.972px, 4.028vw, 79.750px);
    --top-59: clamp(31.506px, 4.097vw, 81.125px);
    --top-60: clamp(32.040px, 4.167vw, 82.500px);
    --top-61: clamp(32.574px, 4.236vw, 83.875px);
    --top-62: clamp(33.108px, 4.306vw, 85.250px);
    --top-63: clamp(33.642px, 4.375vw, 86.625px);
    --top-64: clamp(34.176px, 4.444vw, 88.000px);
    --top-65: clamp(34.710px, 4.514vw, 89.375px);
    --top-66: clamp(35.244px, 4.583vw, 90.750px);
    --top-67: clamp(35.778px, 4.653vw, 92.125px);
    --top-68: clamp(36.312px, 4.722vw, 93.500px);
    --top-69: clamp(36.846px, 4.792vw, 94.875px);
    --top-70: clamp(37.380px, 4.861vw, 96.250px);
    --top-71: clamp(37.914px, 4.931vw, 97.625px);
    --top-72: clamp(38.448px, 5.000vw, 99.000px);
    --top-73: clamp(38.982px, 5.069vw, 100.375px);
    --top-74: clamp(39.516px, 5.139vw, 101.750px);
    --top-75: clamp(40.050px, 5.208vw, 103.125px);
    --top-76: clamp(40.584px, 5.278vw, 104.500px);
    --top-77: clamp(41.118px, 5.347vw, 105.875px);
    --top-78: clamp(41.652px, 5.417vw, 107.250px);
    --top-79: clamp(42.186px, 5.486vw, 108.625px);
    --top-80: clamp(42.720px, 5.556vw, 110.000px);
    --top-81: clamp(43.254px, 5.625vw, 111.375px);
    --top-82: clamp(43.788px, 5.694vw, 112.750px);
    --top-83: clamp(44.322px, 5.764vw, 114.125px);
    --top-84: clamp(44.856px, 5.833vw, 115.500px);
    --top-85: clamp(45.390px, 5.903vw, 116.875px);
    --top-86: clamp(45.924px, 5.972vw, 118.250px);
    --top-87: clamp(46.458px, 6.042vw, 119.625px);
    --top-88: clamp(46.992px, 6.111vw, 121.000px);
    --top-89: clamp(47.526px, 6.181vw, 122.375px);
    --top-90: clamp(48.060px, 6.250vw, 123.750px);
    --top-91: clamp(48.594px, 6.319vw, 125.125px);
    --top-92: clamp(49.128px, 6.389vw, 126.500px);
    --top-93: clamp(49.662px, 6.458vw, 127.875px);
    --top-94: clamp(50.196px, 6.528vw, 129.250px);
    --top-95: clamp(50.730px, 6.597vw, 130.625px);
    --top-96: clamp(51.264px, 6.667vw, 132.000px);
    --top-97: clamp(51.798px, 6.736vw, 133.375px);
    --top-98: clamp(52.332px, 6.806vw, 134.750px);
    --top-99: clamp(52.866px, 6.875vw, 136.125px);
    --top-100: clamp(53.400px, 6.944vw, 137.500px);
    --top-102: clamp(54.54px, 7.083vw, 140.25px);
    --top-103: clamp(55.08px, 7.153vw, 141.63px);
    --top-100: clamp(53.47px, 6.944vw, 137.5px);
    --top-120: clamp(64.17px, 8.333vw, 165px);
    --top-132: clamp(70.58px, 9.167vw, 181.5px);
    --top-134: clamp(71.65px, 9.306vw, 184.25px);
    --top-146: clamp(78.06px, 10.139vw, 200.60px);
    --top-160: clamp(85.56px, 11.111vw, 220px);
    --top-183: clamp(97.85px, 12.708vw, 251.63px);
    --top-185: clamp(99px, 12.847vw, 254.5px);
    --top-215: clamp(115px, 14.931vw, 295.63px);
    --top-220: clamp(117.64px, 15.278vw, 302.5px);
    --top-229: clamp(122.45px, 15.903vw, 314.88px);
    --top-320: clamp(171.11px, 22.222vw, 440px);
    --top-325: clamp(173.78px, 22.569vw, 446.88px);
    --top-335: clamp(179.13px, 23.264vw, 460.63px);
    --top-343: clamp(183.43px, 23.819vw, 471.63px);
    --top-400: clamp(213.89px, 27.778vw, 550px);
    --top-420: clamp(224.58px, 29.167vw, 577.5px);
    --top-427: clamp(228.32px, 29.653vw, 586.70px);
    --top-457: clamp(244.37px, 31.736vw, 627.92px);
    --top-461: clamp(246.54px, 32.014vw, 633.88px);
    --top-512: clamp(273.78px, 35.556vw, 704px);
    --top-558: clamp(298.36px, 38.75vw, 767.25px);
    --top-628: clamp(335.77px, 43.611vw, 863.5px);
    --top-648: clamp(346.5px, 45vw, 891px);
    --top-691: clamp(369.62px, 47.986vw, 950.13px);
    --top-734: clamp(392.53px, 50.972vw, 1009.25px);
    --top-785: clamp(419.75px, 54.514vw, 1079.38px);
    --top-845: clamp(451.81px, 58.681vw, 1161.88px);
    --top-services-scroll: clamp(688.94px, 89.444vw, 1771px);
}

.home-page .hero {
    height: calc(100vh - var(--top-103));
    min-height: 0;
    margin-top: var(--top-103);
    overflow: visible;
}

.home-page .hero__blob {
    top: clamp(-508.750px, -25.694vw, -197.590px);
    left: clamp(208.271px, 27.083vw, 536.250px);
}

.home-page .hero__headline {
    left: var(--top-80);
    top: clamp(72px, min(11.2vw, 18vh), 161.28px);
    font-size: clamp(64.17px, min(8.333vw, 15.5vh), 120px);
    line-height: clamp(64.17px, min(8.333vw, 15.5vh), 120px);
    z-index: 85001;
}

.home-page .hero__sub {
    left: var(--top-80);
    top: clamp(260px, min(38.75vw, 72vh), 558px);
    font-size: clamp(9.63px, min(1.25vw, 2.35vh), 18px);
    line-height: clamp(13.9px, min(1.806vw, 3.35vh), 26px);
}

.home-page .hero__scroll {
    right: var(--top-81);
    bottom: clamp(21.69px, 2.82vw, 55.84px);
    gap: clamp(10.91px, 1.42vw, 28.11px);
}

.home-page .hero__scroll-text {
    font-size: var(--top-14);
}

.home-page .hero__scroll-circle {
    width: clamp(77.12px, 10.03vw, 198.55px);
    height: clamp(77.12px, 10.03vw, 198.55px);
}

.home-page .photo-section__inner {
    margin-left: var(--top-80);
    width: calc(100% - var(--top-80));
    height: clamp(460.91px, 59.861vw, 1184.39px);
}

.home-page .photo-section__img,
.home-page .photo-section__overlay-img {
    width: 100%;
}

.home-page .photo-section__overlay {
    top: clamp(31.01px, 4.028vw, 79.76px);
    left: var(--top-80);
    font-size: var(--top-15);
    line-height: var(--top-40);
}

.home-page .mission {
    height: var(--top-512);
    padding-top: var(--top-132);
}

.home-page .mission__bg-text {
    top: var(--top-325);
}

.home-page .mission__heading {
    font-size: var(--top-32);
    line-height: var(--top-52);
}

.home-page .about {
    height: var(--top-845);
}

.home-page .about__upper {
    gap: var(--top-60);
    padding: var(--top-146) var(--top-120) 0;
}

.home-page .about__left {
    max-width: var(--top-691);
}

.home-page .about__heading {
    font-size: var(--top-32);
    line-height: var(--top-50);
    margin-bottom: clamp(40.052px, 5.208vw, 103.125px);
}

.home-page .about__body {
    font-size: var(--top-14);
    line-height: var(--top-40);
    margin-bottom: var(--top-40);
}

.home-page .about .about__link.arrow-link {
    font-size: var(--top-14);
    line-height: var(--top-32);
}

.home-page .about__photo-wrap {
    border-radius: var(--top-80) var(--top-80) 0 0;
}

.home-page .services__inner {
    padding: var(--top-160) 0 var(--top-160);
}

.home-page .services__header {
    gap: var(--top-20);
    margin-bottom: clamp(67.292px, 8.750vw, 173.250px);
    padding-left: var(--top-100);
}

.home-page .services__label {
    font-size: var(--top-16);
    line-height: var(--top-16);
    margin-bottom: clamp(8.544px, 1.111vw, 22.000px);
}

.home-page .services__title {
    font-size: var(--top-48);
    line-height: var(--top-48);
}

.home-page .services__title-line {
    margin-bottom: var(--top-24);
}

.home-page .services__item,
.home-page .services__item--reverse {
    align-items: center;
    gap: var(--top-65);
    padding: 0 0 clamp(61.947px, 8.056vw, 159.500px);
}

.home-page .services__item--reverse:last-child {
    padding-bottom: 0;
}

.home-page .services__item {
    grid-template-columns: var(--top-461) var(--top-734);
}

.home-page .services__item--reverse {
    grid-template-columns: var(--top-734) var(--top-461);
}

.home-page .services__item-text {
    max-width: var(--top-427);
    order: 0;
    margin-left: clamp(18.157px, 2.361vw, 46.750px);
    margin-top: clamp(-27.500px, -1.389vw, -10.681px);
}

.home-page .services__item--reverse .services__item-text {
    margin-left: var(--top-2);
    order: 0;
    padding-left: 0;
}

.home-page .services__item-title-en {
    font-size: var(--top-36);
    line-height: var(--top-36);
    margin-bottom: var(--top-14);
}

.home-page .services__item-name {
    font-size: var(--top-18);
    line-height: var(--top-18);
    margin-bottom: clamp(29.906px, 3.889vw, 77.000px);
}

.home-page .services__item-desc {
    font-size: var(--top-14);
    line-height: var(--top-26);
    margin-bottom: 44px;
}

.home-page .services__item-text .arrow-link {
    align-self: flex-start;
    width: max-content;
    font-size: var(--top-14);
    line-height: var(--top-32);
}

.home-page .services__item-images,
.home-page .services__item--reverse .services__item-images {
    --services-slide-width: var(--top-320);
    --services-gap: var(--top-2);
    --services-scroll-offset: calc(-4 * (var(--services-slide-width) + var(--services-gap)));
    order: 0;
    width: var(--top-734);
    height: var(--top-320);
    min-width: 0;
    min-height: 0;
}

.home-page .services__item--reverse .services__item-images {
    order: -1;
}

.home-page .services__img-track {
    gap: var(--services-gap);
}

.home-page .services__item-img {
    width: var(--top-320);
    height: var(--top-335);
}

.home-page .home-services-blob {
    
}

.home-page .home-services-blob--header {
    top: clamp(-178.750px, -9.028vw, -69.514px);
    left: clamp(-481.250px, -24.306vw, -187.153px);
}

.home-page .home-services-blob--scroll-01,
.home-page .home-services-blob--scroll-03 {
    right: clamp(-550.000px, -27.778vw, -213.611px);
    bottom: clamp(-316.250px, -15.972vw, -122.847px);
}

.home-page .home-services-blob--scroll-03 {
    right: clamp(-605.000px, -30.556vw, -235.278px);
    bottom: clamp(-137.500px, -6.944vw, -53.472px);
}

.home-page .home-services-blob--scroll-02 {
    left: clamp(-453.750px, -22.917vw, -176.458px);
    bottom: clamp(-110.000px, -5.556vw, -42.722px);
}

.home-page .news {
    padding: 0 0 0 var(--top-120);
}

.home-page .news__inner {
    height: auto;
}

.home-page .news__box {
    border-radius: var(--top-32) 0 0 var(--top-32);
    gap: clamp(20.827px, 2.708vw, 53.625px);
    padding: var(--top-60) var(--top-120) var(--top-60) clamp(25.633px, 3.333vw, 66.000px);
}

.home-page .news__left {
    gap: var(--top-28);
}

.home-page .news__label {
    font-size: var(--top-16);
    line-height: var(--top-32);
    margin-bottom: calc(clamp(0px, 0vw, 0px) - var(--top-20));
}

.home-page .news__title {
    margin-top: clamp(-13.750px, -0.694vw, -5.340px);
    font-size: var(--top-48);
    line-height: var(--top-48);
    margin-bottom: var(--top-20);
}

.home-page .news__view-all {
    align-self: flex-start;
    width: max-content;
    font-size: var(--top-14);
    line-height: var(--top-32);
}

.home-page .news__item {
    gap: clamp(14.953px, 1.944vw, 38.500px);
    padding: var(--top-22) 0;
}

.home-page .news__item span:nth-child(3) {
    margin-left: clamp(24.564px, 3.194vw, 63.250px);
    width: var(--sp-342);
}

.home-page .news__badge {
    display: inline-flex;
    align-items: center;      /* 縦中央 */
    justify-content: center;  /* 横中央 */
    font-size: var(--top-12);
    line-height: var(--top-22);
    padding: var(--top-4) var(--top-14);
    border-radius: var(--top-20);
    width: var(--top-80);
    height: var(--top-24);
}

.home-page .news__date {
    font-size: var(--top-12);
    line-height: var(--top-32);
}

.home-page .news__text {
    font-size: var(--top-12);
    line-height: var(--top-24);
}

.home-page .news__indicator,
.home-page .news__item-arrow {
    width: var(--top-32);
    height: var(--top-32);
    margin-right: clamp(3.204px, 0.417vw, 8.250px);
}

.home-page .news__dot {
    width: var(--top-8);
    height: var(--top-8);
}

.home-page .news__item-arrow svg,
.home-page .news__item-arrow img {
    width: var(--top-16);
    height: var(--top-16);
}

@media screen and (max-width: 769px) {
  :root {
    --sp-1: clamp(0.962px, 0.256vw, 1.972px);
    --sp-2: clamp(1.923px, 0.513vw, 3.944px);
    --sp-3: clamp(2.885px, 0.769vw, 5.915px);
    --sp-4: clamp(3.846px, 1.026vw, 7.887px);
    --sp-5: clamp(4.808px, 1.282vw, 9.859px);
    --sp-6: clamp(5.769px, 1.538vw, 11.831px);
    --sp-7: clamp(6.731px, 1.795vw, 13.803px);
    --sp-8: clamp(7.692px, 2.051vw, 15.774px);
    --sp-9: clamp(8.654px, 2.308vw, 17.746px);
    --sp-10: clamp(9.615px, 2.564vw, 19.718px);
    --sp-11: clamp(10.577px, 2.821vw, 21.690px);
    --sp-12: clamp(11.538px, 3.077vw, 23.662px);
    --sp-13: clamp(12.500px, 3.333vw, 25.633px);
    --sp-14: clamp(13.462px, 3.590vw, 27.605px);
    --sp-15: clamp(14.423px, 3.846vw, 29.577px);
    --sp-16: clamp(15.385px, 4.103vw, 31.549px);
    --sp-17: clamp(16.346px, 4.359vw, 33.521px);
    --sp-18: clamp(17.308px, 4.615vw, 35.492px);
    --sp-19: clamp(18.269px, 4.872vw, 37.464px);
    --sp-20: clamp(19.231px, 5.128vw, 39.436px);
    --sp-21: clamp(20.192px, 5.385vw, 41.408px);
    --sp-22: clamp(21.154px, 5.641vw, 43.379px);
    --sp-23: clamp(22.115px, 5.897vw, 45.351px);
    --sp-24: clamp(23.077px, 6.154vw, 47.323px);
    --sp-25: clamp(24.038px, 6.410vw, 49.295px);
    --sp-26: clamp(25.000px, 6.667vw, 51.267px);
    --sp-27: clamp(25.962px, 6.923vw, 53.238px);
    --sp-28: clamp(26.923px, 7.179vw, 55.210px);
    --sp-29: clamp(27.885px, 7.436vw, 57.182px);
    --sp-30: clamp(28.846px, 7.692vw, 59.154px);
    --sp-31: clamp(29.808px, 7.949vw, 61.126px);
    --sp-32: clamp(30.769px, 8.205vw, 63.097px);
    --sp-33: clamp(31.731px, 8.462vw, 65.069px);
    --sp-34: clamp(32.692px, 8.718vw, 67.041px);
    --sp-35: clamp(33.654px, 8.974vw, 69.013px);
    --sp-36: clamp(34.615px, 9.231vw, 70.985px);
    --sp-37: clamp(35.577px, 9.487vw, 72.956px);
    --sp-38: clamp(36.538px, 9.744vw, 74.928px);
    --sp-39: clamp(37.500px, 10.000vw, 76.900px);
    --sp-40: clamp(38.462px, 10.256vw, 78.872px);
    --sp-41: clamp(39.423px, 10.513vw, 80.844px);
    --sp-42: clamp(40.385px, 10.769vw, 82.815px);
    --sp-43: clamp(41.346px, 11.026vw, 84.787px);
    --sp-44: clamp(42.308px, 11.282vw, 86.759px);
    --sp-45: clamp(43.269px, 11.538vw, 88.731px);
    --sp-46: clamp(44.231px, 11.795vw, 90.703px);
    --sp-47: clamp(45.192px, 12.051vw, 92.674px);
    --sp-48: clamp(46.154px, 12.308vw, 94.646px);
    --sp-49: clamp(47.115px, 12.564vw, 96.618px);
    --sp-50: clamp(48.077px, 12.821vw, 98.590px);
    --sp-51: clamp(49.038px, 13.077vw, 100.562px);
    --sp-52: clamp(50.000px, 13.333vw, 102.533px);
    --sp-53: clamp(50.962px, 13.590vw, 104.505px);
    --sp-54: clamp(51.923px, 13.846vw, 106.477px);
    --sp-55: clamp(52.885px, 14.103vw, 108.449px);
    --sp-56: clamp(53.846px, 14.359vw, 110.421px);
    --sp-57: clamp(54.808px, 14.615vw, 112.392px);
    --sp-58: clamp(55.769px, 14.872vw, 114.364px);
    --sp-59: clamp(56.731px, 15.128vw, 116.336px);
    --sp-60: clamp(57.692px, 15.385vw, 118.308px);
    --sp-61: clamp(58.654px, 15.641vw, 120.279px);
    --sp-62: clamp(59.615px, 15.897vw, 122.251px);
    --sp-63: clamp(60.577px, 16.154vw, 124.223px);
    --sp-64: clamp(61.538px, 16.410vw, 126.195px);
    --sp-65: clamp(62.500px, 16.667vw, 128.167px);
    --sp-66: clamp(63.462px, 16.923vw, 130.138px);
    --sp-67: clamp(64.423px, 17.179vw, 132.110px);
    --sp-68: clamp(65.385px, 17.436vw, 134.082px);
    --sp-69: clamp(66.346px, 17.692vw, 136.054px);
    --sp-70: clamp(67.308px, 17.949vw, 138.026px);
    --sp-71: clamp(68.269px, 18.205vw, 139.997px);
    --sp-72: clamp(69.231px, 18.462vw, 141.969px);
    --sp-73: clamp(70.192px, 18.718vw, 143.941px);
    --sp-74: clamp(71.154px, 18.974vw, 145.913px);
    --sp-75: clamp(72.115px, 19.231vw, 147.885px);
    --sp-76: clamp(73.077px, 19.487vw, 149.856px);
    --sp-77: clamp(74.038px, 19.744vw, 151.828px);
    --sp-78: clamp(75.000px, 20.000vw, 153.800px);
    --sp-79: clamp(75.962px, 20.256vw, 155.772px);
    --sp-80: clamp(76.923px, 20.513vw, 157.744px);
    --sp-81: clamp(77.885px, 20.769vw, 159.715px);
    --sp-82: clamp(78.846px, 21.026vw, 161.687px);
    --sp-83: clamp(79.808px, 21.282vw, 163.659px);
    --sp-84: clamp(80.769px, 21.538vw, 165.631px);
    --sp-85: clamp(81.731px, 21.795vw, 167.603px);
    --sp-86: clamp(82.692px, 22.051vw, 169.574px);
    --sp-87: clamp(83.654px, 22.308vw, 171.546px);
    --sp-88: clamp(84.615px, 22.564vw, 173.518px);
    --sp-89: clamp(85.577px, 22.821vw, 175.490px);
    --sp-90: clamp(86.538px, 23.077vw, 177.462px);
    --sp-91: clamp(87.500px, 23.333vw, 179.433px);
    --sp-92: clamp(88.462px, 23.590vw, 181.405px);
    --sp-93: clamp(89.423px, 23.846vw, 183.377px);
    --sp-94: clamp(90.385px, 24.103vw, 185.349px);
    --sp-95: clamp(91.346px, 24.359vw, 187.321px);
    --sp-96: clamp(92.308px, 24.615vw, 189.292px);
    --sp-97: clamp(93.269px, 24.872vw, 191.264px);
    --sp-98: clamp(94.231px, 25.128vw, 193.236px);
    --sp-99: clamp(95.192px, 25.385vw, 195.208px);
    --sp-100: clamp(96.154px, 25.641vw, 197.179px);
    --sp-260: clamp(250.000px, 66.667vw, 512.667px);
    --sp-285: clamp(274.038px, 73.077vw, 562.038px);
    --sp-342: clamp(328.846px, 87.692vw, 674.354px);
    --sp-390: clamp(375.000px, 100.000vw, 769.000px);
    --sp-400: clamp(384.615px, 102.564vw, 788.718px);
    --sp-420: clamp(403.846px, 107.692vw, 828.462px);
    --sp-1200: clamp(1153.846px, 307.692vw, 2366.154px);
  }

  /* FV */
  .home-page {
    width: var(--sp-390);
  }
  .home-page .hero {
    width: clamp(359px, 100vw, 769px);
    height: 100dvh;
  }
  .home-page .hero__headline {
    font-size: var(--sp-52);
    left: var(--sp-24);
    letter-spacing: 0.05em;
    line-height: var(--sp-52);
  }
  .home-page .hero__sub {
    left: var(--sp-24);
    top: var(--sp-260);
    font-size: var(--sp-15);
    line-height: var(--sp-21);
  }
  .home-page .hero__scroll {
    right: var(--sp-420);
  }

  /* Photo */
  .home-page .photo-section__inner {
    margin-left: 0;
    height: var(--sp-1200);
  }
  .photo-section__img {
    height: 100%;
  }
  .photo-section__overlay-img {
    height: 100%;
  }
  .home-page .photo-section__overlay {
    font-size: var(--sp-15);
    left: var(--sp-24);
    line-height: var(--sp-40);
  }
  .photo-section__overlay br.pc {
    display: none;
  }
  .photo-section__overlay br.sp {
    display: inline;
  }

  /* Mission */
  .home-page .mission__heading {
    font-size: var(--sp-22);
  }
  .mission__inner {
    margin-left: var(--sp-24);
    width: var(--sp-342);
  }

  /* About */
  .about__upper {
    grid-template-columns: 1fr;
    margin: 0 0;
  }
  .home-page .about__upper {
    padding-left: var(--sp-24);
    padding-right: var(--sp-24);
    width: var(--sp-342);
  }
  .about__upper > :nth-child(3) {
    margin-left: calc(var(--sp-24) * -1);
  }

  .about__right {
    order: 1;
  }
  .about__photo-wrap {
    order: 3;
    position: absolute;
    height: var(--sp-400);
    width: var(--sp-390);
    top: 66%;

  }
  .about__left {
    width: var(--sp-342);
    order: 2;
    .about__body p {
        color: #000;
    }
  }
  .home-page .about__left {
    max-width: clamp(411.201px, 53.403vw, 1057.375px);
  }
  .about__heading {
    color: #000;
  }
  .about__title {
    line-height: clamp(17.111px, 2.222vw, 44px);
  }
  .home-page .about__body {
    font-size: var(--sp-14);
    line-height: var(--sp-26);
    margin-top: clamp(245.972px, 31.944vw, 632.5px);
    .pc {
        display: none;
    }
  }
  .home-page .about__heading {
    font-size: var(--sp-24);
    line-height: var(--sp-32);
    font-weight: 700;
    .pc {
        display: none;
    }
  }
  .about .about__link.arrow-link {
    color: #000;
  }
  .about__link .arrow-link__circle {
    border-color: #000;
  }
  .home-page .about .about__link.arrow-link {
    font-size: var(--sp-14);
    line-height: var(--sp-32);
  }

  /* Service */
  .services {
    margin-top: clamp(320.833px, 41.667vw, 825px);
  }
  
}

@media screen and (max-width: 769px) {
  body {
    width: 100%;
    min-width: 0;
  }

  .home-page {
    --sp-u: calc(100vw / 390);
    --sp-24: 6.154vw;
    --sp-content-width: calc(100vw - var(--sp-24) * 2);
    width: 100%;
    overflow-x: hidden;
    background: #fbfbf8;
  }

  .home-page .pc {
    display: none !important;
  }

  .home-page .sp {
    display: inline !important;
  }

  .home-page .hero {
    margin-top: 0;
    overflow: visible;
  }

  .home-page .hero__blob {
    z-index: 85000;
    opacity: 0.85;
  }

  .home-page .hero__blob--sp-top {
    display: block;
    top: clamp(-20px, -2.56vw, -9px);
    left: clamp(198px, 55.13vw, 424px);
    right: 0;
    width: clamp(473.077px, 126.154vw, 970.123px);
  }

  .home-page .hero__blob--sp-bottom {
    display: block;
    top: auto;
    left: clamp(-690px, -89.74vw, -322px);
    bottom: clamp(-237px, -30.77vw, -111px);
    width: clamp(473.077px, 126.154vw, 970.123px);
  }

  .home-page .hero__headline {
    left: var(--sp-24);
    top: clamp(120px, 25dvh, 260px);
    font-size: 13.333vw;
    line-height: 13.333vw;
    letter-spacing: 0.05em;
    z-index: 3;
  }

  .home-page .hero__sub {
    left: var(--sp-24);
    top: calc(clamp(120px, 25dvh, 260px) + 40vw + var(--sp-16));
    font-size: 3.846vw;
    line-height: 5.385vw;
    letter-spacing: 0.1em;
    z-index: 3;
  }

  .home-page .hero__scroll {
    right: var(--sp-24);
    bottom: var(--sp-24);
    gap: 5.641vw;
    z-index: 3;
  }

  .home-page .hero__scroll-text {
    font-size: 3.077vw;
    line-height: 1;
  }

  .home-page .hero__scroll-circle {
    width: 20.513vw;
    height: 20.513vw;
  }

  .home-page .hero__scroll-circle svg {
    width: 4.103vw;
    height: 6.154vw;
  }

  .home-page .photo-section__inner {
    width: 100%;
    height: 307.692vw;
    margin-left: 0;
  }

  .home-page .photo-section__img,
  .home-page .photo-section__overlay-img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
  }

  .home-page .photo-section__overlay {
    top: 26.667vw;
    left: var(--sp-24);
    right: var(--sp-24);
    font-size: 3.846vw;
    line-height: 10.256vw;
    letter-spacing: 0.05em;
  }

  .home-page .photo-section__overlay br.pc {
    display: none;
  }

  .home-page .photo-section__overlay br.sp {
    display: inline;
  }

  .home-page .mission {
    height: clamp(273px, 76.15vw, 586px);
    padding-top: 20.513vw;
    overflow: hidden;
  }

  .home-page .mission__inner {
    width: var(--sp-content-width);
    margin-left: var(--sp-24);
  }

  .home-page .mission__heading {
    font-size: 5.641vw;
    line-height: 9.231vw;
    letter-spacing: 0.15em;
  }

  .home-page .mission__bg-text {
    top: 55vw;
    font-size: 30.769vw;
    line-height: 1;
  }

  .home-page .about {
    height: auto;
    padding: 0 0 0;
  }

  .home-page .about__upper {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    padding: 0;
    margin: 0;
    gap: 0;
  }

  .home-page .about__right {
    order: 1;
    width: var(--sp-content-width);
    margin: 0 0 0 var(--sp-24);
  }

  .home-page .about__title {
    font-size: 8.205vw;
    line-height: var(--sp-23);
    letter-spacing: 0.1em;
    margin: 0 0 var(--sp-14);
  }

  .home-page .about__subtitle-en {
    font-size: 3.846vw;
    line-height: 3.846vw;
    margin: 0 0 6.154vw;
  }

  .home-page .about__subtitle-ja {
    font-size: 4.103vw;
    line-height: var(--sp-16);
    margin: 0 0 var(--sp-62);
  }

  .home-page .about__left {
    order: 2;
    width: var(--sp-content-width);
    max-width: none;
    margin: 0 0 0 var(--sp-24);
  }

  .home-page .about__heading {
    font-size: 6.154vw;
    line-height: 8.205vw;
    letter-spacing: 0.05em;
    margin: 0 0 108.718vw;
    color: #000;
  }

  .home-page .about__photo-wrap {
    order: 3;
    position: absolute;
    top: clamp(263px, 73.33vw, 564px);
    left: 0;
    width: 100%;
    height: 102.564vw;
    margin: 0;
    border-radius: 10.256vw 10.256vw 0 0;
    overflow: hidden;
  }

  .home-page .about__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }

  .home-page .about__body {
    font-size: 3.59vw;
    line-height: 6.667vw;
    letter-spacing: 0.05em;
    margin: 0 0 var(--sp-32);
    color: #000;
    padding-top: var(--sp-33);
  }

  .home-page .about__body p {
    color: #000;
  }

  .home-page .about .about__link.arrow-link {
    width: max-content;
    font-size: 3.59vw;
    line-height: 8.205vw;
    color: #000;
  }

  .home-page .about__link .arrow-link__circle {
    width: var(--sp-44);
    height: var(--sp-44);
    border-color: #000;
  }

  .home-page .about__link .arrow-link__circle img,
  .home-page .services__item-text .arrow-link .arrow-link__circle img,
  .home-page .news__view-all .arrow-link__circle img {
    content: url("../img/common/arrow_right_bk_sp.svg");
    width: clamp(19.231px, 5.128vw, 39.436px);
    height: clamp(9.615px, 2.564vw, 19.718px);
  }

  .home-page .services {
    margin-top: 0;
    overflow: hidden;
  }

  .home-page .services__inner {
    padding: var(--sp-90) 0 20.513vw;
  }

  .home-page .services__header {
    gap: var(--sp-24);
    margin: 0 0 var(--sp-59);
    padding-left: 0;
  }

  .home-page .services__label {
    font-size: 4.103vw;
    line-height: 8.205vw;
    margin-bottom: 1.282vw;
  }

  .home-page .services__title {
    font-size: 8.205vw;
    line-height: 8.205vw;
  }

  .home-page .services__title-line {
    margin-bottom: 4.1025vw;
    margin-right: 0;
    width: clamp(168px, 46.92vw, 361px);
    margin-left: clamp(-30px, -3.85vw, -14px);
  }

  .home-page .services__item,
  .home-page .services__item--reverse {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--sp-14);
    padding: 0 0 21.026vw;
  }

  .home-page .services__item--reverse .services__item-images,
  .home-page .services__item--reverse .services__item-text {
    margin-left: var(--sp-24);
  }

  .home-page .services__item--reverse {
    flex-direction: column;
  }

  .home-page .services__item-text {
    display: contents;
  }

  .home-page .services__item-title-en {
    order: 1;
    font-size: 7.205vw;
    line-height: var(--sp-28);
    margin: 0 0 0;
    letter-spacing: 0.1em;
    max-width: 100%;
    margin-left: var(--sp-24);
    margin-right: var(--sp-24);
  }

  .home-page .services__item-title-en__p2 {
    margin-right: var(--sp-24);
  }

  .home-page .services__item-name {
    order: 2;
    font-size: 4.115vw;
    line-height: var(--sp-16);
    margin: 0 var(--sp-24) var(--sp-26);
    max-width: 100%;
  }

  .home-page .services__item-name__p2 {
    margin-right: var(--sp-24);
  }

  .home-page .services__item-desc {
    order: 4;
    font-size: 3.59vw;
    line-height: 6.667vw;
    margin: var(--sp-10) var(--sp-24) var(--sp-6);
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .home-page .services__item-text .arrow-link {
    order: 5;
    width: max-content;
    margin-left: auto;
    margin-right: var(--sp-24);
    font-size: 3.59vw;
    line-height: 8.205vw;
  }

  .home-page .services__item--reverse .services__item-title-en,
  .home-page .services__item--reverse .services__item-name {
    text-align: right;
  }

  .home-page .services__item-text .arrow-link .arrow-link__circle {
    width: var(--sp-44);
    height: var(--sp-44);
  }

  .home-page .services__item-images,
  .home-page .services__item--reverse .services__item-images {
    --services-slide-width: 71.795vw;
    --services-gap: 0.513vw;
    --services-scroll-offset: calc(-4 * (var(--services-slide-width) + var(--services-gap)));
    order: 3;
    justify-self: auto;
    width: 93.846vw;
    height: 71.795vw;
    margin: 0 0 0 var(--sp-24);
    border-radius: 2.564vw;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }

  .home-page .services__img-track {
    gap: var(--services-gap);
  }

  .home-page .services__item-img {
    width: var(--services-slide-width);
    height: 71.795vw;
  }

  .home-page .home-services-blob {
    width: 84.615vw;
  }

  .home-page .home-services-blob--header {
    top: clamp(-197px, -25.64vw, -92px);
    left: clamp(221px, 61.54vw, 473px);
  }

  .home-page .home-services-blob--scroll-01,
  .home-page .home-services-blob--scroll-03 {
    right: -53.846vw;
    bottom: -28.718vw;
  }

  .home-page .home-services-blob--scroll-01 {
    display: none;
  }

  .home-page .home-services-blob--scroll-03 {
    display: none;
  }

  .home-page .home-services-blob--scroll-02 {
    display: none;
    left: -53.846vw;
    bottom: -28.718vw;
  }

  .home-page .news {
    padding: 0;
  }

  .home-page .news__inner {
    height: auto;
  }

  .home-page .news__box {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-radius: 0;
    padding: var(--sp-40) var(--sp-24);
    gap: 0;
  }

  .home-page .news__left {
    display: contents;
    gap: 4.615vw;
    margin-bottom: 8.205vw;
  }

  .home-page .news__label {
    order: 1;
    font-size: 4.103vw;
    line-height: var(--sp-16);
    margin-bottom: var(--sp-8);
  }

  .home-page .news__title {
    order: 2;
    font-size: 8.205vw;
    line-height: 8.205vw;
    margin: 0 0 var(--sp-35);
  }

  .home-page .news__view-all {
    order: 4;
    width: max-content;
    margin: var(--sp-40) auto 0;
    font-size: 3.59vw;
    line-height: 8.205vw;
  }

  .home-page .news__view-all .arrow-link__circle {
    width: var(--sp-44);
    height: var(--sp-44);
  }

  .home-page .news__item {
    position: relative;
    display: grid;
    grid-template-columns: 16.41vw 1fr 8.205vw;
    gap: var(--sp-18);
    padding: 4.615vw 0;
  }

  .home-page .news__item:nth-child(n+4) {
    display: none;
  }

  .home-page .news__list {
    order: 3;
  }

  .home-page .news__item span:nth-child(3) {
    margin-left: 0;
    font-size: var(--sp-14);
  }

  .home-page .news__badge {
    grid-column: 1;
    font-size: 3.077vw;
    line-height: 5.641vw;
    padding: var(--sp-11) var(--sp-32);
    align-self: start;
  }

  .home-page .news__date {
    grid-column: 2;
    font-size: 3.077vw;
    line-height: 5.641vw;
  }

  .home-page .news__text {
    grid-column: 1 / 3;
    font-size: 3.077vw;
    line-height: 6.154vw;
    padding-right: var(--sp-24);
    box-sizing: border-box;
    overflow-wrap: anywhere;
  }

  .home-page .news__indicator,
  .home-page .news__item-arrow {
    grid-column: 3;
    grid-row: 1 / 3;
    width: 8.205vw;
    height: 8.205vw;
    align-self: center;
  }

  .home-page .news__dot {
    width: 2.051vw;
    height: 2.051vw;
  }

  .home-page .cta {
    padding: 20.513vw 0;
  }

  .home-page .cta__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-24);
    padding: 0 var(--sp-24);
    max-width: none;
  }

  .home-page .cta__card {
    width: var(--sp-content-width);
    max-width: var(--sp-content-width);
    justify-self: center;
    aspect-ratio: 342 / 257;
    border-radius: 2.051vw;
  }

  .home-page .cta__card-content {
    padding: var(--sp-24);
    width: 100%;
  }

  .home-page .cta__card-top {
    width: clamp(290.385px, 77.436vw, 595.482px);
    max-width: 100%;
    gap: 2.308vw;
  }

  .home-page .cta__label {
    font-size: 3.077vw;
    line-height: 4.615vw;
  }

  .home-page .cta__title {
    font-size: 8.205vw;
    line-height: 1;
    margin-bottom: 2.051vw;
  }

  .home-page .cta__desc {
    width: clamp(290.385px, 77.436vw, 595.482px);
    max-width: 100%;
    font-size: 3.077vw;
    line-height: 5.641vw;
  }

  .home-page .cta__arrow-circle {
    width: 11.282vw;
    height: 11.282vw;
  }

  .home-page .cta__arrow-circle img {
    width: 4.615vw;
    height: 4.615vw;
  }
}


