        :root {
            --green: #1b4332;
            --ink: #101828;
            --grey-text: #6f7a73;
            --white: #ffffff;
            --statement-carousel-interval: 10000ms;
        }

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

        html {
            scroll-behavior: smooth;
        }

        @media (prefers-reduced-motion: reduce) {
            html {
                scroll-behavior: auto;
            }
        }

        body {
            margin: 0;
            min-height: 100vh;
            min-height: 100dvh;
            font-family:
                "Pretendard",
                Pretendard,
                -apple-system,
                BlinkMacSystemFont,
                system-ui,
                "Segoe UI",
                Roboto,
                "Apple SD Gothic Neo",
                "Malgun Gothic",
                Arial,
                "Apple Color Emoji",
                "Segoe UI Emoji";
            background: var(--white);
            color: var(--green);
            -webkit-font-smoothing: antialiased;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        .page-shell {
            height: 100vh;
            height: 100dvh;
            min-height: 100vh;
            min-height: 100dvh;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        /* Header + top content: shares viewport with hero video */
        .top {
            flex: 1 1 45%;
            min-height: 0;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            padding: clamp(1.25rem, 4.5vh, 2.75rem) clamp(1.75rem, 5vw, 4.5rem);
            padding-top: calc(clamp(1.25rem, 4.5vh, 2.75rem) + var(--site-header-height));
            padding-bottom: clamp(1rem, 3.5vh, 3.5rem);
        }

        .site-popup {
            position: fixed;
            inset: 0;
            z-index: 1000;
            display: grid;
            place-items: center;
            padding: 1.25rem;
            background: rgba(23, 32, 27, 0.42);
        }

        .site-popup[hidden] {
            display: none;
        }

        .site-popup__dialog {
            width: min(460px, 100%);
            padding: clamp(1.4rem, 4vw, 2rem);
            border-radius: 8px;
            background: #fff;
            color: var(--green);
            box-shadow: 0 24px 80px rgba(23, 32, 27, 0.22);
        }

        .site-popup__dialog h2 {
            margin: 0;
            font-size: clamp(1.55rem, 4vw, 2.25rem);
            line-height: 1.16;
        }

        .site-popup__dialog p {
            margin: 0.9rem 0 0;
            color: var(--grey-text);
            line-height: 1.7;
        }

        .site-popup__actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.6rem;
            margin-top: 1.25rem;
        }

        .site-popup__button,
        .site-popup__close,
        .site-popup__today {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 42px;
            padding: 0 0.95rem;
            border-radius: 999px;
            border: 1px solid rgba(27, 67, 50, 0.18);
            font: inherit;
            font-weight: 700;
            cursor: pointer;
        }

        .site-popup__button {
            border-color: var(--green);
            background: var(--green);
            color: #fff;
        }

        .site-popup__close,
        .site-popup__today {
            background: #fff;
            color: var(--green);
        }

        .hero-split {
            display: flex;
            align-items: flex-start;
            gap: clamp(0.75rem, 2.5vh, 4.5rem);
            flex: 1 1 auto;
            min-height: 0;
            overflow: hidden;
        }

        .who-col {
            flex: 0 1 clamp(210px, 28%, 300px);
            min-width: 0;
            min-height: 0;
            overflow: hidden;
            padding-top: 0.15rem;
        }

        .who-title {
            margin: 0 0 clamp(0.65rem, 1.6vh, 1.1rem);
            font-size: clamp(0.9375rem, min(2vmin, 2.15vh), 1.1875rem);
            font-weight: 600;
            color: var(--green);
        }

        .who-body {
            margin: 0;
            font-size: clamp(0.75rem, min(1.65vmin, 1.85vh), 0.95rem);
            line-height: 1.75;
            color: var(--grey-text);
            max-width: 22rem;
        }

        .headline {
            margin: 0 0 0.85rem;
            font-size: clamp(2.15rem, 4.2vw, 3.35rem);
            font-weight: 700;
            line-height: 1.08;
            letter-spacing: -0.02em;
            color: var(--green);
        }

        .statement-body {
            margin: 0;
            font-size: clamp(1.1rem, 2.05vw, 1.2rem);
            line-height: 1.85;
            color: var(--grey-text);
        }

        .statement-ledge .statement-body {
            max-width: 100%;
            box-sizing: border-box;
            font-size: clamp(0.8125rem, min(1.85vmin, 2.2vh), 1.2rem);
            line-height: 1.75;
        }

        .statement-slide.is-active .headline.is-typing::after {
            content: "";
            display: inline-block;
            width: 2px;
            height: 0.92em;
            margin-left: 3px;
            background: currentColor;
            vertical-align: -0.05em;
            animation: headlineCaretBlink 0.92s steps(1, end) infinite;
        }

        .statement-slide.is-active:not(.typing-done) .statement-body {
            opacity: 0;
        }

        .statement-slide.is-active.typing-done .statement-body {
            opacity: 1;
            transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1);
        }

        @keyframes headlineCaretBlink {
            50% {
                opacity: 0;
            }
        }

        .statement-body + .statement-body {
            margin-top: clamp(0.45rem, 1.5vh, 0.85rem);
        }

        .statement-slide {
            grid-column: 1;
            grid-row: 1;
            opacity: 0;
            visibility: hidden;
            transition: opacity 1.25s cubic-bezier(0.4, 0, 0.2, 1);
            pointer-events: none;
            z-index: 0;
            min-width: 0;
        }

        .statement-slide.is-active {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
            z-index: 1;
        }

        .statement-slides {
            display: grid;
            grid-template-columns: minmax(0, 1fr);
        }

        /** Right-aligned column 60% of top band width (left edge at 40%). */
        .statement-ledge {
            margin-top: auto;
            align-self: stretch;
            margin-left: 40%;
            width: 60%;
            max-width: none;
            box-sizing: border-box;
            text-align: left;
            flex: 1 1 auto;
            min-height: 0;
            overflow: hidden;
        }

        .statement-ledge .headline {
            margin: 0 0 clamp(0.85rem, 2.2vh, 1.35rem);
            font-size: clamp(1.25rem, min(4.8vmin, 5.5vh), 3rem);
            line-height: 1.15;
            font-weight: 700;
            min-height: 0;
        }

        /* Hero video */
        .hero-photo {
            position: relative;
            flex: 1 1 55%;
            min-height: 0;
            margin-top: 0;
            overflow: hidden;
            background: #0d1f18;
        }

        .hero-roll-progress {
            flex: 0 0 3px;
            position: relative;
            width: 100%;
            min-height: 3px;
            z-index: 1;
            pointer-events: none;
        }

        .hero-roll-progress__track {
            position: absolute;
            inset: 0;
            background: rgba(255, 255, 255, 0.16);
        }

        .hero-roll-progress__fill {
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 100%;
            transform: scaleX(0);
            transform-origin: left center;
            background: var(--green);
            will-change: transform;
        }

        .hero-roll-progress__fill.hero-roll-progress__fill--run {
            animation: heroRollProgressFill var(--statement-carousel-interval) linear forwards;
        }

        @keyframes heroRollProgressFill {
            from {
                transform: scaleX(0);
            }

            to {
                transform: scaleX(1);
            }
        }

        .hero-photo__video {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 0;
        }

        .hero-photo__overlay {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.08));
        }

        .hero-corner-logo {
            position: absolute;
            left: clamp(1.75rem, 5vw, 4.25rem);
            bottom: clamp(1.75rem, 5vw, 3.75rem);
            z-index: 2;
            width: clamp(72px, 10vw, 104px);
            height: clamp(72px, 10vw, 104px);
            color: var(--white);
            filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.12));
        }

        .hero-corner-logo img {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: contain;
            object-position: left bottom;
        }

        /* Insight metrics — 블로그 상단 (press-inner와 동일 그리드) */
        .insight-section {
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: #101828;
            padding: clamp(3rem, 9vw, 5.75rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(2.75rem, 6vw, 4.25rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(16, 24, 40, 0.08);
            border-bottom: 1px solid rgba(16, 24, 40, 0.08);
        }

        .insight-section__inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            align-items: start;
        }

        .insight-section__content {
            grid-column: 2 / -1;
            min-width: 0;
        }

        .insight-metrics {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
        }

        .insight-metric {
            min-width: 0;
        }

        .insight-metric__label {
            display: block;
            margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
            font-size: clamp(0.8125rem, 1vw, 0.9375rem);
            font-weight: 500;
            color: #101828;
        }

        .insight-metric__figure {
            display: block;
            margin: 0 0 clamp(1rem, 2vw, 1.35rem);
            font-size: clamp(3.25rem, 7.5vw, 5.25rem);
            font-weight: 700;
            line-height: 0.95;
            letter-spacing: -0.04em;
            color: #101828;
        }

        .insight-metric__figure [data-insight-counter-value] {
            font-variant-numeric: tabular-nums;
        }

        .insight-metric__unit {
            margin-left: 0.08em;
            font-size: 0.42em;
            font-weight: 700;
            letter-spacing: -0.02em;
            vertical-align: baseline;
        }

        .insight-metric__list {
            margin: 0;
            padding: 0;
            list-style: none;
            border-top: 1px solid #d0d5dd;
        }

        .insight-metric__item {
            padding: 0.85rem 0;
            border-bottom: 1px solid #d0d5dd;
            font-size: clamp(0.8125rem, 1vw, 0.9375rem);
            line-height: 1.55;
            color: #101828;
        }

        /* Press strip (below hero video, reference layout) */
        .press-section {
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: #000000;
            padding: clamp(3rem, 9vw, 5.75rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3.75rem, 11vw, 7rem);
            box-sizing: border-box;
        }

        .press-inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            row-gap: clamp(2.25rem, 4vw, 3.5rem);
            align-items: stretch;
        }

        .press-card-stack {
            min-width: 0;
        }

        .press-intro {
            display: flex;
            flex-direction: column;
            min-width: 0;
            justify-content: space-between;
            min-height: 100%;
            grid-column: 1;
            grid-row: span 2;
            align-self: stretch;
        }

        .press-intro__cue {
            margin: 0 0 1.25rem;
            font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
            font-weight: 500;
            letter-spacing: 0.01em;
        }

        .pricing-intro__mega {
            margin: 0;
            font-size: clamp(2.375rem, 6.72vw, 4.375rem);
            font-weight: 800;
            line-height: 0.92;
            letter-spacing: -0.03em;
        }

        .press-intro__mega {
            margin: 0;
            font-size: clamp(1.875rem, 4.8vw, 3.25rem);
            font-weight: 800;
            line-height: 0.92;
            letter-spacing: -0.03em;
        }

        .pricing-intro__mega {
            color: var(--green);
        }

        .press-intro__foot {
            margin-top: auto;
            padding-top: clamp(2rem, 4vw, 3.5rem);
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            gap: 1rem;
        }

        .press-intro__ftitle {
            margin: 0 0 0.35rem;
            font-size: clamp(1rem, 1.35vw, 1.0625rem);
            font-weight: 700;
        }

        .press-intro__fdesc {
            margin: 0;
            font-size: clamp(0.8125rem, 1vw, 0.8875rem);
            font-weight: 400;
            color: #666666;
            line-height: 1.45;
            max-width: 15rem;
        }

        .press-intro__square {
            width: 52px;
            height: 52px;
            background: #000000;
            flex-shrink: 0;
        }

        .press-icon {
            flex-shrink: 0;
            color: currentColor;
            overflow: visible;
        }

        .press-card {
            display: flex;
            flex-direction: column;
            min-width: 0;
            text-align: left;
            color: inherit;
            text-decoration: none;
            outline-offset: 3px;
        }

        .press-card:focus-visible {
            outline: 2px solid #000000;
        }

        .press-card__meta {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.65rem;
            margin-bottom: 0.62rem;
        }

        .press-card__type {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.7625rem;
            font-weight: 500;
        }

        .press-card__date {
            margin: 0;
            font-size: 0.7625rem;
            font-weight: 400;
            color: #666666;
            white-space: nowrap;
        }

        .press-card__rule {
            border: none;
            height: 1px;
            background: #000000;
            margin: 0 0 1.1rem;
        }

        .press-card__title {
            margin: 0 0 0.9rem;
            font-size: clamp(1.15rem, 1.65vw, 1.4rem);
            font-weight: 700;
            line-height: 1.22;
            letter-spacing: -0.02em;
        }

        .press-card__excerpt {
            margin: 0 0 1.25rem;
            font-size: 0.8375rem;
            line-height: 1.6;
            color: #666666;
            flex: 1 1 auto;
        }

        .press-card__bottom {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.85rem;
            margin-bottom: 1.125rem;
        }

        .press-card__author {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            min-width: 0;
        }

        .press-card__avatar {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            object-fit: cover;
            flex-shrink: 0;
            background: #e5e5e5;
        }

        .press-card__name {
            font-size: 0.7925rem;
            font-weight: 500;
        }

        .press-card__comments {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            font-size: 0.7625rem;
            color: #666666;
            white-space: nowrap;
        }

        .press-card__thumb-wrap {
            margin-top: auto;
            overflow: hidden;
            background: #f0f0f0;
        }

        .press-card__thumb {
            display: block;
            width: 100%;
            height: clamp(148px, 18vw, 220px);
            object-fit: cover;
        }

        .press-card:hover .press-card__title,
        .press-card:focus-visible .press-card__title {
            text-decoration: underline;
            text-underline-offset: 3px;
        }

        .studio-proof {
            width: 100%;
            background: #f7faf8;
            color: var(--green);
            padding: clamp(3.25rem, 8vw, 5.75rem) clamp(1.5rem, 5vw, 4.75rem);
            border-top: 1px solid rgba(27, 67, 50, 0.12);
            box-sizing: border-box;
        }

        .studio-proof__inner {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.25rem, 3vw, 2.25rem);
            align-items: start;
        }

        .studio-proof__intro {
            grid-column: span 1;
            min-width: 0;
        }

        .studio-proof__eyebrow {
            margin: 0 0 1rem;
            color: rgba(27, 67, 50, 0.58);
            font-size: 0.8125rem;
            font-weight: 700;
        }

        .studio-proof__title {
            margin: 0;
            font-size: clamp(1.65rem, 3.6vw, 2.35rem);
            line-height: 1.18;
            letter-spacing: 0;
            font-weight: 800;
        }

        .studio-proof__lead {
            margin: 1rem 0 0;
            color: rgba(74, 86, 78, 0.96);
            font-size: clamp(0.875rem, 1.12vw, 0.96rem);
            line-height: 1.7;
        }

        .studio-proof__grid {
            grid-column: 2 / -1;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(0.85rem, 1.8vw, 1.1rem);
        }

        .studio-proof__item {
            min-width: 0;
            padding: clamp(1.15rem, 2.5vw, 1.45rem);
            border: 1px solid rgba(27, 67, 50, 0.12);
            background: #ffffff;
            border-radius: 8px;
            box-shadow: 0 12px 32px rgba(27, 67, 50, 0.055);
        }

        .studio-proof__num {
            display: block;
            margin-bottom: clamp(1.1rem, 2vw, 1.55rem);
            color: rgba(27, 67, 50, 0.42);
            font-size: 0.78rem;
            font-weight: 800;
        }

        .studio-proof__item-title {
            margin: 0;
            font-size: clamp(1.02rem, 1.45vw, 1.16rem);
            line-height: 1.35;
            font-weight: 800;
        }

        .studio-proof__item-text {
            margin: 0.72rem 0 0;
            color: var(--grey-text);
            font-size: 0.875rem;
            line-height: 1.62;
        }

        /* Feature mosaic — 2×4 alternating media / text grid */
        .feature-mosaic-section {
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            padding: clamp(2.75rem, 7vw, 4.5rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(2.5rem, 6vw, 4rem);
            box-sizing: border-box;
        }

        .feature-mosaic-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(0.85rem, 1.35vw, 1.1rem);
            width: 100%;
            max-width: none;
            margin: 0 auto;
        }

        .feature-mosaic-card {
            position: relative;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            aspect-ratio: 1;
            min-height: 0;
            border-radius: clamp(1.35rem, 2.2vw, 1.85rem);
            overflow: hidden;
        }

        .feature-mosaic-card--media {
            padding: 0;
            background: #e4e7ec;
        }

        .feature-mosaic-card--media img {
            display: block;
            width: 100%;
            height: 100%;
            min-height: inherit;
            object-fit: cover;
        }

        .feature-mosaic-card--light {
            padding: clamp(1.45rem, 2.4vw, 2rem);
            background: #f9f8f6;
            color: #101828;
        }

        .feature-mosaic-card--dark {
            padding: clamp(1.45rem, 2.4vw, 2rem);
            background: #1a202c;
            color: #ffffff;
        }

        .feature-mosaic-card--medium {
            padding: clamp(1.45rem, 2.4vw, 2rem);
            background: #718096;
            color: #ffffff;
        }

        .feature-mosaic-card__title {
            margin: 0;
            font-size: clamp(1.35rem, 2vw, 1.72rem);
            font-weight: 700;
            line-height: 1.18;
            letter-spacing: -0.02em;
        }

        .feature-mosaic-card__desc {
            margin: clamp(1rem, 2vw, 1.45rem) 0 auto;
            max-width: 16.5rem;
            font-size: clamp(0.8125rem, 1.05vw, 0.9375rem);
            font-weight: 400;
            line-height: 1.62;
            opacity: 0.92;
        }

        .feature-mosaic-card__link {
            display: inline-block;
            margin-top: clamp(1.25rem, 2.2vw, 1.75rem);
            padding: 0;
            border: 0;
            background: none;
            color: inherit;
            font: inherit;
            font-size: clamp(0.8125rem, 1vw, 0.9rem);
            font-weight: 500;
            line-height: 1.4;
            text-align: left;
            text-decoration: underline;
            text-underline-offset: 0.18em;
            cursor: pointer;
            transition: opacity 0.15s ease;
        }

        .feature-mosaic-card__link:hover {
            opacity: 0.72;
        }

        .feature-mosaic-card__link:focus-visible {
            outline: 2px solid currentColor;
            outline-offset: 3px;
        }

        .feature-mosaic-layer {
            --feature-mosaic-layer-ink: var(--ink);
            --feature-mosaic-layer-ink-rgb: 16, 24, 40;
            position: fixed;
            inset: 0;
            z-index: 1190;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: clamp(1rem, 4vw, 2rem);
            pointer-events: none;
            visibility: hidden;
        }

        .feature-mosaic-layer.is-open {
            pointer-events: auto;
            visibility: visible;
        }

        .feature-mosaic-layer__backdrop {
            position: absolute;
            inset: 0;
            border: 0;
            padding: 0;
            background: rgba(var(--feature-mosaic-layer-ink-rgb), 0.42);
            opacity: 0;
            cursor: pointer;
            transition: opacity 0.28s ease;
        }

        .feature-mosaic-layer.is-open .feature-mosaic-layer__backdrop {
            opacity: 1;
        }

        .feature-mosaic-layer__panel {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            width: min(720px, 100%);
            max-height: min(80vh, 640px);
            border-radius: 12px;
            background: #ffffff;
            color: var(--feature-mosaic-layer-ink);
            box-shadow: 0 24px 80px rgba(var(--feature-mosaic-layer-ink-rgb), 0.22);
            overflow: hidden;
            transform: translateY(12px) scale(0.98);
            opacity: 0;
            transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease;
        }

        .feature-mosaic-layer.is-open .feature-mosaic-layer__panel {
            transform: translateY(0) scale(1);
            opacity: 1;
        }

        .feature-mosaic-layer__head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            flex-shrink: 0;
            padding: 1rem 1rem 0.85rem 1.15rem;
            border-bottom: 1px solid rgba(var(--feature-mosaic-layer-ink-rgb), 0.08);
        }

        .feature-mosaic-layer__title {
            margin: 0;
            font-size: clamp(1rem, 1.35vw, 1.125rem);
            font-weight: 700;
            line-height: 1.35;
        }

        .feature-mosaic-layer__close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 2.25rem;
            height: 2.25rem;
            margin: 0;
            padding: 0;
            border: 0;
            border-radius: 999px;
            background: rgba(var(--feature-mosaic-layer-ink-rgb), 0.06);
            color: var(--feature-mosaic-layer-ink);
            font-size: 1.35rem;
            line-height: 1;
            cursor: pointer;
            transition: background-color 0.15s ease;
        }

        .feature-mosaic-layer__close:hover {
            background: rgba(var(--feature-mosaic-layer-ink-rgb), 0.1);
        }

        .feature-mosaic-layer__close:focus-visible {
            outline: 2px solid rgba(var(--feature-mosaic-layer-ink-rgb), 0.35);
            outline-offset: 2px;
        }

        .feature-mosaic-layer__body {
            flex: 1 1 auto;
            min-height: clamp(12rem, 42vh, 18rem);
            overflow: auto;
            padding: 1.15rem;
        }

        body.is-feature-mosaic-layer-open {
            overflow: hidden;
        }

        @media (prefers-reduced-motion: reduce) {
            .feature-mosaic-layer__backdrop,
            .feature-mosaic-layer__panel {
                transition: none;
            }
        }

        @media (max-width: 1100px) {
            .feature-mosaic-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 560px) {
            .feature-mosaic-grid {
                grid-template-columns: minmax(0, 1fr);
            }

            .feature-mosaic-card {
                aspect-ratio: auto;
                min-height: clamp(14rem, 58vw, 18rem);
            }
        }

        /* Pricing showcase — Kimi-style plan cards */
        .pricing-showcase-section {
            --schedule-accent: var(--ink);
            --schedule-accent-rgb: 16, 24, 40;
            --showcase-surface: #f6f7f9;
            --showcase-card: #ffffff;
            width: 100%;
            max-width: 100%;
            background: var(--showcase-surface);
            color: var(--schedule-accent);
            padding: clamp(3rem, 8vw, 5.25rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3.25rem, 7vw, 5rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
        }

        .pricing-showcase-section .pricing-intro__cue {
            color: rgba(var(--schedule-accent-rgb), 0.65);
        }

        .pricing-showcase-section .pricing-intro__mega {
            color: var(--schedule-accent);
        }

        .pricing-showcase-section .pricing-intro__ftitle {
            color: var(--schedule-accent);
        }

        .pricing-showcase-inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            /* 수강료(.pricing-inner)와 동일 4열·gap → 왼쪽 열 너비 일치 */
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            row-gap: clamp(2.25rem, 4vw, 3.5rem);
            align-items: stretch;
            box-sizing: border-box;
        }

        .pricing-showcase-intro {
            grid-column: 1;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            gap: clamp(2rem, 4vw, 3rem);
            min-width: 0;
            min-height: 100%;
            align-self: stretch;
        }

        .pricing-showcase-section .pricing-intro__foot {
            margin-top: auto;
            padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
        }

        .pricing-showcase__actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.55rem;
        }

        .pricing-showcase__btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2.35rem;
            padding: 0 1rem;
            border-radius: 999px;
            font-size: 0.8125rem;
            font-weight: 600;
            text-decoration: none;
            border: 1px solid transparent;
            transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
        }

        .pricing-showcase__btn--primary {
            background: rgba(var(--schedule-accent-rgb), 0.06);
            color: var(--schedule-accent);
            border-color: rgba(var(--schedule-accent-rgb), 0.14);
        }

        .pricing-showcase__btn--primary:hover {
            background: rgba(var(--schedule-accent-rgb), 0.1);
        }

        .pricing-showcase-content {
            grid-column: 2 / -1;
            display: flex;
            flex-direction: column;
            min-width: 0;
        }

        .pricing-showcase-content .pricing-tabs {
            width: 100%;
            min-width: 0;
        }

        .pricing-showcase-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(0.85rem, 1.5vw, 1.15rem);
            min-width: 0;
        }

        .pricing-showcase-card {
            display: flex;
            flex-direction: column;
            min-height: 100%;
            min-width: 0;
            padding: clamp(1.35rem, 2.2vw, 1.65rem);
            border-radius: 18px;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.08);
            background: var(--showcase-card);
            box-shadow:
                0 1px 2px rgba(var(--schedule-accent-rgb), 0.04),
                0 10px 28px rgba(var(--schedule-accent-rgb), 0.05);
        }

        .pricing-showcase-card__category {
            margin: 0 0 0.45rem;
            font-size: 0.8375rem;
            font-weight: 500;
            line-height: 1.42;
            letter-spacing: 0;
            text-transform: none;
            color: rgba(var(--schedule-accent-rgb), 0.58);
        }

        .pricing-showcase-card__title {
            margin: 0 0 0.55rem;
            font-size: clamp(1.025rem, 1.6vw, 1.175rem);
            font-weight: 800;
            letter-spacing: -0.038em;
            line-height: 1.2;
            color: var(--schedule-accent);
        }

        .pricing-showcase-card__desc {
            margin: 0 0 clamp(1rem, 2vw, 1.25rem);
            font-size: 0.8375rem;
            font-weight: 500;
            line-height: 1.42;
            color: rgba(var(--schedule-accent-rgb), 0.58);
        }

        .pricing-showcase-card__pricing {
            margin-top: auto;
            margin-bottom: 0;
            padding: clamp(0.85rem, 1.8vw, 1.15rem) 0 0;
            border: none;
        }

        .pricing-showcase-card__price-row {
            display: flex;
            flex-wrap: nowrap;
            align-items: flex-start;
            gap: 0.55rem 0.75rem;
            min-height: 2.9rem;
        }

        .pricing-showcase-card__figure {
            display: inline-flex;
            align-items: baseline;
            flex: 0 0 auto;
            margin: 0;
            padding: 0;
            border: none;
            font-size: clamp(1.65rem, 3.45vw, 2.05rem);
            font-weight: 800;
            line-height: 1;
            letter-spacing: -0.045em;
            color: var(--schedule-accent);
        }

        .pricing-showcase-card__figure [data-insight-counter-value] {
            font-variant-numeric: tabular-nums;
        }

        .pricing-showcase-card__unit {
            margin-left: 0.1em;
            font-size: clamp(0.92rem, 1.65vw, 1.125rem);
            font-weight: 800;
            letter-spacing: -0.03em;
        }

        .pricing-showcase-card__price-side {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            justify-content: flex-start;
            gap: 0.2rem;
            min-height: 2.9rem;
            padding-top: 0.12rem;
            font-variant-numeric: tabular-nums;
        }

        .pricing-showcase-card__price-side:empty {
            display: block;
            width: 0;
            min-height: 0;
            padding: 0;
        }

        .pricing-showcase-card__discount {
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1.42;
            color: #3182f6;
            letter-spacing: -0.01em;
        }

        .pricing-showcase-card__original {
            font-size: 0.9125rem;
            font-weight: 600;
            line-height: 1.5;
            color: rgba(var(--schedule-accent-rgb), 0.42);
        }

        .pricing-showcase-card__original .price-del {
            text-decoration: line-through;
            text-decoration-thickness: 1px;
            color: rgba(var(--schedule-accent-rgb), 0.38);
        }

        .pricing-showcase-card__features {
            margin: 0;
            padding: 0;
            list-style: none;
            flex: 1 1 auto;
        }

        .pricing-showcase-card__feature {
            position: relative;
            padding: 0.38rem 0 0.38rem 1.15rem;
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1.42;
            color: rgba(var(--schedule-accent-rgb), 0.72);
            letter-spacing: -0.01em;
        }

        .pricing-showcase-card__feature::before {
            content: "";
            position: absolute;
            left: 0;
            top: 0.72rem;
            width: 0.42rem;
            height: 0.22rem;
            border-left: 1.5px solid rgba(var(--schedule-accent-rgb), 0.55);
            border-bottom: 1.5px solid rgba(var(--schedule-accent-rgb), 0.55);
            transform: rotate(-45deg);
        }

        .pricing-showcase-section .pricing-tabs__list {
            display: inline-flex;
            flex-wrap: wrap;
            gap: 0.2rem;
            width: fit-content;
            max-width: 100%;
            margin: 0 0 clamp(1.35rem, 2.5vw, 1.85rem);
            padding: 0.28rem;
            border: none;
            border-radius: 999px;
            background: rgba(var(--schedule-accent-rgb), 0.06);
        }

        .pricing-showcase-section .pricing-tab {
            margin: 0;
            padding: 0.52rem 0.95rem;
            padding-bottom: 0.52rem;
            border: none;
            border-bottom: none;
            border-radius: 999px;
            font: inherit;
            font-size: clamp(0.865rem, 1.17vw, 0.9825rem);
            font-weight: 500;
            letter-spacing: 0;
            color: rgba(var(--schedule-accent-rgb), 0.52);
            background: transparent;
        }

        .pricing-showcase-section .pricing-tab__icon {
            display: none;
        }

        .pricing-showcase-section .pricing-tab:hover {
            color: var(--schedule-accent);
            background: rgba(255, 255, 255, 0.45);
        }

        .pricing-showcase-section .pricing-tab[aria-selected="true"] {
            color: var(--schedule-accent);
            font-weight: 700;
            background: #ffffff;
            box-shadow:
                0 1px 2px rgba(var(--schedule-accent-rgb), 0.06),
                0 4px 12px rgba(var(--schedule-accent-rgb), 0.08);
        }

        .pricing-showcase-section .pricing-tab:focus-visible {
            outline-color: var(--schedule-accent);
        }

        .pricing-showcase-panel__lead {
            margin: -0.2rem 0 clamp(1rem, 2vw, 1.35rem);
            font-size: 0.9625rem;
            font-weight: 600;
            color: rgba(var(--schedule-accent-rgb), 0.55);
        }

        .pricing-showcase-panel__note {
            margin: clamp(1.15rem, 2.35vw, 1.75rem) 0 0;
            font-size: 0.875rem;
            line-height: 1.5;
            color: rgba(var(--schedule-accent-rgb), 0.52);
        }

        .pricing-showcase-section .pricing-footnote {
            margin-top: clamp(2rem, 4vw, 2.75rem);
            padding-top: clamp(1.35rem, 2.5vw, 1.85rem);
            border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            color: rgba(var(--schedule-accent-rgb), 0.52);
        }

        @media (max-width: 1024px) {
            .pricing-showcase-inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .pricing-showcase-intro {
                grid-column: 1 / -1;
            }

            .pricing-showcase-content {
                grid-column: 1 / -1;
            }

            .pricing-showcase-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 640px) {
            .pricing-showcase-grid {
                grid-template-columns: 1fr;
            }
        }

        /* Pricing (sample) — below Press */
        .pricing-section {
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: var(--green);
            padding: clamp(3rem, 8vw, 5.25rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3.5rem, 9vw, 6.25rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(27, 67, 50, 0.12);
        }

        .pricing-inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            /* Press와 동일한 4열 그리드(열간 gap·row-gap 포함)로 왼쪽 열 픽셀 너비 일치 */
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            row-gap: clamp(2.25rem, 4vw, 3.5rem);
            align-items: stretch;
            box-sizing: border-box;
        }

        .pricing-intro {
            grid-column: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            min-width: 0;
            gap: clamp(2rem, 4vw, 3rem);
        }

        .pricing-intro__cue {
            margin: 0 0 1.25rem;
            font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
            font-weight: 500;
            letter-spacing: 0.01em;
            color: rgba(27, 67, 50, 0.65);
        }

        .pricing-intro__foot {
            margin-top: auto;
            padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
            display: flex;
            justify-content: flex-start;
            align-items: flex-end;
            gap: 1rem;
        }

        .pricing-intro__ftitle {
            margin: 0 0 0.35rem;
            font-size: clamp(1rem, 1.35vw, 1.0625rem);
            font-weight: 700;
            color: var(--green);
        }

        .pricing-intro__fdesc {
            margin: 0;
            font-size: clamp(0.8125rem, 1vw, 0.8875rem);
            font-weight: 400;
            color: rgba(111, 122, 115, 0.98);
            line-height: 1.52;
            max-width: 15rem;
        }

        .pricing-content {
            grid-column: 2 / -1;
            display: flex;
            flex-direction: column;
            min-width: 0;
            gap: 0;
        }

        .pricing-tabs {
            padding-top: 0.35rem;
            min-width: 0;
            display: grid;
            grid-template-columns: minmax(0, 1fr);
            grid-template-rows: auto auto;
        }

        .pricing-tabs__list {
            grid-row: 1;
            display: flex;
            flex-wrap: wrap;
            gap: 0.4rem;
            align-items: flex-end;
            margin: 0 0 clamp(1.45rem, 2.85vw, 2.125rem);
            padding: 0;
            border-bottom: 1px solid rgba(27, 67, 50, 0.16);
            list-style: none;
            box-sizing: border-box;
        }

        .pricing-tab {
            position: relative;
            display: inline-flex;
            align-items: center;
            gap: 0.48em;
            cursor: pointer;
            margin: 0 0 -1px 0;
            padding: 0.55rem 0.82rem;
            padding-bottom: 0.68rem;
            font: inherit;
            font-size: clamp(0.865rem, 1.17vw, 0.9825rem);
            font-weight: 500;
            letter-spacing: 0;
            color: rgba(27, 67, 50, 0.52);
            background: transparent;
            border: none;
            border-bottom: 2px solid transparent;
            border-radius: 5px 5px 0 0;
            outline: none;
            transition:
                color 0.18s ease,
                background-color 0.18s ease;
        }

        .pricing-tab__icon {
            width: 1.12em;
            height: 1.12em;
            flex-shrink: 0;
            display: block;
            opacity: 0.72;
            color: inherit;
            transition: opacity 0.18s ease;
        }

        .pricing-tab:hover .pricing-tab__icon,
        .pricing-tab[aria-selected="true"] .pricing-tab__icon {
            opacity: 1;
        }

        .pricing-tab:hover {
            color: var(--green);
            background-color: rgba(255, 255, 255, 0.45);
        }

        .pricing-tab[aria-selected="true"] {
            color: var(--green);
            font-weight: 700;
            border-bottom-color: var(--green);
        }

        .pricing-tab:focus-visible {
            outline: 2px solid var(--green);
            outline-offset: 2px;
        }

        .pricing-tabs__panel {
            grid-column: 1;
            grid-row: 2;
            align-self: start;
            width: 100%;
            min-width: 0;
            outline: none;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.38s ease;
            z-index: 0;
        }

        .pricing-tabs__panel--active {
            opacity: 1;
            pointer-events: auto;
            z-index: 1;
        }

        .pricing-tabs__panel:focus-visible {
            box-shadow: 0 0 0 2px rgba(27, 67, 50, 0.2);
            border-radius: 4px;
        }

        @media (prefers-reduced-motion: reduce) {
            .pricing-tabs__panel {
                transition-duration: 0.05s;
            }
        }

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

        .pricing-block {
            margin: 0;
        }

        .private-price-cards {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: clamp(1rem, 2.65vw, 1.65rem);
            padding-top: 0.85rem;
            align-items: stretch;
        }

        .private-price-card {
            position: relative;
            display: flex;
            flex-direction: column;
            min-height: 100%;
            min-width: 0;
            overflow: visible;
            padding: clamp(1.42rem, 3.2vw, 1.9rem);
            border-radius: 15px;
            border: 1px solid rgba(27, 67, 50, 0.1);
            background: linear-gradient(165deg, #ffffff 0%, #fafcf9 55%, #f7faf6 100%);
            box-shadow:
                0 1px 0 rgba(255, 255, 255, 0.75) inset,
                0 14px 40px rgba(27, 67, 50, 0.07),
                0 2px 8px rgba(27, 67, 50, 0.04);
            transition:
                transform 0.22s ease,
                box-shadow 0.22s ease,
                border-color 0.22s ease;
            box-sizing: border-box;
        }

        .private-price-card:hover {
            transform: translateY(-4px);
            border-color: rgba(27, 67, 50, 0.18);
            box-shadow:
                0 1px 0 rgba(255, 255, 255, 0.85) inset,
                0 22px 50px rgba(27, 67, 50, 0.12),
                0 4px 14px rgba(27, 67, 50, 0.05);
        }

        .private-price-card--featured {
            border: 2px solid rgba(27, 67, 50, 0.55);
            background: linear-gradient(165deg, #ffffff 0%, #f3f9f5 54%, #edf5ef 100%);
            box-shadow:
                0 0 0 1px rgba(27, 67, 50, 0.05),
                0 18px 48px rgba(27, 67, 50, 0.12),
                0 4px 16px rgba(27, 67, 50, 0.05);
            padding-top: clamp(2.05rem, 4.2vw, 2.5rem);
        }

        .private-price-card--featured:hover {
            box-shadow:
                0 0 0 1px rgba(27, 67, 50, 0.08),
                0 26px 58px rgba(27, 67, 50, 0.14),
                0 6px 18px rgba(27, 67, 50, 0.07);
        }

        .private-price-card__badge {
            position: absolute;
            left: 50%;
            top: 0;
            transform: translate(-50%, -46%);
            margin: 0;
            padding: 0.3rem 0.92rem;
            font-size: 0.6875rem;
            font-weight: 800;
            letter-spacing: 0.085em;
            text-transform: uppercase;
            white-space: nowrap;
            border-radius: 999px;
            color: var(--white);
            background: var(--green);
            box-shadow: 0 5px 16px rgba(27, 67, 50, 0.32);
            pointer-events: none;
            z-index: 1;
        }

        .private-price-card__header {
            flex: 0 0 auto;
            text-align: center;
            padding-bottom: 0.1rem;
        }

        .private-price-card__title {
            margin: 0;
            font-size: clamp(1.025rem, 1.6vw, 1.175rem);
            font-weight: 800;
            letter-spacing: -0.038em;
            color: rgba(27, 67, 50, 0.96);
            line-height: 1.2;
        }

        .private-price-card__caption {
            margin: 0.5rem 0 0;
            font-size: 0.8375rem;
            font-weight: 500;
            line-height: 1.42;
            color: var(--grey-text);
            text-wrap: balance;
        }

        .private-price-card__divider {
            flex: 0 0 auto;
            height: 1px;
            margin: clamp(1.05rem, 2vw, 1.28rem) 0 clamp(1.08rem, 2vw, 1.42rem);
            border: none;
            background: linear-gradient(
                90deg,
                transparent 0%,
                rgba(27, 67, 50, 0.08) 20%,
                rgba(27, 67, 50, 0.18) 50%,
                rgba(27, 67, 50, 0.08) 80%,
                transparent 100%
            );
            opacity: 0.92;
        }

        .private-price-card__pricing {
            margin-top: auto;
            flex: 0 0 auto;
            text-align: center;
        }

        .private-price-card__amount-row {
            margin: 0;
            padding: 0;
            font-weight: 800;
            letter-spacing: -0.045em;
            line-height: 1;
            color: var(--green);
            display: inline-flex;
            align-items: baseline;
            justify-content: center;
            gap: 0.1em;
        }

        .private-price-card__amount {
            font-size: clamp(1.65rem, 3.45vw, 2.05rem);
        }

        .private-price-card__won {
            font-size: clamp(0.92rem, 1.65vw, 1.125rem);
            font-weight: 800;
            letter-spacing: -0.03em;
        }

        .private-price-card__per {
            margin: 0.58rem 0 0;
            font-size: 0.875rem;
            font-weight: 600;
            line-height: 1.42;
            color: rgba(111, 122, 115, 0.98);
            letter-spacing: -0.01em;
        }

        .private-price-card__orig-wrap {
            margin: 0.9rem 0 0;
            font-size: 0.9125rem;
            line-height: 1.5;
            color: rgba(111, 122, 115, 0.98);
            font-variant-numeric: tabular-nums;
        }

        .private-price-card__orig-wrap .price-del {
            text-decoration: line-through;
            text-decoration-thickness: 1px;
            color: rgba(27, 67, 50, 0.35);
            margin-right: 0.15rem;
        }

        .private-price-card__orig-label {
            margin-right: 0.42rem;
            font-weight: 600;
            color: rgba(111, 122, 115, 0.88);
            font-size: 0.865rem;
            letter-spacing: -0.01em;
            text-transform: none;
        }

        .private-price-card__orig-meta {
            font-weight: 500;
            color: rgba(111, 122, 115, 0.85);
            font-size: 0.8625rem;
            white-space: nowrap;
        }

        @media (prefers-reduced-motion: reduce) {
            .private-price-card {
                transition: none;
            }

            .private-price-card:hover {
                transform: none;
            }
        }

        .private-price-cards--pass {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .private-price-cards--term {
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: clamp(0.85rem, 1.8vw, 1.2rem);
        }

        .private-price-cards--term .private-price-card {
            padding: clamp(1.1rem, 2.2vw, 1.45rem);
        }

        .private-price-cards--term .private-price-card__title {
            font-size: clamp(0.95rem, 1.25vw, 1.05rem);
        }

        .private-price-cards--term .private-price-card__caption,
        .private-price-cards--term .private-price-card__per,
        .private-price-cards--term .private-price-card__orig-wrap {
            font-size: 0.8125rem;
        }

        .private-price-cards--term .private-price-card__amount {
            font-size: clamp(1.12rem, 1.9vw, 1.5rem);
        }

        .private-price-cards--term .private-price-card__won {
            font-size: clamp(0.78rem, 1.2vw, 0.92rem);
        }

        .private-price-cards__row-divider {
            grid-column: 1 / -1;
            height: 1px;
            margin: clamp(0.15rem, 0.8vw, 0.45rem) 0;
            background: linear-gradient(
                90deg,
                transparent 0%,
                rgba(27, 67, 50, 0.1) 8%,
                rgba(27, 67, 50, 0.24) 50%,
                rgba(27, 67, 50, 0.1) 92%,
                transparent 100%
            );
        }
        @media (max-width: 1180px) {
            .private-price-cards {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
        }

        @media (max-width: 720px) {
            .private-price-cards {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 420px) {
            .private-price-cards {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        .pricing-block__title {
            margin: 0 0 0.85rem;
            font-size: clamp(1.125rem, 1.62vw, 1.3475rem);
            font-weight: 700;
            letter-spacing: -0.02em;
        }

        .pricing-block__lead {
            margin: -0.2rem 0 1rem;
            font-size: 0.9625rem;
            font-weight: 600;
            color: var(--grey-text);
        }

        .price-note {
            margin: clamp(1.15rem, 2.35vw, 1.75rem) 0 0;
            font-size: 0.875rem;
            line-height: 1.5;
            color: rgba(111, 122, 115, 0.96);
        }

        .pricing-block .price-table-wrap + .price-table-wrap {
            margin-top: 1rem;
        }

        .price-table-wrap {
            background: var(--white);
            border: 1px solid rgba(27, 67, 50, 0.14);
            border-radius: 6px;
            box-shadow: 0 8px 30px rgba(27, 67, 50, 0.06);
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
        }

        .price-table {
            width: 100%;
            border-collapse: collapse;
            font-size: clamp(0.8425rem, 1.16vw, 0.9575rem);
            line-height: 1.4;
            color: var(--green);
        }

        .price-table--private {
            min-width: 520px;
        }

        .price-table--pass-lg,
        .price-table--pass-sm {
            min-width: 640px;
        }

        .price-table--term {
            min-width: 720px;
        }

        .price-table th,
        .price-table td {
            padding: 0.72rem 0.82rem;
            vertical-align: top;
            border-bottom: 1px solid rgba(27, 67, 50, 0.1);
            text-align: center;
        }

        .price-table thead th {
            font-weight: 700;
            background: rgba(27, 67, 50, 0.065);
            white-space: nowrap;
        }

        .price-table tbody tr:last-child th,
        .price-table tbody tr:last-child td {
            border-bottom: none;
        }

        .price-table .row-label {
            text-align: left;
            font-weight: 700;
            white-space: nowrap;
            background: rgba(247, 250, 248, 0.85);
        }

        .price-period-sub {
            display: block;
            margin-top: 0.2rem;
            font-size: 0.74em;
            font-weight: 500;
            color: rgba(27, 67, 50, 0.5);
            white-space: normal;
        }

        .price-cell-stack {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.28rem;
        }

        .price-table .price-del {
            text-decoration: line-through;
            color: rgba(27, 67, 50, 0.45);
        }

        .price-table .price-pct {
            font-weight: 500;
            color: rgba(27, 67, 50, 0.42);
            font-size: 0.88em;
        }

        .price-table .price-arr {
            font-weight: 800;
            color: var(--green);
            letter-spacing: -0.015em;
        }

        .price-table em {
            font-style: normal;
            font-weight: 600;
        }

        .price-muted {
            display: inline-block;
            margin-top: 0.06rem;
            font-size: 0.84rem;
            font-weight: 500;
            color: var(--grey-text);
        }

        .pricing-footnote {
            margin-top: clamp(2.5rem, 5.25vw, 3.35rem);
            padding-top: clamp(1.55rem, 3.25vw, 2.1rem);
            border-top: 1px solid rgba(27, 67, 50, 0.12);
            font-size: 0.865rem;
            line-height: 1.62;
            color: rgba(111, 122, 115, 0.95);
            max-width: none;
        }

        .schedule-section {
            --schedule-accent: var(--ink);
            --schedule-accent-rgb: 16, 24, 40;
            --grey-text: var(--ink);
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: var(--schedule-accent);
            padding: clamp(3rem, 8vw, 5.25rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3.5rem, 9vw, 6.25rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
        }

        .schedule-inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            row-gap: clamp(2.25rem, 4vw, 3.5rem);
            align-items: stretch;
            box-sizing: border-box;
        }

        .schedule-intro {
            grid-column: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            min-width: 0;
            gap: clamp(2rem, 4vw, 3rem);
        }

        .schedule-intro__cue {
            margin: 0 0 1.25rem;
            font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
            font-weight: 500;
            letter-spacing: 0.01em;
            color: var(--schedule-accent);
        }

        .schedule-intro__mega {
            margin: 0;
            font-size: clamp(2.375rem, 6.72vw, 4.375rem);
            font-weight: 800;
            line-height: 0.92;
            letter-spacing: -0.03em;
            color: var(--schedule-accent);
        }

        .schedule-intro__foot {
            margin-top: auto;
            padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
        }

        .schedule-intro__ftitle {
            margin: 0 0 0.35rem;
            font-size: clamp(1rem, 1.35vw, 1.0625rem);
            font-weight: 700;
            color: var(--schedule-accent);
        }

        .schedule-intro__fdesc {
            margin: 0;
            font-size: clamp(0.8125rem, 1vw, 0.8875rem);
            font-weight: 400;
            color: var(--schedule-accent);
            line-height: 1.52;
            max-width: 15rem;
        }

        .schedule-content {
            grid-column: 2 / -1;
            min-width: 0;
        }

        .schedule-tabs .schedule-day-summary {
            margin-top: 0;
        }

        .schedule-body-layout {
            display: block;
        }

        .schedule-main {
            min-width: 0;
        }

        .schedule-calendar-banner {
            --schedule-accent: var(--ink);
            --schedule-accent-rgb: 16, 24, 40;
            position: fixed;
            top: 50%;
            right: 0;
            z-index: 1170;
            display: inline-flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
            margin: 0;
            padding: 0.78rem 0.72rem 0.78rem 0.82rem;
            border: 0;
            border-radius: 14px 0 0 14px;
            background: var(--ink);
            color: #ffffff;
            box-shadow:
                -4px 0 24px rgba(var(--schedule-accent-rgb), 0.28),
                0 8px 24px rgba(var(--schedule-accent-rgb), 0.18);
            cursor: pointer;
            transform: translateY(-50%);
            transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, visibility 0.2s ease;
        }

        .schedule-calendar-banner:hover {
            transform: translateY(-50%) translateX(-2px);
            background: #1f2937;
            box-shadow:
                -6px 0 28px rgba(var(--schedule-accent-rgb), 0.34),
                0 10px 28px rgba(var(--schedule-accent-rgb), 0.22);
        }

        .schedule-calendar-banner:focus-visible {
            outline: 2px solid #ffffff;
            outline-offset: 2px;
        }

        .schedule-calendar-banner.is-hidden {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }

        .schedule-calendar-banner__icon {
            flex-shrink: 0;
            width: 1.15rem;
            height: 1.15rem;
            color: #ffffff;
        }

        .schedule-calendar-banner__text {
            writing-mode: horizontal-tb;
            text-orientation: initial;
            font-size: 0.875rem;
            font-weight: 700;
            letter-spacing: -0.01em;
            line-height: 1;
            white-space: nowrap;
            word-break: keep-all;
        }

        .schedule-calendar-drawer {
            --schedule-accent: var(--ink);
            --schedule-accent-rgb: 16, 24, 40;
            --grey-text: var(--ink);
            position: fixed;
            inset: 0;
            z-index: 1320;
            pointer-events: none;
            visibility: hidden;
        }

        .schedule-calendar-drawer.is-open {
            pointer-events: auto;
            visibility: visible;
        }

        .schedule-calendar-drawer__backdrop {
            position: absolute;
            inset: 0;
            background: rgba(10, 20, 16, 0.5);
            -webkit-backdrop-filter: blur(3px);
            backdrop-filter: blur(3px);
            opacity: 0;
            transition: opacity 0.32s ease;
        }

        .schedule-calendar-drawer.is-open .schedule-calendar-drawer__backdrop {
            opacity: 1;
        }

        .schedule-calendar-drawer__panel {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            display: flex;
            flex-direction: column;
            width: min(31rem, 94vw);
            max-width: 100%;
            background: #f5f7f4;
            box-shadow: -18px 0 60px rgba(var(--schedule-accent-rgb), 0.22);
            transform: translateX(100%);
            transition: transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
            overflow: hidden;
        }

        .schedule-calendar-drawer.is-open .schedule-calendar-drawer__panel {
            transform: translateX(0);
        }

        .schedule-calendar-drawer__head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding: 1.45rem 1.4rem 1.25rem;
            border-bottom: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            background: #ffffff;
            flex-shrink: 0;
        }

        .schedule-calendar-drawer__head-copy {
            min-width: 0;
        }

        .schedule-calendar-drawer__head-copy > p {
            margin: 0 0 0.3rem;
            color: rgba(var(--schedule-accent-rgb), 0.52);
            font-size: 0.75rem;
            font-weight: 750;
            line-height: 1.3;
            letter-spacing: 0.1em;
            text-transform: uppercase;
        }

        .schedule-calendar-drawer__head-copy > span {
            display: block;
            margin-top: 0.45rem;
            color: rgba(var(--schedule-accent-rgb), 0.6);
            font-size: 0.8375rem;
            line-height: 1.5;
            word-break: keep-all;
        }

        .schedule-calendar-drawer__title {
            margin: 0;
            font-size: clamp(1.25rem, 2.2vw, 1.5rem);
            font-weight: 750;
            line-height: 1.25;
            letter-spacing: -0.035em;
            color: var(--schedule-accent);
        }

        .schedule-calendar-drawer__close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.625rem;
            height: 2.625rem;
            padding: 0;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            border-radius: 999px;
            background: #f7f9f6;
            color: var(--schedule-accent);
            cursor: pointer;
            flex-shrink: 0;
            transition: background 0.15s ease;
        }

        .schedule-calendar-drawer__close:hover {
            border-color: rgba(var(--schedule-accent-rgb), 0.2);
            background: #eef2ed;
        }

        .schedule-calendar-drawer__close svg {
            width: 1.1rem;
            height: 1.1rem;
            stroke-width: 1.8;
        }

        .schedule-calendar-drawer__close:focus-visible {
            outline: 2px solid var(--schedule-accent);
            outline-offset: 2px;
        }

        .schedule-calendar-drawer__body {
            flex: 1 1 auto;
            min-height: 0;
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
            padding: 0;
        }

        .schedule-drawer-overview {
            padding: 1.25rem 1.4rem 1.5rem;
        }

        .schedule-drawer-overview__head {
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            gap: 1rem;
            margin-bottom: 0.9rem;
        }

        .schedule-drawer-overview__head p {
            margin: 0 0 0.25rem;
            color: rgba(var(--schedule-accent-rgb), 0.48);
            font-size: 0.7rem;
            font-weight: 750;
            line-height: 1.3;
            letter-spacing: 0.09em;
            text-transform: uppercase;
        }

        .schedule-drawer-overview__head h4 {
            margin: 0;
            color: var(--schedule-accent);
            font-size: 1rem;
            font-weight: 750;
            line-height: 1.35;
        }

        .schedule-drawer-overview__head > span {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 2.25rem;
            min-height: 1.75rem;
            padding: 0 0.55rem;
            border-radius: 999px;
            background: rgba(var(--schedule-accent-rgb), 0.07);
            color: var(--schedule-accent);
            font-size: 0.75rem;
            font-weight: 750;
        }

        .schedule-drawer-list {
            display: grid;
            gap: 0.65rem;
            margin: 0;
            padding: 0;
            overflow: visible;
            list-style: none;
        }

        .schedule-drawer-card {
            display: grid;
            grid-template-columns: 4.75rem minmax(0, 1fr) auto;
            gap: 0.85rem;
            align-items: center;
            margin: 0;
            padding: 0.85rem;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.09);
            border-radius: 0.9rem;
            background: #ffffff;
            box-shadow: 0 5px 18px rgba(var(--schedule-accent-rgb), 0.045);
        }

        .schedule-drawer-card__date {
            display: flex;
            min-height: 3.65rem;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 0.18rem;
            border-radius: 0.7rem;
            background: rgba(var(--schedule-accent-rgb), 0.06);
            color: var(--schedule-accent);
            font-variant-numeric: tabular-nums;
        }

        .schedule-drawer-card__date span {
            font-size: 0.75rem;
            font-weight: 650;
            line-height: 1.2;
            color: rgba(var(--schedule-accent-rgb), 0.62);
        }

        .schedule-drawer-card__date strong {
            font-size: 0.9375rem;
            font-weight: 800;
            line-height: 1.2;
        }

        .schedule-drawer-card__copy {
            min-width: 0;
        }

        .schedule-drawer-card__copy h5 {
            margin: 0;
            color: var(--schedule-accent);
            font-size: 0.9375rem;
            font-weight: 750;
            line-height: 1.35;
            letter-spacing: -0.02em;
            word-break: keep-all;
        }

        .schedule-drawer-card__copy p {
            margin: 0.3rem 0 0;
            color: rgba(var(--schedule-accent-rgb), 0.56);
            font-size: 0.8125rem;
            font-weight: 550;
            line-height: 1.35;
        }

        .schedule-drawer-card__cta {
            display: inline-flex;
            min-height: 2.4rem;
            align-items: center;
            justify-content: center;
            gap: 0.2rem;
            padding: 0 0.7rem 0 0.8rem;
            border-radius: 999px;
            background: var(--schedule-accent);
            color: #ffffff;
            font-size: 0.8125rem;
            font-weight: 750;
            line-height: 1;
            white-space: nowrap;
        }

        .schedule-drawer-card__cta:hover {
            background: #1f2937;
        }

        .schedule-drawer-card__cta:focus-visible {
            outline: 2px solid var(--schedule-accent);
            outline-offset: 2px;
        }

        .schedule-drawer-card__cta svg,
        .schedule-drawer-all svg {
            width: 0.95rem;
            height: 0.95rem;
            stroke-width: 2;
        }

        .schedule-drawer-empty {
            display: flex;
            min-height: 13rem;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            padding: 2rem 1rem;
            border: 1px dashed rgba(var(--schedule-accent-rgb), 0.16);
            border-radius: 0.9rem;
            background: #ffffff;
            text-align: center;
        }

        .schedule-drawer-empty svg {
            width: 1.7rem;
            height: 1.7rem;
            margin-bottom: 0.75rem;
            color: rgba(var(--schedule-accent-rgb), 0.5);
        }

        .schedule-drawer-empty strong {
            color: var(--schedule-accent);
            font-size: 0.9375rem;
        }

        .schedule-drawer-empty p {
            margin: 0.45rem 0 0;
            color: rgba(var(--schedule-accent-rgb), 0.54);
            font-size: 0.8125rem;
            line-height: 1.5;
        }

        .schedule-drawer-all {
            display: flex;
            min-height: 3rem;
            align-items: center;
            justify-content: center;
            gap: 0.35rem;
            margin-top: 0.85rem;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.14);
            border-radius: 0.8rem;
            background: transparent;
            color: var(--schedule-accent);
            font-size: 0.875rem;
            font-weight: 750;
        }

        .schedule-drawer-all:hover {
            border-color: rgba(var(--schedule-accent-rgb), 0.28);
            background: rgba(var(--schedule-accent-rgb), 0.045);
        }

        @media (max-width: 767px) {
            .schedule-calendar-drawer__panel {
                top: auto;
                left: 0;
                width: 100%;
                height: min(86dvh, 46rem);
                padding-bottom: env(safe-area-inset-bottom);
                border-radius: 1.5rem 1.5rem 0 0;
                transform: translateY(100%);
            }

            .schedule-calendar-drawer.is-open .schedule-calendar-drawer__panel {
                transform: translateY(0);
            }

            .schedule-calendar-drawer__head {
                padding: 1.15rem 1rem 1rem;
            }

            .schedule-calendar-drawer__head-copy > span {
                font-size: 0.8125rem;
            }

            .schedule-calendar-drawer__title {
                font-size: 1.25rem;
            }

            .schedule-drawer-overview {
                padding: 1rem;
            }

            .schedule-drawer-card {
                grid-template-columns: 4rem minmax(0, 1fr) auto;
                gap: 0.65rem;
                padding: 0.75rem;
            }

            .schedule-drawer-card__date {
                min-height: 3.4rem;
            }

            .schedule-drawer-card__copy h5 {
                font-size: 0.875rem;
            }

            .schedule-drawer-card__cta {
                min-height: 2.25rem;
                padding: 0 0.55rem 0 0.65rem;
                font-size: 0.75rem;
            }
        }

        body.is-schedule-drawer-open {
            overflow: hidden;
        }

        .schedule-calendar-drawer .schedule-calendar {
            padding: 0.85rem 0 0;
            border: 0;
            border-radius: 0;
            background: transparent;
            box-shadow: none;
        }

        .schedule-calendar {
            padding: clamp(1.15rem, 2vw, 1.35rem);
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.12);
            border-radius: 16px;
            background: #ffffff;
            box-shadow: 0 14px 40px rgba(var(--schedule-accent-rgb), 0.06), 0 2px 8px rgba(var(--schedule-accent-rgb), 0.04);
        }

        .schedule-calendar__title {
            margin: 0 0 1rem;
            font-size: clamp(1.05rem, 1.6vw, 1.2rem);
            font-weight: 700;
            line-height: 1.35;
            letter-spacing: -0.02em;
            color: var(--schedule-accent);
        }

        .schedule-calendar-drawer .schedule-calendar__title {
            display: none;
        }

        .schedule-calendar__weekdays {
            display: grid;
            grid-template-columns: repeat(7, minmax(0, 1fr));
            gap: 0.15rem;
            margin-bottom: 0.55rem;
            font-size: 0.72rem;
            font-weight: 600;
            color: #101828;
            text-align: center;
        }

        .schedule-calendar__head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.5rem;
            margin-bottom: 0.75rem;
        }

        .schedule-calendar__month {
            margin: 0;
            font-size: 0.9375rem;
            font-weight: 700;
            letter-spacing: -0.01em;
            color: var(--schedule-accent);
        }

        .schedule-calendar__nav {
            display: inline-flex;
            gap: 0.35rem;
        }

        .schedule-calendar__nav-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2rem;
            height: 2rem;
            padding: 0;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.12);
            border-radius: 999px;
            background: #ffffff;
            color: var(--schedule-accent);
            cursor: pointer;
            transition: background 0.15s ease, border-color 0.15s ease;
        }

        .schedule-calendar__nav-btn:hover {
            background: #f9fafb;
            border-color: rgba(var(--schedule-accent-rgb), 0.22);
        }

        .schedule-calendar__nav-btn:focus-visible {
            outline: 2px solid var(--schedule-accent);
            outline-offset: 2px;
        }

        .schedule-calendar__grid {
            display: grid;
            grid-template-columns: repeat(7, minmax(0, 1fr));
            gap: 0.15rem 0;
        }

        .schedule-calendar__day {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 2.5rem;
        }

        .schedule-calendar__day::before {
            content: "";
            position: absolute;
            top: 50%;
            left: 0;
            right: 0;
            height: 2.15rem;
            transform: translateY(-50%);
            background: transparent;
            z-index: 0;
        }

        .schedule-calendar__day.is-in-range::before {
            background: #f2f4f7;
        }

        .schedule-calendar__day.is-in-range.is-range-start::before {
            left: 50%;
            border-top-left-radius: 999px;
            border-bottom-left-radius: 999px;
        }

        .schedule-calendar__day.is-in-range.is-range-end::before {
            right: 50%;
            border-top-right-radius: 999px;
            border-bottom-right-radius: 999px;
        }

        .schedule-calendar__day.is-in-range.is-range-row-start:not(.is-range-start)::before {
            border-top-left-radius: 999px;
            border-bottom-left-radius: 999px;
        }

        .schedule-calendar__day.is-in-range.is-range-row-end:not(.is-range-end)::before {
            border-top-right-radius: 999px;
            border-bottom-right-radius: 999px;
        }

        .schedule-calendar__day.is-range-start.is-range-end::before {
            display: none;
        }

        .schedule-calendar__day-btn {
            position: relative;
            z-index: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.15rem;
            height: 2.15rem;
            padding: 0;
            border: 0;
            border-radius: 999px;
            background: transparent;
            color: var(--schedule-accent);
            font: inherit;
            font-size: 0.8125rem;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.15s ease, color 0.15s ease;
        }

        .schedule-calendar__day.is-other-month .schedule-calendar__day-btn {
            color: var(--schedule-accent);
            opacity: 0.35;
        }

        .schedule-calendar__day.is-disabled .schedule-calendar__day-btn {
            color: var(--schedule-accent);
            opacity: 0.35;
            text-decoration: line-through;
            text-decoration-color: rgba(var(--schedule-accent-rgb), 0.35);
            cursor: not-allowed;
        }

        .schedule-calendar__day.is-class-day:not(.is-disabled):not(.is-range-start):not(.is-range-end):not(.is-in-range) .schedule-calendar__day-btn {
            font-weight: 700;
        }

        .schedule-calendar__day.is-range-start .schedule-calendar__day-btn,
        .schedule-calendar__day.is-range-end .schedule-calendar__day-btn {
            background: var(--schedule-accent);
            color: #ffffff;
        }

        .schedule-calendar__day-btn:hover:not(:disabled) {
            background: rgba(var(--schedule-accent-rgb), 0.08);
        }

        .schedule-calendar__day.is-range-start .schedule-calendar__day-btn:hover,
        .schedule-calendar__day.is-range-end .schedule-calendar__day-btn:hover {
            background: #1f2937;
        }

        .schedule-calendar__day-btn:focus-visible {
            outline: 2px solid var(--schedule-accent);
            outline-offset: 2px;
        }

        .schedule-calendar__day.is-selected .schedule-calendar__day-btn {
            background: var(--schedule-accent);
            color: #ffffff;
        }

        .schedule-calendar__day.is-selected .schedule-calendar__day-btn:hover {
            background: #1f2937;
        }

        .schedule-calendar__hint {
            margin: 1rem 0 0;
            font-size: 0.8125rem;
            line-height: 1.55;
            color: var(--schedule-accent);
        }

        .schedule-calendar__flex {
            margin: 0;
            padding: 1rem 0 0.25rem;
            font-size: 0.875rem;
            line-height: 1.65;
            color: var(--schedule-accent);
        }

        .schedule-calendar__flex strong {
            display: block;
            margin-bottom: 0.45rem;
            color: var(--schedule-accent);
            font-size: 0.9375rem;
        }

        .schedule-available {
            margin-top: 1.15rem;
            padding-top: 1.15rem;
            border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.12);
        }

        .schedule-available__title {
            margin: 0 0 0.75rem;
            font-size: 0.9375rem;
            font-weight: 700;
            color: var(--schedule-accent);
        }

        .schedule-available__list {
            margin: 0;
            padding: 0;
            list-style: none;
            display: grid;
            gap: 0.55rem;
            max-height: min(42vh, 360px);
            overflow-y: auto;
        }

        .schedule-available__item {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 0.65rem;
            align-items: center;
            padding: 0.72rem 0.8rem;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            border-radius: 10px;
            background: #f9fafb;
        }

        .schedule-available__item.is-closed {
            opacity: 0.72;
        }

        .schedule-available__name {
            display: block;
            font-size: 0.875rem;
            font-weight: 700;
            line-height: 1.35;
            color: var(--schedule-accent);
        }

        .schedule-available__meta {
            display: block;
            margin-top: 0.2rem;
            font-size: 0.75rem;
            line-height: 1.45;
            color: var(--schedule-accent);
        }

        .schedule-available__cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2rem;
            padding: 0 0.75rem;
            border-radius: 999px;
            background: var(--schedule-accent);
            color: #ffffff;
            font-size: 0.75rem;
            font-weight: 700;
            text-decoration: none;
            white-space: nowrap;
        }

        .schedule-available__cta:hover {
            background: #1f2937;
        }

        .schedule-available__badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2rem;
            padding: 0 0.65rem;
            border-radius: 999px;
            background: #e4e7ec;
            color: var(--schedule-accent);
            font-size: 0.75rem;
            font-weight: 700;
            white-space: nowrap;
        }

        .schedule-available__empty {
            margin: 0;
            font-size: 0.8125rem;
            line-height: 1.55;
            color: var(--schedule-accent);
        }

        .schedule-main__foot {
            margin-top: clamp(1.2rem, 2.6vw, 1.8rem);
        }

        .schedule-main__foot .schedule-ops {
            margin-top: 0;
        }

        .schedule-main__foot .section-actions {
            margin-top: clamp(1rem, 2.2vw, 1.5rem);
        }

        @media (max-width: 1100px) {
            .schedule-calendar-banner__text {
                font-size: 0.78rem;
            }
        }

        @media (max-width: 900px) {
            .schedule-calendar-banner {
                display: none;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .schedule-calendar-banner,
            .schedule-calendar-drawer__backdrop,
            .schedule-calendar-drawer__panel {
                transition: none;
            }
        }

        .schedule-table-wrap {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.12);
            border-bottom: 1px solid rgba(var(--schedule-accent-rgb), 0.12);
            background: transparent;
        }

        .schedule-table {
            width: 100%;
            min-width: 780px;
            border-collapse: separate;
            border-spacing: 0;
            color: var(--schedule-accent);
            font-size: clamp(0.875rem, 1.08vw, 0.9625rem);
        }

        .schedule-table th,
        .schedule-table td {
            padding: 1rem 0.85rem;
            border-bottom: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            border-right: 1px solid rgba(var(--schedule-accent-rgb), 0.08);
            text-align: center;
            vertical-align: middle;
        }

        .schedule-table th:first-child,
        .schedule-table td:first-child {
            border-left: none;
        }

        .schedule-table th:last-child,
        .schedule-table td:last-child {
            border-right: none;
        }

        .schedule-table tbody tr:last-child th.schedule-table__time,
        .schedule-table tbody tr:last-child td {
            border-bottom: none;
        }

        .schedule-table thead th {
            background: #f2f4f7;
            font-weight: 800;
            white-space: nowrap;
        }

        .schedule-table tbody td {
            background: transparent;
        }

        .schedule-table__period {
            width: 3.25rem;
            text-align: center;
            font-weight: 600;
            background: transparent;
            white-space: nowrap;
            vertical-align: middle;
            border-bottom: none;
        }

        .schedule-table__period--afternoon {
            border-bottom: none !important;
        }

        .schedule-table__time {
            width: 9.75rem;
            text-align: center;
            font-weight: 600;
            background: transparent;
            white-space: nowrap;
        }

        .schedule-class-check {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--schedule-accent);
            line-height: 0;
        }

        .schedule-class-check__icon {
            width: 1.2rem;
            height: 1.2rem;
        }

        .schedule-empty {
            color: var(--schedule-accent);
            font-weight: 600;
        }

        .schedule-day-summary {
            margin-top: clamp(1.4rem, 3vw, 2.15rem);
        }

        .schedule-day-summary__title {
            margin: 0 0 0.95rem;
            font-size: clamp(1.05rem, 1.5vw, 1.2rem);
            font-weight: 800;
            letter-spacing: -0.02em;
        }

        .schedule-day-grid {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: clamp(0.75rem, 1.6vw, 1rem);
        }

        .schedule-day-card {
            min-width: 0;
            padding: 1rem;
            border-radius: 10px;
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.1);
            background: #ffffff;
            box-shadow: 0 8px 26px rgba(var(--schedule-accent-rgb), 0.055);
        }

        .schedule-day-card__title {
            margin: 0 0 0.72rem;
            font-size: 0.95rem;
            font-weight: 800;
            color: var(--schedule-accent);
        }

        .schedule-day-card__list {
            margin: 0;
            padding: 0;
            list-style: none;
            display: grid;
            gap: 0.42rem;
            font-size: 0.8375rem;
            line-height: 1.35;
            color: var(--schedule-accent);
            font-weight: 600;
        }

        .schedule-ops {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(0.75rem, 1.6vw, 1rem);
            margin-top: clamp(1.2rem, 2.6vw, 1.8rem);
        }

        .schedule-ops__item {
            padding: clamp(1rem, 2vw, 1.25rem);
            border: 1px solid rgba(var(--schedule-accent-rgb), 0.11);
            border-radius: 8px;
            background: #ffffff;
        }

        .schedule-ops__item .schedule-ops__icon-wrap {
            display: grid;
            place-items: center;
            width: 2.35rem;
            height: 2.35rem;
            margin-bottom: 0.7rem;
            border-radius: 999px;
            background: rgba(var(--schedule-accent-rgb), 0.06);
            color: var(--schedule-accent);
            line-height: 0;
            flex-shrink: 0;
        }

        .schedule-ops__icon {
            display: block;
            width: 1.15rem;
            height: 1.15rem;
        }

        .schedule-ops__item strong {
            display: block;
            margin-bottom: 0.45rem;
            font-size: 0.95rem;
            line-height: 1.35;
            color: var(--schedule-accent);
        }

        .schedule-ops__item > span:not(.schedule-ops__icon-wrap) {
            display: block;
            color: var(--schedule-accent);
            font-size: 0.83rem;
            line-height: 1.58;
        }

        .schedule-section .pricing-tabs__list {
            display: inline-flex;
            flex-wrap: wrap;
            gap: 0.2rem;
            width: fit-content;
            max-width: 100%;
            margin: 0 0 clamp(1.35rem, 2.5vw, 1.85rem);
            padding: 0.28rem;
            border: none;
            border-bottom: none;
            border-radius: 999px;
            background: rgba(var(--schedule-accent-rgb), 0.06);
            align-items: center;
        }

        .schedule-section .pricing-tab {
            margin: 0;
            padding: 0.52rem 0.95rem;
            padding-bottom: 0.52rem;
            border: none;
            border-bottom: none;
            border-radius: 999px;
            font: inherit;
            font-size: clamp(0.865rem, 1.17vw, 0.9825rem);
            font-weight: 500;
            letter-spacing: 0;
            color: rgba(var(--schedule-accent-rgb), 0.52);
            background: transparent;
        }

        .schedule-section .pricing-tab__icon {
            display: none;
        }

        .schedule-section .pricing-tab:hover {
            color: var(--schedule-accent);
            background: rgba(255, 255, 255, 0.45);
        }

        .schedule-section .pricing-tab[aria-selected="true"] {
            color: var(--schedule-accent);
            font-weight: 700;
            background: #ffffff;
            border-bottom: none;
            box-shadow:
                0 1px 2px rgba(var(--schedule-accent-rgb), 0.06),
                0 4px 12px rgba(var(--schedule-accent-rgb), 0.08);
        }

        .schedule-section .pricing-tab:focus-visible {
            outline-color: var(--schedule-accent);
        }

        .schedule-section .section-action {
            border-color: rgba(var(--schedule-accent-rgb), 0.2);
            color: var(--schedule-accent);
        }

        .schedule-section .section-action--primary {
            background: var(--schedule-accent);
            color: #ffffff;
            border-color: var(--schedule-accent);
        }

        .schedule-section .section-action--primary:hover {
            background: #1f2937;
            border-color: #1f2937;
        }

        .section-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.65rem;
            margin-top: clamp(1.25rem, 2.8vw, 2rem);
        }

        .section-action {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2.75rem;
            padding: 0.72rem 1.08rem;
            border-radius: 6px;
            border: 1px solid rgba(27, 67, 50, 0.2);
            color: var(--green);
            font-size: 0.9rem;
            font-weight: 800;
            line-height: 1.2;
        }

        .section-action--primary {
            background: var(--green);
            color: #ffffff;
            border-color: var(--green);
        }

        .section-action:hover {
            opacity: 0.82;
        }

        @media (max-width: 1180px) {
            .schedule-day-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .schedule-ops {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        @media (max-width: 860px) {
            .schedule-inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .schedule-intro,
            .schedule-content {
                grid-column: 1 / -1;
            }

            .schedule-intro__fdesc {
                max-width: 28rem;
            }
        }

        @media (max-width: 640px) {
            .schedule-day-grid {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        /* 이용후기 — 시간표 아래 (롤링 캐러셀) */
        .reviews-section {
            --reviews-accent: var(--ink);
            --reviews-accent-rgb: 16, 24, 40;
            --reviews-carousel-gap: clamp(1rem, 2vw, 1.35rem);
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: var(--reviews-accent);
            padding: clamp(3.25rem, 8vw, 5.5rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3.5rem, 9vw, 6rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(var(--reviews-accent-rgb), 0.1);
        }

        .reviews-inner {
            width: 100%;
            max-width: none;
            margin: 0 auto;
            box-sizing: border-box;
        }

        .reviews-header {
            max-width: 52rem;
            margin: 0 auto clamp(2.25rem, 4.5vw, 3.25rem);
            text-align: center;
        }

        .reviews-header__cue {
            margin: 0 0 0.85rem;
            font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
            font-weight: 500;
            letter-spacing: 0.01em;
            color: rgba(var(--reviews-accent-rgb), 0.58);
        }

        .reviews-header__title {
            margin: 0;
            font-size: clamp(2rem, 5.2vw, 3.25rem);
            font-weight: 800;
            line-height: 1.08;
            letter-spacing: -0.03em;
            color: var(--reviews-accent);
        }

        .reviews-header__subtitle {
            margin: clamp(0.65rem, 1.4vw, 0.9rem) 0 0;
            font-size: clamp(1.05rem, 2vw, 1.35rem);
            font-weight: 500;
            line-height: 1.45;
            letter-spacing: -0.02em;
            color: rgba(var(--reviews-accent-rgb), 0.72);
        }

        .reviews-carousel {
            --reviews-slide-ratio: 46%;
            margin: 0 auto;
            overflow: hidden;
            cursor: grab;
            touch-action: pan-y;
            user-select: none;
            -webkit-user-select: none;
        }

        .reviews-carousel.is-dragging {
            cursor: grabbing;
        }

        .reviews-carousel.is-dragging .reviews-carousel__track {
            transition: none !important;
        }

        .reviews-carousel.is-dragging img {
            pointer-events: none;
        }

        .reviews-carousel__track {
            display: flex;
            gap: var(--reviews-carousel-gap);
            margin: 0;
            padding: 0;
            list-style: none;
            transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
            will-change: transform;
        }

        @media (prefers-reduced-motion: reduce) {
            .reviews-carousel__track {
                transition: none;
            }
        }

        .reviews-carousel--visible-1 {
            --reviews-slide-ratio: 100%;
        }

        .reviews-carousel--visible-2 {
            --reviews-slide-ratio: 46%;
        }

        .reviews-carousel__slide {
            flex: 0 0 var(--reviews-slide-ratio);
            min-width: 0;
        }

        .review-card {
            display: flex;
            flex-direction: column;
            min-width: 0;
            height: 100%;
            border: 0;
            padding: 0;
            background: transparent;
            text-align: left;
            cursor: pointer;
            font: inherit;
            color: inherit;
        }

        .review-card:focus-visible {
            outline: 2px solid rgba(var(--reviews-accent-rgb), 0.35);
            outline-offset: 4px;
            border-radius: clamp(0.55rem, 1vw, 0.75rem);
        }

        .reviews-carousel.is-dragging .review-card {
            cursor: grabbing;
        }

        .review-card__media {
            position: relative;
            display: block;
            overflow: hidden;
            margin: 0;
            border-radius: clamp(0.55rem, 1vw, 0.75rem);
            background: #eef2f6;
            aspect-ratio: 16 / 10;
            line-height: 0;
        }

        .review-card__media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

        .review-card__body {
            display: flex;
            align-items: flex-start;
            gap: clamp(1rem, 2vw, 1.35rem);
            margin-top: clamp(1rem, 2vw, 1.25rem);
            padding: 0 clamp(0.15rem, 0.4vw, 0.35rem);
        }

        .review-card__index {
            flex-shrink: 0;
            font-size: clamp(2.5rem, 5vw, 3.5rem);
            font-weight: 800;
            line-height: 1;
            letter-spacing: -0.04em;
            color: var(--reviews-accent);
        }

        .review-card__copy {
            min-width: 0;
            padding-top: 0.2rem;
        }

        .review-card__title {
            margin: 0;
            font-size: clamp(1.05rem, 1.55vw, 1.2rem);
            font-weight: 700;
            line-height: 1.32;
            letter-spacing: -0.02em;
            color: var(--reviews-accent);
        }

        .review-card__desc {
            margin: clamp(0.55rem, 1vw, 0.7rem) 0 0;
            font-size: clamp(0.8125rem, 1.05vw, 0.9rem);
            font-weight: 400;
            line-height: 1.68;
            color: rgba(var(--reviews-accent-rgb), 0.72);
        }

        .review-card__footer {
            margin: clamp(0.65rem, 1.2vw, 0.85rem) 0 0;
        }

        .review-card__author {
            margin: 0;
            font-size: clamp(0.8125rem, 1vw, 0.875rem);
            font-weight: 700;
            color: var(--reviews-accent);
        }

        .review-card__rating {
            display: inline-flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.4rem 0.55rem;
            margin-top: 0.4rem;
        }

        .review-card__stars {
            display: inline-flex;
            gap: 0.1rem;
            color: #f59e0b;
            line-height: 0;
        }

        .review-card__star {
            width: 0.9rem;
            height: 0.9rem;
            display: block;
        }

        .review-card__score {
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.02em;
            color: rgba(var(--reviews-accent-rgb), 0.72);
        }

        .review-card__tag {
            margin: 0.35rem 0 0;
            font-size: clamp(0.75rem, 0.95vw, 0.8125rem);
            font-weight: 500;
            color: rgba(var(--reviews-accent-rgb), 0.52);
        }

        @media (max-width: 640px) {
            .reviews-header__subtitle {
                font-size: clamp(0.95rem, 4.2vw, 1.1rem);
            }
        }

        .review-layer {
            --review-layer-ink: var(--ink);
            --review-layer-ink-rgb: 16, 24, 40;
            position: fixed;
            inset: 0;
            z-index: 1200;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: clamp(0.75rem, 3vw, 1.5rem);
            pointer-events: none;
            visibility: hidden;
        }

        .review-layer.is-open {
            pointer-events: auto;
            visibility: visible;
        }

        .review-layer__backdrop {
            position: absolute;
            inset: 0;
            border: 0;
            padding: 0;
            background: rgba(var(--review-layer-ink-rgb), 0.48);
            opacity: 0;
            cursor: pointer;
            transition: opacity 0.28s ease;
        }

        .review-layer.is-open .review-layer__backdrop {
            opacity: 1;
        }

        .review-layer__panel {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            width: min(920px, 100%);
            max-height: min(92vh, 980px);
            border-radius: 14px;
            background: #ffffff;
            color: var(--review-layer-ink);
            box-shadow: 0 28px 90px rgba(var(--review-layer-ink-rgb), 0.24);
            overflow: hidden;
            transform: translateY(14px) scale(0.98);
            opacity: 0;
            transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease;
        }

        .review-layer.is-open .review-layer__panel {
            transform: translateY(0) scale(1);
            opacity: 1;
        }

        .review-layer__head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            flex-shrink: 0;
            padding: 0.85rem 1rem 0.8rem 1.15rem;
            border-bottom: 1px solid rgba(var(--review-layer-ink-rgb), 0.08);
        }

        .review-layer__label {
            margin: 0;
            font-size: 0.8125rem;
            font-weight: 700;
            color: rgba(var(--review-layer-ink-rgb), 0.58);
        }

        .review-layer__close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 2.25rem;
            height: 2.25rem;
            margin: 0;
            padding: 0;
            border: 0;
            border-radius: 999px;
            background: rgba(var(--review-layer-ink-rgb), 0.06);
            color: var(--review-layer-ink);
            font-size: 1.35rem;
            line-height: 1;
            cursor: pointer;
        }

        .review-layer__close:hover {
            background: rgba(var(--review-layer-ink-rgb), 0.1);
        }

        .review-layer__body {
            flex: 1 1 auto;
            overflow: auto;
            overscroll-behavior: contain;
        }

        .review-article__hero {
            padding: clamp(1.35rem, 3vw, 2rem) clamp(1.15rem, 3vw, 1.75rem) clamp(1rem, 2.4vw, 1.35rem);
        }

        .review-article__hero-grid {
            display: grid;
            grid-template-columns: minmax(0, 1fr);
            gap: clamp(1.25rem, 3vw, 2rem);
            align-items: start;
        }

        .review-article__hero-aside {
            display: grid;
            gap: clamp(0.65rem, 1.4vw, 0.9rem);
            align-content: start;
        }

        .review-article__meta {
            display: flex;
            flex-wrap: wrap;
            gap: 0.45rem 0.75rem;
            margin: 0 0 0.75rem;
            font-size: 0.8125rem;
            font-weight: 700;
            color: rgba(var(--review-layer-ink-rgb), 0.62);
        }

        .review-article__title {
            margin: 0;
            font-size: clamp(1.2rem, 2.8vw, 1.85rem);
            font-weight: 800;
            line-height: 1.08;
            letter-spacing: -0.03em;
            color: var(--review-layer-ink);
        }

        .review-article__excerpt {
            margin: 0;
            font-size: clamp(0.95rem, 1.45vw, 1.125rem);
            line-height: 1.68;
            color: rgba(var(--review-layer-ink-rgb), 0.72);
        }

        .review-article__media {
            margin: 0;
            padding: 0 clamp(1.15rem, 3vw, 1.75rem);
            line-height: 0;
        }

        .review-article__media img {
            display: block;
            width: 100%;
            height: clamp(220px, 38vw, 420px);
            object-fit: cover;
            border-radius: clamp(0.45rem, 0.9vw, 0.65rem);
            background: #eef2f6;
        }

        .review-article__body {
            padding: clamp(1.35rem, 3vw, 2rem) clamp(1.15rem, 3vw, 1.75rem) clamp(1.5rem, 3.2vw, 2.25rem);
        }

        .review-article__body-grid {
            display: grid;
            grid-template-columns: minmax(11rem, 0.3fr) minmax(0, 0.7fr);
            gap: clamp(1.25rem, 3vw, 2.5rem);
            align-items: start;
        }

        .review-article__aside {
            display: grid;
            gap: 0.75rem;
        }

        .review-article__author {
            margin: 0;
            font-size: 0.95rem;
            font-weight: 700;
            color: var(--review-layer-ink);
        }

        .review-article__author-label {
            margin: 0.2rem 0 0;
            font-size: 0.75rem;
            font-weight: 500;
            color: rgba(var(--review-layer-ink-rgb), 0.55);
        }

        .review-article__rating {
            display: inline-flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.35rem 0.5rem;
        }

        .review-article__stars {
            display: inline-flex;
            gap: 0.1rem;
            color: #f59e0b;
            line-height: 0;
        }

        .review-article__star {
            width: 0.95rem;
            height: 0.95rem;
            display: block;
        }

        .review-article__score {
            font-size: 0.75rem;
            font-weight: 700;
            color: rgba(var(--review-layer-ink-rgb), 0.72);
        }

        .review-article__content p {
            margin: 0 0 1rem;
            font-size: clamp(0.9rem, 1.1vw, 0.9875rem);
            line-height: 1.78;
            color: rgba(var(--review-layer-ink-rgb), 0.82);
        }

        .review-article__content p:last-child {
            margin-bottom: 0;
        }

        body.is-review-layer-open {
            overflow: hidden;
        }

        @media (max-width: 760px) {
            .review-article__hero-grid,
            .review-article__body-grid {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .review-layer__backdrop,
            .review-layer__panel {
                transition: none;
            }
        }

        /* 브랜드 CTA */
        .brand-cta {
            position: relative;
            isolation: isolate;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            max-width: 100%;
            background: #000000;
            color: #ffffff;
            padding: clamp(8.5rem, 22vw, 13.5rem) clamp(1.5rem, 5vw, 2.5rem);
            min-height: clamp(34rem, 72vh, 48rem);
            box-sizing: border-box;
        }

        .brand-cta__video {
            position: absolute;
            inset: 0;
            z-index: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            pointer-events: none;
        }

        .brand-cta__overlay {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background: linear-gradient(
                to bottom,
                rgba(0, 0, 0, 0.52),
                rgba(0, 0, 0, 0.68)
            );
        }

        .brand-cta__inner {
            position: relative;
            z-index: 2;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            max-width: 42rem;
            margin: 0 auto;
            text-align: center;
        }

        .brand-cta__mark {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: clamp(1.75rem, 4vw, 2.35rem);
        }

        .brand-cta__mark-img {
            display: block;
            width: clamp(6.75rem, 17vw, 9.25rem);
            height: auto;
            object-fit: contain;
        }

        .brand-cta__title {
            margin: 0 0 clamp(0.85rem, 2vw, 1.1rem);
            font-size: clamp(1.85rem, 4.8vw, 2.75rem);
            font-weight: 700;
            line-height: 1.22;
            letter-spacing: -0.02em;
            color: #ffffff;
        }

        .brand-cta__desc {
            margin: 0 0 clamp(2rem, 4.5vw, 2.65rem);
            max-width: 34rem;
            font-size: clamp(0.9375rem, 1.8vw, 1.0625rem);
            line-height: 1.65;
            color: rgba(255, 255, 255, 0.62);
        }

        .brand-cta__button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2.85rem;
            padding: 0.65rem 1.65rem;
            border: 0;
            border-radius: 0.65rem;
            background: #ffffff;
            color: #101828;
            font: inherit;
            font-size: 0.9375rem;
            font-weight: 600;
            line-height: 1.2;
            text-decoration: none;
            transition: background 0.15s ease, transform 0.15s ease;
        }

        .brand-cta__button:hover {
            background: #f2f4f7;
        }

        .brand-cta__button:focus-visible {
            outline: 2px solid #ffffff;
            outline-offset: 3px;
        }

        @media (prefers-reduced-motion: reduce) {
            .brand-cta__video {
                display: none;
            }

            .brand-cta__overlay {
                background: rgba(0, 0, 0, 0.82);
            }
        }

        /* 위치·지도 섹션 — 브랜드 CTA 아래 */
        .visit-section {
            width: 100%;
            max-width: 100%;
            --visit-accent: var(--ink);
            --visit-accent-rgb: 16, 24, 40;
            background: #ffffff;
            color: var(--visit-accent);
            padding: clamp(3rem, 8vw, 5.25rem) clamp(1.5rem, 5vw, 4.75rem)
                clamp(3rem, 8vw, 5rem);
            box-sizing: border-box;
            border-top: 1px solid rgba(var(--visit-accent-rgb), 0.1);
        }

        .visit-inner {
            width: 100%;
            max-width: none;
            margin: 0;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(1.5rem, 3.5vw, 3rem);
            row-gap: clamp(2.25rem, 4vw, 3.5rem);
            align-items: stretch;
            box-sizing: border-box;
        }

        .visit-intro {
            grid-column: 1;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            min-width: 0;
            gap: clamp(2rem, 4vw, 3rem);
        }

        .visit-intro__cue {
            margin: 0 0 1.25rem;
            font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
            font-weight: 500;
            letter-spacing: 0.01em;
            color: var(--visit-accent);
        }

        .visit-intro__mega {
            margin: 0;
            font-size: clamp(2.375rem, 6.72vw, 4.375rem);
            font-weight: 800;
            line-height: 0.92;
            letter-spacing: -0.03em;
            color: var(--visit-accent);
        }

        .visit-intro__foot {
            margin-top: auto;
            padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
        }

        .visit-intro__ftitle {
            margin: 0 0 0.35rem;
            font-size: clamp(1rem, 1.35vw, 1.0625rem);
            font-weight: 700;
            color: var(--visit-accent);
        }

        .visit-intro__fdesc {
            margin: 0;
            font-size: clamp(0.8125rem, 1vw, 0.8875rem);
            font-weight: 400;
            color: var(--visit-accent);
            line-height: 1.52;
            max-width: 15rem;
        }

        .visit-content {
            grid-column: 2 / -1;
            min-width: 0;
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
            gap: clamp(1rem, 2.4vw, 1.5rem);
            align-items: stretch;
        }

        .visit-details {
            margin: 0;
            padding: clamp(1.35rem, 3vw, 1.75rem);
            border: 1px solid rgba(var(--visit-accent-rgb), 0.12);
            border-radius: 8px;
            background: #ffffff;
            font-style: normal;
            color: var(--visit-accent);
        }

        .visit-info-grid {
            display: grid;
            gap: clamp(0.85rem, 1.8vw, 1rem);
            min-width: 0;
        }

        .visit-info-card {
            min-width: 0;
            padding: clamp(1.1rem, 2.3vw, 1.35rem);
            border: 1px solid rgba(var(--visit-accent-rgb), 0.1);
            border-radius: 8px;
            background: #f9fafb;
        }

        .visit-info-card__label {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            margin: 0 0 0.45rem;
            color: var(--visit-accent);
            font-size: clamp(0.875rem, 1.05vw, 0.95rem);
            font-weight: 800;
        }

        .visit-info-card__icon-wrap {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 1.65rem;
            height: 1.65rem;
            border-radius: 999px;
            background: rgba(var(--visit-accent-rgb), 0.06);
            color: var(--visit-accent);
            line-height: 0;
        }

        .visit-info-card__icon {
            display: block;
            width: 0.95rem;
            height: 0.95rem;
        }

        .visit-info-card__text {
            margin: 0;
            color: var(--visit-accent);
            font-size: clamp(0.875rem, 1.05vw, 0.95rem);
            line-height: 1.62;
            font-weight: 600;
        }

        .visit-info-card__text a {
            color: inherit;
            text-decoration: underline;
            text-underline-offset: 3px;
        }

        .visit-info-card__text a:hover {
            opacity: 0.82;
        }

        .visit-details__title {
            margin: 0 0 1rem;
            font-size: clamp(1rem, 1.25vw, 1.125rem);
            font-weight: 700;
            color: var(--visit-accent);
        }

        .visit-details__block {
            margin: 0 0 clamp(1rem, 2vw, 1.35rem);
        }

        .visit-details__block:last-child {
            margin-bottom: 0;
        }

        .visit-details__label {
            margin: 0 0 0.35rem;
            font-size: 0.7175rem;
            font-weight: 600;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--visit-accent);
        }

        .visit-details__text {
            margin: 0;
            font-size: clamp(0.875rem, 1.05vw, 0.9475rem);
            line-height: 1.55;
            color: var(--visit-accent);
        }

        .visit-details__text a {
            color: inherit;
            text-decoration: underline;
            text-underline-offset: 3px;
        }

        .visit-details__text a:hover {
            opacity: 0.82;
        }

        .visit-map-links {
            margin: clamp(1rem, 2vw, 1.35rem) 0 0;
            display: flex;
            flex-wrap: wrap;
            gap: 0.35rem 0.85rem;
            font-size: clamp(0.8125rem, 1vw, 0.8875rem);
            font-weight: 600;
            color: var(--visit-accent);
        }

        .visit-map-links a {
            color: inherit;
        }

        .visit-map-links a:not(:last-child)::after {
            content: '·';
            margin-left: 0.85rem;
            color: rgba(var(--visit-accent-rgb), 0.35);
            font-weight: 400;
            pointer-events: none;
        }

        .visit-map-links a:hover {
            opacity: 0.78;
        }

        @media (max-width: 860px) {
            .visit-inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .visit-intro,
            .visit-content {
                grid-column: 1 / -1;
            }

            .visit-content {
                grid-template-columns: minmax(0, 1fr);
            }

            .visit-intro__fdesc {
                max-width: 28rem;
            }
        }

        /* 강의 종류 — 프로필 상단 pill 섹션 */
        .course-types {
            width: 100%;
            max-width: 100%;
            background: #ffffff;
            color: var(--green);
            padding: clamp(3.75rem, 9vw, 6.5rem) clamp(1.5rem, 5vw, 4.75rem);
            box-sizing: border-box;
            text-align: center;
            border-top: 1px solid rgba(27, 67, 50, 0.12);
            border-bottom: 1px solid rgba(27, 67, 50, 0.12);
        }

        .course-types__inner {
            width: 100%;
            max-width: min(1240px, 100%);
            margin: 0 auto;
        }

        .course-types__title {
            margin: 0;
            font-size: clamp(1.65rem, 3.8vw, 2.35rem);
            font-weight: 700;
            line-height: 1.25;
            letter-spacing: -0.02em;
            color: var(--green);
        }

        .course-types__lead {
            margin: clamp(1rem, 2.5vw, 1.35rem) auto 0;
            max-width: 36rem;
            font-size: clamp(0.875rem, 1.35vw, 1rem);
            font-weight: 400;
            line-height: 1.72;
            color: var(--grey-text);
        }

        .course-types__carousel-shell {
            --course-carousel-side: max(clamp(1.25rem, 5vw, 4.75rem), calc((100vw - 1240px) / 2));
            --course-carousel-content: calc(100vw - var(--course-carousel-side) - var(--course-carousel-side));
            width: 100vw;
            max-width: 100vw;
            margin: clamp(2.25rem, 5vw, 3.35rem) 0 0 calc(50% - 50vw);
            padding: 0;
            box-sizing: border-box;
        }

        .course-types__carousel-controls {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            width: var(--course-carousel-content);
            gap: 1rem;
            margin: 0 auto 0.9rem;
            text-align: left;
        }

        .course-types__carousel-controls > p {
            margin: 0;
            color: var(--grey-text);
            font-size: 0.8125rem;
            line-height: 1.5;
        }

        .course-types__carousel-controls > div {
            display: flex;
            align-items: center;
            flex: 0 0 auto;
            gap: 0.5rem;
        }

        .course-types__carousel-controls span {
            min-width: 4.7rem;
            margin-right: 0.25rem;
            color: rgba(27, 67, 50, 0.72);
            font-size: 0.8125rem;
            font-variant-numeric: tabular-nums;
            text-align: right;
        }

        .course-types__carousel-controls button {
            display: grid;
            width: 42px;
            height: 42px;
            padding: 0;
            place-items: center;
            border: 1px solid rgba(27, 67, 50, 0.2);
            border-radius: 50%;
            background: #ffffff;
            color: var(--green);
            cursor: pointer;
            transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
        }

        .course-types__carousel-controls button:hover,
        .course-types__carousel-controls button:focus-visible {
            border-color: var(--green);
            background: var(--green);
            color: #ffffff;
            outline: none;
        }

        .course-types__carousel-controls button:disabled {
            opacity: 0.35;
            cursor: default;
        }

        .course-types__carousel-controls button svg {
            width: 19px;
            height: 19px;
        }

        .course-types__carousel {
            --course-carousel-gap: clamp(1rem, 2vw, 1.25rem);
            position: relative;
            margin: 0 auto;
            overflow: hidden;
            text-align: left;
            cursor: grab;
            touch-action: pan-y;
            user-select: none;
            -webkit-user-select: none;
        }

        .course-types__carousel.is-dragging {
            cursor: grabbing;
        }

        .course-types__carousel:focus-visible {
            outline: 2px solid rgba(27, 67, 50, 0.42);
            outline-offset: 5px;
        }

        .course-types__carousel.is-dragging .course-types__track {
            transition: none !important;
        }

        .course-types__carousel.is-dragging img {
            pointer-events: none;
        }

        .course-types__track {
            display: flex;
            justify-content: flex-start;
            gap: var(--course-carousel-gap);
            margin: 0;
            padding: 0 var(--course-carousel-side);
            list-style: none;
            transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
            will-change: transform;
        }

        @media (prefers-reduced-motion: reduce) {
            .course-types__track {
                transition: none;
            }
        }

        .course-types__carousel--visible-3 .course-types__group {
            flex: 0 0 calc((var(--course-carousel-content) - 2 * var(--course-carousel-gap)) / 3);
        }

        .course-types__carousel--visible-2 .course-types__group {
            flex: 0 0 calc((var(--course-carousel-content) - var(--course-carousel-gap)) / 2);
        }

        .course-types__carousel--visible-1 .course-types__group {
            flex: 0 0 var(--course-carousel-content);
        }

        .course-types__group {
            display: flex;
            flex-direction: column;
            min-width: 0;
            border: 1px solid rgba(27, 67, 50, 0.12);
            border-radius: 14px;
            overflow: hidden;
            background: #ffffff;
            box-shadow: 0 10px 30px rgba(27, 67, 50, 0.06);
        }

        .course-types__group-media {
            position: relative;
            overflow: hidden;
            background: #eef2ef;
            width: 100%;
            margin: 0;
            height: clamp(300px, 24vw, 340px);
            line-height: 0;
        }

        .course-types__group-media img {
            position: absolute;
            inset: 0;
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

        .course-types__group-body {
            display: flex;
            flex-direction: column;
            flex: 1 1 auto;
            padding: clamp(1.15rem, 2.4vw, 1.5rem);
        }

        .course-types__group-title {
            margin: 0;
            font-size: clamp(1.05rem, 1.55vw, 1.2rem);
            font-weight: 700;
            line-height: 1.3;
            letter-spacing: -0.01em;
            color: var(--green);
        }

        .course-types__group-desc {
            margin: 0.55rem 0 0;
            font-size: clamp(0.8125rem, 1.05vw, 0.9rem);
            line-height: 1.65;
            color: var(--grey-text);
        }

        .course-types__group-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.45rem 0.5rem;
            margin: clamp(0.85rem, 2vw, 1.1rem) 0 0;
            padding: 0;
            list-style: none;
        }

        .course-types__tag {
            display: inline-flex;
            align-items: center;
            padding: 0.38rem 0.72rem;
            border-radius: 999px;
            background: rgba(27, 67, 50, 0.07);
            border: 1px solid rgba(27, 67, 50, 0.1);
            color: rgba(27, 67, 50, 0.9);
            font-size: 0.7625rem;
            font-weight: 500;
            line-height: 1.35;
        }

        @media (max-width: 640px) {
            .course-types {
                padding: clamp(2.75rem, 8vw, 4rem) clamp(1.25rem, 4vw, 1.75rem);
            }

            .course-types__carousel-controls {
                align-items: flex-end;
            }

            .course-types__carousel-controls > p {
                max-width: 12rem;
            }

            .course-types__carousel-controls span {
                display: none;
            }

            .course-types__carousel-controls button {
                width: 40px;
                height: 40px;
            }
        }

        /* 프로젝트 쇼케이스 (레퍼런스 Darkness 레이아웃) */
        .project-showcase {
            --project-showcase-bg: #0a0a0a;
            --project-showcase-surface: #141414;
            --project-showcase-muted: #6f6f6f;
            --project-showcase-text: #f2f2f2;
            --project-showcase-label: #ececec;
            --project-showcase-accent: #ececec;
            --project-showcase-nav-bg: rgba(16, 16, 16, 0.88);
            --project-showcase-nav-link: rgba(255, 255, 255, 0.72);
            --project-showcase-nav-link-hover: #ffffff;
            --project-showcase-theme-toggle-bg: rgba(255, 255, 255, 0.08);
            --project-showcase-theme-toggle-color: rgba(255, 255, 255, 0.82);
            --project-showcase-media-bg: #111111;
            --project-showcase-meta-hover: #1a1a1a;
            --project-showcase-divider-color: rgba(111, 111, 111, 0.22);
            --project-showcase-glass-bg: rgba(10, 10, 10, 0.88);
            --project-showcase-glass-blur: 18px;
            --project-showcase-hero-filter: brightness(0.82) saturate(0.92);
            --project-showcase-radius: clamp(0.45rem, 0.8vw, 0.6rem);
            --project-showcase-gutter: 10px;
            --project-showcase-gap: 10px;
            --project-showcase-hero-min: clamp(700px, 82vh, 960px);
            background: var(--project-showcase-bg);
            padding: var(--project-showcase-gutter);
            transition: background-color 0.3s ease;
        }

        .project-showcase.is-light {
            --project-showcase-bg: #ffffff;
            --project-showcase-surface: #f5f5f5;
            --project-showcase-muted: #667085;
            --project-showcase-text: #101828;
            --project-showcase-label: #101828;
            --project-showcase-accent: #101828;
            --project-showcase-nav-bg: rgba(255, 255, 255, 0.92);
            --project-showcase-nav-link: rgba(16, 24, 40, 0.72);
            --project-showcase-nav-link-hover: #101828;
            --project-showcase-theme-toggle-bg: rgba(16, 24, 40, 0.06);
            --project-showcase-theme-toggle-color: rgba(16, 24, 40, 0.82);
            --project-showcase-media-bg: #eef2f6;
            --project-showcase-meta-hover: #ebebeb;
            --project-showcase-divider-color: rgba(16, 24, 40, 0.18);
            --project-showcase-glass-bg: rgba(255, 255, 255, 0.9);
            --project-showcase-glass-blur: 18px;
            --project-showcase-hero-filter: brightness(1) saturate(1);
        }

        .project-showcase__inner {
            width: 100%;
            max-width: 100%;
            margin: 0 auto;
        }

        .project-showcase__grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            grid-template-rows: auto auto;
            gap: var(--project-showcase-gap);
            align-items: stretch;
        }

        .project-showcase__hero {
            grid-column: 1;
            grid-row: 1 / -1;
            position: relative;
            width: 100%;
            min-height: var(--project-showcase-hero-min);
            margin: 0;
            padding: 0;
            border: 0;
            border-radius: var(--project-showcase-radius);
            overflow: hidden;
            background: var(--project-showcase-media-bg);
        }

        .project-showcase__hero-img {
            position: absolute;
            inset: 0;
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center top;
            filter: var(--project-showcase-hero-filter);
            transition: opacity 0.45s ease, filter 0.3s ease;
        }

        .project-showcase__nav {
            position: absolute;
            top: clamp(0.85rem, 1.8vw, 1.25rem);
            left: clamp(0.85rem, 1.8vw, 1.25rem);
            z-index: 2;
            display: inline-flex;
            align-items: center;
            gap: clamp(0.55rem, 1.2vw, 0.85rem);
            max-width: calc(100% - 1.7rem);
            padding: 0.42rem 0.42rem 0.42rem clamp(0.85rem, 1.5vw, 1.15rem);
            border-radius: 999px;
            background: var(--project-showcase-nav-bg);
            backdrop-filter: blur(6px);
            transition: background-color 0.3s ease;
        }

        .project-showcase__nav-link {
            color: var(--project-showcase-nav-link);
            font-size: clamp(0.6875rem, 1.1vw, 0.8125rem);
            font-weight: 500;
            letter-spacing: 0.01em;
            text-decoration: none;
            white-space: nowrap;
            transition: color 0.15s ease;
        }

        .project-showcase__nav-link:hover {
            color: var(--project-showcase-nav-link-hover);
        }

        .project-showcase__theme-toggle {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            width: 1.85rem;
            height: 1.85rem;
            margin-left: 0.15rem;
            padding: 0;
            border: 0;
            border-radius: 999px;
            background: var(--project-showcase-theme-toggle-bg);
            color: var(--project-showcase-theme-toggle-color);
            cursor: pointer;
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        .project-showcase__theme-toggle:hover {
            background: var(--project-showcase-theme-toggle-bg);
            color: var(--project-showcase-nav-link-hover);
        }

        .project-showcase__theme-toggle svg {
            width: 0.95rem;
            height: 0.95rem;
        }

        .project-showcase__theme-toggle .project-showcase__theme-toggle-icon--moon {
            display: block;
        }

        .project-showcase__theme-toggle .project-showcase__theme-toggle-icon--sun {
            display: none;
        }

        .project-showcase.is-light .project-showcase__theme-toggle .project-showcase__theme-toggle-icon--moon {
            display: none;
        }

        .project-showcase.is-light .project-showcase__theme-toggle .project-showcase__theme-toggle-icon--sun {
            display: block;
        }

        .project-showcase__aside {
            display: contents;
        }

        .project-showcase__head {
            grid-column: 2;
            grid-row: 1;
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 0.74fr);
            gap: var(--project-showcase-gap);
            align-items: stretch;
            min-height: 0;
        }

        .project-showcase__copy {
            display: flex;
            flex-direction: column;
            min-width: 0;
            height: 100%;
            padding: clamp(1.05rem, 2vw, 1.35rem) clamp(1.15rem, 2.2vw, 1.5rem);
            border-radius: var(--project-showcase-radius);
            background: var(--project-showcase-surface);
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        .project-showcase__title {
            margin: 0;
            font-size: clamp(1.75rem, 3.2vw, 2.45rem);
            font-weight: 600;
            line-height: 1.08;
            letter-spacing: -0.02em;
            color: var(--project-showcase-text);
        }

        .project-showcase__title-role {
            font-size: 0.72em;
            font-weight: 500;
        }

        .project-showcase__desc {
            margin: 0;
            margin-top: auto;
            max-width: none;
            width: 100%;
            font-size: clamp(0.8125rem, 1.35vw, 0.9375rem);
            line-height: 1.68;
            color: var(--project-showcase-muted);
        }

        .project-showcase__meta {
            display: grid;
            gap: var(--project-showcase-gap);
            margin: 0;
            min-width: 0;
        }

        .project-showcase__meta-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            padding: clamp(0.72rem, 1.4vw, 0.88rem) clamp(0.85rem, 1.5vw, 1.05rem);
            border-radius: var(--project-showcase-radius);
            background: var(--project-showcase-surface);
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        .project-showcase__meta-row dt,
        .project-showcase__meta-row dd {
            margin: 0;
            line-height: 1.35;
        }

        .project-showcase__meta-row dt {
            font-size: clamp(0.8125rem, 1.25vw, 0.875rem);
            color: var(--project-showcase-label);
            font-weight: 500;
        }

        .project-showcase__meta-row dd {
            font-size: clamp(0.75rem, 1.1vw, 0.8125rem);
            color: var(--project-showcase-muted);
            font-weight: 500;
            text-align: right;
        }

        .project-showcase__meta-link {
            color: inherit;
            text-decoration: none;
            transition: color 0.15s ease;
        }

        .project-showcase__meta-link:hover {
            color: var(--project-showcase-accent);
        }

        .project-showcase__secondary {
            grid-column: 2;
            grid-row: 2;
            position: relative;
            min-height: clamp(420px, 52vh, 620px);
            height: auto;
            margin: 0;
            padding: 0;
            border: 0;
            border-radius: var(--project-showcase-radius);
            overflow: hidden;
            background: var(--project-showcase-media-bg);
            transition: background-color 0.3s ease;
        }

        .project-showcase__secondary-img {
            position: absolute;
            inset: 0;
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 35%;
            filter: var(--project-showcase-hero-filter);
            transition: opacity 0.45s ease, filter 0.3s ease;
        }

        .project-showcase__secondary-panel {
            position: absolute;
            inset: 0;
            z-index: 1;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            gap: clamp(0.65rem, 1.2vw, 0.85rem);
            margin: 0;
            padding: clamp(1.15rem, 2.2vw, 1.75rem);
            border: 0;
            background: transparent;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.45s ease, visibility 0.45s ease, background-color 0.45s ease, backdrop-filter 0.45s ease;
        }

        .project-showcase__secondary-panel-title {
            margin: 0;
            font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
            font-weight: 600;
            line-height: 1.3;
            color: var(--project-showcase-text);
            text-shadow: 0 1px 14px rgba(0, 0, 0, 0.28);
        }

        .project-showcase.is-light .project-showcase__secondary-panel-title {
            text-shadow: 0 1px 12px rgba(255, 255, 255, 0.65);
        }

        .project-showcase__secondary-panel-text {
            margin: 0;
            font-size: clamp(0.8125rem, 1.35vw, 0.9375rem);
            line-height: 1.68;
            color: var(--project-showcase-muted);
        }

        .project-showcase__meta-row--edu,
        .project-showcase__meta-row--cert,
        .project-showcase__meta-row--career,
        .project-showcase__meta-row--courses {
            transition: background 0.25s ease;
        }

        .project-showcase__secondary-panel-list {
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: clamp(0.35rem, 0.75vw, 0.5rem);
        }

        .project-showcase__secondary-panel-list li {
            font-size: clamp(0.75rem, 1.2vw, 0.875rem);
            line-height: 1.55;
            color: var(--project-showcase-muted);
            text-shadow: 0 1px 12px rgba(0, 0, 0, 0.24);
        }

        .project-showcase.is-light .project-showcase__secondary-panel-list li {
            text-shadow: 0 1px 10px rgba(255, 255, 255, 0.55);
        }

        .project-showcase__secondary-panel--cert {
            justify-content: flex-end;
            overflow-y: auto;
            overscroll-behavior: contain;
        }

        .project-showcase__secondary-panel--career {
            justify-content: flex-end;
            overflow-y: auto;
            overscroll-behavior: contain;
        }

        .project-showcase__secondary-panel--career .project-showcase__secondary-panel-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            column-gap: clamp(0.85rem, 1.6vw, 1.35rem);
            row-gap: clamp(0.35rem, 0.75vw, 0.5rem);
        }

        .project-showcase__secondary-panel--career .project-showcase__secondary-panel-list li {
            min-width: 0;
        }

        .project-showcase__secondary-panel--courses {
            justify-content: flex-end;
            overflow-y: auto;
            overscroll-behavior: contain;
        }

        .project-showcase__secondary-panel--courses .project-showcase__secondary-panel-list--tags {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            column-gap: clamp(0.65rem, 1.2vw, 1rem);
            row-gap: clamp(0.35rem, 0.75vw, 0.5rem);
            border-top: 0;
            padding-top: clamp(1rem, 1.8vw, 1.35rem);
            background-image: repeating-linear-gradient(
                to right,
                var(--project-showcase-divider-color) 0,
                var(--project-showcase-divider-color) 2px,
                transparent 2px,
                transparent 8px
            );
            background-size: 100% 1px;
            background-repeat: no-repeat;
            background-position: top;
        }

        .project-showcase__secondary-panel--courses .project-showcase__secondary-panel-list--tags li {
            min-width: 0;
        }

        .profile-detail-layer {
            display: none;
        }

        @media (hover: hover) {
            .project-showcase:has(.project-showcase__meta-row--edu:hover) .project-showcase__secondary-panel--edu,
            .project-showcase:has(.project-showcase__meta-row--edu:focus-within) .project-showcase__secondary-panel--edu,
            .project-showcase:has(.project-showcase__meta-row--cert:hover) .project-showcase__secondary-panel--cert,
            .project-showcase:has(.project-showcase__meta-row--cert:focus-within) .project-showcase__secondary-panel--cert,
            .project-showcase:has(.project-showcase__meta-row--career:hover) .project-showcase__secondary-panel--career,
            .project-showcase:has(.project-showcase__meta-row--career:focus-within) .project-showcase__secondary-panel--career,
            .project-showcase:has(.project-showcase__meta-row--courses:hover) .project-showcase__secondary-panel--courses,
            .project-showcase:has(.project-showcase__meta-row--courses:focus-within) .project-showcase__secondary-panel--courses {
                opacity: 1;
                visibility: visible;
                background: var(--project-showcase-glass-bg);
                -webkit-backdrop-filter: blur(var(--project-showcase-glass-blur)) saturate(1.15);
                backdrop-filter: blur(var(--project-showcase-glass-blur)) saturate(1.15);
            }

            .project-showcase:has(.project-showcase__meta-row--edu:hover) .project-showcase__meta-row--edu,
            .project-showcase:has(.project-showcase__meta-row--edu:focus-within) .project-showcase__meta-row--edu,
            .project-showcase:has(.project-showcase__meta-row--cert:hover) .project-showcase__meta-row--cert,
            .project-showcase:has(.project-showcase__meta-row--cert:focus-within) .project-showcase__meta-row--cert,
            .project-showcase:has(.project-showcase__meta-row--career:hover) .project-showcase__meta-row--career,
            .project-showcase:has(.project-showcase__meta-row--career:focus-within) .project-showcase__meta-row--career,
            .project-showcase:has(.project-showcase__meta-row--courses:hover) .project-showcase__meta-row--courses,
            .project-showcase:has(.project-showcase__meta-row--courses:focus-within) .project-showcase__meta-row--courses {
                background: var(--project-showcase-meta-hover);
            }
        }

        @media (max-width: 960px) {
            .project-showcase__grid {
                grid-template-columns: 1fr;
                grid-template-rows: auto;
            }

            .project-showcase__hero {
                grid-column: 1;
                grid-row: auto;
                min-height: clamp(420px, 62vh, 620px);
            }

            .project-showcase__head {
                grid-column: 1;
                grid-row: auto;
                grid-template-columns: 1fr;
            }

            .project-showcase__secondary {
                grid-column: 1;
                grid-row: auto;
                height: auto;
            }

            .project-showcase__desc {
                max-width: none;
            }

            .project-showcase__meta-link {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 2.25rem;
                padding: 0 0.72rem;
                border: 1px solid var(--project-showcase-divider-color);
                border-radius: 999px;
                font-size: 0.875rem;
                white-space: nowrap;
            }

            .profile-detail-layer {
                position: fixed;
                inset: 0;
                z-index: 1300;
                display: grid;
                align-items: end;
                opacity: 0;
                visibility: hidden;
                pointer-events: none;
                transition: opacity 0.24s ease, visibility 0.24s ease;
            }

            .profile-detail-layer.is-open {
                opacity: 1;
                visibility: visible;
                pointer-events: auto;
            }

            .profile-detail-layer__backdrop {
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
                border: 0;
                background: rgba(10, 18, 15, 0.58);
                -webkit-backdrop-filter: blur(3px);
                backdrop-filter: blur(3px);
                cursor: pointer;
            }

            .profile-detail-layer__dialog {
                position: relative;
                z-index: 1;
                width: 100%;
                max-height: min(78dvh, 42rem);
                padding-bottom: env(safe-area-inset-bottom);
                overflow: hidden;
                border-radius: 1.5rem 1.5rem 0 0;
                background: #f7f9f6;
                color: #17221e;
                box-shadow: 0 -1.25rem 3.5rem rgba(7, 19, 14, 0.2);
                outline: none;
                transform: translateY(100%);
                transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
            }

            .profile-detail-layer.is-open .profile-detail-layer__dialog {
                transform: translateY(0);
            }

            .profile-detail-layer__head {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 1rem;
                padding: 1.2rem 1.25rem 1rem;
                border-bottom: 1px solid rgba(23, 34, 30, 0.1);
            }

            .profile-detail-layer__eyebrow {
                margin: 0 0 0.2rem;
                font-size: 0.75rem;
                font-weight: 700;
                line-height: 1.3;
                letter-spacing: 0.08em;
                color: #6f8179;
                text-transform: uppercase;
            }

            .profile-detail-layer__title {
                margin: 0;
                font-size: clamp(1.25rem, 5vw, 1.5rem);
                font-weight: 650;
                line-height: 1.25;
                letter-spacing: -0.03em;
                color: #17221e;
            }

            .profile-detail-layer__close {
                display: inline-flex;
                flex: 0 0 auto;
                align-items: center;
                justify-content: center;
                width: 2.5rem;
                height: 2.5rem;
                padding: 0;
                border: 1px solid rgba(23, 34, 30, 0.12);
                border-radius: 50%;
                background: #ffffff;
                color: #17221e;
                cursor: pointer;
            }

            .profile-detail-layer__close svg {
                width: 1.1rem;
                height: 1.1rem;
                stroke-width: 1.8;
            }

            .profile-detail-layer__close:focus-visible {
                outline: 2px solid #2d654e;
                outline-offset: 2px;
            }

            .profile-detail-layer__body {
                max-height: calc(min(78dvh, 42rem) - 5.15rem);
                padding: 0.35rem 1.25rem 1.35rem;
                overflow-y: auto;
                overscroll-behavior: contain;
                -webkit-overflow-scrolling: touch;
            }

            .profile-detail-layer__list {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                gap: 0;
                margin: 0;
                padding: 0;
                list-style: none;
            }

            .profile-detail-layer__list li {
                position: relative;
                min-width: 0;
                padding: 0.9rem 0 0.9rem 1rem;
                border-bottom: 1px solid rgba(23, 34, 30, 0.09);
                color: #35463f;
                font-size: 0.875rem;
                font-weight: 500;
                line-height: 1.55;
                text-shadow: none;
                word-break: keep-all;
                overflow-wrap: break-word;
            }

            .profile-detail-layer__list li::before {
                content: "";
                position: absolute;
                top: 1.55rem;
                left: 0;
                width: 0.3rem;
                height: 0.3rem;
                border-radius: 50%;
                background: #2d654e;
            }

            .profile-detail-layer__list.project-showcase__secondary-panel-list--tags {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.55rem;
                padding-top: 1rem;
                background: none;
            }

            .profile-detail-layer__list.project-showcase__secondary-panel-list--tags li {
                display: flex;
                align-items: center;
                min-height: 3rem;
                padding: 0.7rem 0.75rem;
                border: 1px solid rgba(23, 34, 30, 0.1);
                border-radius: 0.75rem;
                background: #ffffff;
            }

            .profile-detail-layer__list.project-showcase__secondary-panel-list--tags li::before {
                content: none;
            }
        }

        body.is-profile-detail-layer-open {
            overflow: hidden;
        }

        @media (max-width: 640px) {
            .project-showcase__nav {
                flex-wrap: wrap;
                border-radius: var(--project-showcase-radius);
                max-width: calc(100% - 1.25rem);
            }

            .project-showcase__nav-link {
                white-space: normal;
            }
        }

        @media (max-width: 767px) {
            .pricing-block__lead {
                font-size: 0.9325rem;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .statement-slide {
                transition: none;
            }

            .statement-slide.is-active:not(.typing-done) .statement-body,
            .statement-slide.is-active.typing-done .statement-body {
                opacity: 1;
                transition: none;
            }

            .statement-slide .headline::after {
                content: none;
                animation: none;
            }

            .statement-ledge .headline {
                min-height: 0;
            }

            .hero-roll-progress {
                display: none;
            }

            .pricing-tab {
                transition: none;
            }

            .pricing-tab__icon {
                transition: none;
            }
        }

        @media (max-width: 1024px) {
            .pricing-intro__mega,
            .schedule-intro__mega,
            .visit-intro__mega,
            .reviews-header__title {
                font-size: clamp(2.5rem, 11.65vw, 3.5625rem);
            }

            .pricing-inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .pricing-intro {
                grid-column: 1 / -1;
            }

            .pricing-content {
                grid-column: 1 / -1;
            }

            .press-inner {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .insight-section__inner {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .insight-section__content {
                grid-column: 1 / -1;
            }

            .press-intro {
                grid-column: 1 / -1;
                grid-row: auto;
            }

            .studio-proof__inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .studio-proof__intro,
            .studio-proof__grid {
                grid-column: 1 / -1;
            }
        }

        @media (max-width: 640px) {
            .press-inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .insight-section__inner {
                grid-template-columns: minmax(0, 1fr);
            }

            .insight-metrics {
                grid-template-columns: minmax(0, 1fr);
            }

            .press-intro__foot {
                flex-direction: column;
                align-items: flex-start;
            }

            .press-intro__square {
                align-self: flex-end;
            }

            .pricing-intro__foot {
                flex-direction: column;
                align-items: flex-start;
            }

            .studio-proof__grid {
                grid-template-columns: minmax(0, 1fr);
            }
        }

        @media (max-width: 860px) {
            .hero-split {
                flex-direction: column;
            }

            .who-col {
                flex: none;
                width: 100%;
                max-width: 28rem;
            }

            .statement-ledge {
                margin-left: 0;
                width: 100%;
            }
        }

        @media (max-height: 680px) {
            .who-col {
                display: none;
            }
        }

        /* Mobile introduction: keep all opening copy comfortably readable. */
        @media (max-width: 860px) {
            .page-shell .top {
                flex: 0 0 auto;
                min-height: 0;
                overflow: visible;
                padding-right: 1.25rem;
                padding-left: 1.25rem;
                padding-bottom: 1.25rem;
            }

            .page-shell .hero-photo {
                flex: 1 1 auto;
                min-height: clamp(17rem, 42svh, 30rem);
                margin-top: 0;
            }

            .hero-split {
                flex: 0 0 auto;
                overflow: visible;
            }

            .who-col {
                display: none;
                max-width: 34rem;
                overflow: visible;
            }

            .who-title {
                margin-bottom: clamp(0.7rem, 2.5vw, 0.95rem);
                font-size: clamp(1.25rem, 5.4vw, 1.5rem);
                line-height: 1.35;
                letter-spacing: -0.025em;
                word-break: keep-all;
                overflow-wrap: break-word;
            }

            .who-body {
                max-width: 34rem;
                font-size: clamp(0.96rem, 4vw, 1.08rem);
                line-height: 1.7;
                word-break: keep-all;
                overflow-wrap: break-word;
            }

            .statement-ledge {
                margin-top: 0;
                overflow: visible;
            }

            .statement-ledge .headline {
                margin-bottom: clamp(0.8rem, 2.8vh, 1.15rem);
                font-size: clamp(1.75rem, 7.8vw, 2.4rem);
                line-height: 1.18;
                letter-spacing: -0.035em;
                word-break: keep-all;
                overflow-wrap: break-word;
            }

            .statement-ledge .statement-body {
                font-size: clamp(0.96rem, 4vw, 1.08rem);
                line-height: 1.72;
                word-break: keep-all;
                overflow-wrap: break-word;
            }
        }

        @media (max-width: 420px) {
            .page-shell .top {
                padding-right: 1rem;
                padding-left: 1rem;
            }

            .statement-ledge .headline {
                font-size: clamp(1.7rem, 7.5vw, 2rem);
            }
        }

        /* Medium schedule notes: compact horizontal cards after the grid stacks. */
        @media (min-width: 768px) and (max-width: 1180px) {
            .schedule-main__foot {
                margin-top: 1rem;
            }

            .schedule-main__foot .schedule-ops {
                gap: 0.55rem;
                margin: 0;
            }

            .schedule-ops__item {
                display: grid;
                grid-template-columns: 2.4rem minmax(0, 1fr);
                column-gap: 0.8rem;
                row-gap: 0.12rem;
                align-items: center;
                margin: 0;
                padding: 0.85rem 1rem;
                border-radius: 0.75rem;
            }

            .schedule-ops__item .schedule-ops__icon-wrap {
                grid-column: 1;
                grid-row: 1 / span 2;
                width: 2.4rem;
                height: 2.4rem;
                margin: 0;
            }

            .schedule-ops__item strong {
                grid-column: 2;
                margin: 0;
                font-size: 0.9375rem;
                line-height: 1.35;
            }

            .schedule-ops__item > span:not(.schedule-ops__icon-wrap) {
                grid-column: 2;
                font-size: 0.875rem;
                line-height: 1.45;
            }

            .schedule-main__foot .section-actions {
                margin-top: 0.9rem;
            }
        }

        /* Mobile pricing: compact segmented tabs and scan-friendly plan cards. */
        @media (max-width: 767px) {
            .pricing-showcase-section {
                padding: 2.75rem 1rem 3.5rem;
            }

            .pricing-showcase-inner {
                row-gap: 1.5rem;
            }

            .pricing-showcase-intro {
                gap: 0.9rem;
            }

            .pricing-showcase-section .pricing-intro__cue {
                margin-bottom: 0.7rem;
                font-size: 0.8125rem;
            }

            .pricing-showcase-section .pricing-intro__mega {
                font-size: clamp(2.5rem, 13vw, 3.25rem);
                line-height: 1;
            }

            .pricing-showcase-section .pricing-intro__foot {
                margin-top: 0;
                padding-top: 0;
            }

            .pricing-showcase-section .pricing-intro__ftitle {
                margin-bottom: 0.35rem;
                font-size: 1rem;
            }

            .pricing-showcase-section .pricing-intro__fdesc {
                max-width: none;
                font-size: 0.875rem;
                line-height: 1.6;
                word-break: keep-all;
            }

            .pricing-showcase-content .pricing-tabs {
                padding-top: 0;
            }

            .pricing-showcase-section .pricing-tabs__list {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.25rem;
                width: 100%;
                max-width: none;
                margin-bottom: 1rem;
                padding: 0.25rem;
                border: 1px solid rgba(var(--schedule-accent-rgb), 0.08);
                border-radius: 0.875rem;
                background: rgba(var(--schedule-accent-rgb), 0.055);
            }

            .pricing-showcase-section .pricing-tab {
                width: 100%;
                min-width: 0;
                min-height: 2.75rem;
                justify-content: center;
                margin: 0;
                padding: 0.55rem 0.35rem;
                border: 0;
                border-radius: 0.65rem;
                font-size: clamp(0.75rem, 3.45vw, 0.875rem);
                font-weight: 650;
                line-height: 1.25;
                letter-spacing: -0.025em;
                white-space: nowrap;
            }

            .pricing-showcase-section .pricing-tab:hover {
                background: rgba(255, 255, 255, 0.55);
            }

            .pricing-showcase-section .pricing-tab[aria-selected="true"] {
                background: #ffffff;
                box-shadow: 0 2px 10px rgba(var(--schedule-accent-rgb), 0.09);
            }

            .pricing-showcase-section .pricing-tab:focus-visible {
                outline: 2px solid var(--schedule-accent);
                outline-offset: -2px;
            }

            .pricing-showcase-grid {
                grid-template-columns: minmax(0, 1fr);
                gap: 0.75rem;
            }

            .pricing-showcase-card {
                position: relative;
                min-height: 0;
                padding: 1.1rem;
                border-color: rgba(var(--schedule-accent-rgb), 0.1);
                border-radius: 0.95rem;
                box-shadow: 0 6px 20px rgba(var(--schedule-accent-rgb), 0.055);
            }

            .pricing-showcase-card__category {
                margin-bottom: 0.35rem;
                padding-right: 3.4rem;
                font-size: 0.75rem;
                font-weight: 650;
                line-height: 1.35;
            }

            .pricing-showcase-card__title {
                margin-bottom: 0.4rem;
                padding-right: 3.4rem;
                font-size: 1.125rem;
                line-height: 1.3;
                word-break: keep-all;
            }

            .pricing-showcase-card__desc {
                margin-bottom: 0.85rem;
                font-size: 0.875rem;
                line-height: 1.55;
                word-break: keep-all;
            }

            .pricing-showcase-card__features {
                display: flex;
                flex: 0 0 auto;
                flex-wrap: wrap;
                gap: 0.4rem;
            }

            .pricing-showcase-card__feature {
                padding: 0.4rem 0.65rem;
                border-radius: 999px;
                background: rgba(var(--schedule-accent-rgb), 0.055);
                font-size: 0.8125rem;
                font-weight: 650;
                line-height: 1.25;
            }

            .pricing-showcase-card__feature::before {
                content: none;
            }

            .pricing-showcase-card__pricing {
                margin-top: 1rem;
                padding-top: 1rem;
                border-top: 1px solid rgba(var(--schedule-accent-rgb), 0.09);
            }

            .pricing-showcase-card__price-row {
                min-height: 0;
                align-items: center;
                justify-content: flex-end;
                text-align: right;
            }

            .pricing-showcase-card__figure {
                justify-content: flex-end;
                margin-left: auto;
                font-size: clamp(1.8rem, 9vw, 2.25rem);
                line-height: 1;
                text-align: right;
            }

            .pricing-showcase-card__unit {
                font-size: 0.9375rem;
            }

            .pricing-showcase-card__price-side {
                min-height: 0;
                padding: 0;
            }

            .pricing-showcase-card__discount {
                position: absolute;
                top: 1rem;
                right: 1rem;
                display: inline-flex;
                align-items: center;
                min-height: 1.7rem;
                padding: 0 0.55rem;
                border-radius: 999px;
                background: rgba(49, 130, 246, 0.1);
                color: #246dcc;
                font-size: 0.75rem;
                font-weight: 750;
            }

            .pricing-showcase-panel__note {
                margin-top: 0;
                padding: 1.25rem;
                border: 1px solid rgba(var(--schedule-accent-rgb), 0.08);
                border-radius: 0.875rem;
                background: #ffffff;
                font-size: 0.875rem;
                text-align: center;
            }

            .schedule-main__foot {
                margin-top: 1rem;
            }

            .schedule-main__foot .schedule-ops {
                grid-template-columns: minmax(0, 1fr);
                gap: 0.5rem;
                margin: 0;
            }

            .schedule-ops__item {
                display: grid;
                grid-template-columns: 2.25rem minmax(0, 1fr);
                column-gap: 0.75rem;
                row-gap: 0.15rem;
                align-items: center;
                margin: 0;
                padding: 0.85rem;
                border-radius: 0.75rem;
            }

            .schedule-ops__item .schedule-ops__icon-wrap {
                grid-column: 1;
                grid-row: 1 / span 2;
                width: 2.25rem;
                height: 2.25rem;
                margin: 0;
            }

            .schedule-ops__icon {
                width: 1.05rem;
                height: 1.05rem;
            }

            .schedule-ops__item strong {
                grid-column: 2;
                margin: 0;
                font-size: 0.9375rem;
                line-height: 1.35;
            }

            .schedule-ops__item > span:not(.schedule-ops__icon-wrap) {
                grid-column: 2;
                font-size: 0.875rem;
                line-height: 1.5;
                word-break: keep-all;
            }

            .schedule-main__foot .section-actions {
                margin-top: 0.85rem;
            }
        }

        @media (max-width: 360px) {
            .pricing-showcase-section .pricing-tab {
                font-size: 0.725rem;
            }

            .pricing-showcase-card {
                padding: 1rem;
            }
        }

        /*
         * Desktop viewports must let the copy band size itself from its
         * content so the rolling description is never clipped by the
         * remaining viewport-height calculation.
         */
        @media (min-width: 861px) {
            .page-shell .top {
                flex: 0 0 auto;
                min-height: 0;
                overflow: visible;
                padding-top: calc(var(--site-header-height) + clamp(0.9rem, 2.2vh, 1.35rem));
                padding-bottom: clamp(1rem, 2.4vh, 1.5rem);
            }

            .page-shell .hero-split {
                flex: 0 0 auto;
                min-height: 0;
                overflow: visible;
            }

            .page-shell .statement-ledge {
                flex: 0 0 auto;
                min-height: 0;
                margin-top: clamp(1.15rem, 2.8vh, 1.85rem);
                overflow: visible;
            }

            .page-shell .statement-slides,
            .page-shell .statement-slide {
                min-height: 0;
                overflow: visible;
            }

            .page-shell .statement-body {
                word-break: keep-all;
                overflow-wrap: break-word;
            }

            .page-shell .hero-photo {
                flex: 1 1 auto;
                min-height: 0;
            }
        }
