@charset "UTF-8";

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%
}

body {
    font-family: Noto Sans JP, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    font-size: var(--font-size-base);
    line-height: var(--line-height-body);
    color: #1f2937;
    background-color: #fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: Noto Sans JP, sans-serif;
    font-weight: 700;
    line-height: var(--line-height-heading)
}

p {
    margin-bottom: 1rem
}

p:last-child {
    margin-bottom: 0
}

a {
    color: #2563eb;
    text-decoration: none;
    transition: color .15s ease
}

a:hover {
    color: #1d4ed8
}

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

ul,
ol {
    list-style: none
}

button {
    font-family: inherit;
    cursor: pointer
}

:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px
}

::selection {
    background-color: #2563eb;
    color: #fff
}

.typo-display {
    font-family: var(--font-family-serif);
    font-weight: 300;
    font-size: clamp(var(--font-size-4xl), 2.146rem + .0276vw, var(--font-size-5xl));
    line-height: var(--line-height-heading);
    letter-spacing: .05em
}

.typo-h1 {
    font-family: var(--font-family-serif);
    font-weight: 300;
    font-size: clamp(var(--font-size-2xl), 1.543rem + .884vw, var(--font-size-4xl));
    line-height: var(--line-height-heading);
    letter-spacing: .04em
}

.typo-h2 {
    font-family: var(--font-family-serif);
    font-weight: 300;
    font-size: clamp(var(--font-size-2xl), 1.646rem + .0276vw, var(--font-size-3xl));
    line-height: var(--line-height-heading);
    letter-spacing: .04em
}

.typo-h3 {
    font-family: var(--font-family-serif);
    font-weight: 300;
    font-size: var(--font-size-xl);
    line-height: var(--line-height-heading);
    letter-spacing: .04em
}

.typo-h4 {
    font-family: var(--font-family-serif);
    font-weight: 300;
    font-size: var(--font-size-md);
    line-height: var(--line-height-heading);
    letter-spacing: .04em
}

.typo-h5 {
    font-family: var(--font-family-base);
    font-weight: 300;
    font-size: var(--font-size-base);
    line-height: var(--line-height-heading);
    letter-spacing: .04em
}

.typo-body-lg {
    font-family: var(--font-family-base);
    font-weight: 300;
    font-size: var(--font-size-lg);
    line-height: var(--line-height-body);
    letter-spacing: .04em
}

.typo-body-md {
    font-family: var(--font-family-base);
    font-weight: 300;
    font-size: var(--font-size-base);
    line-height: var(--line-height-body);
    letter-spacing: .04em
}

.typo-body-sm {
    font-family: var(--font-family-base);
    font-weight: 300;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-body);
    letter-spacing: .04em
}

.typo-note-lg {
    font-family: var(--font-family-base);
    font-weight: 400;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-note);
    letter-spacing: 0
}

.typo-note-md {
    font-family: var(--font-family-base);
    font-weight: 400;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-note);
    letter-spacing: 0
}

.typo-note-sm {
    font-family: var(--font-family-base);
    font-weight: 400;
    font-size: var(--font-size-2xs);
    line-height: var(--line-height-note);
    letter-spacing: 0
}

.text-ornament {
    font-family: var(--font-family-serif);
    line-height: var(--line-height-tight);
    letter-spacing: .05em
}

body {
    background-color: var(--color-primary-900);
    color: var(--color-surface-100);
    font-family: Noto Sans JP, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    font-weight: 300;
    line-height: var(--line-height-body);
    overflow-x: hidden
}

.nel-section {
    padding: var(--spacing-32) 0;
    position: relative
}

@media(min-width:768px) {
    .nel-section {
        padding: var(--spacing-60) 0
    }
}

.nel-section+.nel-section {
    margin-top: 0
}

.nel-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-6)
}

@media(min-width:768px) {
    .nel-container {
        padding: 0 var(--spacing-8)
    }
}

.nel-btn,
.nel-btn-secondary,
.nel-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    min-width: 280px;
    padding: var(--spacing-3) var(--spacing-6);
    font-family: var(--font-family-serif);
    font-weight: 500;
    letter-spacing: .15em;
    font-size: var(--font-size-lg);
    text-decoration: none;
    border: none;
    border-radius: var(--radius-4);
    cursor: pointer;
    transition: all 1.2s cubic-bezier(.4, 0, .2, 1);
    position: relative;
    overflow: hidden
}

.nel-btn:before,
.nel-btn-secondary:before,
.nel-btn-primary:before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--color-white-alpha-200), transparent);
    transition: left .8s ease
}

.nel-btn:hover:before,
.nel-btn-secondary:hover:before,
.nel-btn-primary:hover:before {
    left: 100%
}

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

    .nel-btn,
    .nel-btn-secondary,
    .nel-btn-primary {
        font-size: var(--font-size-md);
        min-height: 64px;
        min-width: 240px
    }
}

.nel-btn-primary {
    background: linear-gradient(135deg, var(--color-gold-600), var(--color-gold-500));
    color: var(--color-white);
    box-shadow: 0 4px 12px var(--color-black-alpha-100)
}

.nel-btn-primary:hover {
    background: linear-gradient(135deg, var(--color-gold-500), var(--color-gold-400));
    transform: translateY(-2px);
    box-shadow: 0 8px 30px var(--color-black-alpha-500)
}

.nel-btn-secondary {
    background: transparent;
    color: var(--color-surface-100);
    border: .5px solid var(--color-white-alpha-700)
}

.nel-btn-secondary:hover {
    background: var(--color-accent-900);
    border-color: var(--color-accent-500)
}

.nel-btn-line {
    background: #06c755;
    color: var(--color-white);
    border-color: #06c755;
}

.nel-btn-line:hover {
    background: #05b34c;
    border-color: #05b34c;
    opacity: 1;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(30px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.fade-in {
    animation: fadeInUp 1.2s ease-out
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0)
}

.text-gold {
    color: var(--color-gold-500)
}

.text-accent {
    color: var(--color-accent-500)
}

.text-muted {
    color: var(--color-muted-400)
}

.bg-dark {
    background-color: var(--color-primary-900)
}

.bg-darker {
    background-color: var(--color-primary-800)
}

.container {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem
}

.section {
    padding-top: 4rem;
    padding-bottom: 4rem
}

@media(min-width:768px) {
    .section {
        padding-top: 6rem;
        padding-bottom: 6rem
    }
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .5rem 1.5rem;
    font-size: var(--font-size-base);
    font-weight: 500;
    line-height: var(--line-height-body);
    text-decoration: none;
    border-radius: .5rem;
    cursor: pointer;
    transition: all .15s ease;
    border: none
}

.btn-primary:focus {
    outline: 2px solid #2563eb;
    outline-offset: 2px
}

.btn-primary {
    background-color: #2563eb;
    color: #fff
}

.btn-primary:hover {
    background-color: #1d4ed8
}

.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .5rem 1.5rem;
    font-size: var(--font-size-base);
    font-weight: 500;
    line-height: var(--line-height-body);
    text-decoration: none;
    border-radius: .5rem;
    cursor: pointer;
    transition: all .15s ease;
    border: none
}

.btn-secondary:focus {
    outline: 2px solid #2563eb;
    outline-offset: 2px
}

.btn-secondary {
    background-color: transparent;
    color: #2563eb;
    border: 2px solid #2563eb
}

.btn-secondary:hover {
    background-color: #2563eb;
    color: #fff
}

.text-center {
    text-align: center
}

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

.nel-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: transparent;
    transition: background .3s ease, backdrop-filter .3s ease
}

.nel-header.is-past-hero {
    background: color-mix(in oklch, var(--color-accent-900) 90%, transparent);
    backdrop-filter: blur(24px)
}

/* 下層ページ用: ヘッダー背景スペーサー */
.nel-page-spacer {
    background: var(--color-accent-900);
    height: 80px;
}

.nel-header__tagline {
    padding: var(--spacing-1) var(--spacing-4)
}

@media(min-width:768px) {
    .nel-header__tagline {
        padding: var(--spacing-1) var(--spacing-8);
        max-width: 1200px;
        margin: 0 auto
    }
}

.nel-header__tagline-text {
    margin: 0;
    font-size: var(--font-size-2xs);
    letter-spacing: .1em;
    color: var(--color-muted-400)
}

@media(min-width:768px) {
    .nel-header__tagline-text {
        font-size: var(--font-size-xs)
    }
}

.nel-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-4)
}

@media(min-width:768px) {
    .nel-header__inner {
        padding: var(--spacing-3) var(--spacing-8) var(--spacing-6);
        max-width: 1200px;
        margin: 0 auto
    }
}

.nel-header__logo {
    display: block;
    line-height: 0
}

.nel-header__logo-img {
    display: block;
    height: var(--spacing-6);
    width: auto
}

@media(min-width:768px) {
    .nel-header__logo-img {
        height: var(--spacing-8)
    }
}

.nel-header__nav {
    display: none
}

@media(min-width:768px) {
    .nel-header__nav {
        display: flex;
        align-items: center;
        gap: var(--spacing-4)
    }
}

.nel-header__menu {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    list-style: none;
    margin: 0;
    padding: 0
}

.nel-header__menu-link {
    font-family: var(--font-family-base);
    font-size: var(--font-size-sm);
    letter-spacing: .14em;
    padding: var(--spacing-3);
    color: var(--color-surface-100);
    text-decoration: none;
    transition: color .3s ease
}

.nel-header__menu-link:hover {
    color: var(--color-gold-400)
}

.nel-header__cta-wrap {
    display: flex;
    align-items: center;
    gap: var(--spacing-4)
}

.nel-header__cta {
    min-height: 48px;
    min-width: auto;
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--font-size-sm)
}

.nel-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-surface-100)
}

@media(min-width:768px) {
    .nel-header__hamburger {
        display: none
    }
}

.nel-header__hamburger-line {
    display: block;
    width: 100%;
    height: 2px;
    background: currentColor;
    transition: transform .3s ease, opacity .3s ease
}

.nel-header__hamburger.is-open .nel-header__hamburger-line:nth-child(1) {
    transform: translateY(8px) rotate(45deg)
}

.nel-header__hamburger.is-open .nel-header__hamburger-line:nth-child(2) {
    opacity: 0
}

.nel-header__hamburger.is-open .nel-header__hamburger-line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg)
}

.nel-header__overlay {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: color-mix(in oklch, var(--color-accent-900) 90%, transparent);
    backdrop-filter: blur(24px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-8);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease
}

.nel-header__overlay[hidden] {
    display: none
}

.nel-header__overlay.is-open {
    opacity: 1;
    visibility: visible
}

@media(min-width:768px) {
    .nel-header__overlay {
        display: none !important
    }
}

.nel-header__overlay-nav {
    width: 100%;
    max-width: 320px
}

.nel-header__overlay-menu {
    list-style: none;
    margin: 0 0 var(--spacing-10) 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2)
}

.nel-header__overlay-link {
    font-family: var(--font-family-base);
    font-size: var(--font-size-sm);
    letter-spacing: .14em;
    padding: var(--spacing-3);
    color: var(--color-surface-100);
    text-decoration: none;
    display: block;
    transition: color .3s ease
}

.nel-header__overlay-link:hover {
    color: var(--color-gold-400)
}

.nel-header__overlay-cta {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4)
}

.nel-header__overlay-cta-btn {
    width: 100%;
    min-width: unset
}

.nel-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: var(--spacing-36) 0 var(--spacing-24);
    background: var(--color-primary-900);
    overflow: hidden
}

.nel-hero .nel-container {
    width: 100%;
    padding: 0 var(--spacing-6)
}

.nel-hero__video-bg {
    position: absolute;
    inset: 0;
    z-index: 0
}

.nel-hero__video {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.nel-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, .4) 50%, transparent 100%)
}

@media(max-width:1023px) {
    .nel-hero__overlay {
        background: #00000080
    }
}

.nel-hero__content {
    position: relative;
    z-index: 2;
    text-align: left;
    animation: fadeInUp 1.2s ease-out
}

.nel-hero__supervision {
    margin-bottom: var(--spacing-4)
}

@media(min-width:1024px) {
    .nel-hero__supervision {
        margin-bottom: var(--spacing-6)
    }
}

.nel-hero__supervision-text {
    display: inline-block;
    padding: var(--spacing-1) var(--spacing-3);
    color: var(--color-gold-400);
    border: .5px solid var(--color-gold-600);
    border-radius: var(--radius-2);
    letter-spacing: .05em;
    font-family: "Noto Serif JP", serif;
    line-height: 1.4;
    height: fit-content
}

@media(min-width:1024px) {
    .nel-hero__supervision-text {
        font-size: var(--font-size-base);
        padding: var(--spacing-2) var(--spacing-4)
    }
}

.nel-hero__title {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-6)
}

@media(min-width:1024px) {
    .nel-hero__title {
        font-size: clamp(2.5rem, 2rem + 1.5vw, 3.5rem);
        margin-bottom: var(--spacing-8)
    }
}

@media(min-width:768px) {
    .nel-hero__br-sp {
        display: none
    }
}

.nel-hero__subtitle {
    color: var(--color-surface-200);
    margin-bottom: var(--spacing-10);
    height: fit-content
}

@media(min-width:1024px) {
    .nel-hero__subtitle {
        font-size: var(--font-size-base);
        margin-bottom: var(--spacing-12)
    }
}

.nel-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-4)
}

@media(min-width:1024px) {
    .nel-hero__actions {
        gap: var(--spacing-4)
    }
}

.nel-hero__cta-primary,
.nel-hero__cta-secondary {
    width: 100%
}

@media(min-width:1024px) {

    .nel-hero__cta-primary,
    .nel-hero__cta-secondary {
        width: auto;
        flex: 0 0 auto
    }
}

.nel-hero__cta-secondary {
    border-color: var(--color-white-alpha-700);
    background-color: var(--color-black-alpha-500)
}

.nel-hero__cta-secondary.nel-btn-line {
    background-color: #06c755;
    border-color: #06c755;
    color: var(--color-white);
}

.nel-hero__cta-tertiary {
    width: 100%;
    color: var(--color-surface-200);
    text-decoration: none;
    text-align: center;
    transition: all .3s ease;
    font-size: var(--font-size-sm)
}

.nel-hero__cta-tertiary:hover {
    color: var(--color-gold-500)
}

@media(min-width:1024px) {
    .nel-hero__cta-tertiary {
        width: auto;
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 72px;
        min-width: 280px;
        padding: var(--spacing-3) var(--spacing-6);
        font-family: var(--font-family-serif);
        font-weight: 500;
        font-size: var(--font-size-lg);
        letter-spacing: .15em;
        border: .5px solid var(--color-white-alpha-700);
        border-radius: var(--radius-4);
        background: transparent;
        color: var(--color-surface-100)
    }

    .nel-hero__cta-tertiary:hover {
        background: var(--color-accent-900);
        border-color: var(--color-accent-500);
        color: var(--color-surface-100)
    }
}

.nel-hero__bg-accent {
    position: absolute;
    top: -20%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--color-accent-900) 0%, transparent 70%);
    opacity: .15;
    pointer-events: none;
    z-index: 0;
    animation: float 8s ease-in-out infinite
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(40px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes float {

    0%,
    to {
        transform: translateY(0) rotate(0)
    }

    50% {
        transform: translateY(-20px) rotate(5deg)
    }
}

.nel-problem {
    background: var(--color-accent-900);
    padding-top: var(--spacing-40);
    padding-bottom: var(--spacing-40)
}

.nel-problem__scroll-wrap {
    margin-bottom: var(--spacing-24)
}

@media(min-width:768px) {
    .nel-problem__scroll-wrap {
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto
    }
}

.nel-problem__scroll-inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-3);
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6);
    height: fit-content
}

@media(min-width:768px) {
    .nel-problem__scroll-inner {
        gap: var(--spacing-9);
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8)
    }
}

@media(min-width:1024px) {
    .nel-problem__scroll-inner {
        grid-template-columns: repeat(3, 1fr)
    }
}

.nel-problem__header {
    max-width: 640px;
    margin: 0 auto var(--spacing-24);
    text-align: left
}

.nel-problem__heading {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-9)
}

.nel-problem__body {
    color: var(--color-muted-300);
    margin: 0;
    line-height: 2
}

.nel-problem__troubles {
    margin-bottom: 0
}

.nel-problem__subtitle {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-8);
    text-align: center
}

.nel-problem__subtitle-ornament {
    color: var(--color-muted-400);
    margin-bottom: var(--spacing-3);
    text-align: center
}

.nel-problem__grid {
    display: contents
}

.nel-problem__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--spacing-5) var(--spacing-4);
    height: 100%;
    position: relative;
    border: 1px solid var(--color-white-alpha-100);
    border-radius: var(--radius-4);
    box-shadow: 0 0 12px var(--color-white-alpha-50)
}

.nel-problem__icon {
    font-size: 40px;
    color: var(--color-accent-300);
    text-shadow: 0 0 8px var(--color-white-alpha-200);
    margin-bottom: var(--spacing-4);
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    background: var(--color-black-alpha-100);
    border-radius: var(--radius-round);
    display: inline-flex;
    align-items: center;
    justify-content: center
}

.nel-problem__card-text {
    color: var(--color-surface-100);
    margin: 0;
    text-align: center;
    line-height: 140%
}

.nel-problem__invitation {
    margin: 0 auto;
    text-align: left;
    color: var(--color-muted-300);
    line-height: 200%
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeInUp .8s ease-out forwards
}

.nel-solution {
    background: var(--color-white);
    padding: 0;
    overflow: hidden
}

@media(min-width:1024px) {
    .nel-solution__hero {
        display: grid;
        grid-template-columns: 1fr 1fr
    }
}

.nel-solution__media {
    position: relative
}

.nel-solution__video {
    width: 100%;
    aspect-ratio: 9/16;
    object-fit: cover;
    object-position: center;
    display: block
}

.nel-solution__label {
    position: absolute;
    right: var(--spacing-3);
    top: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-3)
}

.nel-solution__label-line {
    width: 1px;
    height: 48px;
    background: var(--color-white)
}

.nel-solution__label-text {
    writing-mode: vertical-rl;
    color: var(--color-white);
    letter-spacing: .15em
}

.nel-solution__content {
    padding: var(--spacing-16) var(--spacing-6);
    width: calc(100% - 16px);
    position: relative;
    margin: calc(var(--spacing-20) * -1) var(--spacing-4) 0 0;
    background: var(--color-white-alpha-800);
    backdrop-filter: blur(24px)
}

@media(min-width:1024px) {
    .nel-solution__content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: var(--spacing-24) var(--spacing-18)
    }
}

.nel-solution__logo {
    height: 32px;
    width: auto;
    margin-bottom: var(--spacing-9);
    display: block
}

.nel-solution__heading {
    color: var(--color-accent-900);
    margin-bottom: var(--spacing-9)
}

.nel-solution__body {
    color: var(--color-primary-900);
    margin: 0;
    line-height: 2
}

.nel-solution__cards {
    display: flex;
    gap: var(--spacing-6);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: var(--spacing-12) var(--spacing-6) var(--spacing-24);
    scroll-padding: var(--spacing-18) var(--spacing-6)
}

.nel-solution__cards::-webkit-scrollbar {
    display: none
}

@media(min-width:1024px) {
    .nel-solution__cards {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-12);
        overflow-x: visible;
        max-width: 1200px;
        margin: 0 auto;
        padding: var(--spacing-24) var(--spacing-12)
    }
}

.nel-solution__card {
    flex: 0 0 260px;
    scroll-snap-align: start
}

@media(min-width:1024px) {
    .nel-solution__card {
        flex: 1
    }
}

.nel-solution__card-image {
    position: relative;
    aspect-ratio: 4/3;
    background: var(--color-muted-200);
    overflow: hidden;
    margin-bottom: var(--spacing-6)
}

.nel-solution__card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.nel-solution__card-number {
    position: absolute;
    left: -4px;
    bottom: -12px;
    z-index: 1;
    font-size: var(--font-size-8xl);
    -webkit-text-stroke: 1px var(--color-accent-50);
    color: transparent;
    line-height: 1;
    mix-blend-mode: overlay
}

.nel-solution__card-title {
    color: var(--color-primary-900);
    margin-bottom: var(--spacing-3)
}

.nel-solution__card-desc {
    color: var(--color-primary-900);
    margin: 0
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeInUp .8s ease-out forwards
}

.nel-feature-heading {
    position: relative;
    text-align: left
}

.nel-feature-heading--center {
    text-align: center
}

.nel-feature-heading__ornament {
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-4);
    line-height: var(--line-height-tight)
}

.nel-feature-heading--dark .nel-feature-heading__ornament {
    color: var(--color-accent-500)
}

.nel-feature-heading--light .nel-feature-heading__ornament {
    color: var(--color-accent-900)
}

.nel-feature-heading__title {
    margin: 0;
    padding-bottom: 0;
    margin-bottom: var(--spacing-8)
}

.nel-feature-heading--underline .nel-feature-heading__title {
    padding-bottom: var(--spacing-8);
    border-bottom-width: 1px;
    border-bottom-style: solid
}

.nel-feature-heading.nel-feature-heading--underline.nel-feature-heading--dark .nel-feature-heading__title {
    border-bottom-color: var(--color-accent-500)
}

.nel-feature-heading.nel-feature-heading--underline.nel-feature-heading--light .nel-feature-heading__title {
    border-bottom-color: var(--color-primary-50)
}

.nel-feature-heading--underline .nel-feature-heading__title {
    position: relative
}

.nel-feature-heading--underline .nel-feature-heading__title:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 24px;
    height: 1px
}

.nel-feature-heading.nel-feature-heading--underline.nel-feature-heading--dark .nel-feature-heading__title:after {
    background: var(--color-accent-50)
}

.nel-feature-heading.nel-feature-heading--underline.nel-feature-heading--light .nel-feature-heading__title:after {
    background: var(--color-accent-900)
}

.nel-feature-heading--dark .nel-feature-heading__title {
    color: var(--color-white)
}

.nel-feature-heading--light .nel-feature-heading__title {
    color: var(--color-primary-900)
}

.nel-feature {
    background: var(--color-accent-900);
    position: relative;
    overflow: hidden
}

.nel-feature__container {
    position: relative
}

.nel-feature__scroll-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--spacing-6);
    scrollbar-width: none;
    -ms-overflow-style: none
}

.nel-feature__scroll-wrap::-webkit-scrollbar {
    display: none
}

@media(min-width:768px) {
    .nel-feature__scroll-wrap {
        overflow-x: visible;
        scroll-snap-type: none;
        scroll-padding-left: 0;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto
    }
}

.nel-feature__scroll-inner {
    display: flex;
    gap: var(--spacing-6);
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6);
    padding-bottom: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-feature__scroll-inner {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8);
        padding-bottom: 0
    }
}

.nel-feature__header {
    position: absolute;
    right: 8px;
    top: 0
}

.nel-feature__deco {
    position: absolute;
    top: -20px;
    left: -12px;
    z-index: 1;
    font-size: var(--font-size-8xl);
    letter-spacing: -8px;
    text-transform: uppercase;
    -webkit-text-stroke: .5px var(--color-accent-600);
    color: transparent;
    white-space: nowrap
}

.nel-feature__label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-3)
}

.nel-feature__label-line {
    width: 1px;
    height: 48px;
    background: var(--color-accent-200)
}

.nel-feature__label-text {
    writing-mode: vertical-rl;
    color: var(--color-accent-200);
    letter-spacing: .15em;
    margin: 0
}

.nel-feature__block+.nel-feature__block {
    margin-top: var(--spacing-36)
}

.nel-feature__block-header {
    max-width: 1200px;
    margin-inline: auto
}

.nel-feature__block-desc {
    color: var(--color-muted-300);
    margin-bottom: var(--spacing-18)
}

.nel-science .nel-feature__block-desc {
    margin-bottom: var(--spacing-3)
}

.nel-science .nel-feature__block-desc:last-of-type {
    margin-bottom: var(--spacing-4)
}

.nel-feature__evidence {
    margin-top: var(--spacing-8);
    margin-bottom: var(--spacing-12);
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.nel-feature__pentagon-svg {
    position: absolute;
    inset: -8px;
    width: calc(100% + 16px);
    height: calc(100% + 16px);
    z-index: 0
}

.nel-feature__pentagon-path {
    fill: none;
    stroke: var(--color-white-alpha-200);
    stroke-width: .3;
    stroke-dasharray: 212;
    stroke-dashoffset: 212;
    transition: stroke-dashoffset 2.5s ease-out;
    filter: drop-shadow(0 0 3px var(--color-white-alpha-200))
}

.nel-feature__evidence-title {
    color: var(--color-white);
    text-align: center;
    margin: 0;
    z-index: 1;
    font-size: var(--font-size-lg);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .08em;
    text-shadow: 0 0 40px var(--color-white-alpha-300), 0 0 80px var(--color-white-alpha-100)
}

@media(min-width:768px) {
    .nel-feature__evidence-title {
        font-size: var(--font-size-2xl)
    }
}

.nel-feature__benefits {
    position: absolute;
    inset: -8px;
    list-style: none;
    padding: 0;
    margin: 0;
    --pentagon-r: 36%;
    z-index: 1
}

.nel-feature__benefit-item {
    color: var(--color-white);
    font-size: var(--font-size-sm);
    font-weight: 600;
    line-height: 1.4;
    padding: var(--spacing-2);
    border: 1px solid var(--color-white-alpha-300);
    border-radius: var(--radius-round);
    width: 100px;
    height: 100px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 0 24px var(--color-white-alpha-100);
    position: absolute;
    left: calc(50% + var(--pentagon-r) * cos(var(--angle)));
    top: calc(50% - var(--pentagon-r) * sin(var(--angle)));
    transform: translate(-50%, -50%);
    background: var(--color-white-alpha-50);
    backdrop-filter: blur(4px)
}

@media(min-width:768px) {
    .nel-feature__benefit-item {
        width: 150px;
        height: 150px;
        font-size: var(--font-size-lg)
    }
}

.nel-feature__benefit-item:nth-child(1) {
    --angle: 90deg
}

.nel-feature__benefit-item:nth-child(2) {
    --angle: 162deg
}

.nel-feature__benefit-item:nth-child(3) {
    --angle: 234deg
}

.nel-feature__benefit-item:nth-child(4) {
    --angle: 306deg
}

.nel-feature__benefit-item:nth-child(5) {
    --angle: 18deg
}

/* ── nel-science: なぜ鍼灸が眠りと関係するのか ── */
.nel-science__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-8);
    margin-top: var(--spacing-12)
}

@media(min-width:768px) {
    .nel-science__cards {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-10)
    }
}

.nel-science__card {
    background: var(--color-white-alpha-50);
    border: 1px solid var(--color-white-alpha-200);
    border-radius: var(--radius-4);
    padding: var(--spacing-8) var(--spacing-6);
    backdrop-filter: blur(8px);
    transition: border-color .3s ease, box-shadow .3s ease
}

.nel-science__card:hover {
    border-color: var(--color-accent-400);
    box-shadow: 0 0 24px var(--color-white-alpha-100)
}

.nel-science__card-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-5)
}

.nel-science__card-number {
    font-size: var(--font-size-3xl);
    color: var(--color-accent-300);
    line-height: 1;
    letter-spacing: .05em;
    flex-shrink: 0
}

.nel-science__card-icon {
    font-size: 40px;
    color: var(--color-accent-300);
    width: 64px;
    height: 64px;
    background: var(--color-black-alpha-100);
    border-radius: var(--radius-round);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-shadow: 0 0 8px var(--color-white-alpha-200);
    flex-shrink: 0
}

.nel-science__card-title {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-5);
    line-height: 1.4
}

.nel-science__card-body {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3)
}

.nel-science__card-body p {
    color: var(--color-muted-300);
    margin: 0;
    line-height: 1.8
}

/* ── nel-compare-table: 比較表 ── */
.nel-compare-table {
    margin-top: var(--spacing-12)
}

.nel-compare-table__callout {
    display: block;
    font-family: var(--font-family-serif);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-gold-400);
    letter-spacing: .08em;
    margin: 0 -3em var(--spacing-2);
    white-space: nowrap;
    text-align: center
}

.nel-compare-table__wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--color-white-alpha-200) transparent
}

.nel-compare-table__table {
    width: 100%;
    min-width: 600px;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--color-white-alpha-200);
    border-radius: var(--radius-4);
    overflow: hidden
}

.nel-compare-table__th-label,
.nel-compare-table__th {
    padding: var(--spacing-4) var(--spacing-5);
    font-family: var(--font-family-base);
    font-size: var(--font-size-sm);
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--color-surface-100);
    text-align: center;
    vertical-align: bottom;
    background: var(--color-white-alpha-50);
    border-bottom: 1px solid var(--color-white-alpha-200);
    border-right: 1px solid var(--color-white-alpha-100)
}

.nel-compare-table__th:last-child {
    border-right: none
}

.nel-compare-table__th-label {
    width: 140px;
    background: transparent
}

.nel-compare-table__th--highlight {
    background: color-mix(in oklch, var(--color-accent-500) 35%, transparent);
    color: var(--color-surface-100);
    font-size: var(--font-size-base);
    border-left: 2px solid var(--color-gold-400);
    border-right: 2px solid var(--color-gold-400);
    border-top: 2px solid var(--color-gold-400)
}

.nel-compare-table__td-label,
.nel-compare-table__td {
    padding: var(--spacing-4) var(--spacing-5);
    font-family: var(--font-family-base);
    font-size: var(--font-size-sm);
    color: var(--color-muted-300);
    text-align: center;
    border-bottom: 1px solid var(--color-white-alpha-100);
    border-right: 1px solid var(--color-white-alpha-100);
    line-height: 1.6;
    vertical-align: middle
}

.nel-compare-table__td:last-child {
    border-right: none
}

.nel-compare-table__td-label {
    font-weight: 600;
    color: var(--color-surface-200);
    text-align: left;
    white-space: nowrap;
    background: var(--color-white-alpha-50)
}

.nel-compare-table__td--highlight {
    background: color-mix(in oklch, var(--color-accent-500) 15%, transparent);
    color: var(--color-accent-100);
    font-weight: 600;
    border-left: 2px solid var(--color-gold-400);
    border-right: 2px solid var(--color-gold-400)
}

tr:last-child .nel-compare-table__td--highlight {
    border-bottom: 2px solid var(--color-gold-400)
}

tr:last-child .nel-compare-table__td-label,
tr:last-child .nel-compare-table__td:not(.nel-compare-table__td--highlight) {
    border-bottom: none
}

.nel-feature__comparison {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-16);
    margin-top: var(--spacing-16)
}

@media(min-width:768px) {
    .nel-feature__comparison {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-12)
    }
}

.nel-feature__comparison-col {
    border: 1px solid var(--color-white-alpha-100);
    border-radius: var(--radius-4);
    padding: var(--spacing-12) var(--spacing-6);
    position: relative;
    background: var(--color-white)
}

.nel-feature__comparison-col--nel {
    border: 2px solid var(--color-gold-500);
    box-shadow: 0 0 24px #c5a05933, 0 0 48px #c5a0591a;
    background: linear-gradient(180deg, var(--color-gold-50) 0%, var(--color-white) 40%)
}

@media(min-width:768px) {
    .nel-feature__comparison-col--nel {
        transform: scale(1.04)
    }
}

.nel-feature__comparison-col--nel .nel-feature__comparison-heading {
    background: var(--gradation-gold);
    border-color: var(--color-gold-600)
}

.nel-feature__comparison-col--nel li:before {
    width: 6px;
    height: 6px;
    background: var(--color-gold-600);
    box-shadow: 0 0 0 4px var(--color-gold-100)
}

.nel-feature__comparison-heading {
    color: var(--color-surface-100);
    display: inline-flex;
    white-space: nowrap;
    padding: var(--spacing-3) var(--spacing-6);
    border-radius: var(--radius-round);
    background: var(--color-accent-900);
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    border: 1px solid var(--color-accent-400);
    font-family: var(--font-family-sans)
}

.nel-feature__comparison-sub {
    color: var(--color-muted-600);
    text-align: center;
    margin: 0 0 var(--spacing-6)
}

.nel-feature__comparison-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6)
}

.nel-feature__comparison-list li {
    color: var(--color-primary-800);
    padding-left: var(--spacing-5);
    position: relative
}

.nel-feature__comparison-list li:before {
    content: "";
    position: absolute;
    left: 0;
    top: .8em;
    width: 4px;
    height: 4px;
    border-radius: var(--radius-round);
    background: var(--color-accent-500)
}

.nel-feature__items {
    display: flex;
    gap: var(--spacing-8);
    padding-top: var(--spacing-12)
}

@media(min-width:768px) {
    .nel-feature__items {
        display: contents
    }
}

.nel-feature__item {
    flex: 0 0 200px;
    scroll-snap-align: start
}

@media(min-width:768px) {
    .nel-feature__item {
        flex: 1
    }
}

.nel-feature__item-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-6)
}

.nel-feature__item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    color: var(--color-accent-500);
    text-shadow: 0 0 8px rgba(255, 255, 255, .1);
    font-size: 80px;
    font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 0, "opsz" 24
}

.nel-feature__item-title {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-4);
    padding-bottom: var(--spacing-4);
    text-align: center;
    position: relative
}

.nel-feature__item-title:after {
    content: "";
    width: 24px;
    height: 1px;
    background: var(--color-accent-500);
    position: absolute;
    bottom: 0;
    left: calc(50% - 12px)
}

.nel-feature__item-desc {
    color: var(--color-muted-300);
    margin: 0
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeInUp .8s ease-out forwards
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-section-heading {
    margin-bottom: var(--spacing-12);
    text-align: center
}

.nel-section-heading--left {
    text-align: left
}

.nel-section-heading__ornament {
    font-size: var(--font-size-base);
    color: var(--color-accent-600);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-6);
    line-height: var(--line-height-tight)
}

.nel-section-heading__title {
    margin: 0 0 var(--spacing-8);
    color: var(--color-primary-900)
}

.nel-section-heading__description {
    margin: 0
}

.nel-section-heading--dark .nel-section-heading__title {
    color: var(--color-surface-100)
}

.nel-section-heading--dark .nel-section-heading__description {
    color: var(--color-muted-300)
}

.nel-section-heading:not(:has(.nel-section-heading__description)) .nel-section-heading__title {
    margin-bottom: var(--spacing-12)
}

.nel-section-heading--margin-large:not(:has(.nel-section-heading__description)) .nel-section-heading__title {
    margin-bottom: var(--spacing-12)
}

.nel-menu {
    background: var(--color-white)
}

.nel-menu__scroll-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--spacing-6);
    scroll-padding-right: var(--spacing-6);
    scrollbar-width: none;
    -ms-overflow-style: none
}

.nel-menu__scroll-wrap::-webkit-scrollbar {
    display: none
}

@media(min-width:768px) {
    .nel-menu__scroll-wrap {
        overflow-x: visible;
        scroll-snap-type: none;
        scroll-padding-left: 0;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto
    }
}

.nel-menu__scroll-inner {
    display: flex;
    gap: var(--spacing-6);
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6);
    padding-block: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-menu__scroll-inner {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-9);
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8)
    }
}

.nel-menu__list {
    display: flex;
    gap: var(--spacing-4)
}

@media(min-width:768px) {
    .nel-menu__list {
        display: contents
    }
}

.nel-menu__card {
    flex: 0 0 320px;
    scroll-snap-align: start;
    position: relative;
    padding: var(--spacing-10) var(--spacing-6) var(--spacing-8);
    box-shadow: 0 8px 24px -4px var(--color-black-alpha-50);
    border: .5px solid var(--color-black-alpha-50)
}

@media(min-width:768px) {
    .nel-menu__card {
        flex: none
    }
}

/* トライアルコース: ゴールド枠線 */
.nel-menu__card--trial {
    border: 2px solid var(--color-gold-500);
    box-shadow: 0 8px 24px -4px var(--color-black-alpha-50), 0 0 24px #c5a05933;
}

.nel-menu__card-label {
    position: absolute;
    top: 0;
    left: 0;
    background: var(--color-accent-900);
    color: var(--color-surface-100);
    padding: var(--spacing-1) var(--spacing-2)
}

.nel-menu__card-name {
    color: var(--color-primary-900);
    margin: 0 0 var(--spacing-2)
}

.nel-menu__card-tags {
    color: var(--color-muted-500);
    font-size: var(--font-size-2xs);
    margin: 0 0 var(--spacing-4);
    letter-spacing: .04em;
}

.nel-menu__card-first-price {
    color: var(--color-accent-600);
    font-size: var(--font-size-sm);
    font-weight: 600;
    margin: var(--spacing-1) 0 var(--spacing-6);
}

.nel-menu__card-price-line {
    margin: 0 0 var(--spacing-6);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 var(--spacing-1);
    color: var(--color-primary-800)
}

.nel-menu__card-price {
    font-size: var(--font-size-xl);
    color: var(--color-primary-900)
}

.nel-menu__card-tax {
    font-size: var(--font-size-xs)
}

.nel-menu__card-slash {
    margin: 0 var(--spacing-1);
    font-size: var(--font-size-base)
}

.nel-menu__card-duration {
    font-size: var(--font-size-base);
    color: var(--color-primary-900)
}

.nel-menu__card-treatments {
    border-top: .5px solid var(--color-black-alpha-100);
    padding-top: var(--spacing-6);
    position: relative
}

.nel-menu__card-treatments:after {
    content: "";
    width: 16px;
    height: 1px;
    background: var(--color-accent-900);
    position: absolute;
    left: 0;
    top: -.5px
}

.nel-menu__card-treatments-title {
    color: var(--color-primary-900);
    margin: 0 0 var(--spacing-3)
}

.nel-menu__card-treatments-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.nel-menu__card-treatments-list li {
    color: var(--color-primary-900)
}

.nel-menu__card-treatments-list li:before {
    content: "・";
    margin-right: var(--spacing-1)
}

.nel-menu__cta {
    display: flex;
    flex-direction: column-reverse;
    border: .5px solid var(--color-accent-900);
    background: var(--color-white);
    box-shadow: 0 12px 32px var(--color-black-alpha-100);
    margin-top: var(--spacing-8)
}

@media(min-width:768px) {
    .nel-menu__cta {
        flex-direction: row;
        align-items: center
    }
}

.nel-menu__cta-content {
    flex: 1;
    padding: var(--spacing-8) var(--spacing-5)
}

.nel-menu__cta-ornament {
    font-size: var(--font-size-base);
    color: var(--color-accent-600);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-6);
    line-height: var(--line-height-tight)
}

.nel-menu__cta-title {
    color: var(--color-primary-900);
    margin: 0 0 var(--spacing-8)
}

.nel-menu__cta-body {
    color: var(--color-primary-900);
    margin: 0 0 var(--spacing-10);
    max-width: 640px
}

.nel-menu__cta-buttons {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    max-width: 320px
}

.nel-menu__cta-buttons a {
    text-align: center
}

.nel-menu__cta-buttons .nel-btn-secondary {
    color: var(--color-primary-900);
    border-color: var(--color-primary-300)
}

.nel-menu__cta-buttons .nel-btn-secondary:hover {
    background: var(--color-primary-50);
    border-color: var(--color-primary-500)
}

.nel-menu__cta-buttons .nel-btn-line {
    color: var(--color-white);
    border-color: #06c755;
}

.nel-menu__cta-image {
    aspect-ratio: 4/3;
    min-height: 200px;
    background: var(--color-muted-100);
    border-radius: var(--radius-4);
    flex-shrink: 0
}

@media(min-width:768px) {
    .nel-menu__cta-image {
        width: 48%;
        min-height: 280px
    }
}

.nel-menu .animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: nel-menu-fadeInUp .8s ease-out forwards
}

@keyframes nel-menu-fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-social {
    background: var(--color-accent-900);
    position: relative;
    overflow: hidden
}

.nel-social__inner {
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-social__inner {
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8)
    }
}

@media(min-width:1200px) {
    .nel-social__inner {
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto
    }
}

.nel-social__scroll-wrap {
    margin-bottom: var(--spacing-8);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--spacing-6);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch
}

.nel-social__scroll-wrap::-webkit-scrollbar {
    display: none
}

@media(min-width:768px) {
    .nel-social__scroll-wrap {
        scroll-padding-left: var(--spacing-8)
    }
}

@media(min-width:1200px) {
    .nel-social__scroll-wrap {
        scroll-padding-left: calc((100vw - 1200px) / 2 + var(--spacing-8))
    }
}

.nel-social__scroll-inner {
    display: flex;
    gap: var(--spacing-4);
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-social__scroll-inner {
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8)
    }
}

@media(min-width:1200px) {
    .nel-social__scroll-inner {
        padding-left: calc((100vw - 1200px) / 2 + var(--spacing-8))
    }
}

.nel-social__post {
    flex: 0 0 auto;
    width: 240px;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    background: transparent;
    text-decoration: none;
    color: var(--color-muted-400);
    overflow: hidden
}

.nel-social__post:hover .nel-social__post-img {
    transform: scale(1.05)
}

.nel-social__post-img-wrap {
    width: 100%;
    aspect-ratio: 3/4;
    overflow: hidden;
    background: var(--color-black-alpha-200)
}

.nel-social__post-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease
}

.nel-social__post-text {
    padding: var(--spacing-3) 0
}

.nel-social__post-caption {
    margin: 0 0 var(--spacing-1);
    font-size: var(--font-size-2xs);
    color: var(--color-accent-100);
    line-height: 1.6
}

.nel-social__post-handle {
    font-size: var(--font-size-2xs);
    color: var(--color-muted-400)
}

.nel-social__description {
    color: var(--color-accent-200);
    margin-bottom: var(--spacing-2)
}

.nel-social__follow {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    text-decoration: none;
    color: var(--color-accent-50);
    transition: color .2s ease
}

.nel-social__follow:hover {
    color: var(--color-accent-300)
}

.nel-social__follow-icon {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center
}

.nel-social__follow-icon svg {
    width: 16px;
    height: 16px
}

.nel-social__follow-handle {
    color: inherit
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: nelSocialFadeInUp .8s ease-out forwards
}

@keyframes nelSocialFadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-flow {
    background: var(--color-surface-50);
    position: relative;
    overflow: hidden;
    padding: 0
}

.nel-flow .nel-section-heading__description {
    color: var(--color-primary-900);
}

@media(min-width:768px) {
    .nel-flow {
        padding: var(--spacing-40) var(--spacing-8)
    }
}

.nel-flow__layout {
    display: flex;
    flex-direction: column
}

@media(min-width:768px) {
    .nel-flow__layout {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-12);
        max-width: 1200px;
        margin: 0 auto;
        padding: 0
    }
}

.nel-flow__content {
    padding-top: var(--spacing-24);
    padding-bottom: var(--spacing-40)
}

@media(min-width:768px) {
    .nel-flow__content {
        order: 1;
        padding-top: 0;
        padding-bottom: 0
    }
}

@media(min-width:768px) {
    .nel-flow__video {
        order: 2
    }
}

.nel-flow__video-player {
    width: 100%;
    aspect-ratio: 16/20;
    object-fit: cover;
    display: block
}

@media(min-width:768px) {
    .nel-flow__video-player {
        aspect-ratio: auto;
        height: 100%
    }
}

.nel-flow__timeline {
    max-width: 800px;
    margin: 0 auto
}

.nel-flow__step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--spacing-6);
    align-items: flex-start;
    padding-bottom: var(--spacing-18)
}

.nel-flow__step:last-child {
    padding-bottom: 0
}

@media(min-width:768px) {
    .nel-flow__step {
        gap: var(--spacing-9);
        padding-bottom: var(--spacing-24)
    }

    .nel-flow__step:last-child {
        padding-bottom: 0
    }
}

.nel-flow__step-number {
    font-size: var(--font-size-6xl);
    color: var(--color-accent-50);
    line-height: var(--line-height-tight);
    margin: 0
}

.nel-flow__step-content {
    min-width: 0
}

.nel-flow__step-title {
    color: var(--color-primary-900);
    margin: 0 0 var(--spacing-4)
}

.nel-flow__step-description {
    color: var(--color-primary-800);
    margin: 0
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: nel-flow-fadeInUp .8s ease-out forwards
}

@keyframes nel-flow-fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-faq {
    background: var(--color-accent-900);
    color: var(--color-surface-100)
}

.nel-faq__inner {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-12)
}

@media(min-width:1024px) {
    .nel-faq__inner {
        flex-direction: row;
        align-items: flex-start;
        gap: var(--spacing-20)
    }
}

.nel-faq__header {
    flex-shrink: 0;
    text-align: left
}

@media(min-width:1024px) {
    .nel-faq__header {
        width: 280px
    }
}

.nel-faq__ornament {
    font-size: var(--font-size-base);
    color: var(--color-accent-600);
    text-transform: uppercase;
    margin: 0 0 var(--spacing-6);
    line-height: var(--line-height-tight)
}

.nel-faq__title {
    color: var(--color-surface-100);
    margin: 0
}

.nel-faq__list {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden
}

.nel-faq__item[open] .nel-faq__toggle svg {
    transform: rotate(180deg)
}

.nel-faq__question {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding: 0;
    cursor: pointer;
    list-style: none;
    user-select: none
}

.nel-faq__question::-webkit-details-marker {
    display: none
}

.nel-faq__q-label {
    flex-shrink: 0;
    color: var(--color-accent-400);
    font-weight: 600;
    line-height: 1;
    width: 1.75rem;
    text-align: center;
    font-size: 28px
}

.nel-faq__question-text {
    flex: 1;
    color: var(--color-surface-100);
    min-width: 0;
    padding-block: var(--spacing-8);
    padding-right: var(--spacing-6);
    border-top: 1px solid var(--color-white-alpha-100)
}

.nel-faq__toggle {
    position: absolute;
    right: 0;
    top: var(--spacing-10);
    width: 24px;
    height: 24px;
    color: var(--color-accent-50)
}

.nel-faq__toggle svg {
    width: 100%;
    height: 100%;
    transition: transform .3s ease
}

.nel-faq__answer {
    display: flex;
    gap: var(--spacing-4);
    padding: 0 var(--spacing-6) var(--spacing-6) 0
}

.nel-faq__a-label {
    flex-shrink: 0;
    color: var(--color-surface-100);
    font-weight: 600;
    line-height: 1;
    width: 1.75rem;
    text-align: center;
    font-size: 28px
}

.nel-faq__answer p {
    flex: 1;
    color: var(--color-surface-100);
    margin: 0;
    min-width: 0
}

.nel-faq .animate-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    animation: nel-faq-fadeInUp .8s ease-out forwards
}

@keyframes nel-faq-fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-map {
    background: var(--color-white);
    padding: var(--spacing-40) 0
}

.nel-map__scroll-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--spacing-6);
    scrollbar-width: none;
    -ms-overflow-style: none
}

.nel-map__scroll-wrap::-webkit-scrollbar {
    display: none
}

@media(min-width:768px) {
    .nel-map__scroll-wrap {
        overflow-x: visible;
        scroll-snap-type: none;
        scroll-padding-left: 0;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto
    }
}

.nel-map__scroll-inner {
    display: flex;
    gap: var(--spacing-6);
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-map__scroll-inner {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-9);
        padding-left: var(--spacing-8);
        padding-right: var(--spacing-8)
    }
}

@media(min-width:1024px) {
    .nel-map__scroll-inner {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-12)
    }
}

.nel-map__list {
    display: flex;
    gap: var(--spacing-6)
}

@media(min-width:768px) {
    .nel-map__list {
        display: contents
    }
}

.nel-map__card {
    flex: 0 0 320px;
    scroll-snap-align: start;
    padding: 0;
    background: var(--color-white);
    border: .5px solid var(--color-black-alpha-50);
    box-shadow: 0 4px 16px -4px var(--color-black-alpha-50);
    display: flex;
    flex-direction: column
}

@media(min-width:768px) {
    .nel-map__card {
        flex: none
    }
}

.nel-map__card-name {
    color: var(--color-primary-900);
    padding: var(--spacing-8) var(--spacing-6)
}

.nel-map__card-details {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0 var(--spacing-6) var(--spacing-6)
}

.nel-map__card-detail {
    display: grid;
    grid-template-columns: 80px 1fr;
    row-gap: var(--spacing-2);
    column-gap: 0;
    padding-bottom: 0
}

.nel-map__card-detail:last-child {
    border-bottom: none
}

.nel-map__card-detail dt {
    color: var(--color-accent-900);
    margin: 0;
    padding-top: var(--spacing-4);
    padding-bottom: var(--spacing-4)
}

.nel-map__card-detail dd {
    margin: 0;
    padding-top: var(--spacing-4);
    padding-bottom: var(--spacing-4);
    color: var(--color-primary-900);
    border-top: 1px solid var(--color-black-alpha-100)
}

.nel-map__card-detail dd a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease
}

.nel-map__card-detail dd a:hover {
    color: var(--color-accent-600)
}

.nel-map__map-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-top: var(--spacing-2)
}

.nel-map__map-link-icon {
    flex-shrink: 0;
    width: 1.125rem;
    height: 1.125rem;
    display: inline-flex;
    color: var(--color-accent-600)
}

.nel-map__map-link-icon svg {
    width: 100%;
    height: 100%
}

.nel-map__card-map {
    margin-top: auto;
    min-height: 200px;
    background: var(--color-muted-100);
    border-radius: var(--radius-4);
    overflow: hidden
}

.nel-map__map-placeholder {
    width: 100%;
    height: 100%;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-4);
    color: var(--color-muted-500)
}

.nel-map__map-placeholder svg {
    width: 48px;
    height: 48px
}

.nel-map__map-placeholder p {
    margin: 0;
    font-size: var(--font-size-sm);
    letter-spacing: .1em
}

.nel-map .animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    animation: nel-map-fadeInUp .8s ease-out forwards
}

@keyframes nel-map-fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.nel-reservation {
    background: var(--color-accent-900)
}

.nel-reservation__form-wrap {
    max-width: 100%;
    margin: 0 auto
}

.nel-reservation__iframe {
    width: 100%;
    min-height: 2800px;
    border: none;
    border-radius: var(--radius-8);
    background: var(--color-white)
}

@media(min-width:768px) {
    .nel-reservation__iframe {
        min-height: 2300px
    }
}

.nel-reservation__placeholder {
    width: 100%;
    min-height: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-4);
    border: 1px dashed var(--color-white-alpha-300);
    border-radius: var(--radius-8);
    color: var(--color-muted-400)
}

.nel-reservation__placeholder p {
    margin: 0;
    font-size: var(--font-size-sm);
    letter-spacing: .05em
}

.nel-reservation__placeholder-icon {
    font-size: 48px
}

.nel-news {
    background: var(--color-accent-900);
    padding-top: 0
}

.nel-news__list {
    list-style: none;
    margin: 0;
    padding: 0
}

.nel-news__item {
    border-top: 1px solid var(--color-white-alpha-100)
}

.nel-news__item:last-child {
    border-bottom: 1px solid var(--color-white-alpha-100)
}

.nel-news__link {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-4);
    padding: var(--spacing-5) 0;
    text-decoration: none;
    transition: opacity .2s ease
}

.nel-news__link:hover {
    opacity: .7
}

@media(max-width:767px) {
    .nel-news__link {
        flex-wrap: wrap;
        gap: var(--spacing-2) var(--spacing-3)
    }
}

.nel-news__date {
    flex-shrink: 0;
    color: var(--color-muted-400);
    letter-spacing: .05em
}

.nel-news__category {
    flex-shrink: 0;
    color: var(--color-gold-500);
    padding: var(--spacing-0-5) var(--spacing-2);
    border: 1px solid var(--color-gold-500);
    border-radius: var(--radius-2);
    font-size: var(--font-size-2xs);
    letter-spacing: .05em;
    line-height: 1.4
}

.nel-news__title {
    color: var(--color-surface-100);
    flex: 1;
    min-width: 0
}

@media(max-width:767px) {
    .nel-news__title {
        flex-basis: 100%
    }
}

.nel-footer {
    background: var(--color-primary-900);
    color: var(--color-surface-100)
}

.nel-footer__label {
    color: var(--color-gold-500);
    letter-spacing: .3em;
    margin-bottom: var(--spacing-6);
    text-transform: uppercase
}

.nel-footer__title {
    color: var(--color-surface-100);
    text-align: center;
    margin-bottom: var(--spacing-18)
}

.nel-footer__cta {
    position: relative;
    overflow: hidden;
    padding-left: var(--spacing-6);
    padding-right: var(--spacing-6)
}

.nel-footer__cta-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.nel-footer__cta-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.15;
}

.nel-footer__cta .nel-container {
    position: relative;
    z-index: 1;
}

.nel-footer__cta-content {
    max-width: 800px;
    margin: 0 auto;
    text-align: center
}

.nel-footer__cta-title {
    color: var(--color-surface-100);
    margin-bottom: var(--spacing-9)
}

.nel-footer__cta-text {
    color: var(--color-muted-300);
    margin-bottom: var(--spacing-18)
}

.nel-footer__cta-buttons {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
    width: 100%;
    max-width: 320px;
    margin: 0 auto
}

@media(min-width:768px) {
    .nel-footer__cta-buttons {
        flex-direction: row;
        justify-content: center;
        max-width: none;
        gap: var(--spacing-4)
    }
}

.nel-footer__cta-phone-note {
    margin: var(--spacing-4) 0 0;
    color: var(--color-muted-400);
    text-align: center
}

.nel-footer__bottom {
    padding-top: var(--spacing-24);
    padding-bottom: var(--spacing-24);
    background: var(--color-primary-900);
    border-top: 1px solid var(--color-primary-700)
}

.nel-footer__bottom-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-15);
    margin-bottom: var(--spacing-15)
}

@media(min-width:768px) {
    .nel-footer__bottom-content {
        grid-template-columns: 1fr 2fr auto;
        align-items: start
    }
}

.nel-footer__brand {
    text-align: center
}

@media(min-width:768px) {
    .nel-footer__brand {
        text-align: left
    }
}

.nel-footer__brand-logo {
    height: var(--spacing-8);
    width: auto;
    display: block;
    margin-bottom: var(--spacing-3)
}

@media(max-width:767px) {
    .nel-footer__brand-logo {
        margin-left: auto;
        margin-right: auto
    }
}

.nel-footer__brand-tagline {
    color: var(--color-surface-200);
    margin: 0 0 var(--spacing-2)
}

.nel-footer__supervision {
    color: var(--color-muted-400);
    margin: 0
}

.nel-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-6) var(--spacing-9);
    justify-content: center
}

@media(min-width:768px) {
    .nel-footer__nav {
        justify-content: flex-start
    }
}

.nel-footer__nav a {
    color: var(--color-muted-300);
    text-decoration: none;
    transition: color .3s ease
}

.nel-footer__nav a:hover {
    color: var(--color-gold-400)
}

.nel-footer__social {
    display: flex;
    justify-content: center;
    gap: var(--spacing-4)
}

@media(min-width:768px) {
    .nel-footer__social {
        justify-content: flex-end
    }
}

.nel-footer__social a {
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-primary-700);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-muted-300);
    transition: all .3s ease
}

.nel-footer__social a:hover {
    border-color: var(--color-gold-600);
    color: var(--color-gold-400);
    transform: translateY(-2px)
}

.nel-footer__social a svg {
    width: 20px;
    height: 20px
}

.nel-footer__banners {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-15)
}

@media(min-width:768px) {
    .nel-footer__banners {
        flex-direction: row;
        gap: var(--spacing-6)
    }
}

.nel-footer__banner {
    display: block;
    border-radius: var(--radius-4);
    overflow: hidden;
    transition: opacity .2s ease
}

.nel-footer__banner:hover {
    opacity: .8
}

.nel-footer__banner img {
    width: 100%;
    height: auto;
    display: block
}

@media(min-width:768px) {
    .nel-footer__banner {
        flex: 1
    }
}

.nel-footer__copyright {
    text-align: center;
    padding-top: var(--spacing-12);
    border-top: 1px solid var(--color-primary-700)
}

.nel-footer__copyright p {
    color: var(--color-muted-500);
    margin: 0
}

:root {
    --color-primary-900: oklch(15% .08 264);
    --color-primary-800: oklch(20% .07 264);
    --color-primary-700: oklch(26% .06 264);
    --color-primary-600: oklch(32% .055 264);
    --color-primary-500: oklch(38% .05 264);
    --color-primary-400: oklch(48% .045 264);
    --color-primary-300: oklch(58% .04 264);
    --color-primary-200: oklch(68% .035 264);
    --color-primary-100: oklch(78% .03 264);
    --color-primary-50: oklch(88% .02 264);
    --color-primary-10: oklch(95% .01 264);
    --color-accent-900: oklch(35% .19 264);
    --color-accent-800: oklch(40% .18 264);
    --color-accent-700: oklch(45% .17 264);
    --color-accent-600: oklch(50% .16 264);
    --color-accent-500: oklch(55% .15 264);
    --color-accent-400: oklch(62% .13 264);
    --color-accent-300: oklch(70% .11 264);
    --color-accent-200: oklch(78% .09 264);
    --color-accent-100: oklch(86% .06 264);
    --color-accent-50: oklch(92% .04 264);
    --color-accent-10: oklch(97% .02 264);
    --color-gold-900: oklch(50% .11 72);
    --color-gold-800: oklch(56% .105 72);
    --color-gold-700: oklch(62% .1 72);
    --color-gold-600: oklch(68% .095 72);
    --color-gold-500: oklch(72% .09 72);
    --color-gold-400: oklch(78% .08 72);
    --color-gold-300: oklch(84% .07 72);
    --color-gold-200: oklch(88% .055 72);
    --color-gold-100: oklch(92% .04 72);
    --color-gold-50: oklch(96% .025 72);
    --color-gold-10: oklch(98% .01 72);
    --color-surface-900: oklch(65% .01 240);
    --color-surface-800: oklch(72% .008 240);
    --color-surface-700: oklch(78% .007 240);
    --color-surface-600: oklch(84% .006 240);
    --color-surface-500: oklch(88% .005 240);
    --color-surface-400: oklch(92% .004 240);
    --color-surface-300: oklch(95% .003 240);
    --color-surface-200: oklch(97% .002 240);
    --color-surface-100: oklch(98.5% .001 240);
    --color-surface-50: oklch(99.2% .0005 240);
    --color-surface-10: oklch(99.8% .0002 240);
    --color-muted-900: oklch(50% .015 235);
    --color-muted-800: oklch(58% .014 235);
    --color-muted-700: oklch(65% .013 235);
    --color-muted-600: oklch(71% .012 235);
    --color-muted-500: oklch(76% .011 235);
    --color-muted-400: oklch(81% .01 235);
    --color-muted-300: oklch(86% .008 235);
    --color-muted-200: oklch(90% .006 235);
    --color-muted-100: oklch(94% .004 235);
    --color-muted-50: oklch(97% .002 235);
    --color-muted-10: oklch(99% .001 235);
    --color-black-alpha-900: oklch(0% 0 0 / .9);
    --color-black-alpha-800: oklch(0% 0 0 / .8);
    --color-black-alpha-700: oklch(0% 0 0 / .7);
    --color-black-alpha-600: oklch(0% 0 0 / .6);
    --color-black-alpha-500: oklch(0% 0 0 / .5);
    --color-black-alpha-400: oklch(0% 0 0 / .4);
    --color-black-alpha-300: oklch(0% 0 0 / .3);
    --color-black-alpha-200: oklch(0% 0 0 / .2);
    --color-black-alpha-100: oklch(0% 0 0 / .1);
    --color-black-alpha-50: oklch(0% 0 0 / .05);
    --color-black-alpha-10: oklch(0% 0 0 / .01);
    --color-white: oklch(100% 0 0);
    --color-white-alpha-900: oklch(100% 0 0 / .9);
    --color-white-alpha-800: oklch(100% 0 0 / .8);
    --color-white-alpha-700: oklch(100% 0 0 / .7);
    --color-white-alpha-600: oklch(100% 0 0 / .6);
    --color-white-alpha-500: oklch(100% 0 0 / .5);
    --color-white-alpha-400: oklch(100% 0 0 / .4);
    --color-white-alpha-300: oklch(100% 0 0 / .3);
    --color-white-alpha-200: oklch(100% 0 0 / .2);
    --color-white-alpha-100: oklch(100% 0 0 / .1);
    --color-white-alpha-50: oklch(100% 0 0 / .05);
    --color-white-alpha-10: oklch(100% 0 0 / .01);
    --gradation-gold: linear-gradient(160deg, var(--color-gold-700), var(--color-gold-600))
}

:root {
    --spacing-0: 0;
    --spacing-0-5: .125rem;
    --spacing-1: .25rem;
    --spacing-1-5: .375rem;
    --spacing-2: .5rem;
    --spacing-3: .75rem;
    --spacing-4: 1rem;
    --spacing-4-5: 1.125rem;
    --spacing-5: 1.25rem;
    --spacing-6: 1.5rem;
    --spacing-8: 2rem;
    --spacing-9: 2.25rem;
    --spacing-10: 2.5rem;
    --spacing-12: 3rem;
    --spacing-15: 3.75rem;
    --spacing-16: 4rem;
    --spacing-18: 4.5rem;
    --spacing-20: 5rem;
    --spacing-24: 6rem;
    --spacing-30: 7.5rem;
    --spacing-32: 8rem;
    --spacing-36: 9rem;
    --spacing-40: 10rem;
    --spacing-48: 12rem;
    --spacing-60: 15rem
}

:root {
    --radius-0: 0;
    --radius-2: 2px;
    --radius-4: 4px;
    --radius-6: 6px;
    --radius-8: 8px;
    --radius-10: 10px;
    --radius-12: 12px;
    --radius-14: 14px;
    --radius-16: 16px;
    --radius-18: 18px;
    --radius-20: 20px;
    --radius-22: 22px;
    --radius-24: 24px;
    --radius-round: 9999px
}

:root {
    --font-family-base: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-family-serif: "Libre Baskerville", "Noto Serif JP", serif
}

:root {
    --font-size-2xs: .625rem;
    --font-size-xs: .75rem;
    --font-size-sm: .875rem;
    --font-size-base: 1rem;
    --font-size-md: 1.125rem;
    --font-size-lg: 1.25rem;
    --font-size-xl: 1.5rem;
    --font-size-2xl: 1.75rem;
    --font-size-3xl: 2rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 2.5rem;
    --font-size-6xl: 3rem;
    --font-size-7xl: 4.5rem;
    --font-size-8xl: 5.5rem;
    --line-height-none: 1;
    --line-height-tight: 1.2;
    --line-height-heading: 1.4;
    --line-height-note: 1.5;
    --line-height-body: 1.75;
    --line-height-loose: 2
}

.nel-sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 50;
    padding: var(--spacing-2) var(--spacing-3);
    background-color: var(--color-black-alpha-800);
    backdrop-filter: blur(12px);
    transform: translateY(100%);
    transition: transform .3s ease
}

.nel-sticky-cta.is-visible {
    transform: translateY(0)
}

.nel-sticky-cta__inner {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    max-width: 1200px;
    margin: 0 auto
}

@media(min-width:768px) {
    .nel-sticky-cta__inner {
        justify-content: center;
        gap: var(--spacing-6)
    }
}

.nel-sticky-cta__info {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    line-height: 1
}

@media(min-width:768px) {
    .nel-sticky-cta__info {
        flex-direction: row;
        align-items: baseline;
        gap: var(--spacing-2)
    }
}

.nel-sticky-cta__label {
    font-size: var(--font-size-2xs);
    color: var(--color-muted-300);
    letter-spacing: .03em;
    white-space: nowrap;
    margin-bottom: 2px
}

@media(min-width:768px) {
    .nel-sticky-cta__label {
        font-size: var(--font-size-sm);
        margin-bottom: 0
    }
}

.nel-sticky-cta__price {
    display: flex;
    align-items: baseline
}

.nel-sticky-cta__price-num {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-white)
}

@media(min-width:768px) {
    .nel-sticky-cta__price-num {
        font-size: var(--font-size-xl)
    }
}

.nel-sticky-cta__price-yen {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-white)
}

.nel-sticky-cta__price-tax {
    font-size: var(--font-size-2xs);
    color: var(--color-muted-400);
    margin-left: 2px
}

.nel-sticky-cta__buttons {
    display: flex;
    gap: var(--spacing-1-5);
    flex: 1;
    min-width: 0
}

@media(min-width:768px) {
    .nel-sticky-cta__buttons {
        flex: none;
        gap: var(--spacing-2)
    }
}

.nel-sticky-cta__btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    padding: var(--spacing-2) var(--spacing-2);
    font-size: var(--font-size-xs);
    letter-spacing: .04em;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-4);
    text-decoration: none;
    font-weight: 600;
    transition: opacity .2s ease
}

.nel-sticky-cta__btn:hover {
    opacity: .85
}

@media(min-width:768px) {
    .nel-sticky-cta__btn {
        flex: none;
        min-height: 40px;
        padding: var(--spacing-2) var(--spacing-5);
        font-size: var(--font-size-sm)
    }
}

.nel-sticky-cta__btn--web {
    background: linear-gradient(135deg, var(--color-gold-600), var(--color-gold-500));
    color: var(--color-white)
}

.nel-sticky-cta__btn--line {
    background: #06c755;
    color: var(--color-white);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.nel-sticky-cta__line-icon {
    flex-shrink: 0;
}

.nel-sticky-cta__btn--tel {
    background: transparent;
    color: var(--color-white);
    border: 1px solid var(--color-white-alpha-400)
}

.nel-main {
    min-height: 100vh;
    background: var(--color-primary-900)
}

/* 下層ページ: mainの背景を白に、min-height解除 */
body:not(.home):not(.page-template-page-fc) .nel-main {
    background: var(--color-white);
    min-height: auto;
}