@charset "UTF-8";

:root {
    --c-bg: #eeeae6;
    --c-ink: #231815;
    --c-ink-2: #3e3a39;
    --c-dark: #3e3a39;
    --c-black: #231815;
    --c-green: #abcd02;
    --c-marker: #cde167;
    --c-white: #fff;
    --ff-latin: "futura-pt", "Futura PT", "Jost";
    --ff-jp: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    --ff-sans: var(--ff-latin), "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    --ff-mincho: "BIZ UDPMincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
    --ff-en: var(--ff-latin), "Futura", "Century Gothic", sans-serif;
    --ease-out: cubic-bezier(.22, 1, .36, 1);
    --ease-inout: cubic-bezier(.65, 0, .35, 1);
    --ease-back: cubic-bezier(.34, 1.56, .64, 1)
}

*,
*:before,
*:after {
    box-sizing: border-box
}

html {
    font-size: calc(var(--vw, 1vw) * 100 / 39);
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0;
    background: var(--c-bg);
    color: var(--c-ink);
    font-family: var(--ff-sans);
    font-size: 1.4rem;
    line-height: 1.8;
    -webkit-font-smoothing: antialiased
}

h1,
h2,
h3,
p,
ol,
li,
figure {
    margin: 0;
    padding: 0
}

ol,
ul {
    list-style: none;
    margin: 0;
    padding: 0
}

img {
    display: block;
    max-width: 100%;
    height: auto
}

@media(min-width:768px) {
    html {
        font-size: min(calc(var(--vw, 1vw) * 100 / 144), 10px)
    }
}

.l-page {
    position: relative;
    overflow-x: clip
}

.l-inner {
    position: relative;
    width: 100%;
    margin: 0 auto
}

@media(min-width:768px) {
    .l-inner {
        width: 144rem
    }
}

.u-hang {
    display: inline
}

.u-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0
}

::selection {
    background: var(--c-marker);
    color: var(--c-ink)
}

html.lenis,
html.lenis body {
    height: auto
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important
}

.lenis.lenis-stopped {
    overscroll-behavior: none
}

body:before {
    content: "";
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: -1;
    width: 300vmax;
    height: 300vmax;
    translate: -50% -50%;
    rotate: -9deg;
    pointer-events: none;
    background-image: linear-gradient(to right, rgba(89, 87, 87, .16) 1px, transparent 1px), linear-gradient(to bottom, rgba(89, 87, 87, .16) 1px, transparent 1px);
    background-size: 2.6rem 2.6rem
}

@media(min-width:768px) {
    body:before {
        background-size: 4.9rem 4.9rem
    }
}

.c-grid {
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    width: 260vmax;
    height: 260vmax;
    translate: -50% -50%;
    rotate: -9deg;
    pointer-events: none;
    --gs: 2.6rem;
    --gc: rgba(89, 87, 87, .18);
    background-image: linear-gradient(to right, var(--gc) 1px, transparent 1px), linear-gradient(to bottom, var(--gc) 1px, transparent 1px);
    background-size: var(--gs) var(--gs)
}

.c-grid--main {
    --gc: rgba(89, 87, 87, .15);
    height: 100%;
    min-height: 260vmax;
    width: 200%
}

@media(min-width:768px) {
    .c-grid {
        --gs: 4.9rem
    }

    .c-grid--main {
        width: 220vw;
        height: 130%
    }
}

.c-marker {
    background-image: linear-gradient(var(--c-marker), var(--c-marker));
    background-repeat: no-repeat;
    background-position: 0 .17em;
    background-size: 0% 1.17em;
    padding: 0 .04em;
    margin: 0 -.04em;
    transition: background-size 1s var(--ease-out) .55s;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone
}

.is-in .c-marker {
    background-size: 100% 1.17em
}

.p-hero {
    --u: min(calc(var(--vw, 1vw) * 100 / 39), calc(100svh / 66));
    position: relative;
    z-index: 0;
    height: 100vh;
    height: 100svh;
    min-height: calc(64 * var(--u));
    overflow: hidden;
    color: var(--c-ink-2);
    background: transparent
}

.p-hero__stage {
    position: absolute;
    inset: 0;
    transform-origin: 50% 0;
    will-change: transform
}

.p-hero__shade {
    position: absolute;
    inset: 0;
    background: #1d1a19;
    opacity: 0;
    pointer-events: none
}

.is-hero-hidden .p-hero__stage,
.is-hero-hidden .p-hero__shade {
    visibility: hidden
}

.is-hero-hidden .p-hero *,
.is-hero-hidden .p-hero *:before {
    animation-play-state: paused !important
}

.l-main {
    position: relative;
    z-index: 1
}

.p-hero__bg {
    position: absolute;
    inset: -40% 0 0;
    overflow: hidden
}

.p-hero__noise {
    position: absolute;
    inset: 0;
    background: url(../img/noise.png) repeat;
    background-size: 128px;
    opacity: .45;
    mix-blend-mode: multiply;
    pointer-events: none;
    animation: grain 1s steps(1) infinite
}

@keyframes grain {
    0% {
        background-position: 0 0
    }

    17% {
        background-position: -37px 21px
    }

    33% {
        background-position: 25px -48px
    }

    50% {
        background-position: -51px -13px
    }

    67% {
        background-position: 39px 33px
    }

    83% {
        background-position: -12px 54px
    }
}

.p-hero__inner {
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(39 * var(--u));
    height: calc(64 * var(--u));
    translate: -50% -50%
}

.p-hero__blob {
    position: absolute;
    left: calc(50% - 29.5 * var(--u));
    top: calc(64.2857% - 26 * var(--u));
    width: calc(60 * var(--u));
    aspect-ratio: 1298 / 943
}

.p-hero__blob img {
    width: 100%;
    height: 100%;
    animation: blob-drift 18s var(--ease-inout) infinite alternate;
    transform-origin: 55% 50%
}

@keyframes blob-drift {
    0% {
        transform: translate(0) rotate(0) scale(1);
        filter: hue-rotate(0deg) saturate(1)
    }

    33% {
        transform: translate(2%, -2.5%) rotate(2.5deg) scale(1.04, .97);
        filter: hue-rotate(-12deg) saturate(1.1)
    }

    66% {
        transform: translate(-1.5%, 2%) rotate(-2deg) scale(.97, 1.04);
        filter: hue-rotate(10deg) saturate(1.05)
    }

    to {
        transform: translate(1%, 1%) rotate(1deg) scale(1.03);
        filter: hue-rotate(-6deg) saturate(1.1)
    }
}

.p-hero__ill {
    position: absolute;
    display: block;
    will-change: translate
}

.p-hero__ill img {
    width: 100%;
    height: auto;
    animation: ill-float 6s ease-in-out infinite alternate
}

.p-hero__ill--records {
    left: calc(1 * var(--u));
    top: calc(1.5 * var(--u));
    width: calc(12 * var(--u))
}

.p-hero__ill--sign {
    left: calc(21 * var(--u));
    top: calc(1 * var(--u));
    width: calc(10 * var(--u))
}

.p-hero__ill--apart {
    left: calc(28 * var(--u));
    top: calc(9 * var(--u));
    width: calc(10 * var(--u))
}

.p-hero__ill--tree {
    left: calc(1.5 * var(--u));
    top: calc(44 * var(--u));
    width: calc(12 * var(--u))
}

.p-hero__ill--house {
    right: calc(1.5 * var(--u));
    top: calc(54 * var(--u));
    width: calc(17 * var(--u))
}

.p-hero__ill--sign img {
    animation-delay: -1.5s;
    animation-duration: 7s
}

.p-hero__ill--apart img {
    animation-delay: -3s;
    animation-duration: 6.5s
}

.p-hero__ill--tree img {
    animation-delay: -2s;
    animation-duration: 5.5s
}

.p-hero__ill--house img {
    animation-delay: -4s;
    animation-duration: 7.5s
}

@keyframes ill-float {
    0% {
        transform: translateY(0) rotate(0)
    }

    to {
        transform: translateY(-3%) rotate(.6deg)
    }
}

.p-hero__presents {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(15 * var(--u));
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: calc(.6 * var(--u))
}

.p-hero__logo {
    width: calc(9.4 * var(--u))
}

.p-hero__presents span {
    font-family: var(--ff-en);
    font-weight: 500;
    font-size: calc(1.1 * var(--u));
    line-height: 1;
    padding-bottom: calc(.1 * var(--u))
}

.p-hero__tour {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(19 * var(--u));
    text-align: center;
    font-size: calc(1.5 * var(--u));
    font-weight: 700;
    line-height: 1
}

.p-hero__title,
.c-loader__ttl {
    font-family: var(--ff-jp)
}

.p-hero__title {
    position: absolute;
    left: 0;
    top: calc(23 * var(--u));
    font-weight: 900;
    line-height: 1
}

.p-hero__title>span {
    position: absolute;
    display: block;
    white-space: nowrap
}

.p-hero__title-1 {
    left: calc(2.4 * var(--u));
    top: 0;
    font-size: calc(7.6 * var(--u));
    letter-spacing: -.0935em
}

.p-hero__title-2 {
    left: calc(3.2 * var(--u));
    top: calc(8.4 * var(--u));
    font-size: calc(7.7 * var(--u));
    letter-spacing: -.091em;
    transform: skew(-6deg);
    transform-origin: 0 .936em
}

.p-hero__place {
    position: absolute;
    left: calc(27 * var(--u));
    top: calc(33.6 * var(--u));
    font-size: calc(1.5 * var(--u));
    font-weight: 700;
    line-height: 1
}

.p-hero__catch {
    position: absolute;
    right: calc(2 * var(--u));
    top: calc(41.8 * var(--u));
    width: calc(22.6 * var(--u))
}

.p-hero__catch img,
.p-hero__sub img {
    width: 100%
}

.p-hero__sub {
    position: absolute;
    right: calc(2.2 * var(--u));
    top: calc(46.3 * var(--u));
    width: calc(14.6 * var(--u))
}

@media(min-width:768px) {
    .p-hero {
        --u: min(calc(var(--vw, 1vw) * 100 / 144), calc(100svh / 98.2), 10px);
        min-height: calc(98.2 * var(--u))
    }

    .p-hero__inner {
        width: calc(144 * var(--u));
        height: calc(98.2 * var(--u))
    }

    .p-hero__noise {
        background-size: 256px
    }

    .p-hero__blob {
        left: calc(50% - 72.6 * var(--u));
        top: calc(64.2857% - 52.1 * var(--u));
        width: calc(129.8 * var(--u))
    }

    .p-hero__ill--records {
        left: calc(7.6 * var(--u));
        top: calc(1.6 * var(--u));
        width: calc(29.8 * var(--u))
    }

    .p-hero__ill--sign {
        left: calc(79.6 * var(--u));
        top: calc(2.6 * var(--u));
        width: calc(26.8 * var(--u))
    }

    .p-hero__ill--apart {
        left: calc(113.6 * var(--u));
        top: calc(11.6 * var(--u));
        width: calc(25.8 * var(--u))
    }

    .p-hero__ill--tree {
        left: calc(98.6 * var(--u));
        top: calc(37.6 * var(--u));
        width: calc(29.3 * var(--u))
    }

    .p-hero__ill--house {
        left: calc(9.6 * var(--u));
        right: auto;
        top: calc(74.6 * var(--u));
        width: calc(39.3 * var(--u))
    }

    .p-hero__presents {
        left: calc(42.1 * var(--u));
        right: auto;
        top: calc(16.6 * var(--u));
        gap: 0;
        align-items: flex-start
    }

    .p-hero__logo {
        width: calc(21.3 * var(--u))
    }

    .p-hero__presents span {
        position: absolute;
        left: calc(21.5 * var(--u));
        top: calc(2.88 * var(--u));
        font-size: calc(2.48 * var(--u));
        padding: 0
    }

    .p-hero__tour {
        left: calc(43.2 * var(--u));
        right: auto;
        top: calc(24.13 * var(--u));
        font-size: calc(3.39 * var(--u));
        text-align: left
    }

    .p-hero__title {
        top: 0
    }

    .p-hero__title-1 {
        left: calc(8.7 * var(--u));
        top: calc(30.43 * var(--u));
        font-size: calc(18.34 * var(--u))
    }

    .p-hero__title-2 {
        left: calc(11.4 * var(--u));
        top: calc(50.67 * var(--u));
        font-size: calc(18.52 * var(--u))
    }

    .p-hero__place {
        left: calc(63.9 * var(--u));
        top: calc(54.73 * var(--u));
        font-size: calc(3.39 * var(--u))
    }

    .p-hero__catch {
        left: calc(87 * var(--u));
        right: auto;
        top: calc(61 * var(--u));
        width: calc(44.5 * var(--u))
    }

    .p-hero__sub {
        left: calc(105 * var(--u));
        right: auto;
        top: calc(70.5 * var(--u));
        width: calc(28.8 * var(--u))
    }
}

.js .p-hero__blob {
    opacity: 0;
    scale: .7;
    transition: opacity 2s var(--ease-out), scale 2.8s var(--ease-out)
}

.js .p-hero__ill {
    opacity: 0;
    filter: blur(6px)
}

.js .p-hero__presents,
.js .p-hero__tour,
.js .p-hero__place,
.js .p-hero__catch,
.js .p-hero__sub {
    opacity: 0;
    transform: translateY(calc(1.2 * var(--u)))
}

.p-hero__title .char {
    display: inline-block
}

.js .p-hero__title .char {
    opacity: 0;
    transform: translateY(55%) rotate(8deg) scale(.9);
    filter: blur(10px);
    transform-origin: 50% 100%
}

.is-loaded .p-hero__blob {
    opacity: 1;
    scale: 1
}

.is-loaded .p-hero__ill {
    opacity: 1;
    filter: blur(0);
    transition: opacity 1.4s var(--ease-out), filter 1.4s var(--ease-out)
}

.is-loaded .p-hero__ill--records {
    transition-delay: 1s
}

.is-loaded .p-hero__ill--sign {
    transition-delay: 1.15s
}

.is-loaded .p-hero__ill--apart {
    transition-delay: 1.3s
}

.is-loaded .p-hero__ill--tree {
    transition-delay: 1.45s
}

.is-loaded .p-hero__ill--house {
    transition-delay: 1.6s
}

.p-hero__ill img {
    transform-origin: 50% 100%
}

.js .p-hero__ill img {
    scale: .92;
    transition: scale 1.6s var(--ease-out);
    transition-delay: inherit
}

.is-loaded .p-hero__ill img {
    scale: 1
}

.is-loaded .p-hero__title .char {
    opacity: 1;
    transform: none;
    filter: blur(0);
    transition: opacity .9s var(--ease-out), transform 1.3s var(--ease-out), filter .9s var(--ease-out);
    transition-delay: calc(.2s + var(--i) * 55ms)
}

.is-loaded .p-hero__presents,
.is-loaded .p-hero__tour,
.is-loaded .p-hero__place,
.is-loaded .p-hero__catch,
.is-loaded .p-hero__sub {
    opacity: 1;
    transform: none;
    transition: opacity 1s var(--ease-out), transform 1s var(--ease-out)
}

.is-loaded .p-hero__presents {
    transition-delay: .1s
}

.is-loaded .p-hero__tour {
    transition-delay: .2s
}

.is-loaded .p-hero__place {
    transition-delay: 1s
}

.is-loaded .p-hero__catch {
    transition-delay: 1.15s
}

.is-loaded .p-hero__sub {
    transition-delay: 1.35s
}

.p-intro {
    position: relative;
    z-index: 1;
    background: var(--c-dark);
    color: var(--c-white);
    padding: 8rem 0 9rem
}

.p-intro__vert {
    position: relative;
    width: 9.68rem;
    height: 30.16rem;
    margin: 0 auto;
    font-weight: 200;
    line-height: 1
}

.p-intro__col {
    position: absolute;
    will-change: translate;
    writing-mode: vertical-rl;
    font-size: 2.85rem;
    letter-spacing: .276rem;
    white-space: nowrap
}

.p-intro__col--1 {
    left: 5.6rem;
    top: -.24rem
}

.p-intro__col--2 {
    left: 0;
    top: 9.2rem
}

.p-intro__line {
    position: absolute;
    width: .25rem;
    background: var(--c-green)
}

.p-intro__line--1 {
    left: 9.44rem;
    top: 0;
    height: 23.92rem
}

.p-intro__line--2 {
    left: 3.82rem;
    top: 9.18rem;
    height: 17.92rem
}

.p-intro__lead {
    margin-top: 5.5rem;
    text-align: center;
    font-weight: 200;
    font-size: 1.3rem;
    letter-spacing: .08em;
    line-height: 2.6
}

.p-intro__lead-last {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: .6rem
}

.p-intro__brush {
    width: 13.3rem
}

.p-intro__kakko {
    font-weight: 600;
    line-height: 1
}

.p-intro__kakko--open {
    align-self: flex-start;
    margin-right: .1rem
}

.p-intro__kakko--close {
    align-self: flex-end;
    margin-left: .2rem
}

@media(min-width:768px) {
    .p-intro {
        height: 141.2rem;
        padding: 0
    }

    .p-intro__inner {
        height: 100%
    }

    .p-intro__vert {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 92rem;
        margin: 0
    }

    .p-intro__col {
        font-size: 5.7rem;
        letter-spacing: .55rem
    }

    .p-intro__col--1 {
        left: 73.91rem;
        top: 20.54rem
    }

    .p-intro__col--2 {
        left: 62.71rem;
        top: 39.42rem
    }

    .p-intro__line {
        width: .4rem
    }

    .p-intro__line--1 {
        left: 81.6rem;
        top: 21.03rem;
        height: 47.8rem
    }

    .p-intro__line--2 {
        left: 70.36rem;
        top: 39.39rem;
        height: 35.87rem
    }

    .p-intro__lead {
        position: absolute;
        left: 0;
        top: 95rem;
        width: 100%;
        height: 22rem;
        margin: 0
    }

    .p-intro__lead-txt {
        position: absolute;
        left: 0;
        right: 0;
        top: 2.17rem;
        font-size: 2.47rem;
        line-height: 6.1rem;
        letter-spacing: .1em
    }

    .p-intro__lead-last {
        display: block;
        margin: 0
    }

    .p-intro__lead-last>* {
        position: absolute
    }

    .p-intro__brush {
        left: 49.6rem;
        top: 15.6rem;
        width: 26.6rem
    }

    .p-intro__kakko,
    .p-intro__lead-end {
        font-size: 2.47rem;
        line-height: 2.47rem
    }

    .p-intro__kakko--open {
        left: 46.8rem;
        top: 15.69rem;
        margin: 0
    }

    .p-intro__kakko--close {
        left: 76.8rem;
        top: 18.69rem;
        margin: 0
    }

    .p-intro__lead-end {
        left: 78.5rem;
        top: 17.89rem;
        letter-spacing: .1em
    }
}

.js .p-intro__col .char {
    display: inline-block;
    opacity: 0;
    transform: translateY(-.4em);
    filter: blur(4px)
}

.js .p-intro__line {
    transform: scaleY(0);
    transform-origin: top
}

.js .p-intro__kakko,
.js .p-intro__lead-end {
    opacity: 0;
    transform: translateY(1rem)
}

.js .c-brush {
    -webkit-mask-image: linear-gradient(90deg, #000 42%, transparent 58%);
    mask-image: linear-gradient(90deg, #000 42%, transparent 58%);
    -webkit-mask-size: 280% 100%;
    mask-size: 280% 100%;
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.js .is-in .c-brush {
    -webkit-mask-position: 0 0;
    mask-position: 0 0
}

.p-intro__vert.is-in .char {
    opacity: 1;
    transform: none;
    filter: blur(0);
    transition: opacity .7s var(--ease-out), transform .9s var(--ease-out), filter .7s var(--ease-out);
    transition-delay: calc(var(--d, 0s) + var(--i) * .09s)
}

.p-intro__col--2 {
    --d: .75s
}

.p-intro__vert.is-in .p-intro__line {
    transform: scaleY(1);
    transition: transform 1.8s var(--ease-inout) .2s
}

.p-intro__vert.is-in .p-intro__line--2 {
    transition-delay: .9s
}

.p-intro__lead.is-in .p-intro__kakko,
.p-intro__lead.is-in .p-intro__lead-end {
    opacity: 1;
    transform: none;
    transition: opacity 1s var(--ease-out), transform 1s var(--ease-out)
}

.p-intro__lead.is-in .p-intro__kakko {
    transition-delay: .4s
}

.p-intro__lead.is-in .p-intro__lead-end {
    transition-delay: 1.3s
}

.p-intro__lead.is-in .c-brush {
    transition: -webkit-mask-position 1.6s var(--ease-inout) .5s, mask-position 1.6s var(--ease-inout) .5s
}

.p-main {
    position: relative;
    overflow: clip;
    padding: 6rem 2rem 0;
    background: transparent
}

.p-main__inner {
    z-index: 1
}

@media(min-width:768px) {
    .p-main {
        padding: 0
    }

    .p-main__inner {
        padding-top: 116rem
    }
}

.p-about {
    position: relative;
    background: none;
    padding: 4.4rem 2.4rem 4.6rem
}

.p-about__ttl {
    text-align: center;
    line-height: 1;
    font-weight: 400;
    white-space: nowrap;
    padding: .5rem 0;
    margin-top: -.5rem
}

.p-about__ttl-en {
    font-weight: 300;
    font-size: 3.2rem;
    letter-spacing: .016em
}

.p-about__ttl-ja {
    font-weight: 700;
    font-size: 1.8rem;
    margin-left: .2rem
}

.p-about__txt {
    margin-top: 2.6rem;
    font-size: 1.4rem;
    line-height: 2.4rem;
    font-feature-settings: "palt";
    letter-spacing: .03em;
    text-align: justify
}

.p-about__txt br {
    display: none
}

@media(min-width:768px) {
    .p-about {
        position: absolute;
        left: 17.19rem;
        top: 17.05rem;
        width: 109.62rem;
        height: 74.41rem;
        padding: 0
    }

    .p-about__ttl {
        position: absolute;
        left: 0;
        right: 0;
        top: 8.66rem;
        padding: 1rem 0
    }

    .p-about__ttl-en {
        font-size: 8.96rem
    }

    .p-about__ttl-ja {
        font-size: 5.21rem;
        margin: 0
    }

    .p-about__txt {
        position: absolute;
        left: 0;
        right: 0;
        width: 76rem;
        top: 31.5rem;
        margin: 0 auto;
        font-size: 1.8rem;
        line-height: 1.9;
        text-align: justify;
        letter-spacing: .04em;
        line-break: strict
    }
}

.p-about__ttl {
    overflow: hidden
}

.p-about__ttl>span {
    display: inline-block
}

.js .p-about__ttl>span {
    transform: translateY(115%)
}

.p-about.is-in .p-about__ttl>span {
    transform: none;
    transition: transform 1.3s var(--ease-out) .6s
}

.p-about.is-in .p-about__ttl-ja {
    transition-delay: .75s !important
}

.p-about__line {
    display: block;
    width: 30rem;
    height: 2px;
    margin: 1.2rem auto 0;
    background: var(--c-green);
    transform-origin: 0 50%
}

@media(min-width:768px) {
    .p-about__line {
        position: absolute;
        left: 0;
        right: 0;
        top: 21.2rem;
        width: 80rem;
        height: 3px;
        margin: 0 auto
    }
}

.js .p-about__line {
    transform: scaleX(0)
}

.p-about.is-in .p-about__line {
    transform: none;
    transition: transform 1.2s var(--ease-inout) 1s
}

.p-about {
    --lb: 1s
}

.p-secrets-head {
    position: relative;
    width: fit-content;
    margin: 3.4rem auto 2rem;
    color: var(--c-white)
}

.p-secrets-head__ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    font-size: 2rem
}

.p-secrets-head__ln {
    display: flex;
    align-items: center;
    gap: .15em;
    padding: .4em .8em;
    background: var(--c-black)
}

.p-secrets-head__ln+.p-secrets-head__ln {
    margin-top: -1px
}

.p-secrets-head__ln--2 {
    font-size: 1.15em;
    padding: .3em .7em .35em
}

.p-secrets-head__num {
    font-size: 1.25em;
    margin-right: .02em
}

.p-secrets-head__brush {
    height: 1.3em;
    width: auto;
    margin-left: .3em
}

@media(min-width:768px) {
    .p-secrets-head {
        position: absolute;
        left: 0;
        right: 0;
        top: 82rem;
        margin: 0 auto
    }

    .p-secrets-head__ttl {
        font-size: 4.8rem
    }
}

.js .p-secrets-head__ln {
    clip-path: inset(0 100% 0 0)
}

.p-secrets-head.is-in .p-secrets-head__ln {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1s var(--ease-inout)
}

.p-secrets-head.is-in .p-secrets-head__ln--2 {
    transition-delay: .35s
}

.p-secrets-head.is-in .c-brush {
    transition: -webkit-mask-position 1.6s var(--ease-inout) 1s, mask-position 1.6s var(--ease-inout) 1s
}

.p-secrets {
    --tab-h: 4.4rem;
    --tab-w: 6.8rem;
    position: relative;
    margin: 6rem -2rem 0
}

.p-secret {
    position: sticky;
    top: var(--st, 1.2rem)
}

.p-secret+.p-secret {
    margin-top: 3rem
}

.p-secret__tab {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: var(--tab-w);
    height: var(--tab-h);
    margin-left: calc(1.6rem + var(--i) * (var(--tab-w) + .1rem));
    margin-bottom: -1px;
    background: var(--card);
    color: var(--c-ink);
    text-decoration: none;
    border-radius: 1.2rem 1.2rem 0 0
}

.p-secret__tab:before,
.p-secret__tab:after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 1.2rem;
    height: 1.2rem
}

.p-secret__tab:before {
    right: 100%;
    background: radial-gradient(circle at 0 0, transparent 1.2rem, var(--card) 1.21rem)
}

.p-secret__tab:after {
    left: 100%;
    background: radial-gradient(circle at 100% 0, transparent 1.2rem, var(--card) 1.21rem)
}

.p-secret__tab-ja {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .08em
}

.p-secret__tab-num {
    font-family: var(--ff-en);
    font-weight: 500;
    font-size: 1.5rem;
    letter-spacing: .02em;
    line-height: 1
}

.p-secret__card {
    position: relative;
    background: var(--card);
    overflow: clip;
    transform-origin: 50% 0;
    border-radius: 0 1.2rem 0 0;
    transform: translateZ(0) scale(calc(1 - var(--cover, 0) * .05))
}

.p-secret__card:after {
    content: "";
    position: absolute;
    inset: 0;
    background: #1d1a19;
    opacity: calc(var(--cover, 0) * .35);
    pointer-events: none;
    z-index: 5
}

.p-secret__card-in {
    position: relative;
    padding: 3.2rem 2rem 4rem
}

.p-secret--01 {
    --card: #ddd5f0
}

.p-secret--02 {
    --card: #f5d5e2
}

.p-secret--03 {
    --card: #d4eee8
}

.p-secret--04 {
    --card: #f4eecd
}

.p-secret--05 {
    --card: #e2edb6
}

.p-secret__card-in {
    display: grid;
    gap: 2.4rem
}

.p-secret__ttl {
    position: relative;
    z-index: 2;
    display: block;
    margin: 2rem 0 0;
    padding: 1.3rem 1.3rem 1.3rem 4.6rem;
    font-weight: 600;
    font-size: 1.45rem;
    line-height: 2.3rem;
    font-feature-settings: "palt";
    word-break: auto-phrase
}

.p-secret__ttl br {
    display: none
}

.p-secret__num {
    position: absolute;
    z-index: 3;
    left: .7rem;
    top: -2.1rem;
    width: auto;
    height: 6.9rem;
    will-change: rotate
}

.p-secret__txt {
    margin-top: 1.6rem;
    font-size: 1.4rem;
    line-height: 2.5rem;
    font-feature-settings: "palt";
    letter-spacing: .03em
}

.p-secret__txt br {
    display: none
}

.p-secret__media {
    position: relative
}

.p-secret__photo {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3
}

.p-secret__photo-in img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.p-secret__photo--b {
    position: absolute;
    left: -1.2rem;
    bottom: -2.4rem;
    width: 46%;
    z-index: 1;
    box-shadow: 0 .6rem 1.6rem #2318151f
}

.p-secret--04 .p-secret__media {
    margin-bottom: 2.4rem
}

.p-secret--04 .p-secret__photo--a {
    width: 84%;
    margin-left: auto
}

@media(min-width:768px) {
    .p-secrets {
        --r: min(calc(var(--vw, 1vw) * 100 / 144), calc((100svh - 48px) / 79.6), 10px);
        --tab-h: calc(5.6 * var(--r));
        --tab-w: calc(17 * var(--r));
        width: calc(var(--vw, 1vw) * 100);
        margin: 0 0 0 calc(72rem - var(--vw, 1vw) * 50)
    }

    .p-secret+.p-secret {
        margin-top: 0
    }

    .p-secret__tab {
        margin-left: calc(50% - 72 * var(--r) + 29.5 * var(--r) + var(--i) * (var(--tab-w) + .4 * var(--r)));
        gap: calc(.8 * var(--r));
        border-radius: calc(1.6 * var(--r)) calc(1.6 * var(--r)) 0 0
    }

    .p-secret__tab:before,
    .p-secret__tab:after {
        width: calc(1.6 * var(--r));
        height: calc(1.6 * var(--r))
    }

    .p-secret__tab:before {
        background: radial-gradient(circle at 0 0, transparent calc(1.6 * var(--r)), var(--card) calc(1.6 * var(--r) + .5px))
    }

    .p-secret__tab:after {
        background: radial-gradient(circle at 100% 0, transparent calc(1.6 * var(--r)), var(--card) calc(1.6 * var(--r) + .5px))
    }

    .p-secret__tab-ja {
        font-size: calc(1.4 * var(--r))
    }

    .p-secret__tab-num {
        font-size: calc(2.4 * var(--r))
    }

    .p-secret__card {
        border-radius: calc(1.6 * var(--r)) calc(1.6 * var(--r)) 0 0
    }

    .p-secret__card-in {
        width: calc(144 * var(--r));
        height: calc(74 * var(--r));
        margin: 0 auto;
        padding: 0 calc(16 * var(--r));
        grid-template-columns: auto calc(40 * var(--r));
        justify-content: space-between;
        align-items: center;
        gap: 0 calc(6 * var(--r))
    }

    .p-secret__body {
        position: relative
    }

    .p-secret__body {
        margin-bottom: calc(10 * var(--r))
    }

    .p-secret__ttl {
        display: inline-block;
        margin: calc(6.8 * var(--r)) 0 0;
        padding: calc(1.76 * var(--r)) calc(2.56 * var(--r)) calc(1.76 * var(--r)) calc(9.9 * var(--r));
        font-size: calc(2.98 * var(--r));
        line-height: calc(4.26 * var(--r));
        white-space: nowrap;
        letter-spacing: -.03em
    }

    .p-secret__ttl br {
        display: inline
    }

    .p-secret__num {
        left: calc(1.3 * var(--r));
        top: calc(-6.8 * var(--r));
        height: calc(16.8 * var(--r))
    }

    .p-secret__txt {
        width: calc(56 * var(--r));
        margin: calc(3.2 * var(--r)) 0 0;
        font-size: max(calc(1.8 * var(--r)), 15px);
        line-height: 1.85;
        letter-spacing: .04em;
        text-align: justify;
        line-break: strict
    }

    .p-secret__photo--b {
        left: calc(-9 * var(--r));
        bottom: calc(-5 * var(--r));
        width: 50%
    }

    .p-secret--04 .p-secret__media {
        margin: calc(-4 * var(--r)) 0 0
    }

    .p-secret--04 .p-secret__photo--a {
        width: 88%
    }
}

.js .p-secret__num {
    opacity: 0;
    transform: translateY(-45%) rotate(-18deg) scale(.7);
    filter: blur(6px)
}

.p-secret__num.is-in {
    opacity: 1;
    transform: none;
    filter: blur(0);
    transition: opacity .6s var(--ease-out), transform 1.2s var(--ease-back), filter .6s var(--ease-out)
}

.p-secret__ttl {
    background: none !important;
    isolation: isolate
}

.p-secret__ttl:before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--c-white);
    transform-origin: 0 50%
}

.js .p-secret__ttl:before {
    transform: scaleX(0)
}

.js .p-secret__ttl.is-in:before {
    transform: none;
    transition: transform 1s var(--ease-inout)
}

.p-secret__ttl {
    --lb: .45s
}

.p-secret__txt {
    --lb: .3s
}

.p-intro__lead {
    --lb: 0s
}

.p-secret__photo-in {
    display: block;
    position: relative;
    overflow: hidden;
    height: 100%
}

.p-secret__photo img {
    transform: scale(1.16);
    will-change: translate
}

.js .p-secret__photo-in {
    clip-path: inset(0 100% 0 0)
}

.js .p-secret__photo img {
    transform: scale(1.45)
}

.js .p-secret .p-secret__photo.is-in .p-secret__photo-in {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.3s var(--ease-inout) .1s
}

.js .p-secret .p-secret__photo.is-in img {
    transform: scale(1.16);
    transition: transform 2s var(--ease-out) .1s
}

.js .p-secret .p-secret__photo--b.is-in .p-secret__photo-in,
.js .p-secret .p-secret__photo--b.is-in img {
    transition-delay: .35s
}

@media(prefers-reduced-motion:reduce) {

    *,
    *:before,
    *:after {
        animation: none !important;
        transition: none !important
    }

    .js [data-anim],
    .js [data-anim] *,
    .js .p-hero * {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        clip-path: none !important;
        -webkit-mask-image: none !important;
        mask-image: none !important
    }

    .js .p-secret__ttl:before,
    .js .p-about__line {
        transform: none !important
    }

    .js .p-secrets-head__ln {
        clip-path: none !important
    }

    .p-hero {
        position: relative
    }

    .js .p-hero__shade {
        opacity: 0 !important
    }

    .js .p-hero__noise {
        opacity: .45 !important
    }

    .c-loader {
        display: none !important
    }

    .c-marker {
        background-size: 100% 1.17em !important
    }
}

.ln,
.ln__in {
    display: inline
}

@media(min-width:768px) {
    .ln {
        display: block;
        overflow: hidden;
        padding: .08em 0 .14em;
        margin: -.08em 0 -.14em
    }

    .ln__in {
        display: block
    }

    .js .ln__in {
        transform: translateY(110%)
    }

    .js .is-in .ln__in {
        transform: none;
        transition: transform 1.15s var(--ease-out);
        transition-delay: calc(var(--lb, 0s) + var(--li) * 85ms)
    }
}

@media(max-width:767px) {
    .js .ln__in {
        opacity: 0
    }

    .js .is-in .ln__in {
        opacity: 1;
        transition: opacity 1s var(--ease-out);
        transition-delay: calc(var(--lb, 0s) + var(--li) * .08s)
    }

    .js .p-secret__txt.is-in .ln__in,
    .js .p-about.is-in .ln__in {
        transition-delay: var(--lb, 0s)
    }
}

.c-marker {
    transition-delay: calc(var(--lb, 0s) + .5s)
}

html:not(.js) .c-loader {
    display: none
}

html:not(.js) .c-marker {
    background-size: 100% 1.17em
}

.c-loader {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: var(--c-bg);
    display: grid;
    place-items: center;
    overflow: hidden;
    color: var(--c-ink-2);
    clip-path: inset(0 0 0 0);
    transition: clip-path 1s var(--ease-inout)
}

.c-loader__grid {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 260vmax;
    height: 260vmax;
    translate: -50% -50%;
    rotate: -9deg;
    --gc: rgba(89, 87, 87, .16);
    background-image: linear-gradient(to right, var(--gc) 1px, transparent 1px), linear-gradient(to bottom, var(--gc) 1px, transparent 1px);
    background-size: 49px 49px;
    animation: loader-grid 2.4s var(--ease-out) both
}

@keyframes loader-grid {
    0% {
        opacity: 0;
        scale: 1.08
    }

    to {
        opacity: 1;
        scale: 1
    }
}

.c-loader__inner {
    position: relative;
    width: min(42rem, 76vw);
    display: grid;
    justify-items: center;
    gap: 2.2rem
}

@media(min-width:768px) {
    .c-loader__inner {
        width: 44rem
    }
}

.c-loader__mark {
    width: 4.4rem;
    height: auto;
    animation: loader-in 1s var(--ease-out) .1s both
}

.c-loader__ttl {
    font-weight: 900;
    font-size: 3rem;
    letter-spacing: -.07em;
    line-height: 1;
    overflow: hidden;
    padding: .1em .2em
}

.c-loader__ttl span {
    display: inline-block;
    animation: loader-up 1.1s var(--ease-out) .15s both
}

.c-loader__ttl span+span {
    font-style: italic;
    animation-delay: .25s
}

@media(min-width:768px) {
    .c-loader__ttl {
        font-size: 4.8rem
    }
}

.c-loader__bar {
    width: 100%;
    height: 2px;
    background: #2318151f;
    overflow: hidden
}

.c-loader__bar-in {
    display: block;
    height: 100%;
    background: var(--c-green);
    transform: scaleX(0);
    transform-origin: 0 50%
}

.c-loader__num {
    font-family: var(--ff-en);
    font-weight: 400;
    font-size: 1.2rem;
    letter-spacing: .14em;
    font-variant-numeric: tabular-nums;
    animation: loader-in 1s var(--ease-out) .3s both
}

@keyframes loader-up {
    0% {
        transform: translateY(110%)
    }

    to {
        transform: none
    }
}

@keyframes loader-in {
    0% {
        opacity: 0;
        transform: translateY(.8rem)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.is-loader-out .c-loader {
    clip-path: inset(0 0 100% 0)
}

.is-loader-out .c-loader__inner {
    opacity: 0;
    transform: translateY(-3rem);
    transition: opacity .5s var(--ease-out), transform .9s var(--ease-inout)
}

:root {
    --c-green-l: #c9df88;
    --c-pink: #d49da3;
    --c-pink-d: #b26472;
    --c-forest: #1f523c
}

.l-wrap {
    position: relative;
    z-index: 1;
    width: calc(100% - 4rem);
    margin: 0 auto
}

@media(min-width:768px) {
    .l-wrap {
        width: 120rem
    }
}

.c-gridbg {
    position: relative;
    overflow: clip;
    background: transparent
}

.c-txt {
    font-size: 1.4rem;
    line-height: 1.9;
    letter-spacing: .04em;
    font-feature-settings: "palt";
    text-align: justify;
    line-break: strict
}

@media(min-width:768px) {
    .c-txt {
        font-size: 1.8rem
    }
}

.c-hl {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5em;
    font-weight: 500;
    font-size: 2.1rem;
    line-height: 1.35;
    letter-spacing: .06em;
    font-feature-settings: "palt"
}

.c-hl>span {
    padding: 0 .25em 0 .3em;
    margin-left: -.3em;
    background: linear-gradient(transparent 52%, var(--hl, var(--c-marker)) 52%) no-repeat 0 0 / 100% 100%
}

.c-hl--white {
    --hl: #fff
}

@media(min-width:768px) {
    .c-hl {
        font-size: 3.6rem
    }
}

.c-head {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 2.4rem;
    margin-bottom: 3rem
}

.c-head .c-tag {
    align-self: flex-end
}

@media(min-width:768px) {
    .c-head {
        flex-direction: row;
        justify-content: space-between;
        gap: 4rem;
        margin-bottom: 4rem
    }
}

.c-tag {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    font-weight: 400;
    color: #fff;
    line-height: 1;
    letter-spacing: .08em
}

.c-tag>span {
    background: var(--c-black);
    padding: .35em .7em
}

.c-tag>span+span {
    margin-top: -1px
}

.c-tag {
    font-size: 1.8rem
}

@media(min-width:768px) {
    .c-tag {
        font-size: 3rem
    }
}

h2.c-tag {
    flex-direction: row;
    align-items: center;
    margin-bottom: 4rem
}

h2.c-tag>span+span {
    margin: 0;
    padding-left: 0;
    font-size: .8em;
    align-self: stretch;
    display: flex;
    align-items: center
}

.c-label {
    display: inline-block;
    margin: 1.8rem 0 1.4rem;
    padding: .7em 1.6em .7em 1em;
    border: 2px solid var(--c-green-l);
    border-left: 0;
    font-weight: 500;
    font-size: 1.4rem;
    line-height: 1.5;
    letter-spacing: .03em;
    background: #fff
}

.c-label--dark {
    background: var(--c-black);
    color: #fff;
    border: 0;
    font-weight: 700;
    letter-spacing: .1em;
    padding: .5em 2em
}

@media(min-width:768px) {
    .c-label {
        font-size: 1.9rem
    }
}

.c-btn {
    display: inline-flex;
    align-items: center;
    gap: 1.6rem;
    margin-top: 5rem;
    padding: 1.8rem 4.4rem;
    border-radius: 99px;
    background: var(--c-green);
    color: var(--c-ink);
    font-weight: 700;
    font-size: 1.6rem;
    letter-spacing: .08em;
    text-decoration: none;
    transition: background-color .3s
}

.c-btn:hover {
    background: #c4e21a
}

@media(min-width:768px) {
    .c-btn {
        font-size: 2rem;
        padding: 2.2rem 6rem
    }
}

section.p-company,
section.c-gridbg {
    padding: 8rem 0
}

@media(min-width:768px) {

    section.p-company,
    section.c-gridbg {
        padding: 14rem 0
    }
}

.js :is(.p-company, .p-biz, .p-voice, .p-nl, .p-spots, .p-lots, .p-sch, .p-entry) [data-anim] {
    opacity: 0;
    transform: translateY(3rem)
}

:is(.p-company, .p-biz, .p-voice, .p-nl, .p-spots, .p-lots, .p-sch, .p-entry) [data-anim].is-in {
    opacity: 1;
    transform: none;
    transition: opacity 1s var(--ease-out) var(--d, 0s), transform 1.1s var(--ease-out) var(--d, 0s)
}

.c-hl.is-in>span {
    background-size: 100% 100%;
    transition: background-size 1s var(--ease-inout) .35s
}

.c-hl.is-in>span:nth-child(2) {
    transition-delay: .5s
}

.c-hl.is-in>span:nth-child(3) {
    transition-delay: .65s
}

.p-company {
    position: relative;
    overflow: clip;
    background: var(--c-green)
}

.p-company__bg-en {
    position: absolute;
    left: -.5rem;
    top: -1.6rem;
    font-weight: 900;
    font-size: 8.4rem;
    line-height: 1;
    letter-spacing: -.02em;
    color: #ffffff47;
    pointer-events: none
}

.p-company__about {
    display: grid;
    gap: 3rem
}

.p-company__logo {
    width: 24rem;
    margin-bottom: 3.2rem
}

.p-company__lead {
    margin-top: 2.4rem;
    font-size: 1.4rem;
    line-height: 2.1;
    letter-spacing: .04em;
    text-align: justify
}

.p-company__lead mark {
    background: #fff;
    padding: .15em .1em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone
}

.p-company__collage {
    width: 70%;
    margin: 0 auto
}

.p-company__num-ttl {
    margin: 3rem 0 2.4rem;
    align-items: center
}

@media(min-width:768px) {
    .p-company__bg-en {
        font-size: 22rem;
        left: 4rem;
        top: -3.4rem
    }

    .p-company__about {
        grid-template-columns: 1fr 34rem;
        gap: 8rem;
        align-items: center
    }

    .p-company__logo {
        width: 46rem
    }

    .p-company__lead {
        font-size: 1.8rem
    }

    .p-company__collage {
        width: 100%
    }

    .p-company__num-ttl {
        margin: 10rem 0 5rem;
        align-items: flex-end
    }
}

.p-nums {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
    align-items: center
}

.p-num {
    min-width: 0
}

.p-num img {
    width: 100%;
    height: auto
}

.p-num--big {
    grid-column: 1 / -1;
    width: 72%;
    justify-self: center
}

.js .p-company .p-num[data-anim] {
    transform: scale(.85)
}

.js .p-company .p-num.is-in {
    transform: none
}

@media(min-width:768px) {
    .p-nums {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 2rem 3rem
    }

    .p-num--big {
        grid-column: 1 / span 2;
        grid-row: 1;
        width: 82%
    }

    .p-num--sales,
    .p-num--no1 {
        align-self: end
    }
}

.p-awards {
    margin-top: 7rem;
    text-align: center
}

.p-awards__catch {
    display: inline-block;
    position: relative;
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: .1em
}

.p-awards__catch:before,
.p-awards__catch:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 1px;
    height: 4.4rem;
    background: var(--c-ink)
}

.p-awards__catch:before {
    left: -2.4rem;
    rotate: -30deg
}

.p-awards__catch:after {
    right: -2.4rem;
    rotate: 30deg
}

.p-awards__ttl {
    margin: .6rem 0 2.4rem;
    font-weight: 900;
    font-size: 2.4rem;
    letter-spacing: .3em
}

.p-awards__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .8rem
}

.p-awards__list li {
    background: #fff
}

.p-awards__list img {
    width: 100%
}

@media(min-width:768px) {
    .p-awards {
        margin-top: 12rem
    }

    .p-awards__catch {
        font-size: 1.8rem
    }

    .p-awards__ttl {
        font-size: 3.6rem;
        margin-bottom: 4rem
    }

    .p-awards__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.4rem
    }
}

.p-biz__sub {
    margin: 1.6rem 0 2rem;
    font-weight: 500;
    font-size: 1.6rem;
    letter-spacing: .06em
}

.p-flow {
    position: relative;
    margin: 4rem 0 6rem;
    padding-bottom: 2rem
}

.p-flow__list {
    display: flex;
    gap: .4rem
}

.p-flow__list li {
    --pc: var(--c-green-l);
    position: relative;
    flex: 1;
    height: 26rem;
    padding-top: 1.6rem;
    border-radius: 99px;
    background: var(--pc);
    writing-mode: vertical-rl;
    display: flex;
    align-items: center;
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.4;
    letter-spacing: .1em
}

.p-flow__list li:nth-child(2n) {
    --pc: var(--c-green)
}

.p-flow__list li:not(:last-child):after {
    content: "";
    position: absolute;
    right: -.8rem;
    top: 42%;
    z-index: 1;
    border-style: solid;
    border-width: .7rem 0 .7rem .9rem;
    border-color: transparent transparent transparent var(--pc)
}

.p-flow__band {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 4rem;
    padding: .9rem 0;
    border: 2px solid var(--c-green);
    border-radius: 99px;
    background: #fff;
    text-align: center;
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: .12em
}

.js .p-flow__list li {
    opacity: 0;
    transform: translateY(2rem)
}

.p-flow.is-in .p-flow__list li {
    opacity: 1;
    transform: none;
    transition: opacity .8s var(--ease-out) var(--d), transform .9s var(--ease-out) var(--d)
}

.js .p-flow__band {
    transform: scaleX(.6);
    opacity: 0
}

.p-flow.is-in .p-flow__band {
    transform: none;
    opacity: 1;
    transition: transform 1s var(--ease-out) .7s, opacity .6s .7s
}

@media(min-width:768px) {
    .p-biz__sub {
        font-size: 2.8rem;
        margin: 2.4rem 0 3.2rem
    }

    .p-flow {
        width: 104rem;
        margin: 6rem auto 10rem
    }

    .p-flow__list {
        gap: 1.2rem
    }

    .p-flow__list li {
        height: 40rem;
        padding-top: 3rem;
        font-size: 2rem
    }

    .p-flow__list li:not(:last-child):after {
        right: -1.5rem;
        border-width: 1.3rem 0 1.3rem 1.6rem
    }

    .p-flow__band {
        left: 2rem;
        right: 2rem;
        bottom: 5rem;
        padding: 1.6rem 0;
        font-size: 2.2rem
    }
}

.p-bizcards {
    display: grid;
    gap: 2rem
}

.p-bizcard {
    position: relative;
    padding-left: 4.2rem
}

.p-bizcard__cat {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    padding: 1rem .6rem;
    background: var(--c-black);
    color: #fff;
    writing-mode: vertical-rl;
    font-size: 1.6rem;
    letter-spacing: .1em
}

.p-bizcard__name {
    display: inline-block;
    position: relative;
    z-index: 1;
    padding: .4em 1.2em;
    background: var(--c-black);
    color: #fff;
    font-size: 1.15rem;
    letter-spacing: .06em
}

.p-bizcard figure {
    border: 3px solid var(--c-green);
    aspect-ratio: 16 / 8.5;
    overflow: hidden;
    margin-top: -1px
}

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

.p-bizcard__duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    background: var(--c-green)
}

@media(min-width:768px) {
    .p-bizcards {
        grid-template-columns: 1fr 1fr;
        gap: 3rem 4rem
    }

    .p-bizcard {
        padding-left: 5.4rem
    }

    .p-bizcard__cat {
        font-size: 2.4rem;
        padding: 1.4rem .8rem
    }

    .p-bizcard__name {
        font-size: 1.6rem
    }
}

.p-voice__main {
    position: relative;
    display: grid;
    gap: 2rem;
    padding: 6rem 2rem 4rem;
    background: #fff
}

.p-voice__main:after,
.p-voice__sub:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40%;
    height: 40%;
    border-left: 4px solid var(--c-green);
    border-bottom: 4px solid var(--c-green);
    pointer-events: none
}

.p-voice__ribbon {
    position: absolute;
    left: 1.6rem;
    top: -1rem;
    z-index: 2;
    padding: 1rem 1.2rem 2.4rem;
    background: var(--c-green);
    text-align: center;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1.35;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 82%, 0 100%)
}

.p-voice__ribbon b {
    font-size: 1.4em
}

.p-voice__photo {
    position: relative
}

.p-voice__photo img {
    filter: drop-shadow(1.2rem .6rem 0 var(--c-green))
}

.p-voice__main .p-voice__photo {
    width: 72%;
    margin: 0 auto
}

.p-voice__quote {
    font-weight: 500;
    font-size: 2rem;
    line-height: 1.7;
    letter-spacing: .06em
}

.p-voice__quote .c-marker {
    padding: 0
}

.p-voice__role {
    display: inline-block;
    margin-top: 2rem;
    padding: .4em .8em;
    background: var(--c-green);
    font-size: 1.2rem;
    line-height: 1.5;
    letter-spacing: .06em
}

.p-voice__name {
    display: block;
    width: fit-content;
    padding: .3em .9em;
    background: var(--c-black);
    color: #fff;
    font-size: 2rem;
    letter-spacing: .14em
}

.p-voice__main .p-voice__name {
    margin-left: auto
}

.p-voice__prof {
    margin-top: 1.6rem;
    padding-top: 1.6rem;
    border-top: 1px solid #555;
    font-size: 1.15rem;
    line-height: 1.8;
    letter-spacing: .04em;
    color: #333
}

.p-voice__subs {
    display: grid;
    gap: 3rem;
    margin-top: 3rem
}

.p-voice__sub {
    position: relative;
    display: grid;
    gap: 2rem;
    padding: 3rem 2rem;
    background: #fff
}

.p-voice__sub .p-voice__photo {
    width: 62%
}

.p-voice__sub figcaption {
    position: absolute;
    left: -1rem;
    bottom: 1rem
}

.p-voice__sub figcaption .p-voice__role {
    margin: 0;
    display: block;
    width: fit-content
}

.p-voice__sub .p-voice__name {
    font-size: 1.8rem
}

@media(min-width:768px) {
    .p-voice__main {
        grid-template-columns: 44rem 1fr;
        gap: 3rem 6rem;
        padding: 10rem 8rem 8rem
    }

    .p-voice__main .p-voice__photo {
        width: 100%
    }

    .p-voice__head {
        align-self: center
    }

    .p-voice__main .p-voice__body {
        grid-column: 1 / -1
    }

    .p-voice__ribbon {
        left: 3rem;
        font-size: 1.8rem;
        padding: 1.6rem 2rem 4rem
    }

    .p-voice__quote {
        font-size: 3.4rem
    }

    .p-voice__role {
        font-size: 1.8rem;
        margin-top: 6rem
    }

    .p-voice__name {
        font-size: 3rem
    }

    .p-voice__prof {
        font-size: 1.4rem
    }

    .p-voice__subs {
        gap: 5rem;
        margin-top: 5rem
    }

    .p-voice__sub {
        grid-template-columns: 30rem 1fr;
        gap: 6rem;
        padding: 6rem 8rem;
        align-items: center
    }

    .p-voice__sub .p-voice__photo {
        width: 100%
    }

    .p-voice__sub .p-voice__name {
        font-size: 2.6rem
    }

    .p-voice__sub figcaption .p-voice__role {
        font-size: 1.5rem
    }
}

.p-nl__map {
    margin-top: 4rem;
    background: #fff;
    box-shadow: 0 0 0 1px #23181514
}

.p-nl__map img {
    width: 100%
}

@media(min-width:768px) {
    .p-nl__map {
        width: 100rem;
        margin: 6rem auto 0
    }
}

.p-spot {
    display: grid;
    gap: 2.4rem;
    margin-top: 5rem;
    padding: 3rem 2rem;
    background: #fff
}

.p-spot__photo img {
    width: 100%
}

.p-spot__photo--stack {
    display: grid;
    gap: .6rem
}

.p-spot__logos {
    display: flex;
    align-items: center;
    gap: 2rem
}

.p-spot__komuna {
    width: 9rem
}

.p-spot__gd {
    width: 18rem
}

.p-spot__hishida {
    width: 20rem;
    margin: 2rem auto 0
}

.p-spot__awards {
    width: 26rem;
    margin-top: 2rem
}

.p-spot__tsubaki {
    width: 24rem
}

.p-spot__hub {
    width: 22rem;
    margin-bottom: 1.4rem
}

@media(min-width:768px) {
    .p-spot {
        grid-template-columns: 1fr 1fr;
        gap: 6rem;
        margin-top: 8rem;
        padding: 6rem;
        align-items: center
    }

    .p-spot--rev .p-spot__photo {
        order: -1
    }

    .p-spot__komuna {
        width: 13rem
    }

    .p-spot__gd,
    .p-spot__hishida {
        width: 26rem
    }

    .p-spot__awards {
        width: 34rem;
        margin-left: auto
    }

    .p-spot__tsubaki {
        width: 32rem
    }

    .p-spot__hub {
        width: 30rem
    }
}

.p-hotelband {
    position: relative;
    z-index: 1;
    margin-top: 6rem;
    padding: 5rem 0;
    background: var(--c-pink)
}

.p-hotelband__list {
    display: grid;
    gap: 2rem
}

.p-hcard {
    padding: 2.4rem 2rem;
    background: #fff;
    border-radius: 1.4rem
}

.p-hcard h4 {
    color: var(--c-forest);
    font-weight: 700;
    font-size: 1.6rem;
    letter-spacing: .04em
}

.p-hcard p {
    margin: .6rem 0 1.6rem;
    font-size: 1.3rem;
    line-height: 1.7
}

.p-hcard img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 1rem
}

.p-hcard--mag {
    position: relative;
    background: none;
    padding: 1rem 4rem 4rem 0
}

.p-hcard--mag img {
    width: 62%;
    aspect-ratio: auto;
    border-radius: 0;
    rotate: -3deg;
    box-shadow: 0 1rem 2rem #0000002e
}

.p-hcard__badge {
    position: absolute;
    right: 0;
    top: 30%;
    display: grid;
    place-items: center;
    width: 17rem;
    aspect-ratio: 1;
    margin: 0 !important;
    border-radius: 50%;
    background: var(--c-forest);
    color: #fff !important;
    text-align: center;
    font-weight: 700;
    font-size: 1.3rem !important;
    line-height: 1.8 !important
}

@media(min-width:768px) {
    .p-hotelband {
        margin-top: 10rem;
        padding: 8rem 0
    }

    .p-hotelband__list {
        grid-template-columns: 1fr 1fr;
        gap: 4rem
    }

    .p-hcard {
        padding: 3.6rem 4rem
    }

    .p-hcard h4 {
        font-size: 2.2rem
    }

    .p-hcard p {
        font-size: 1.6rem
    }

    .p-hcard img {
        width: 80%;
        margin: 0 auto
    }

    .p-hcard--mag img {
        width: 56%;
        margin: 0
    }

    .p-hcard__badge {
        width: 24rem;
        font-size: 1.7rem !important;
        right: 2rem
    }
}

.p-lot {
    display: grid;
    gap: 2rem;
    margin: 4rem 0 6rem;
    padding: 3rem 2rem;
    background: #fff
}

.p-lot__photo {
    position: relative
}

.p-lot__photo img {
    width: 100%
}

.p-lot__new {
    position: absolute;
    right: -1rem;
    top: -2.4rem;
    display: grid;
    place-items: center;
    align-content: center;
    width: 10rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--c-pink-d);
    color: #fff;
    font-weight: 700;
    font-size: 1.4rem;
    rotate: -10deg
}

.p-lot__new i {
    font-family: Brush Script MT, cursive;
    font-weight: 400;
    font-size: 1.8rem;
    opacity: .9
}

.p-lot__logo {
    width: 22rem
}

.p-lot__logo--s {
    width: 16rem
}

.p-lot__logos {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    flex-wrap: wrap
}

.p-lot__logos img {
    width: 15rem
}

.p-lots__ttl2 {
    margin-bottom: 2.4rem
}

@media(min-width:768px) {
    .p-lot {
        grid-template-columns: 1.5fr 1fr;
        gap: 6rem;
        align-items: center;
        padding: 5rem;
        margin: 6rem 0 10rem
    }

    .p-lot--rev .p-lot__photo {
        order: 2
    }

    .p-lot__new {
        width: 14rem;
        font-size: 2rem;
        right: -3rem;
        top: -4rem
    }

    .p-lot__new i {
        font-size: 2.6rem
    }

    .p-lot__logo {
        width: 30rem
    }

    .p-lot__logo--s {
        width: 24rem
    }

    .p-lot__logos img {
        width: 22rem
    }

    .p-lots__ttl2 {
        margin-bottom: 4rem
    }
}

.p-sch__days {
    display: grid;
    gap: 3rem;
    margin-top: 4rem
}

.p-day {
    border: 5px solid var(--c-black);
    background: #fff
}

.p-day__ttl {
    display: flex;
    align-items: baseline;
    gap: 1.2rem;
    padding: 1rem 2rem;
    background: var(--c-black);
    color: #fff;
    font-weight: 500;
    font-size: 1.4rem;
    letter-spacing: .06em
}

.p-day__ttl b {
    color: var(--c-green);
    font-weight: 900;
    font-size: 2.6rem;
    letter-spacing: .04em
}

.p-day__list {
    padding: .6rem 2rem 1.4rem
}

.p-day__list li {
    display: grid;
    grid-template-columns: 7.4rem 1fr;
    gap: 1rem;
    padding: 1.6rem 0;
    border-bottom: 2px solid var(--c-green-l)
}

.p-day__list li:last-child {
    border-bottom: 0
}

.p-day__list time {
    position: relative;
    padding-left: 1.8rem;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 1.5
}

.p-day__list time:before {
    content: "";
    position: absolute;
    left: 0;
    top: .4em;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: var(--c-green)
}

.p-day__list p {
    font-size: 1.4rem;
    line-height: 1.6;
    letter-spacing: .04em
}

.p-day__list small {
    display: block;
    margin-top: .3rem;
    font-size: 1.1rem;
    color: #777
}

@media(min-width:768px) {
    .p-sch__days {
        grid-template-columns: 1fr 1fr;
        gap: 5rem;
        margin-top: 5rem
    }

    .p-day__ttl {
        padding: 1.4rem 3rem;
        font-size: 1.8rem
    }

    .p-day__ttl b {
        font-size: 3.6rem
    }

    .p-day__list {
        padding: 1rem 3rem 2rem
    }

    .p-day__list li {
        grid-template-columns: 11rem 1fr;
        padding: 2.2rem 0
    }

    .p-day__list time,
    .p-day__list p {
        font-size: 1.8rem
    }

    .p-day__list small {
        font-size: 1.4rem
    }
}

.p-entry {
    position: relative;
    z-index: 1;
    padding: 8rem 0;
    background: var(--c-black);
    color: #fff;
    text-align: center
}

.p-entry__limit {
    font-size: 2rem;
    letter-spacing: .12em
}

.p-entry__cap {
    margin-top: 1rem;
    font-size: 1.8rem;
    letter-spacing: .06em
}

.p-entry__cap b {
    margin: 0 .1em;
    color: var(--c-green);
    font-weight: 900;
    font-size: 2.4em;
    letter-spacing: .02em
}

.p-entry__cols {
    display: grid;
    gap: 4rem;
    margin-top: 5rem
}

.p-entry__lbl {
    display: inline-block;
    margin-bottom: 1.6rem;
    padding: .4em 1.4em;
    background: var(--c-green);
    color: var(--c-ink);
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: .1em
}

.p-entry__col p {
    font-size: 1.5rem;
    line-height: 2;
    letter-spacing: .06em
}

.p-entry__price {
    font-weight: 900;
    font-size: 2em;
    letter-spacing: .02em
}

@media(min-width:768px) {
    .p-entry {
        padding: 12rem 0
    }

    .p-entry__limit {
        font-size: 3.4rem
    }

    .p-entry__cap {
        font-size: 3.6rem
    }

    .p-entry__cols {
        grid-template-columns: 1fr 1fr;
        gap: 0;
        width: 90rem;
        margin: 7rem auto 0
    }

    .p-entry__col+.p-entry__col {
        border-left: 1px solid rgba(255, 255, 255, .6)
    }

    .p-entry__lbl,
    .p-entry__col p {
        font-size: 2rem
    }
}

.p-contact {
    position: relative;
    z-index: 1;
    padding: 7rem 0 2rem;
    background: var(--c-green)
}

.p-contact__in {
    display: grid;
    gap: 3rem
}

.p-contact__tab {
    position: absolute;
    left: -2rem;
    bottom: calc(100% + 7rem);
    padding: 1rem 3rem 1rem 2rem;
    background: var(--c-green);
    border-radius: 0 2rem 0 0;
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: .06em
}

.p-contact__logo {
    width: 26rem
}

.p-contact__org {
    font-weight: 700;
    font-size: 1.8rem;
    letter-spacing: .06em
}

.p-contact__line {
    display: flex;
    gap: 1.2rem;
    margin-top: .8rem;
    font-size: 1.6rem;
    letter-spacing: .06em
}

.p-contact__line span {
    min-width: 4.4rem;
    font-family: var(--ff-en)
}

.p-contact__line a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid currentColor
}

.p-contact__copy {
    margin-top: 6rem;
    text-align: center;
    font-family: var(--ff-en);
    font-size: 1.1rem;
    letter-spacing: .08em
}

@media(min-width:768px) {
    .p-contact {
        padding: 9rem 0 3rem
    }

    .p-contact__in {
        grid-template-columns: auto auto;
        justify-content: space-between;
        align-items: center
    }

    .p-contact__tab {
        left: calc(60rem - 50vw);
        bottom: calc(100% + 9rem);
        padding: 1.6rem 6rem 1.6rem calc(50vw - 60rem);
        font-size: 2rem
    }

    .p-contact__logo {
        width: 40rem
    }

    .p-contact__org {
        font-size: 2.4rem
    }

    .p-contact__line {
        font-size: 2.2rem
    }
}

.c-fixcta {
    position: fixed;
    right: 1.4rem;
    bottom: 1.4rem;
    z-index: 50;
    display: grid;
    place-items: center;
    width: 7.2rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--c-black);
    color: #fff;
    border: 2px solid var(--c-green);
    text-align: center;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    letter-spacing: .06em;
    opacity: 0;
    visibility: hidden;
    transform: translateY(1rem);
    transition: opacity .5s, transform .5s var(--ease-out), visibility .5s
}

.is-hero-hidden .c-fixcta {
    opacity: 1;
    visibility: visible;
    transform: none
}

.is-cta-off .c-fixcta {
    opacity: 0;
    visibility: hidden
}

@media(min-width:768px) {
    .c-fixcta {
        right: 3rem;
        bottom: 3rem;
        width: 12rem;
        font-size: 1.5rem
    }
}

@media(prefers-reduced-motion:reduce) {
    .js .c-hl>span {
        background-size: 100% 100% !important
    }

    .js .p-num__chart i,
    .js .p-flow__list li,
    .js .p-flow__band {
        opacity: 1 !important;
        transform: none !important
    }
}

.p-spot__photo--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .6rem
}

.p-spot__photo--grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 2
}

.p-spot__photo--grid img:first-child {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 11
}

.p-spot__pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .6rem
}

.p-spot__pair img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover
}

.p-hcard__pic {
    position: relative;
    display: block
}

.p-hcard__plate {
    position: absolute;
    right: -1.6rem;
    bottom: -1.6rem;
    width: 34% !important;
    aspect-ratio: auto !important;
    border-radius: 0 !important;
    filter: drop-shadow(0 .6rem 1rem rgba(0, 0, 0, .2))
}

.p-lot__gd {
    width: 20rem;
    margin-bottom: 1.4rem
}

@media(min-width:768px) {
    .p-lot__gd {
        width: 26rem
    }

    .p-hcard__plate {
        right: 4%
    }
}

@media(min-width:768px) {
    .p-numfig {
        position: relative;
        aspect-ratio: 534.1 / 272.7;
        margin-top: 2rem
    }

    .p-numfig .p-company__num-ttl {
        position: absolute;
        right: 0;
        top: 5.68%;
        margin: 0;
        font-size: 4rem
    }

    .p-numfig .p-nums {
        position: static;
        display: block
    }

    .p-numfig .p-num {
        position: absolute;
        width: auto !important
    }

    .p-numfig .p-num--big {
        left: 8.688%;
        top: 0%;
        width: 31.792% !important
    }

    .p-numfig .p-num--sales {
        left: 40.142%;
        top: 15.768%;
        width: 23.741% !important
    }

    .p-numfig .p-num--no1 {
        left: 63.546%;
        top: 15.768%;
        width: 23.741% !important
    }

    .p-numfig .p-num--gd {
        left: 0%;
        top: 53.502%;
        width: 23.741% !important
    }

    .p-numfig .p-num--lots {
        left: 25.407%;
        top: 53.502%;
        width: 23.76% !important
    }

    .p-numfig .p-num--years {
        left: 50.833%;
        top: 53.502%;
        width: 23.741% !important
    }

    .p-numfig .p-num--staff {
        left: 76.24%;
        top: 53.502%;
        width: 23.76% !important
    }
}

.c-hl {
    display: block;
    line-height: 2
}

.c-hl>span {
    display: inline;
    margin: 0;
    padding: 0 .2em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    background: linear-gradient(transparent 58%, var(--hl, var(--c-marker)) 58%, var(--hl, var(--c-marker)) 92%, transparent 92%) no-repeat 0 0 / 100% 100%
}

.c-hl>span:after {
    content: "\a";
    white-space: pre
}

.c-hl>span:last-child:after {
    content: none
}

.c-hl--white>span {
    background: linear-gradient(#fff, #fff) no-repeat 0 .07em / 100% 1.25em;
    padding: 0 .3em
}

.js .c-hl>span {
    background-size: 0% 100%
}

.js .c-hl--white>span {
    background-size: 0% 1.25em
}

.c-hl.is-in>span {
    background-size: 100% 100%
}

.c-hl--white.is-in>span {
    background-size: 100% 1.25em
}

.c-head .c-hl {
    flex: 1;
    min-width: 0
}

@media(min-width:768px) {
    .c-hl {
        line-height: 1.9
    }
}

.c-tag--voice {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    font-size: 2.4rem
}

.c-tag--voice>span:first-child {
    padding: .35em .6em
}

.c-tag--voice>span+span {
    writing-mode: vertical-rl;
    font-size: .62em;
    padding: .5em .35em;
    letter-spacing: .12em;
    align-self: flex-start;
    margin-left: -1px
}

@media(min-width:768px) {
    .c-tag--voice {
        font-size: 4.4rem;
        margin-bottom: 5rem
    }
}

.p-voice__photo img {
    filter: none !important;
    width: 100%;
    height: auto
}

.p-voice__main .p-voice__name {
    margin-left: 0
}

.p-voice__main .p-voice__role {
    margin-top: 2.4rem
}

.p-voice__sub .p-voice__photo {
    width: 86%
}

@media(min-width:768px) {
    .p-voice__main {
        grid-template-columns: 46rem 1fr
    }

    .p-voice__main .p-voice__role {
        margin-top: 5rem
    }

    .p-voice__sub {
        grid-template-columns: 44rem 1fr;
        gap: 5rem;
        padding: 5rem 7rem 5rem 4rem
    }

    .p-voice__sub .p-voice__photo {
        width: 100%
    }

    .p-voice__sub figcaption {
        left: -1.4rem;
        bottom: 2rem
    }
}

.p-nl__map {
    background: none !important;
    box-shadow: none !important;
    position: relative;
    padding-top: 3rem
}

.p-nl__label {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    padding: .4em 1em;
    background: var(--c-green);
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: .08em;
    rotate: -4deg;
    transform-origin: 0 100%
}

@media(min-width:768px) {
    .p-nl__map {
        width: 110rem;
        padding-top: 5rem
    }

    .p-nl__label {
        font-size: 2.6rem;
        left: 4rem
    }
}

.p-spot__records {
    margin: 0 0 1.6rem
}

.p-spot__records img {
    width: 26rem
}

@media(min-width:768px) {
    .p-spot__records img {
        width: 40rem
    }
}

.p-hotelset {
    margin-top: 5rem;
    background: var(--c-pink)
}

.p-hotelset .p-spot--hotel {
    margin: 0
}

.p-hotelset .p-hotelband__list {
    display: grid;
    gap: 2rem;
    padding: 3rem 2rem 4rem
}

@media(min-width:768px) {
    .p-hotelset {
        margin-top: 8rem
    }

    .p-hotelset .p-hotelband__list {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        padding: 6rem
    }
}

.c-tag--voice {
    align-items: stretch
}

.c-tag--voice>span+span {
    writing-mode: horizontal-tb;
    font-size: .7em;
    padding: .35em .6em .35em 0;
    display: flex;
    align-items: center;
    letter-spacing: .08em
}

.p-spot--records .p-spot__awards {
    margin: 2.4rem auto 0
}

img.p-lot__new {
    width: 9rem;
    height: auto;
    aspect-ratio: 1;
    background: none;
    rotate: 0deg;
    display: block
}

@media(min-width:768px) {
    img.p-lot__new {
        width: 14rem
    }
}

.p-toc {
    position: relative;
    z-index: 1;
    padding: 6rem 0
}

.p-toc__box {
    position: relative;
    background: #fff;
    border: 3px solid var(--c-black);
    padding: 3rem 2rem 2.4rem
}

.p-toc__ttl {
    position: absolute;
    left: -3px;
    top: -3px;
    transform: translateY(-100%);
    display: flex;
    align-items: baseline;
    gap: .8em;
    padding: .5em 1.2em;
    background: var(--c-black);
    color: #fff;
    line-height: 1
}

.p-toc__en {
    font-family: var(--ff-en);
    font-weight: 500;
    font-size: 1.8rem;
    letter-spacing: .12em
}

.p-toc__ja {
    font-size: 1.2rem;
    letter-spacing: .1em
}

.p-toc__list {
    display: grid
}

.p-toc__list a {
    display: grid;
    grid-template-columns: 4.2rem 1fr auto;
    align-items: center;
    gap: .8rem;
    padding: 1.4rem .4rem;
    border-bottom: 2px solid var(--c-green-l);
    color: var(--c-ink);
    text-decoration: none;
    font-weight: 500;
    font-size: 1.45rem;
    line-height: 1.5;
    letter-spacing: .04em
}

.p-toc__list li:last-child a {
    border-bottom: 0
}

.p-toc__list a:after {
    content: "";
    width: .8rem;
    height: .8rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    rotate: 45deg;
    translate: 0 -.2rem
}

.p-toc__no {
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: 1.8rem;
    color: var(--c-green);
    -webkit-text-stroke: .3px var(--c-black)
}

@media(min-width:768px) {
    .p-toc {
        padding: 14rem 0 6rem
    }

    .p-toc__box {
        width: 100rem;
        margin: 0 auto;
        padding: 5rem 6rem 4rem
    }

    .p-toc__ttl {
        padding: .55em 1.4em
    }

    .p-toc__en {
        font-size: 2.8rem
    }

    .p-toc__ja {
        font-size: 1.6rem
    }

    .p-toc__list {
        grid-template-columns: 1fr 1fr;
        column-gap: 6rem
    }

    .p-toc__list li:nth-last-child(2) a {
        border-bottom: 2px solid var(--c-green-l)
    }

    .p-toc__list a {
        grid-template-columns: 6rem 1fr auto;
        padding: 2rem .4rem;
        font-size: 1.9rem
    }

    .p-toc__no {
        font-size: 2.6rem
    }
}

.p-toc .p-toc__box[data-anim] {
    transition: opacity 1s var(--ease-out), transform 1.1s var(--ease-out)
}

.js .p-toc .p-toc__box[data-anim]:not(.is-in) {
    opacity: 0;
    transform: translateY(3rem)
}

img.p-lot__new {
    top: auto;
    bottom: -2rem;
    right: -1.6rem
}

@media(min-width:768px) {
    img.p-lot__new {
        bottom: -3.4rem;
        right: -4rem
    }
}

.c-totop {
    position: fixed;
    right: 1.4rem;
    bottom: 1.4rem;
    z-index: 51;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .3rem;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    background: var(--c-green);
    color: var(--c-ink);
    text-decoration: none;
    box-shadow: 0 .4rem 1.2rem #2318152e;
    opacity: 0;
    visibility: hidden;
    transform: translateY(1rem);
    transition: opacity .5s, transform .5s var(--ease-out), visibility .5s, background-color .3s
}

.c-totop__arrow {
    width: 1rem;
    height: 1rem;
    border-left: 2px solid currentColor;
    border-top: 2px solid currentColor;
    rotate: 45deg;
    translate: 0 .2rem
}

.c-totop__txt {
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: .1em;
    line-height: 1
}

.c-totop:hover {
    background: #c4e21a
}

.is-hero-hidden .c-totop {
    opacity: 1;
    visibility: visible;
    transform: none
}

.c-fixcta {
    bottom: 7rem
}

@media(min-width:768px) {
    .c-totop {
        right: 3rem;
        bottom: 3rem;
        width: 6.4rem;
        height: 6.4rem
    }

    .c-totop__arrow {
        width: 1.2rem;
        height: 1.2rem
    }

    .c-totop__txt {
        font-size: 1.2rem
    }

    .c-fixcta {
        right: 2.2rem;
        bottom: 10.6rem
    }
}

.c-totop {
    background: #fff;
    border: 2px solid var(--c-black);
    color: var(--c-black)
}

.c-totop:hover {
    background: var(--c-green)
}

.c-tag--step {
    flex-direction: row;
    align-items: stretch
}

.c-tag--step>span+span {
    margin: 0 0 0 -1px;
    padding-left: 0
}

.p-secrets-head__ttl {
    align-items: stretch
}

.p-secrets-head__ln {
    justify-content: center
}

.p-secrets-head__ln+.p-secrets-head__ln {
    margin-top: -2px;
    padding-top: calc(.3em + 2px)
}

.c-hi {
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    vertical-align: -.25em;
    margin: 0 .08em 0 -.02em
}

.p-intro__lead-last {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: .5em;
    margin-top: 1rem
}

.p-intro__lead-last>* {
    position: static !important
}

.p-intro__brush {
    width: auto !important;
    height: 4rem
}

.p-intro__lead-end {
    font-size: inherit
}

@media(min-width:768px) {
    .p-intro__lead-last {
        position: absolute;
        left: 0;
        right: 0;
        top: 14.5rem;
        margin: 0;
        font-size: 2.47rem;
        letter-spacing: .1em
    }

    .p-intro__brush {
        height: 6.4rem
    }
}

.p-secrets-head__brush {
    height: 1.6em
}

.c-bigen {
    position: relative;
    z-index: 0;
    margin: -3rem 0 -1.4rem;
    padding: 0 1.2rem;
    color: #c4c1be;
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: 5.6rem;
    line-height: .86;
    letter-spacing: -.01em;
    text-transform: uppercase;
    pointer-events: none;
    user-select: none
}

.c-bigen+.l-wrap {
    position: relative;
    z-index: 1
}

.c-bigen--sch {
    white-space: nowrap;
    overflow: hidden;
    margin-bottom: -1.2rem
}

@media(min-width:768px) {
    .c-bigen {
        margin: -8rem 0 -4rem;
        padding: 0 2rem;
        font-size: 19rem
    }

    .c-bigen--voice {
        padding-left: 2rem
    }

    .c-bigen--sch {
        font-size: 17.4rem;
        margin-bottom: -3.4rem;
        text-align: center
    }
}

.c-bigen--voice span {
    display: block
}

.c-bigen--voice span+span {
    padding-left: 30%
}

.p-voice__ribbon {
    background: #e06e2c !important;
    color: #fff;
    outline: none
}

.p-flow__list li {
    --pc: #c9df8a;
    color: var(--c-ink)
}

.p-flow__list li:nth-child(2n) {
    --pc: var(--c-black);
    color: #fff
}

.p-bizcard__badge {
    position: absolute;
    z-index: 2;
    width: 8.4rem;
    height: auto;
    pointer-events: none
}

.p-bizcard__badge--talk {
    right: -.6rem;
    top: -2.4rem
}

.p-bizcard__badge--tour {
    right: -.6rem;
    top: -2rem;
    width: 8.8rem
}

@media(min-width:768px) {
    .p-bizcard__badge {
        width: 13rem
    }

    .p-bizcard__badge--talk {
        right: -1rem;
        top: -3.6rem
    }

    .p-bizcard__badge--tour {
        right: -2rem;
        top: -3rem;
        width: 13.6rem
    }
}

.p-tourspot {
    position: relative;
    z-index: 1;
    margin-bottom: 5rem;
    padding: 3rem 0 2.4rem;
    background: var(--c-green)
}

.p-tourspot__in {
    position: relative
}

.p-tourspot__en {
    font-family: var(--ff-en);
    font-weight: 700;
    font-size: 6.4rem;
    line-height: .9;
    letter-spacing: -.01em;
    color: var(--c-black)
}

.p-tourspot__ja {
    margin-top: .8rem;
    font-weight: 700;
    font-size: 1.8rem;
    letter-spacing: .12em
}

.p-tourspot__badge {
    position: absolute;
    right: 1.6rem;
    bottom: -4.4rem;
    display: grid;
    place-items: center;
    width: 17rem;
    height: 7rem;
    border: 2px solid var(--c-black);
    border-radius: 50%;
    background: #fff;
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 1.4;
    text-align: center;
    letter-spacing: .04em
}

.p-tourspot__badge b {
    font-family: var(--ff-latin);
    font-style: italic;
    font-size: 1.4em;
    margin-left: .1em
}

@media(min-width:768px) {
    .p-tourspot {
        margin-bottom: 10rem;
        padding: 7rem 0 4.4rem
    }

    .p-tourspot__en {
        font-size: 17rem
    }

    .p-tourspot__ja {
        margin-top: 1.6rem;
        font-size: 3.6rem
    }

    .p-tourspot__badge {
        right: 4rem;
        bottom: -5.6rem;
        width: 31rem;
        height: 13rem;
        font-size: 2.4rem;
        border-width: 3px
    }
}

section.p-sch.c-gridbg {
    padding-top: 6rem
}

.p-sch .p-sch__days {
    margin-top: 0
}

.p-day {
    border-width: 4px
}

.p-day__ttl {
    border-bottom: 0
}

.p-day__list li {
    position: relative;
    grid-template-columns: 6.4rem 1fr 10.4rem;
    align-items: start;
    gap: 1.2rem;
    border-bottom: 0;
    padding: 1.4rem 0
}

.p-day__list li:not(:last-child):after {
    content: "";
    position: absolute;
    left: 3rem;
    top: 4.4rem;
    bottom: .6rem;
    width: 1px;
    background: var(--c-black)
}

.p-day__list li:not(:last-child):before {
    content: "";
    position: absolute;
    left: 2.65rem;
    bottom: .6rem;
    width: .7rem;
    height: .7rem;
    border-right: 1px solid var(--c-black);
    border-bottom: 1px solid var(--c-black);
    rotate: 45deg;
    translate: 0 -.1rem
}

.p-day__list time {
    padding: .2rem .4rem;
    background: var(--c-green);
    text-align: center;
    font-family: var(--ff-latin);
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1.15;
    letter-spacing: .04em
}

.p-day__list time:before {
    content: none
}

.p-day__item {
    grid-column: 2
}

.p-day__list li:not(:has(.p-day__pic)) .p-day__item {
    grid-column: 2 / 4
}

.p-day__ev {
    font-weight: 500;
    font-size: 1.5rem !important;
    line-height: 1.5 !important;
    letter-spacing: .06em
}

.p-day__ev small {
    display: inline !important;
    margin-left: .8em !important;
    font-family: var(--ff-latin);
    font-weight: 600;
    font-size: .8em !important;
    color: #777
}

.p-day__note {
    margin-top: .4rem;
    font-size: 1.15rem !important;
    line-height: 1.55 !important;
    color: #555;
    letter-spacing: .03em !important
}

.p-day__latin {
    font-family: var(--ff-latin);
    font-weight: 600
}

.p-day__pic {
    grid-column: 3;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border: 1px solid var(--c-black)
}

.p-sch__note {
    margin-top: 1.4rem;
    text-align: right;
    font-size: 1.1rem;
    color: #666;
    letter-spacing: .03em
}

@media(min-width:768px) {
    section.p-sch.c-gridbg {
        padding-top: 10rem
    }

    .p-sch .p-sch__days {
        gap: 1rem;
        padding: 1rem;
        background: var(--c-black)
    }

    .p-day {
        border: 0
    }

    .p-day__ttl {
        justify-content: flex-start;
        padding: 2rem 3rem 1.6rem
    }

    .p-day__list {
        margin: 0 .8rem .8rem;
        padding: 1.6rem 3rem 2.4rem;
        background: #fff
    }

    .p-day__list li {
        grid-template-columns: 8.4rem 1fr 17.6rem;
        gap: 2rem;
        padding: 1.8rem 0;
        min-height: 10rem
    }

    .p-day__list li:not(:last-child):after {
        left: 4.2rem;
        top: 5.2rem
    }

    .p-day__list li:not(:last-child):before {
        left: 3.75rem;
        width: .9rem;
        height: .9rem
    }

    .p-day__list time {
        font-size: 1.9rem;
        padding: .2rem .4rem
    }

    .p-day__ev {
        font-size: 2rem !important
    }

    .p-day__note {
        font-size: 1.4rem !important;
        margin-top: .6rem
    }

    .p-sch__note {
        font-size: 1.3rem;
        margin-top: 1.6rem
    }

    .p-day {
        background: var(--c-black)
    }
}

.p-entry__top {
    display: grid;
    gap: 3.6rem
}

.p-entry__cap {
    line-height: 1.5
}

.p-entry__cap span {
    display: block;
    font-size: .8em
}

.p-entry__fee p {
    font-size: 1.6rem;
    line-height: 1.8;
    letter-spacing: .06em
}

.p-entry__price {
    font-size: 1.5em !important
}

.p-entry__rec {
    position: relative;
    margin-top: 5rem
}

.p-entry__star {
    display: grid;
    place-items: center;
    width: 13rem;
    height: 13rem;
    margin: 0 auto 2.4rem;
    background: var(--c-green);
    color: var(--c-ink);
    font-weight: 700;
    font-size: 1.7rem;
    line-height: 1.3;
    letter-spacing: .06em;
    clip-path: polygon(50% 0%, 59.5% 12%, 74% 6.7%, 76% 22%, 91% 25%, 85% 39.5%, 98% 50%, 85% 60.5%, 91% 75%, 76% 78%, 74% 93.3%, 59.5% 88%, 50% 100%, 40.5% 88%, 26% 93.3%, 24% 78%, 9% 75%, 15% 60.5%, 2% 50%, 15% 39.5%, 9% 25%, 24% 22%, 26% 6.7%, 40.5% 12%)
}

.p-entry__star span {
    rotate: -12deg
}

.p-entry__list {
    display: grid;
    gap: .8rem
}

.p-entry__list li {
    padding: .8em 1em;
    background: #fff;
    color: var(--c-ink);
    font-weight: 500;
    font-size: 1.35rem;
    line-height: 1.5;
    letter-spacing: .04em
}

.p-entry .c-btn {
    margin-top: 5rem
}

@media(min-width:768px) {
    .p-entry__top {
        grid-template-columns: 1fr auto;
        gap: 0;
        width: 110rem;
        margin: 0 auto;
        align-items: center
    }

    .p-entry__capwrap {
        padding-right: 6rem;
        border-right: 1px solid rgba(255, 255, 255, .7)
    }

    .p-entry__cap span {
        display: inline;
        font-size: .7em
    }

    .p-entry__fee {
        padding-left: 6rem
    }

    .p-entry__fee p {
        font-size: 2.2rem
    }

    .p-entry__rec {
        display: grid;
        grid-template-columns: 22rem 1fr;
        gap: 3rem;
        align-items: center;
        width: 110rem;
        margin: 7rem auto 0
    }

    .p-entry__star {
        width: 20rem;
        height: 20rem;
        margin: 0;
        font-size: 2.6rem
    }

    .p-entry__list {
        gap: 1.2rem
    }

    .p-entry__list li {
        font-size: 1.8rem;
        padding: .7em 1em
    }

    .p-entry .c-btn {
        margin-top: 7rem
    }
}

.p-bizcard .p-bizcard__badge {
    width: 8.4rem;
    height: auto;
    object-fit: contain
}

.p-bizcard .p-bizcard__badge--tour {
    width: 8.8rem
}

@media(min-width:768px) {
    .p-bizcard .p-bizcard__badge {
        width: 13rem
    }

    .p-bizcard .p-bizcard__badge--tour {
        width: 13.6rem
    }
}

.p-entry__cap span {
    white-space: nowrap
}

@media(min-width:768px) {
    .p-entry .p-entry__cap {
        font-size: 3.2rem
    }

    .p-entry__cap b {
        font-size: 2.2em
    }
}

@media(max-width:767px) {
    .p-tourspot__en {
        font-size: 5.6rem;
        white-space: nowrap
    }

    .c-bigen--sch {
        font-size: 4.2rem;
        text-align: center;
        margin-top: -2rem;
        padding: 0
    }

    .p-day__note br {
        display: none
    }

    .p-day__list li {
        grid-template-columns: 6.4rem 1fr 9.6rem
    }
}

.p-secret__photo--tall {
    aspect-ratio: 820 / 940;
    width: 72%;
    margin: 0 auto
}

.p-secret .p-secret__photo--tall img,
.js .p-secret .p-secret__photo--tall.is-in img {
    transform: none;
    translate: none !important
}

.js .p-secret__photo--tall img {
    transform: scale(1.12)
}

@media(min-width:768px) {
    .p-secret__photo--tall {
        width: 100%
    }
}

.p-bizcard__name--empty {
    visibility: hidden
}

.p-bizcards {
    row-gap: 3rem
}

.p-bizcard .p-bizcard__badge--talk,
.p-bizcard .p-bizcard__badge--tour {
    top: .4rem
}

@media(min-width:768px) {
    .p-bizcards {
        row-gap: 5rem
    }

    .p-bizcard .p-bizcard__badge--talk {
        top: 1rem
    }

    .p-bizcard .p-bizcard__badge--tour {
        top: .6rem
    }
}

.p-voice__main figcaption {
    position: absolute;
    left: -1rem;
    bottom: 1rem;
    z-index: 1
}

.p-voice__main figcaption .p-voice__role {
    display: block;
    width: fit-content;
    margin: 0
}

.p-voice__main figcaption .p-voice__name {
    margin: 0;
    font-size: 1.8rem
}

@media(max-width:767px) {
    .p-voice__main figcaption {
        left: -12%
    }
}

@media(min-width:768px) {
    .p-voice__main figcaption {
        left: -1.4rem;
        bottom: 2rem
    }

    .p-voice__main figcaption .p-voice__role {
        margin: 0;
        font-size: 1.5rem
    }

    .p-voice__main figcaption .p-voice__name {
        font-size: 2.6rem
    }
}

#neverland .c-head {
    flex-direction: column-reverse;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 2.4rem
}

#neverland .c-head .c-tag {
    align-self: flex-start
}

@media(min-width:768px) {
    #neverland .c-head {
        gap: 3rem
    }
}

.p-secrets-head__ttl {
    align-items: center
}

.p-secrets-head__ln--1 {
    font-size: .68em;
    padding: .5em 1em .45em
}

.p-secrets-head__ln--2 {
    font-size: 1.15em;
    padding: .3em 1em .4em
}

.p-secrets-head__ln+.p-secrets-head__ln {
    margin-top: -1px;
    padding-top: .3em
}

.p-secrets-head__ln--1 {
    padding-left: .8em;
    padding-right: .8em
}

.p-secrets-head__ln--2 {
    padding-left: 1.3em;
    padding-right: 1.3em
}

.p-tourspot {
    background: none;
    padding: 0;
    margin-bottom: 3rem
}

.p-tourspot .c-bigen {
    margin-bottom: 0
}

.p-tourspot__in {
    height: 0
}

.p-tourspot__badge {
    bottom: auto;
    top: -2.6rem;
    right: 1.6rem
}

@media(min-width:768px) {
    .p-tourspot {
        padding: 0;
        margin-bottom: 6rem
    }

    .p-tourspot .c-bigen {
        margin-bottom: 0
    }

    .p-tourspot__badge {
        top: -9rem;
        right: 4rem
    }
}

@media(max-width:767px) {
    .p-tourspot__in {
        height: auto;
        display: flex;
        justify-content: flex-end
    }

    .p-tourspot__badge {
        position: static;
        margin-top: -.6rem
    }

    .p-tourspot {
        margin-bottom: 1.6rem
    }
}

#lots .c-head {
    flex-direction: column-reverse;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 2.4rem
}

#lots .c-head .c-tag {
    align-self: flex-start
}

@media(min-width:768px) {
    #lots .c-head {
        gap: 3rem
    }
}

.p-day__list li:not(:last-child):has(time br):after {
    top: 5.8rem
}

@media(min-width:768px) {
    .p-day__list li:not(:last-child):has(time br):after {
        top: 7.2rem
    }
}

@media(max-width:767px) {
    #neverland>.l-wrap>.c-txt {
        letter-spacing: 0;
        text-align: left
    }
}

.p-spot,
.p-spot>* {
    min-width: 0
}

.p-spot__photo--grid,
.p-spot__pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start
}

.p-spot__photo--grid img,
.p-spot__pair img {
    display: block;
    min-width: 0;
    max-width: 100%;
    height: auto !important
}

.p-spot__photo--grid img:first-child {
    grid-column: 1 / -1
}

.p-spot__photo--stack>img {
    display: block;
    height: auto
}

@media(min-width:768px) {
    .p-spot {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

.p-bizcard__duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr)
}

.p-bizcard__duo img {
    min-width: 0
}

.p-hcard img,
.p-day__pic,
.p-lot__photo img {
    max-width: 100%
}

.p-hcard {
    padding: 1.8rem 2rem 2.2rem
}

.p-hcard h4 {
    margin: 0;
    line-height: 1.45
}

.p-hcard p {
    margin: .8rem 0 1.4rem
}

@media(min-width:768px) {
    .p-hcard {
        padding: 2.6rem 4rem 3.2rem
    }

    .p-hcard p {
        margin: 1rem 0 1.8rem
    }
}

.p-hcard--mag {
    padding: 1rem 4rem 4rem 0
}

@media(min-width:768px) {
    .p-numfig .p-company__num-ttl {
        top: 0
    }
}

.c-tag--voice>span:first-child {
    padding-right: .12em
}

.p-hcard:not(.p-hcard--mag) {
    text-align: center
}

.p-hcard h4,
.p-hcard p {
    text-wrap: balance
}

.c-fixcta {
    --star: polygon(50% 0%, 59.5% 12%, 74% 6.7%, 76% 22%, 91% 25%, 85% 39.5%, 98% 50%, 85% 60.5%, 91% 75%, 76% 78%, 74% 93.3%, 59.5% 88%, 50% 100%, 40.5% 88%, 26% 93.3%, 24% 78%, 9% 75%, 15% 60.5%, 2% 50%, 15% 39.5%, 9% 25%, 24% 22%, 26% 6.7%, 40.5% 12%);
    isolation: isolate;
    width: 8.4rem;
    border: 0;
    border-radius: 0;
    background: none
}

.c-fixcta:before,
.c-fixcta:after {
    content: "";
    position: absolute;
    z-index: -1;
    clip-path: var(--star)
}

.c-fixcta:before {
    inset: 0;
    background: var(--c-green)
}

.c-fixcta:after {
    inset: 3px;
    background: var(--c-black)
}

@media(min-width:768px) {
    .c-fixcta {
        width: 13.6rem
    }

    .c-fixcta:after {
        inset: 4px
    }
}

.c-fixcta {
    width: 9.6rem
}

@media(min-width:768px) {
    .c-fixcta {
        width: 15.6rem;
        font-size: 1.45rem
    }
}

.p-toc__list li:last-child a {
    border-bottom: 2px solid var(--c-green-l)
}

.c-menubtn {
    position: fixed;
    right: 1.4rem;
    top: 1.4rem;
    z-index: 70;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .5rem;
    width: 5.6rem;
    height: 5.6rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--c-black);
    color: #fff;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

.c-menubtn__bar {
    display: block;
    width: 2.2rem;
    height: 2px;
    background: currentColor;
    transition: transform .45s var(--ease-out), opacity .3s
}

.c-menubtn__txt {
    margin-top: .1rem;
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: .9rem;
    line-height: 1;
    letter-spacing: .12em;
    color: var(--c-green)
}

.is-menu-open .c-menubtn__bar:nth-child(1) {
    transform: translateY(.7rem) rotate(45deg)
}

.is-menu-open .c-menubtn__bar:nth-child(2) {
    opacity: 0
}

.is-menu-open .c-menubtn__bar:nth-child(3) {
    transform: translateY(-.7rem) rotate(-45deg)
}

.c-menubtn:focus-visible {
    outline: 3px solid var(--c-green);
    outline-offset: 3px
}

.c-gnav {
    position: fixed;
    inset: 0;
    z-index: 65;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--c-black);
    color: #fff;
    visibility: hidden;
    opacity: 0;
    clip-path: circle(0% at calc(100% - 4.2rem) 4.2rem);
    transition: clip-path .7s var(--ease-inout), opacity .3s, visibility 0s .7s
}

.is-menu-open .c-gnav {
    visibility: visible;
    opacity: 1;
    clip-path: circle(150% at calc(100% - 4.2rem) 4.2rem);
    transition: clip-path .8s var(--ease-inout), opacity .2s, visibility 0s
}

.c-gnav__in {
    width: min(100% - 4rem, 96rem);
    margin: 0 auto;
    padding: 9rem 0 6rem
}

.c-gnav__brand {
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: 2.6rem;
    line-height: 1;
    letter-spacing: .06em;
    color: var(--c-green)
}

.c-gnav__brand span {
    display: block;
    margin-top: 1rem;
    font-family: var(--ff-jp);
    font-weight: 500;
    font-size: 1.2rem;
    letter-spacing: .1em;
    color: #fff
}

.c-gnav__list {
    margin-top: 3.6rem;
    border-top: 1px solid rgba(255, 255, 255, .25)
}

.c-gnav__list a {
    display: grid;
    grid-template-columns: 4.4rem 1fr auto;
    align-items: center;
    gap: .8rem;
    padding: 1.6rem .4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    text-decoration: none;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1.5;
    letter-spacing: .06em
}

.c-gnav__list a:after {
    content: "";
    width: .8rem;
    height: .8rem;
    border-top: 2px solid var(--c-green);
    border-right: 2px solid var(--c-green);
    rotate: 45deg
}

.c-gnav__no {
    font-family: var(--ff-en);
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--c-green);
    letter-spacing: .04em
}

.c-gnav__list a:focus-visible,
.c-gnav__cta:focus-visible {
    outline: 2px solid var(--c-green);
    outline-offset: 2px
}

.c-gnav__cta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1em;
    margin-top: 4rem;
    padding: 1.6rem 2rem;
    border-radius: 99px;
    background: var(--c-green);
    color: var(--c-ink);
    text-decoration: none;
    font-weight: 700;
    font-size: 1.5rem;
    letter-spacing: .08em
}

.c-gnav__brand,
.c-gnav__list li,
.c-gnav__cta {
    opacity: 0;
    transform: translateY(1.6rem);
    transition: opacity .5s, transform .6s var(--ease-out)
}

.is-menu-open .c-gnav__brand,
.is-menu-open .c-gnav__list li,
.is-menu-open .c-gnav__cta {
    opacity: 1;
    transform: none
}

.is-menu-open .c-gnav__brand {
    transition-delay: .25s
}

.is-menu-open .c-gnav__list li:nth-child(1) {
    transition-delay: .3s
}

.is-menu-open .c-gnav__list li:nth-child(2) {
    transition-delay: .35s
}

.is-menu-open .c-gnav__list li:nth-child(3) {
    transition-delay: .4s
}

.is-menu-open .c-gnav__list li:nth-child(4) {
    transition-delay: .45s
}

.is-menu-open .c-gnav__list li:nth-child(5) {
    transition-delay: .5s
}

.is-menu-open .c-gnav__list li:nth-child(6) {
    transition-delay: .55s
}

.is-menu-open .c-gnav__list li:nth-child(7) {
    transition-delay: .6s
}

.is-menu-open .c-gnav__cta {
    transition-delay: .6.5s
}

@media(min-width:768px) {
    .c-menubtn {
        right: 3rem;
        top: 3rem;
        width: 8rem;
        height: 8rem;
        gap: .7rem
    }

    .c-menubtn__bar {
        width: 3rem
    }

    .c-menubtn__txt {
        font-size: 1.1rem
    }

    .is-menu-open .c-menubtn__bar:nth-child(1) {
        transform: translateY(.9rem) rotate(45deg)
    }

    .is-menu-open .c-menubtn__bar:nth-child(3) {
        transform: translateY(-.9rem) rotate(-45deg)
    }

    .c-gnav {
        clip-path: circle(0% at calc(100% - 7rem) 7rem)
    }

    .is-menu-open .c-gnav {
        clip-path: circle(150% at calc(100% - 7rem) 7rem)
    }

    .c-gnav__in {
        padding: 14rem 0 8rem
    }

    .c-gnav__brand {
        font-size: 5.6rem
    }

    .c-gnav__brand span {
        font-size: 1.6rem;
        margin-top: 1.6rem
    }

    .c-gnav__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 6rem;
        margin-top: 6rem;
        border-top: 0
    }

    .c-gnav__list li:nth-child(-n+2) a {
        border-top: 1px solid rgba(255, 255, 255, .25)
    }

    .c-gnav__list a {
        grid-template-columns: 6rem 1fr auto;
        padding: 2.4rem .4rem;
        font-size: 2rem
    }

    .c-gnav__no {
        font-size: 2rem
    }

    .c-gnav__cta {
        width: 48rem;
        margin: 6rem auto 0;
        padding: 2rem;
        font-size: 1.8rem
    }
}

@media(prefers-reduced-motion:reduce) {

    .c-gnav,
    .is-menu-open .c-gnav {
        clip-path: none;
        transition: opacity .2s, visibility 0s
    }

    .c-gnav__brand,
    .c-gnav__list li,
    .c-gnav__cta {
        transform: none
    }
}

html:not(.js) .c-menubtn {
    display: none
}

.p-secrets__hold {
    height: 70svh;
    list-style: none;
    pointer-events: none
}

@media(prefers-reduced-motion:reduce) {
    .p-secrets__hold {
        display: none
    }
}

.p-secrets-head__ttl {
    align-items: flex-start
}

.p-secrets-head__ln {
    justify-content: flex-start
}

@media(max-width:767px) {
    .p-secrets-head__ttl {
        font-size: 2.8rem
    }
}

.p-secrets-head__ln--2 {
    padding-left: .47em;
    padding-right: 1.6em
}

.p-secrets-head {
    margin-left: 0;
    margin-right: auto
}

@media(min-width:768px) {
    .p-secrets-head {
        left: calc(50% - 38rem);
        right: auto;
        margin: 0
    }
}

@media(max-width:767px) {
    .p-secrets-head {
        margin-left: 2.4rem
    }
}

@media(max-width:767px) {
    .p-secret__card {
        height: calc(100svh - var(--sp-st, 12px) - 12px - var(--tab-h))
    }

    .p-secret__card-in {
        height: 100%;
        grid-template-rows: auto minmax(0, 1fr);
        gap: 2rem;
        padding: 2.4rem 2rem
    }

    .p-secret__media {
        container-type: size;
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 0;
        height: 100%
    }

    .p-secret__media .p-secret__photo--a {
        width: min(100cqw, 100cqh * 4 / 3);
        margin: 0
    }

    .p-secret--04 .p-secret__media {
        margin-bottom: 2.4rem;
        height: calc(100% - 2.4rem);
        justify-content: flex-end
    }

    .p-secret--04 .p-secret__photo--a {
        width: min(84cqw, 100cqh * 4 / 3);
        margin: 0
    }

    .p-secret__media .p-secret__photo--tall {
        width: min(100cqw, 100cqh * 820 / 940)
    }
}

.p-voice__sub .p-voice__photo {
    width: 72%;
    margin: 0 auto
}

@media(min-width:768px) {
    .p-voice__sub {
        grid-template-columns: 46rem 1fr;
        padding-left: 8rem
    }

    .p-voice__sub .p-voice__photo {
        width: 100%
    }
}

section.p-nl.c-gridbg {
    padding-bottom: 2rem
}

section.p-spots.c-gridbg {
    padding-top: 4rem
}

@media(min-width:768px) {
    section.p-nl.c-gridbg {
        padding-bottom: 4rem
    }

    section.p-spots.c-gridbg {
        padding-top: 6rem
    }
}

.c-tag--voice>span:first-child {
    white-space: nowrap;
    padding: .35em .6em
}

.c-tag--voice .c-tag__ja {
    font-size: .7em;
    letter-spacing: .08em;
    margin-left: .15em
}

@media(max-width:767px) {
    .c-tag--voice {
        font-size: 2.3rem
    }
}

@media(max-width:767px) {
    .p-voice__sub figcaption {
        left: -12%;
        bottom: 1rem
    }
}

.u-ib {
    display: inline-block
}

.p-secret--05 .p-secret__media {
    margin-bottom: 2.4rem
}

.p-secret--05 .p-secret__photo--a {
    width: 84%;
    margin-right: auto
}

.p-secret--05 .p-secret__photo--b {
    left: auto;
    right: -1.2rem
}

@media(min-width:768px) {
    .p-secret--05 .p-secret__media {
        margin: calc(-4 * var(--r)) 0 0
    }

    .p-secret--05 .p-secret__photo--a {
        width: 88%
    }

    .p-secret--05 .p-secret__photo--b {
        left: auto;
        right: calc(-6 * var(--r))
    }
}

@media(max-width:767px) {
    .p-secret--05 .p-secret__media {
        height: calc(100% - 2.4rem);
        justify-content: flex-start
    }

    .p-secret--05 .p-secret__photo--a {
        width: min(84cqw, 100cqh * 4 / 3);
        margin: 0
    }
}

.p-bizcard__duo img:first-child {
    object-position: 50% 62%
}

@media(max-width:767px) {

    .p-bizcard .p-bizcard__badge--talk,
    .p-bizcard .p-bizcard__badge--tour {
        right: .2rem
    }
}

.p-entry__capwrap .p-entry__lbl {
    margin-bottom: 1rem
}

.p-entry__capnote {
    margin-top: .8rem;
    font-size: 1.1rem;
    line-height: 1.6;
    letter-spacing: .03em;
    opacity: .85
}

@media(min-width:768px) {
    .p-entry__capnote {
        font-size: 1.3rem
    }
}

.p-day__note .p-day__latin {
    white-space: nowrap
}

.p-secrets-head__ttl {
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    background: var(--c-black);
    padding: .35em .6em .4em;
    font-size: 1.9rem
}

.p-secrets-head__ln,
.p-secrets-head__ln--1,
.p-secrets-head__ln--2,
.p-secrets-head__ln+.p-secrets-head__ln {
    font-size: 1em;
    margin: 0;
    padding: 0;
    background: none
}

.p-secrets-head__ln--1 {
    margin-right: .1em
}

.p-secrets-head__num {
    font-size: 1.15em
}

.p-secrets-head__brush {
    height: 1.55em;
    margin-left: .25em
}

@media(min-width:768px) {
    .p-secrets-head__ttl {
        font-size: 3.8rem
    }
}

.js .p-secrets-head__ttl {
    clip-path: inset(0 100% 0 0)
}

.p-secrets-head.is-in .p-secrets-head__ttl {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.1s var(--ease-inout)
}

.js .p-secrets-head__ln {
    clip-path: none
}

@media(prefers-reduced-motion:reduce) {
    .js .p-secrets-head__ttl {
        clip-path: none !important
    }
}

.p-secrets-head__ttl>*,
.p-secrets-head__ln>* {
    flex-shrink: 0
}

.p-secrets-head__ln {
    flex-shrink: 0
}

@media(max-width:767px) {
    .p-secrets-head {
        margin-left: 2rem;
        max-width: calc(100% - 2rem)
    }

    .p-secrets-head__ttl {
        font-size: min(1.9rem, 4.75vw)
    }
}

@media(min-width:768px) {
    .p-main__inner {
        padding-top: 101rem
    }
}

@media(max-width:767px) {
    .p-secrets {
        margin-top: 3.2rem
    }
}

.p-bizcard__duo img:first-child {
    object-position: 50% 72%
}

.p-secrets-head__ttl {
    padding-right: 1em
}

@media(max-width:767px) {
    .p-secrets-head__ttl {
        font-size: min(1.85rem, 4.45vw)
    }
}

.c-fixcta__arrow {
    display: none
}

@media(max-width:767px) {
    .c-fixcta {
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        height: auto;
        aspect-ratio: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 1.2em;
        padding: 1.3rem 2rem calc(1.3rem + env(safe-area-inset-bottom));
        border-top: 2px solid var(--c-green);
        background: var(--c-black);
        color: var(--c-green);
        font-size: 1.5rem;
        letter-spacing: .12em;
        transform: translateY(100%)
    }

    .c-fixcta:before,
    .c-fixcta:after {
        content: none
    }

    .c-fixcta__txt br {
        display: none
    }

    .c-fixcta__arrow {
        display: inline-block;
        font-family: var(--ff-en)
    }

    .is-hero-hidden .c-fixcta {
        transform: none
    }

    .is-cta-off .c-fixcta {
        transform: translateY(100%)
    }

    .is-menu-open .c-fixcta {
        transform: translateY(100%);
        opacity: 0
    }

    .c-totop {
        bottom: calc(5.4rem + 1.2rem + env(safe-area-inset-bottom));
        transition: opacity .5s, transform .5s var(--ease-out), visibility .5s, bottom .5s var(--ease-out)
    }

    .is-cta-off .c-totop {
        bottom: 1.4rem
    }
}

@media(max-width:767px) {
    .p-secret__card {
        height: calc(100svh - var(--sp-st, 12px) - 12px - var(--tab-h) - 5.4rem - env(safe-area-inset-bottom))
    }
}

@media(max-width:767px) {
    .p-intro__lead-last {
        margin-top: -.9rem !important
    }
}

.p-day__ev small {
    display: block !important;
    margin: .2rem 0 0 !important
}

@media(max-width:767px) {
    .p-bizcard__name--empty {
        display: none
    }
}

@media(max-width:767px) {
    .p-intro__lead-txt .u-ib {
        display: block
    }
}

.p-secret__photo {
    contain: paint
}

.p-secret__photo img,
.js .p-secret__photo img,
.js .p-secret .p-secret__photo.is-in img {
    transform: none;
    transition: none;
    will-change: auto
}

@media(min-width:768px) {
    .p-secret__photo:not(.p-secret__photo--b):not(.p-secret__photo--tall) img {
        transform: scale(1.16) !important
    }
}

@media(max-width:767px) {
    .js .p-secret__photo-in {
        clip-path: none !important
    }

    .js .p-secret .p-secret__photo {
        opacity: 0;
        transform: translateY(1.6rem)
    }

    .js .p-secret .p-secret__photo.is-in {
        opacity: 1;
        transform: none;
        transition: opacity .7s ease-out, transform .8s var(--ease-out)
    }

    .js .p-secret .p-secret__photo--b.is-in {
        transition-delay: .2s
    }

    .p-secret__photo--b {
        box-shadow: 0 .4rem .8rem #2318151f
    }
}

@media(prefers-reduced-motion:reduce) {
    .js .p-secret .p-secret__photo {
        opacity: 1 !important;
        transform: none !important
    }
}

@media(max-width:767px) {
    .p-main {
        padding-top: 2.4rem
    }

    .p-about {
        padding-top: 2rem
    }
}

.p-bizcard__cat {
    box-sizing: border-box;
    width: 4.2rem;
    text-align: center;
    display: flex;
    justify-content: center
}

@media(min-width:768px) {
    .p-bizcard__cat {
        width: 5.4rem
    }
}

.p-voice__main:before,
.p-voice__sub:before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 40%;
    height: 40%;
    border-right: 4px solid var(--c-green);
    border-top: 4px solid var(--c-green);
    pointer-events: none;
    z-index: 0
}

.p-spot--records {
    margin-top: 2.4rem;
    padding-top: 5.6rem
}

@media(min-width:768px) {
    .p-spot--records {
        margin-top: 8rem;
        padding-top: 6rem
    }
}

.p-contact {
    padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 60vh 0 0 var(--c-green)
}

@media(min-width:768px) {
    .p-contact {
        padding-bottom: calc(3rem + env(safe-area-inset-bottom, 0px))
    }
}

@media(max-width:767px) {
    .p-lot {
        gap: 1.6rem
    }

    .p-lot__photo {
        order: 2;
        margin-top: .8rem
    }

    .p-lot__logos {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.2rem
    }

    .p-lot__logos img[src*=hiraya_logo] {
        order: -1;
        width: 17rem
    }

    .p-lot__txt .c-label {
        margin-top: .4rem
    }

    img.p-lot__new {
        top: -3.4rem;
        bottom: auto;
        right: -1rem;
        width: 8.4rem
    }
}

@media(min-width:768px) {
    img.p-lot__new {
        top: -4.6rem;
        bottom: auto;
        right: -4.6rem;
        width: 13rem
    }
}

.p-lot__logos img[src*=hiraya_logo] {
    order: -1
}

html.is-foot,
html.is-foot body {
    background: var(--c-green)
}

html.is-foot body:before {
    opacity: 0
}

body:before {
    transition: opacity .3s
}

.p-lot__logos .p-lot__hiraya {
    order: -1
}

@media(max-width:767px) {
    .p-lot__logos {
        gap: 2rem
    }

    .p-lot__logos .p-lot__hiraya {
        width: 17rem;
        margin: .4rem 0
    }

    .p-lot__logo {
        margin-bottom: 1.6rem
    }
}

@media(max-width:767px) {
    .c-bigen--sch {
        margin-bottom: .2rem;
        translate: 0 -.6rem
    }
}

.p-contact__logolink {
    display: inline-block;
    width: fit-content;
    transition: opacity .3s
}

.p-contact__logolink:focus-visible {
    outline: 2px solid var(--c-ink);
    outline-offset: 4px
}

@media(hover:hover) {
    .p-contact__logolink:hover {
        opacity: .7
    }
}

@media(max-width:767px) {
    .p-hero__presents span {
        padding-bottom: calc(.48 * var(--u))
    }
}